PREME/G/MU453161
019971366011163296526006300218977819627342604034576259549733219379301645686032013011176566526340181749736528752934644115090096516573241359856600465298123643378583346488232680448174788360415652081095857900611779768347625201011718731837609205157995624137001372925949700015122109181279338894030886447621740251604744748689997605459490039698487272697105527111644878609402222202917550140082296985106133401366759705795218766984119072666561219298865757346145616708441445579325718186804627113107859628463307259802195547608112665385732009645678598876715793318279898149503561084076594577205168838967505979834156231853816919198171244529345377156553339775962336792171608363566934935227230596511951796853540991661784000810193930545426911819836528954872206960480244961284426544619003704708569295360258774621094676706471193750216296479259490072669148552115298894694108028146005366671654942917926646703601233158531042748600935638737431058930132959778341119562178896805726570105967338900995426108403922528180376171025609987283757828528217990874705958317495608572838972504094598470827776148018129945944088717649078364087330306773784139539534932833978398457828548106338002217057503053235605179827493926087688907880649208894327196393602499863700039738040774587947331287505252060483055667791435211851887171552061201240558437650714212017523821663087289816655857520873612117593184174015688410996598586540915569646594741289264395359613408989591239944595751329870445167233841052482444112989466061953599416722807570812915817138562737989573252441913822600636711152384238553844245476525573911559420783725417477975108825308417237168131914050346276998381990788300197658824191872128684900731839928270763489292890617854230357058265736739403305766938332356910875912754167747398562676356804880572182464007013872291380713646259242866367456114930716598200357385349701618857711709488275065459641029081555022646923271340471649532937873321623770592170563906227932956444497486272711372829619669082930671990122778497339375022486892700573411281969056043707144105505994329670567645155954876171076510325764319445234927598511342739278164924268198417707823884475058020121130240400305648462481241321500963130413929173854690267687006929729006827192512512492750406478592563187623384787601102988432968057776568235703232317721585826071621311223859088355176130044542143901935738433627754273891679797382259667554660659961296009974113748115319965687408842423089494758105891790819039539767335284317944021941257098789450284143752941600722461056002042797055893439703815187895885625773979833759117139180039913188972261905430036165979289821536699373365090116047730092533569787783514017085192117413685992579231799120525597615877685989535087835352408885302727878415405650227796471437101628199715980305671123513112376830112306886368855970412072785759861141388015839358032935612392077392083842982437997055593186859120291175332301525881378514107129166926073053220584090855865972617447897894808032396395478706475522329937054756535157340959019013133433845309971296247825083273872761169119808760403006486766387432886474872581403916407830767276270423548874833323353846319478117912447357293541364289195478010211267145426568287719809259720599013703441403905063168190273164601277438106729622662898086030076794231197856043892468237164458116482982254285973779684975637390796070166114844852938094865710985307547251301915382698186422271290006223826399871389122449745749230317382111850381830994094610556492430123766457400819692728617274875604655548085131929950059822003810385117428485337344938141279093840602843004755365666461097527728477213436003063866584511712215598295345252140021513306793446537860104976990959318381751703359090683412192025616950292524445992518426295770782056244324371847135584183957070083972913399043012228764962617626216722101347428596022083427435047039196989927978562466997077135035282060707759485351418109001716031601445565589260645889581088557585359079962956369253608053721252840967816995300233431448083478094927339593711881417738193787492592359640226668745804451264615942405306064610623327930908156303241459728625857209579331570412216134197648803083510998751642328923094906854680505530552057969340851513613373722078867127862253202801249450842799110568001675057406760661118465309586459548192740529789945018210071546856452910601332527132842990206615644943519843389248286413407649166029237215556037948007917366658994572572603265695690002401986900123849876020988966021215095468259346222595832946583557542451128705260074310955259457054029949968212909111620367930462551829986291283132557694341173090737498978319672760594178513054147048711419611410078292607822327144660801940921929105456944040853964415587855333408373789477391067242662723687332638160537369140247872204391536633450083243625064854761284898795984364286658404669730970805360787813144790070929591922013914224885020825106370373399477626308782080442061513964788064296187080734712123192444582062276558761433043204514492364434649904271965618236226290528588506011515065299959734277922487780408913475911917417081044646988326891912923111683017005884128628993159650187747138419885537958039844759053432861217184508418037908096063449760523439951707488511681904053277670250264027242698575989200904726389587147104349050686885574721527901687647789439458071407018597694046634490851769500649672323972707770753667800052928673775492178415918432297728622958497721525444988776866526012226604145696175019231567416317212158150256442703827643536024860509181701044281481494004770233378459120131784833792744154479452911944835445272396531753816826156085305117663114854384158875952921935043755061684123441678019710328477227875678227982708524338022919244576542624861182218594328111602563106628415397956684529395887690685561385629535731336956980383503615202704818701167899343138778916328378231701108412287068129209440728987099426355995040129015109779592779425812120263185042487407331518380116446996170034690925689829060258841671501042217827574564664312427920477410716840763342021154895225959345476154407874738993927348264712396789348521285223616851521018562379834043159678978843222748952801454708963884538738007164769764903783220260199571558119853530365118067930103218820549738332990094165736532223651003140289962159742120968070652044157164794475309178684862499445513954709354065733040366111151833816572839433479116825063795293849208449674197870377522351102852533689978623064452779519567149549447823834730299630621282835239897066525367847475793864576356902371760165877597564663234762107014072454682333914727073976175136736409645689916435445579195750296631107260865433664976552304153058926992503003734464319078620176127338350753999265419885014336877937186872512684675139281162143896286624131200757832543730119716886473813508103890436077006535531887087515115388662592009905188904940692930201533762807150537241061996900061658504106478685291519691859780229171955514014912084957717136664128959290728461559885782458556958983556679863301158297531858696197218498691126439880326868869419909059083407791345060687320646944590384872970981574428863756811665879257700427683620824849747753065150428154643055985699381531004626665317017228894773124127450160113945634246076696756012870951458363229806623444929143831772697812393766968325134373785209050484711684349375666272188405530622814721956476472641854076178291057970053420363476238387760710628741271932976052286423735864317027714021038442118419316337775349254546976623630006868501709723691506698949675404798964206150308283984847604348752186421265508584303802865415637610744035081098539874204892862285161010734448777474046038164574777079152169752663632785916494475884116944128562592940787549946425526308428411402594021483155444636844990417312028340547275471625648883372209111181411461287286733579811244373269657110082329960427963574034154527109011256888018818112387971020784493221770034626151625869125748791205396391421651013481770437143640218218564447616269837081427151979037979553437073490892948425333744417636193432779869659587283831889439095317992893638168092195997020225289063789185358989766674271220554083365082787210670042408059248757886312539993697796184523610300956537331127049421110375640924159063567673554474181810142290458513191187145318262354141163025005211898916675874415219661880740113721601137868706152112680765783300137315139262039372574264366977066653448882130653758546495024057015143534441407350964212815288805347778421533907963250664946080948868872515654801869319738150222632987510966827076877433890224095601911596145018089626044539725261132853302584482788852927875735078339499343226793807269620634819882267430980078433903133098888241625849220613041733096518816165165261551769667176425257711130364744194761072463067061894038368314127492845360053726294795710449500207562270489346143414962163698775222764619298447946300611861690810994119223027112790064268846167186912448113530907584990026023497039058695531503614360708064142676783170575758984669092018838661065911466980903357724893072145478003686811747104851869458954171661826558754989479552844675990862031432233417327149592119355529569953914149657864054083817898893601191635722023775245865698896703468142211868854992807468905869701797783990542415110653199955609361292899376649703561401372783008872869168325194766668325852377912359809377812363765862242907945309496118751343178943641351540477567762413869865924399753108161497242148992227150832786267682639705881991590795758121617913227394474375454576018954675464037384375239108763284518161991236486933275370979491699541603767233539334240723232230799342024060950279818424760634735043360545102847162441865474283029014234339831177858926019056426791615619748406599882504489431135604400988771967847945251921081289128896019062618618010002586994005762481531852041011097343003894262134187615029907594463503731335638067571431640856316368506077454987019206352071860571459198721694010338008869445406778113927316555118378895336134761091069780873344934298471863654627902505464831627091909424353371669728436474932829528912664883341954050712907481139065390393522520826872116229607803634053923273424242892257857013852701462639756950742566372566216220937948865283519514479144127181106098369653820766918072794007438707975441121230201678170901806636504998722180321810603053530024393357822638711214159306842571517307796508511894789891323334346604789431428823258064052822651508140306485045621648359366054268152368444733264268708556574665227786238842288425406883232022598138092324989243904780479024410630824442487912162174186521950981944952365123461556078031337137932615426191337781317687381577963226511805159208587698829955037528334837278818510987779520560751126669525442549695035667073326178054079210059257444188722793665805779579199798627843722016866155919440842497246304744271602623602051376848253581258162822909316236727981316453248894046792852886906456508796714922273483064421761058530927167624531979918004072308918292921920196243765040591937448854314904968597327758344991445969415999169620675658805018376182932836469373889052989080810343002161596208436050345127267115952670275120928040672559383971453652723426217714305012857098774432439291289660473511065247021579798580700632114063695367431099036129753221530399839519077476257628960083639788702014764314055122172377881632211615900151964554491898816093757372177056487799660270224574824834803697424413448248124531641561173412353969319009834289223329620667184124366166699732449934413039876803034326498041254949560471389918810165141615936507751037132019986334589428865755179988884908284570973034658015185707325203761029588023729669866268214861577994850431043855257201924860473205178088728733373508141941297768714094621881450224259456286847262626641458506220280510040945964488510594123301542103995509172957445090875264547767595540822858744763807394009433863563429371854820851499578617091770399716532676320284107946087643612629381459893076932921841498096859917925648077157131652398109051948165945444893676992382946017354992183200397102366034001153407903496584973161654545901276919315001019250757946980207885782832995352586621901194405404669614519607217954156660443035105437539358497274453523172547653208993918435741959871569209196118286469539828523983821050863369582010903392246410942019032382172980773647855553935139480740400850410346096111479783272076697779994146684955410192838370359767797022000427012269409946782735084465878930736993573735258237321282219141775658763565645528186957055514915600873440405407478764297602850550031225240753395142701854240796204385717309395909549975555429657904370090007888279939066193446358491589411450630420345524518293385856015127147213191644534904132241630526138828151965883009820227770921854955048896124693475279570339628455707283578193651067787782945913979232133088603520927061993487894600568619162066349363811269727419911068594501419843719915965155053475102853521634337593193496722074895893394997430007590192160813809930932467986409813328231773509681011892785550702791208109466292267791945592007362678012283412854029039388331313765358944237057303620673895687913967380199278254329687122683766427494907654138633867104400794527384848939879004870707876628586975229144573406195285936485259531815603300491636566627291299496576039869658765246204795224760664991084279193076839785411085540427381171687438321026712255955755951143480550133440624021908536157840164227700943217537012527363191394250108672332499129619763623643229198843758005874162212099925413044051199582206972457274430701577893100010733737220077742599209435600908431195468363328770351034217527211214466954613625579193353605774042532398195645461790253563837130205094436443666518935099427421747184399414040374774023194653707511807874254512504066147960817024427749204460352001234113430346215709770895580982780882702964111441773974646669465880717140167156683222326410285311564904545109712663624748068608135211929992454927269258786090564623432202527644719455870286346350552847420396670805588509404975284173425245074625402583465383962372806072254634738767243855903902228147501014926000658480381937318214264991738707764952582888740531438704921385587146083920264342709945889089397676085698920895350071115038894130111546849723993184986101452505793142663843644714703793307099549896157107833736899007856024389764314819405110036699518937771945028945818140995434207342308875119404255903461494768417789456193051700394805050892515235129211019697034845130063356280522111534235317988459521483558552405797201447114774565214481252286204819553138443017140960641671386197687085330264503862405094605734871583546952609540712062234361810341242100515687222799388515429644201319606434706287685493147337485925517385368669931576447832117962475702221007353029434681868521163490196748280134681281008365875776892758389381394200031273312329726742775616649063018547646939218672660935302632729528879483640565559778370615559127809651929064839566473727328632983873008995919199078360218811727290732311886141618176920448619863391970129321639412621849309011818628812061537360063810619214357120839144728006498564784733182872080042207032477698628606550906407866179437783958565096015556175901255087291342566067940486754235926369949128847701073887485169413069338539161855548043139766844811050692487757500797043727781642678827938670494127538660151668556482642775475493488769835132965478524320473517749711722597794780503144441287473825954545589187126275935081538448157170428763254762211079740432993671611639598691245901112245558888373825806046641029923658144773652074057834750925807834594332166535703811889264187443737221855846068643071304096753781315514814282315948673981326153995540479821504892048053716386731936839476820492615566855992467803442485364951757355267209976085478753430958749124244643754552186853113378784634788206100547191856544180805582556735011156275502594716364596568022804748782957848275447593710802240697561918077051863870078291383053195514985158401689674545067822475872629863271416531058736810269170485144639928301520345515945988939495970327695724890105104699998888248397095866912427736903698337096076494761087980151914893227069929382926825365005612957189619940450175231150124622572457233143048917089098883905903626878206104029248881102344317742840709293527530636746333219685834540791429575376608151518366872101147440430358359197504281357784617667580216165495753953358716395543781393961740411213778010830987240498548907378012967319328133140884921509638696387017878623074721469508462352839703218343927841277260672284434234815460437112788175550952564348762185618614945975487482063844939837327162510896388794243477422987130805351807847689506173223508450382077732173547328547793278310146789750583952468890865239721868752032339641107981184009367302510304708245303634919148557307242344556679097509049741619913174339484660520059417182087374796322833351867983440378053074335895910822230198352575918067092525295151156057254148356631564127291250714576525542220679869752403181552416029106428237687238846081663157974873254734500296257365628256909723885681066432721252664390673490330877355652205641351862604110986888837393054333560438696292940070209813002534377079560457556155762884947887195333657930288973212231704419201693981461565721821616575285940655977413294277423069220374902225113554124615518496295081219729297743070854087540698088145964146261673810279024318703630919624486685731908698175452562937502656485892282980623187683686377691452373445471719360752868103010287243537018251504524149499401795140601653984127831443239960275007376878524396432194806683032227578830742951185824159339576447121187813956438606850351358603763193127398466759873684973350141656130762568855791188474299900324190208855509651264558754449331677068031876811830830584358654134354676195926095699574424423925700843197732223499633441887250530640649991630397284204328154105103701742440294946707369305328978828846015480007854339249612036505028622675027443009708872312573897051420180607300510236156297397051293312969551642368616747018209181929355853985260402907073223318940411987545351340094458808095182302359948414619660001821011960676779705567162747336459843323228556484313796399648294454601064093037361307578956978305818555955372863549727114809683238545433881842227048356079324078261301623406348195296623292697289961289301082979045991498332892164372763313922751676006273699435261606615976159956572201944608623826859497669916232824949446522622213163890673337851490858799602191742681995728683363664420450320236945499963839670926989470045648659219655481958708588697895285594587371616520608646528219607615215179960886146386739601788619400148389451743643155611465068309187183977859433037043002966505204280055607354496836485052544500466778062802580986567775442745145912791646712418265288780791588574309347163027861671655190445188951221024543016696131738010254374212186456256976025521318689917806122028142559314535692057054746315270465730998128234207805041019666671696540036865750685820540680027736313825204473916992971883542007781581342735642981204151203611128603063457270966673483784620292319646129976441954374307820526741693966219034057997149723824262639116340443580619246702679071001083980158610168478725127610418496461412220859804977775870080285225768071710359545085756884047483272613505679245243509917688893506351380483502832635041829672696119330485382660687605476334051699568208175302935559182369268839548809172010044197673265462582888218495168765966383395188274665913485845437224392424450704218109646590901079749039324425191693161960251719924559369738345278468544312195762602273567630713069211534465542587280926154528305826622743137034121078953445236976855612069790660136296319121898690839634334498924751028222125196826735348250432055485314471892035976986481199000919313846649958682936594398283749776048378275585038586763745112100713714547932555532894792305768249950701908271483257951365266204502994642520937001367145739396205456108720449654166193266204531539910566676091737718358035735764817416672544637700663728305303068420934628211182473434054624001268259129535499050618714298118712131972224868303157932231287445376884366187171860508333610248354391081039350411715842063405140340144284067068282954455991545122864659291414358031795845988335949430797557766935412015403918389370935484624643888932332651620787100251972156645365149028698401231681084641499866572189445557203465270808941250842518739487838227859029457805360737698888154507614691318525736207244275749985768769731727042828992357702927813097572404400877886041476821761211647104636273768915648148002093743839110589138086206821718201496059759522587562365832589651198464358888864567334852350049776843763958534459232035865999216594356009967930909872526682296066411493935349687249319292558228899102708080584816413842139163297954405221272169638200011141330756619481889864441586073487426360987301753506452166790303804735748585946150062494038648502078778197803448501611968523217453687145510808165688129526463965420601788362568445828214586999868958476037800176121383241782359530297102752396992824148944892412293444527532830648027752596706121368755894480561164534909006667562748191653935145687654796861814145052202786467682909161169186523912462507523778504672556140076505405741101498682833330532229282237483926691622341645758168505790743800241215829413709811649014721269781269312208364105743353882449128704599801520021226416926129596913457120949944183698591580453861872955134415363630031292833356285853960154497085063970531076151943908177063849361554073867035980405398533635964917116985443339061450548007382775618435808471733076293130385319683916302915018189768316894408538421433821609348926501325290333858075012694245995306013752824110203897468606741471003686582486600493125293783014816689359355397136617677238888145159285309071982585960906273217249188189741877389774317059784682099510068233019266959365325807701236082039621370307537704027372836348127892504809037697648528427726436190526761142403353967395249365711990433243880883311862254334108504069172960901613181653395568283759350618621343190098215937883680477097326085252666398970206658341279022564854030798036682851318878144194016558456794974147864410439081167230455159338288941242355396789661219617320933192471336185266888737450668337566745907929275911555165831934879319237300939166348351177849627002571985384541024354621754326618651687436755531470716658382820419523665176074994999213867653953200749588743804243712256168801742437494593340026024560880807488340382337834729414224591445996714967441824420038636013820634337358136398787701257392338823616243857734340751042471415018047459764495654218254638169300940355653445914736184676385377048633114161883265261085004235131707411328951194831689366310478545629786003141168979242542562504762891340699294764576405953954966081860082827185959028437240799609849593791264631903138615946157317819160294208443491528814006424736854431094846997932785023837647139028015319300285918890827056907617759719217178761895364837468758016600740064489272681439484090410595954807169119203130552268279587180508878478314668478873692260277424923791490963874920673121542771263508096120245114328586775868552112878162195396125064544632973178405737432190563524823885496322741857058196200086098572398001710325254947964649048457731977840242774142842679898035383327025652798527498402395385685090773620028871396779341282481548921504075610815891020773809239539504734893948663780703342687771648292643829636321849621045770229670299135358487301417779472846716249590614178884496168199834626899797525648353697763320856699710462238736827655214857247640031758260595364989089672160965318471250057101799902334722383810796898027368487307533748447636579317415121626376085200012295795200657882540210069724021888587670258545634768528420197776575254763513210913180191200963399737942200099447961250204038331443687629415897264823836545803831261515119627418307689281916097107969531788962116935110541607737423249342436294346697777432109295695126577438647594136585180459149475210940341629709187784101801391442910912874641594069656077694860163455918721796756017104043497926569652349363486288391026113013819507315187113950162378000036377625905024439028702221145486879634069423870197997880545288764588296996334441580795286312641761128607592096771414752927964916733709495092588334996651261932191508413878297256324616116044785318966781347094118171100142408684873710741915234316877003935580731172691887671804534406927592414699878707647428820405703254241414611042163036560987137949264994552437704296424124545171558463333678306554884682393648748165183651109013009400489638741253975998055030006525633262319291031858191532399626812909375618472554884082726664791319510144544428365402437370762886178396800307882305617746062543841634517444798260478863717911207205887405372766514763219346118448641899736596370485101978905523435339387917784147927804216922811502090247164581267948427907438591470739956987886234210274995623739043286989971441112066835466495478980461677785259025375739872073887123722819424784664447286836884490944878776227696381767212073950771735419084290157124031385715524475132711726220833361185619088624451832498318587171885440323402212673680407426853138686916372517920405727929173728958956085691436726796397180924038076242082981514958629400323774948660272498766175874389268244404937837377788803061893331316581819506120339132361748086467779639514150590481030177869530032618544564284179658844666210580983540169101464441422291033017401217132888459735813807822984997824446478843243686154086302392899044768327176517849614740083978832845161046429685074929765512752320833106359634974578027834623706466116202863287945800041775735811472721178286751907250458263445398390081070278570846975480093743673934878273451092889263641538734609081668524228028724427558850104999655092971097761990750625865790310719331308399818694665251380456237029727880527444365137574459318894997990567878887238771052630621805359258488685683985369674038527289740184201654326401636714037701889783205181741510501669544119028021201170696718200268689639313520630672209813631825867223104771638999458185206952818604399376797675278381113824523081494651359422404300812043089868042343365190969119119653808411984356947822145195145381449246702503704429378353937763329485319344617845032212512480527632531003557403619409181414018212955117342946196789686889156285831165843081844469065719352138958002129577853087550011138100008331464810246752131527373944044868620133180315769047583053798152546236244153614582962751999754148898593825263886767335349718705583658597767208798846523325452477244123560524912270387598754949045213285251140236756738631864821179185983152798403867080384995403945413479490094135631679921746109826838710371629359005341717896987444653490913224949077420653651412212197245529446551183612489615783293614775042147936716297756722186813669995593116641185272378277760591246849063497288963116325009853506532679382935967214122877166712809048830795443868131377136666458384274850082413833170002232115528812044833898289559360935951374734710602961223264636316471742656393496296036026286896698154558749489805259829739376100536261049020260204966434894745471598832563391803451056819287029601142743328993300238099638850617181846682452764875173568803183844291649387376932802653443079725285926441969363484260580253918519827771153265422338293667715716866220631173099673624710470961827665279012841029852931944751753278210613818291529987398703700412554114268092230309902145650132100062269868465667727353329398215234308482111594530038586955929828113712332458120016075731395796807914476793880529309191622438186423432886855858696865131105184946869769996507263908794489945724942798252320927195689181032090267267569807903571204452580722270082425150970239571697948088415270844692651797063933069952842073574287698645417739518494115521036504303476023917774119631648233983916389395073731454658406126272727206654225321871210939069870974107667616717710156995154464425579836167032485784096131878967046030243154742907316500450394368361076740719614609431227949716800067194902833184534407099700693524109412762119228596443954565568766276727073763956751186205352889902934929753483182095505052898455952068643331295695398892167878231281478817080212998246576856254666958020240571491277648303335666071962532290546068647228320476876497682924405832825207396558354113170321681527264276699548608643250668091872377900201324876568707810010341753182648897349645623781347903550152890564860322520841520097392867768340250859703571039340862204575378693880545510788875024082295118030399022824482967779235449875975267236956742146072222343873788436509627470179636154015399367838193381329406593417733167638941590746845946640682882042326569854347123083414502368011783529074384996033749857019218846327356581399973982155753717018487357254175590944607753111495637556773203567282901911353901050166042857844110064209442794846177553832815058575010499735659859634710638766079729761022717084789482782327961119890044974713904072272990922518032069150237732266879339630819521711455817007319994656314101771837932344402531518645119081589213627481566046316464429801634578341690226128255958224948905108201602558391914855311971612804826681073035357492518512747419901407617886110674000003555910399652132616443723659758695119320733296089757104220374781380067713748654973405559742977083710077278642260375211830508231374391434891106968177774549663437157147145004623408750747994405828272028921028523301934811843831725199211794628811883627165112941604577391122912239351817622594074238678957779253721170354002798081268170488010835331192304887096940507485064501706127848089435746043027210044737636409793912172666812718295620890153556782736274743503856397579925342905994694970989172553417712221989746620144686308751936058049573332558992472527185197208530588547518356975891864100288433472643081172160573465105326880567496153987257590833677043997714283983007506545833178691432580767045981693658640754371416276032237022545846299155312467392719025142038451888624518416046112918354686450903135722195055080872028932984564345958296408516115888565338393141085614625715698677149810076062696157354974983423513888839034421608002423446219561615819301774043102926365465724655900195178763308597099107922350706831226189431606633313493945741749035625728343349161162369308956486803436211921758906013303604162756204776934209247307287201090361482723722134406524114333016123609500735560073439462505375909416173381927942951471655124451690007721044306577720054451790992638746885663954680870712396551381194213471040351006721045631047945344520696765092844564084329698484682328276284083309932713603808625330035575705618416054486802903505856917225566854745428503190727254537105780458185250065014306300627614433721695510748370592939560487193363221815449267387097056622944790645203045623550476057309043310607079496348404190809884796427331338546143722582603387754693936015755469102387917998216108520673074682279795725145290889178507478972964348946129081122537406077398560081044686315733806675598575229796946572601324035305270762918030235268388580277354825548349520522704684395041409080110310087935815126176807655102843191517629546604275645693525561894331743270325973392191095134983215814576875040844089211236353947590865548866557770652741796741396496984030884674779112771363812722644143182977824271391201078866483573982315581357121460225381016176668716026408533397478368249856046168446108387804952488284064020821215007337986191214997010009584030362524179629182687834467412904946090297692683241793637317122958028831715712743503500776480726010748446737036535077197177413182440053908403832735659916213027359796763815151856000475778749224130898400450563019971542812247561850988169728556269342054699477799213285708336972370259544050695208264947224039929176998106211466534778878597785361883240135630166302556775933822390773653493501409367650411234536954602905753596431989574009162824961579413423071588403475163150580610492542195575445944079410325415650994289079238780469303552522644468605862208857999090900812957735589332565097772265420072702568504197699776917330981750921316620539806708989349529924573723332121380497522647233487949219180831529519969308086525936864698389523666331137029417786332111717981429752996773740026770573070523047188943242752521679556161441696198051026450395192350956771502403170778227969708683652873368503759863994529592814551410009174592265040976245514467972068647479668202613024979671866426807067470413633285573994639180393417161359726768298471166374728854708628422399423017412041776055338683964344857490359768571462632799253413792319756653069596611058250303559367973291596375488765422005074249938480736744310470194220525338167276329971174666952922854858942183923739037204960742570079806770475525059124330644935623151201086038364605359055271204203344525188226908507694054326649491226737161940187606921682359711014742247975817618002973643840461636384640194169535662163064253550107615027000502490629755207932641909089070806315690128233328090379334522245570085162978072515578113318463272016532568068747891282418713577172450126972863853521534419005057238032785074606060219718293420398268854812933961492478453428564374379687400929572541291874722465666163210429670693544724770925885706420994414725848122025350014257792275155059561434173423916223061313206737913577560332947067343225923781091515825587346413416460927179432649742485390616644260934796172834030378117564555377713217899881727865901970752644653987412608669969231798026020628120938031348609860105079930087429993240161469429016770676721180042619567391746475327714196415407477846915119480793612389810178585241558247427431624630557175995299483141117658679592082168002869063593837454867763785298126399373326783586875350544745404527298642446538729898931700248158384203258775909400852437264444258352180263714449178830366909600782568716465922604037708123312068597195216502834661811307909778684047915227272189883627039118553403830828920565193782415095999082137173817371234823042272243633583761506243448590268756774776206910569095632653976952572864054710192435643893100728835016255261628493039354551766718223569718638242422534679166091408280401234417257910849589801271371792749156414416062353395434971417373513456625859696296987295782732256440138026934677626225974867110799889310597726196190614748629917701188150250259236458709251995613856453044819702830215932396898308093103224505173384779000637362004507860429669082056017369547747659575386285607787628419800384755323296753023672037632885551663013394804722496601541926548622554169076902410625193607044617284063960570217480023325591333921386283376301935328483020293653281060242674964573027802442986359962585612929881266360774365842000984060000959792068315571310428032746361248636894346392947566078933229438028792803605678032150483108007858920337989642789613690552501478221981520051714738354963820920838759722605243712114567552399965275428406550508180001939093066809336624167739527900010252712864549352538409638282601957813766854871120602745600987380238397549081921917862844552669550069348149971614444027873993030305122820575352199566640012592581103586565234764285578213240475117605382894782961476038600086455583019012563070320749182986548246186728360364671106920369142978121107112753909246576828440178511050103770871592219108557048628702427420689351248645942224892261475257104181240622832127642523749685758474425506551369775408974678397482709842721755548359961948330860545390616742690182367013697603890948031502277031121450028265167232327848213280080896780554516702446020792796871698954663521488446737266943893086606238867235319015978510382549231546782808322077277050808930081245195898404494880425879068374920607915671294245528258743280716163549257740441511805707565008180829983156325697210471390844617119164098298678312971758624886134790271856507006885899164412546236007887482657606752134187786237840254573547168268920597754177426520502615551169311128498507971736435559434629276629070223674033464342069762129901605288193044774667273058103505300329557588509138055133034348308027457473616271100964061430686043200893639195832907835503224635550563523469214156342570253396662844794508678067035620742254007132267702674233256980229752929644194238697036085950292498824809564652224252680456051090273271537744380852120766408431644706848567481217818824366585713737797517322897040639063165416995952822686065849206708058673071182743930605871525808935449082309284747627605650661912296403186313492956611694915182978952801575526075806930281405482516890362849090184826383491503273869463160243508612422145140699107586347092768487834455723776839882283745758402320586851957446983326005871135892147704405164701002082726714079868391884133831522360196789375515984282628241069182102292363911490896217423904416284857079946979408786846045247537670435748412514806160375235412941523382176421193799679400553954310251175147308583692693233350405598921469516939787596598837046272668297015716264046459729955241769305277705928871633182773696621482578018571645218428186149277592639173362915211571597740509481170503586705192671447898073325075215170641510840181584871211022004412229020970304930957308764542261346686787895482379348698727112328211154209313574989348320675774175565973201424728110681302326036518165978772866712147660047874758245390715975778287399825001017644154113023727322339168565308914470142215775690291920739898425778929939720557878680400063127972731011418606534920860110561705594537639390231342186437880821990793257006622150371100210556698859159657429908209829500089185292586975699239563860801650786487559763042865546395526514089959915045827550347712591338986282235127451357520223290530181220999482270202048927180909492265703625272528438954691962273212654553695349850423078580807617667545019239460812718534181404567261230078739566043860593371668128665503293210340019585516831550667869458800264041366114636645649372017560501663970127736190149152356280618126349427687764151250777591790210360084606740444782145687600983430606633836267213021428666350288371287292759119553554927829894394588694161848337053878375429130174883378500139793759714996857693937942025957085065881073817121396517807543820559022368589779322048514732457446389729308048260418192453611961373123705671475029172329804197219918800004396231562246893358129066861583920380553320783912008944084948787831701956830964826761427990473890184116079498208465137016351462485034230314176514445084037415516178486450463647059020933516244391341001730292362000057497442039280763614097203189111006230526101834818923431204711712913824809420880193797535242111738212611603342985942567204814209551649569617613001878616683440707617868926995524448950587740171698519324725910617668987392690089191920389559453679868192757418391726769758455036618421511589008866926337856332460847696493627288790841263471574835686879463903843034629709091391503331801128323260055410531778932523232309957072769727491465572057153692686166536511919115859196367188575641356129764691486204977524935152233083044206353831208884252803195971064767900952748761610493311274487114852887992941786075243277485083618546491987443783541294780189596897265516712772246469101591917555946065759618837477876585203995724352845747383297590855052911778538473865130709628296927427491811228932332772230740365550733444439752272442403857634430103656062371425335123389077281359320489853539781411762661780481172551804062469033850746784597581254156145985428064254534178353022604460491812031371246026038993523951066979187325756292795165730854079134278140778920866313568778635339328638024016846797983622365233182178173626318979985069249968121735495725204564627766006154413864783004118983923499546403260372961255392582131515032170934098952284054932131845493755504683448792443417472455175591709071104016812199455449462387607491363998379335726478081279765563939858756382445578389536162092310082615501867119671821491457158706128240205686597699941097512101006912337504357671446266014338252345904077458593618765222781652895760369088739174364537084879885638230071336568146748311801788863447072950932538136404657804920074492233866666707390070620994742630248169082969882114287189166083547834670713651032870131109240229926517312281313901199807252432901486606917468376424655698733654757787453693355084887305320880470959627149322856665205221831840775189650049512419353608394263460586475680287879702052682322658905830922579376251761671013732088849081959379308741352612654879398888988144011596426438740334540610919012604903856657520208445952213398076541814673484960129136280295556408004911651009096036601591475828515679087440951606011402872360221436317979392891832683763129306638569986380885124906011521602429320540397963994800499729952455912609289896697398329162856790041805665419362500748434340794166535564820020670900465393218422133919416953815341052692770012225079223271243887192054281679544613687845451510185420292120804747705363454134204076763856243530606255238673015373791794163432143843943261298005358294148900750796068888230854472440015677678512267532984030786819430795511696839931173445726504861907000512196900819934236917813170349220976893932627019016526668829704707610059963721055930956623668213839977910363413721619710245954435700740698455553867261966999584304573290432528156647558951649677717699335557398103737129151440570501339799195794831668323689100266765236936506259300591246204966852782797295621604432949700764562711133835256472293010247648204678456471352599345678675245120628703381738386564404582883588851768868129166689329562925783797936538259168711238301793860048660928956249081301781956889192965297515669567535288692469774451414666514409153778977494475452862577886327227186633739150023198755267861868908913250700232384263233623694687470362613790589005631895229915042248064343305698774609921311952264931225373265237958260646322968022248343497101415189300306598956424377380606429411130314754099647407397096270247146790509344394518866854332747744111177083139015762067937289821586641439413985817298234300362611996777907981359688925058697101902918036572868286618059744251528641796960870174898442718375606620748183902677187976367776999638880074429688020690347193657951412629354711113337504400264576578646359491719566947564657908625024647017999779573757922955702138716794640897946260352251496271996479792849508038954621472387969376977074759103693470358431680638543052775335626144887877982580768446047643368653295492590623756520495717400264481189135982393220064769599390607288870895029335889783965274195022240556207499548123069212461133708635314470764495744043651548623018781802594330370277347126964799419341131551085243914825132938367687636291226053297619420947498989921878639956742548426608875691621533998812675458707838915134391323652970609039702426336876183222311554681539181923556459526339108822405074658762190654580671130239812243364537078502710085824656913093528321125968502665828340158499773663511169637803069557253443803915666063228632258756375893552926611413678826508624971208698317752296092703908388522494162571777594238362852282626986348863544082524886050759383170277851790710301843709807277553204302578590160642156700530098078515464864002293292406842371854540548057216110441454429386092715268838900174487221123596295078871079007874820858307065696439587734977155501451478274828873228101541475515764164854864406289191656955874339798505695830567721530309154529695710776993628021169709438398122711515564687997278250068605077898522156355519896255928711822248040689121856688646351274464084607151648660465465713079576930655459740639765753129692232140495403579214602417406674146596056004102473313552258754705183081548789578128854034512464941786737159031078876914957151789223564405835161646554884280414580028456989250423625822783494949867153155220544951243113425351412864765998496380580040046516843707398855116035798953364150859004925738036071678338821702976448957996333556170263543042656146235460389558470256942594288410639155759278613373894074994068007847854675257134763777606424714641202988382504064674565075723433062536647020792937677936627640695304953375772026234902222131544239747348632150777895472742453924623883974058962966817903325592818739859581719990594621307548844805196149977930755287810484251487343331491668536327095760118385591551753587608393681898451231732158160380998245293626677852488550717527577475626457486000005925515505239413336507129215782080292679890722309781598964161675121246092059467292035468680014632853156898598832004214439751706633294834638511969712912361775920525684528115601775210871533478792736066304833989345224107519167051370006509996589382616363722262890187580779403838282629444706266810399495999902084057139525956472349581765796065862668945837100403589670676636074107928493580776505815272875077420238949159070127925781047510823970089413955281804944219178147821871372442488846714489525474786969287377580928487235090285290916815050156219190791984576217332151987020039807864815236812915646706370268506901763842578566552064689489190112245192791256671067666558901604829657726039578330952303165775869194266101405535922459116672181785349804783599139592241434443782601980532173594021363196719698070409571324709135990763241238260394301152211982207842044402412102082350389930328677722081408081619902074034847759221389533577044288730106158557858146571210346397156299212720784099581727607349963368154098403700608440765713690930079669616228303512988901190713943858032522448527508501100216404372942826990361442419175452051081962165268046538402627964842443698237376261938954950081718210129707666370134911355460730360071736049402872663645478012383618436413388524388829539736675783939022677860584030452356076074810078052825520991909020797792984826973317637324176042412286610727289089096183547277534758370180353898088944337179860946656069259289879568342779688376052542903025244447264107391919525179649683233295014784674108551075978000377835437924886686764497489424497338424801942321732508944617937517258842613792203814531447954798562883804134350651310030439774873170387393329924450478633013759556298333842438500531330911230540664732204187604029378222838459919686148807512985902974674491423334357634843512649645878568346723041601406181524001434328755790588181489097085693372365370235695069220323776404029734650831604524750822773387459792964184740778815663888796141492918386631550321140945698946197745813375369226113383074962445314408879602758789584868992082217649570316671244089395570830406417057819545711937187730112586741053201416709701048998164130780587576317321054543670233044559071485197974308765687518792791413067960881826250798694886627083875692604312445788060913480652460416082639119429574524779722464254609261292510227742323333501123980661617132120786294032893059352846422552898215213762325667760641651066069667544105525692773885540707750017674922815135185166292462404166740044358369764256223295766599589454128841307322798527647463322060572729870477304803716293524222857067093559638814404720118801438386982970800587501589667841183620286723277169815678601035116360352152853626708881081756069631003032392366162421188738215561951820292418842481958242684284609557502742331416550954037271773565398498966963740734731666811472868692260107343816874928986681988558434260151334553428468046159435955371977159951981050455627545019770028984652370229300142112364488306369723682166320612260789680315503170984886449616949818017932551420622350608323706415133513036017086781089918843418501506453028295202190020251593936866780380650585053004107962798871673131793119672838010906382080985326017448708208088693974364542302465052468019086285349818891782458845907422374970840446791495323486455074646426121065135373828588852675282244487147550814174041891560708344688221193147283319205064378006881294401281126731914251772176129200732571938191593307197474285384360836999249763165972454290367434995542446720122921604734270282747676428870159771511874840071935531166021707726598989834167677412970870841202321205637413165007084591918624792103394992427075324585294651339781664337154417854083207452714159536508415708380457289150009509933487584508956622134828928415234896290372984316081437481280787972900054321128474309443914283203785125820360181451882899286222801400628089949796812886560991618677487858518259927849277816651083415258377665547046303048481201228138281582021607051627929578961401800201688828798506228207858267444214028630052093427407860618828532646638144751160910230084405575298315766135345298686267009119710718027323397869262865793770169561101056806391686203081177201187885320495088622724513900718811291297358818814826517781843757999344646356044124818373751922982087746245133856840681043295163678227224210647221858404335037096726633713397413665909827612636439399200033400458547356132858695680575099033114814351499493029189466888602672678938652379666545542640133161661741918903534681804876398811157694657834935127658662618251045578941969529155032914726564770933113125376308091629640909908412058563415776835479398957537724091296264073701179061499828837569149558395136198087379253447819756650042253608797844063710127396293384986746454383361453469171425654094665108117274694250699823217157237594964351416415446297166483221793869084504274934130371166517273577916251260663552348654479179087859695663170167333622795279163601541883897316292206754465479822902070762056304456990524462192393467813522438722253489193450785500395472443585925985318800034963788450688607604755506215795753473868036771075046174657027262790533613831343653113816672397591161659564420800848312063238742000252486204967840291883207565445927755089769442404568310300668400310429890456249189920756767655064096205853005779631874324523955739251434858031763658468376963526364384103882275066359148278330192128670156225457008737841613796348704841232041506395591787915499291700698842241147776659437417177976961127198649476546927729629251786443697517658521827488668377071384455012075668629491164007380925901573961599493703832163386099588209561721744989393269580766345784466008216183807235800255667185504145359424891891559618115238972394660361932979857348350808203855468889892759691556070082748183259763676541639873696983498120442875998103886750670916917846468910421960576147285553705122165090838071546590080433589452360114768882319787845000177009688272479401675495803432230225215790054941249616789338323505058034773097178087136601576460558548057953684796625084514680511759063441361131183514013392735616458225961816078126383346072162319746391414988295435949476992619514357694252993118798860175399472685352090174539371812230355738234267725420653842620558153341576703130657452382376598795673489077149638088506920892774516811303762829021469293752604930401035789309277125691521315112675409455339163118289757293216557772899428729746254508265061727899896471432777166019186277101746743449774357831003642560881663557465364980297810048073818512476971962493836985146476470957211732681366581985483416348543833509352398881005194359377064156980017594382792566030981587262407797475195479746049854899420081625543794878586014508277502502156769772495429152756552585647787777429415786695486970701112814187158406864742812458344392180383608694876751326838993247797754885480783553013423260247299648643140810882608904544014449265175338226611527403563292114711958203634690118544199786754379663605261382295262555681418336963827321403915075471803522372304263135206025861159056973515817348198022749534006282418826675410644346768078747013625552250029861851391006528647742355923443998920662137605154025148985696900453650337811371897087985774439238105227154534255996967620108405394304868641958007453107083350733408284723076617098961917164860519725465503865990101357322305452770587197194725635622270332934564113035579660991329309979567580458710204888940093423662858343525487078574433932796586121707848623148049104322814301680830588006952408309260971769879108164362184295567422131602209763855537594078621545734594494341692700246638123340983177272993022655894559809352758038251557572741998617403206869587426430456615658605796372904871847002166483255563499805230014302521238131717057391773406027805559647928983681548692077974224451752437702404491331634506323243955539756235535536357973250322068682012387974615314354237896522054291705835091436537039289842019165322273894804432812642171435893273070748028643009718210344130120932842303511700704995850875969997418162681535835934954932820463305626496891768518642810408728595963096976762446148494979505587461914838624917223502541152931674083495232989761518649949173491209214504149984695611851216814342022514742719841835269670308767320855008923655932774092305033304112922288938788117758106768854231641763877616907267785685290453513337974561129026360513180924315336843651061599345333065280009120153280947521400136408554474246446785050077638868271204852599483253914254000845685465833803400417681615054116174913764811835902898548052509371280792857682790349964846626170496041495433123561074790545433996408919883697007736992748615206590818574386010346198457007473104183180317081028583564427805041318618759214659268031307862741422051271076323103961216265516369034867908723943980251952745528289729357636146246484043318040784061577280512767854584706022976980366050644276005425453745804867141076640993708490385240412345436551415234268312342329210553115168374718893268819568052029359403414078623425619714416157194314965839001083970952373793435228344688667974836856453014091237024994924294445313637643857003865612633716676968872648773964244754518302528276946585069253450288557922172238580783125943631340520171951783109235890594944110481199887220514838226744936110392060193684941447073778456482939339840833685606558932621236354724614883863775473255572180239253004235198144854735337081398937848389318601360843764276870502353704346853826858384121254612875622508355522274430474202517944878323617501619845993463269499824407454706503751816917397044454731637509213008226127820731062545664012597210859618364665101889966282455190227087127578861511760137106190416142249232013455125716707980316951599357172628514961589980360003947309303692053586349164415728814082031186197424303694022731864330066347998517077964546068931062801846987994793726507755074585794097519450475538168075293794065393977735944705796022618555731190303654370754660040806493206333587307789999420821118180351352956609789718166842727095740613534471683609193020317570450282499386490411871713940057522407644092819735446262167228245812035928088104669875146798008507712188247308268002919165573353212369582644903599172493645905481817647482605529685626555331865516636563805709060352095047650288467633935992684688600210793343946823276147430111460189216773109780022632117131149534180982240207090315819972240183640807223167858855043803777833403301323750149152528907688524176513111956593436439687939513146882875626565093662236501633689995401912027199130344280880034938224063654994179811069375151543233597639339778734039955950140566157649084668267115751268747670120400427512958863768334383014599514020830228546005211411078424804902250088161925212155501341235236578922928009650093283574141855945069183179607299426983898372655893585518892017161400115095219645946143579597743733530190158995036444029858683814332496760164516649870921850136616101845395361390254156010534274357675394229115934309070716051999559946519985586459637690936590117303767002799701005450538382796751917508213204576464299339068078955716269485761765181627192330191445670530405312027062079981702155306180273944289302090812350289088625893976996583457229741246827041663655831923819301057734663844669148653232110029028673916381091091993661190062437932240635593829316159321375522544230486717382063846275378373028630359480645440782756327707529622062426659114571610578355717762202471988900199734246378211209082435271230416776434934236777212809285825638707077485678326418233118120564272517810164801873926040657833966179659849758430891638770480890480013614997742619756920366276247073834933683446652659088486675129404734025148962668444081711180760353947337815047111156355090543954872757747023431046189149045855370423911720299859567922739957152809443169192448769809001911883466501580311440270565466517339571385148457032865119123461622978365495347044217961238369086118617088419550716088712432972612498742827593762845636217827509579696543832773412228470048016908961603923459163699106686018465850871121827530961900670674765564313074201460194861481798813236378649444749884681434993205371036717955138337423730252897162244342558056447363209548654165217610530271572680486887739020751239793843464030925211257828697152907945272909926320923237845264875923181015841338330101059828928029804731960197019085255562647839684941718546337683567759753407410100636328560119778571937843628924977834745633744815829559605717337310058279898736796104995118442639082190697343518314544754694788620231929311291130289309306180212703491507763898823832387406629515343282643910669957313434281124925921516855380560734787721564578589687960501939997842991845777602361909673490640208806549509959769683015306319875416645696251742141926134281151982619376104450772170691748271046399043273525650749887694654056566754199919098761017212338473074251421831802773445986229713041959413520014247644564965158118944144452114207641935787146875081912860983959527573626951417956842950034739927617310311701221424664869132537195818567191040596163346396054702620305535098460560321597044532907307262480256970221774564832747633852879859234045347840829695754723758710407870942700475378264776231386373758032967713562579925282096249092079820337649796616916687102994896838903019043478963132369394768170630121517356123326108349951932311236220669644460044853731616234264331752330650739164233374410735835825114728487186075816579895743676253604201088369056886943925830600001542949203798628706372141879218918312865095643866636450775664410692083650851485166019910519395439086613802157086775601672585621614525036126337926474002531574470264262290482208936805049267631403733732992913516804155939835776643912564738200236453773742642909165531076867433429198138524143732100172855965168567649063181107474562000422440085911153534596122735436915278451503468482528337792565722812068140348835062038828325865693934896675009894060360686190745000231263229951916809725552057147623484093722282249343459920457324362440183628500319625352113214501089048118286695046008510310101518877212603834607874002107337500942012196124038369101907319245852906604018958135765261687331574177479140489065822839150928380555139740810791026490370976018047013227592135156781990349991970392184111522055677390355167458844578972978698147906180818219540444854489633715135856203360077147592127056538125686392299791523824539591247705194491147779476002335229236994412436759398049593875834870182268499784181714442252746473129697404326222160445633197447926364624512884974922757042373718913208843809269597270344949766420585262553169973650864967685950381348449811200019191107092481840737713967259873227032901153299175442016237370423407954705423372326454011646996840324102528549432536690001770288914397030173653650910178491402778748416431321171796355570937673828334465152695223207496161644979401730611357751259220354346406741630299656416126409166544903767223140333540439830912383155581543908870648249161191715877191305890642548247759764241983397677034164989706844578089465221553111776794729664305849482274731558334733014266814477724591742837858233325833397043172714779006585745933692326151534289636890119412903422543652427866613447458782918269343060168497794436272332069195650063388087700400635338400898205832979127141787534339512159351180364376879071516932700936403659156655406197302080023603318332150492118337802176322000540893219664938047674255985851553307639602400042937207622671633898799520717443759253121981578073838515938623295319053086421304487660626672038954655887557327563305984071286321512050873772043193630236195666455475182276679543178911745034899035475480728159687607840550960754638080382532534383725495796724913032757101985342979106977334156187248214427614664600831476988002349984102455610987409722937397004958675322012762753706152165052002473906704014490232735543623651382245689166372472259015235320197926947824154039197106229451224999681265365530770382327464483264884174794353150728094089909286365677281195418991603817251964537211718204062157944119010081807277041639323749566284763515833176691141363183188861045182991248804048544675916399826310740359107002023128877350231244523362025443656657957351273470761359395720353060712458232129642518057642063331978987741945672715884239058243675500784109890719379807582823024740664012954047631187540883573649791170061760500440366911630944803498230277997889742913956178545031235021484525941714761964146711634866059946730570117357255184735344241344118616999520155006614296063434061701408983910519160543522897113048241276046606064455317033721808342520172071881763422736832840411311677194229027142218836505003343141599108916413652031790442176362865626563422714888880340884717365985896956128068674803968434252225041739768170481022012102674254823769137713262568334135391820704572319275734834592872842421599895874443741201421423983015611933057383023006641908033652043140901740503494151748174318564536151005449634675845056387821472948235796963449360215352578563563224711563220689639048897381027702534253151392834315996034836093222617022805780465797570385721609691254943847710370521756916427414188811464813704686616705583991508765833654509197538968432266912287820109912362904709228163543905844857055445569057852938666868926019235932629119842373881309380154605610336024280505341007075570187371096366743522674493142114904915597053565611737107763108456008279403061865431723962707146567361772655382857522803926476029120262604613556025526428245199083829786950262635148299754213184045013201045459432170467038691075658608041357742586375603946335430981190772778195608904496594084295315720843245266968911029655679375570693587453108523475970594788290548639976211528292113691395543286346959420879293789904301107497005857435914721022592566353352806336109352493286485518083239324800105284818487859274632798918789139876067306006367479021610132177423293466752741239849106188084463722576500839874793164631168210074651621851612652577943421933729804186417924257458584196451942367291159823780523138404691926423725507591021197501515634799637720392823441951957016640858979092056458668170644276427758083128538072470986310078232321160486736382614827085503604167878862161970436750053267715645117715959875223306335524882335626920669697624041156567922404718765594833866994535702295097864515630553747571301880056545803141369020016307224795323148089915821404468177096810310158863699613785484043019954860266893319466620818406179452764895750245233275052875878407163204740457527461987404645776050171399789383741377075648656673339605203497362654015800592333358230122855927607908463009543283425790509913360232722452890401987002812537287171760335983207145509673104910871429923019171988589937049299233372278443276846382589957114905019815257775397119206369193429606308367820332751831744929522657189975565548465328365231294374823272266680063798009053377393911671305036218591908269284521924525091903257036173027935071702278503039074731672007260706627019943918549732197032137309850536503381129824216663737390964404198872106470653548996917371858019436119560032754075041931725920600717460305139543254679778690752024996146871389598950462516410221787667353803195754039273224883904531593532438888921404671505998830819098148420018843064749003490553529085923685425833005738513407768237066816379687505352040297053911152954849302935715383251516232046471872766535401208442721903942253029441294855191802084145506236577341756791555002008430615041786800559216438967229867110541299488876034825633600110324136707331622803180417053728752696218972364877014242459780628408988612176538944770554612080906612108295281998071805745349555738909041372307048569240793662210910988924731589008987906168196871361065438871821269730363615044545193167902936601913140017746515151814033045368193851682020953675830557975665320220551148874857864841873498151369194098167321724316084709605607630737174251201448225171898867540869720126349667117447641769971853093398033963577011515665230288473958145141339503837806407609896870453260293261363662246058385217420949613719297196255203036694335943575618783782651791598960852154697092839793110784506280624817709030929268024375042971572220042047795554005551409828705222015889840219205662222153253858598597307394176922015608657908851902044434180251980650029220909267582962360737130186373186175924131173889308397939212707751004206572617918470306266411721744600608660099350060236061100831735499282282043854055370976271735934414519114181625306669224990505031372899235383075047017322135566025174384791507855830750302979844639534624063830087226991692624579403810664989256145905289148631781965109779121135150531474700268060784038454139421040155321887699321303289332270504671635240458637150889271156830872321645032892754673809332620954305929053382866927201224453621345716727690966723868110257816037095966846120445665380231553428968971754988436143741591739078132426702213584837755200176052458275634166836139895506003807771866678731339673280571299742679448169258420763485544374839655589405270880299582775127460738884686651073558133863238004650149435056081968383270392897671877322053687450860835205856765609567255281729236585270000471035229919024610143998209141866464365272294425383149237093492824277612888595114366573648638740133165185524802453603417331049355987173633766029734161785440023020380478363886940634713867650022379158696468435537457721343261275918184346098680166920730479057121834194424194445638478336316539379627830088161617565900424122126482846925392858658276828490738035515833099782878660125908271975998110951921573337505024559797810244769513175635119850140140881858519753501950551414502464831963887849039154552326919914838217346638881486770212651502817080956171707487549608819097073520837472106288509351932126971362571734690578510530060412223272048980995343993260553776985342427806641490900808135450079256393666266654585208819791693024072654783489299705538877611268225562180861090819526244097533457695973505593534292702973212853196388790416835616564384945446117411960106100682963493084802173259776697686770148153084961428356813602751988172568985894191685617780191043639427551151105714414588928832195454771815969884321859462644126830415520768359184350457322907350896940819138438886940394929514461828618639592665093300420937485851263302055185188532218095554449037942762631497195246444131032393586262970994372177473673940111200107248544538162643158205771718360990408325087272716302731502880395088931798555262770333343816688957893518147569737672597905465375247907740688008526567657341939767609180888662586772757015131183928951589416461355115735145681089066842457581297960536657299604901561687028250085353913871145283639029234258391544186395495453159417468639587957309344347833936333009757910476478810894312953622274123200429403038929259614826689146315087379200890755056057380959489707327589124687258479548218835609756367164386435909763118319398882764734327265684392591474173455504345677272906625422181952191521733848844526395687648857233089210563516673025367332872590014115103569859946536919793330323496380087882381284632975324344893538432142879577842134427048605081990396385735265860392507348052965946760797474722906371757182688225010013768001645715389661653345263483846107917191529478303488729461383175480588313606973053341693530752094384729815709362023174989409399843265406019207854701289826606774447160704341214951596276021072015092771637852555818780778154109868477144097512439079235964626766587697992955759199477664967587828514332144980237795674351839046083704594594714689178273367974276926343040468745013288827033090235105160180292460478039936800614434937972870123111475464448954653483590573417420287943265699913793128311698843667998861916700936485854391372604229776294171830364500908640684595977901138812990884575577361709240494937060402263330438402107792323679834156204981449616412604097817976958740742775930600917982827892644933657737505683809845118026956888016860769559494242833171027409856647963095430277743093272962618512306978776519137241504832780596700565206047326719536576049545507023126842555859182109168647777865128308441761953847147179223336157676268894413925771850917448814587348339606054852543083603516096533994281739367370323021161155717943848503676241086219276795199697356005520898760059757016403497551679717034628138348577475836761601104450189986844519272023677075951496841082202647704012916141361290945150621082850153171704464397498290344460975490879534979722884094975571558312409853518478684958996186045295713676982944662392007421089091880207753882104912629538812788242893754484965683186025580239895684607272783544736488018665541843184410631641049943059121664743306192798852479909220890625427937918713275929869136848926192400907864052209822927930617204603308338608159854030350862516026555103865720282796119167134709830345773914526706015845068970342218132410892708026748347432425252155659596918200729527742121389677627616523165494348364465316521927605078825488596568780953034585946442486715971218144371043483104336084323400016579114347343893780625429417506966393276851313112942290844723440531867931806761436004624629411142281717017401322309923193984823661778671019250705312430950710464095733845381424818484803453724873602854474115477290162270096196011868924699265944094056896739704356860153469440340801457338993493010526256801456676035100577121769203852914938331722479799501345406421354295101358620994163663375925976502508889603798947907757528048390796183868454317550766230217551514647175844750357879288295008975489630038587872563467145925245053935264373467356664743960246767907167590751991104428134035784418574550375439093512132363628902976396436478463407468106861946215078267605989139823126975280685780471180248218582113842378328839664114585791015441497111739312230576304757415815511860268036139029169478967426033244652843231354179235387648428365349492020125573579499966051406443539145241036471076938010554719133996192469537159081407904514109771187894988181253212750238446229822215430254473043001379572742021197781951754184907599407630689614322964073207798133627360355302799616388805205139044334577209126849533665514757218435893379430381486738311857162479896617395334973153841280802514978708133134935498223419070990937823316918562664419502626262427616681608734034787593677927758995222069402785290332523017582281657190533568591934182659434591229823834065295519794358099917755210980445953341438530563888263508808128053069947077106640162062249921897339572052268477683541747349231623619945702980818087366092456154954969715372634344438501597676559551418203294146957729489044581350326742523109466125031832576883773608669362556690515172128964478138177301486288994899899647805356725908562717784214383867621578138832417043261500111209923592391981990973160140351587661672771760664103421564119433372235704263824025218495664378719941701223333798498890405280767613935352606873208926841164264334191969658580789215242012989006371723947998498660425301733753359143652792257973940900892585553532227154601079069962999532756331987237160048187425613666860242885742446062305537289726888793185520128859407495027069865795186350066893185817467713936090988560683510506234232040728995579026827138504482713526858540690283007323865130129833593197179252875561692980026225291896169423728322594934397447775127597968874200086868831475137403139270548761770949040594547849316055441205921552190347609361108427447699828469702022895985968192707333042549851638262696793577216241708169810219696431708143923620820103283622275891230553135323033407985188898868472161314032151791309721395410866974875837878301457965330094317549036719350667059058309817495970224498528892519325521621748536450682191008588332275830869113695488956003467845452952555464915327532111884414337786206502390971746415576087307026966387632256883771989316893409560550268428081642430198239450880449501562459751448628370018751463287393917126490310845408260138046146233412979783686351585048171349289639139652491512793466882411022207072549090526613494324985828093711602407508107862902038629491586185401600746446921416582226965325932879846799985081100548067348191440291593920657286307673250134007563517961513442764897480102044046103938748069809755958775820632642203285396812571342447042870748750570146164310475913856280193226684565703483087864987791602908498809013482852313775109114967279727921238895815812741376073951257603346747224391284226842986555495574710636129879610454698511923837222324671593917808267874298686354325796649909816940823861885836430016496979093789725043526342221796117602546933517198973850095279908952061051860656080096938164600603951740856644348397809533693869183353926508201702560070600825071700458878221049688480069747223300504270857806807247179961733519737901789824111415154998337802937584170976874832920022715871344606685490827288030610008901802034820375856442188593106669640890046647711205516640542131606548031433473103008715319294502455554150925966449913736506592380526665579999738779437012837187907684994408904630740622699853067318318350130063258013687896158740228356618281290243034144289624905084484172267668465715752358809205882540293196863547169775766114232678317049871457622783955579132751396496128675361918074284772276846301929634820794844401401405001355987547277275329305454130771747389716827407157557510839273460681372124784293970918386541940820238780280589893437860513685503635486834892511692778373606170798845966075047368821753576195670360896969910354049937879320785352562594986427159414154880418850927325022506289857286123586920136687795054349772021517756653267060163625529444935413427889420873886106915356907854143647353483534058206095506892181961802686462741034021473841929998654860625021860181401372454062186703123657919643048803731379415145675624899229234377732267549958737268130206467990244713700263557996378971456318901067423446220696205669822074727733725296400746734616385057749583748279657130938690027000962218516607729836426228752991707314360771940482740413322297527394384021117418080655775989640923445475806984263255262349884253825659354084207503428913736368597912188328784952207160158118643358194665018120914983008439770203968993345594325616882982949802010127570414526717470367531503766389273023490999520633628201194546296927782065833487205982912098433355598545194249494430762153242124946229154955867567875240560462823893413861636590739503430183908333178758583987853720591005610562636552621284748460471307300583672927338699296274167032837842597864500441011749820712884916958324057458479079265156589404733912173591439001685783900871720301862415408686240698017328999225227538998213616425210061349533893476563535471315506892240441435507268447346231199158804522516443204634524081790889071759361042480096969331798842247588408422512594480847121205189922246970317035193953000706388828084943346452733693358816526398857301384254456954494480350553672323354594550222277387384429336227937053057008839532943860848519764195244249404069489282520365932754960638641440182459549058230436949134967522418764205465586873094568291104473360905288022017743807062153015409049074109619013871267915632448245341491298250912278295593620415791992293706441399767326794221082311537954374557537635561489726522227559081057921841971497396827630861177852777913168340922508437815273600541921847408478441942256159057573029862586578314629432201827229560175889257612174366492506800778583447029893357362296108235230457610926881562491900664819676913137019033856179042423667361200011445061154775591660759579046225193427670006271103857479300540236303585519941648511095802816496439320619552020342311306708833081575560252736229744617596757077826608791109966670078259537629829542476553333870102691673770732886322725801235465300017585619378357095615852176496616252729751320469331751844693292906265082382529379271301299052925034579561107714520278230146927716596853424375728200795187901357786517096788528932708587381673237306600060284645703595852095917835398547407001811941051028701507336252761201771173172832357299052336503070730568788557062474017378037114951880701644111343495652246363696146228014103061750916187162020518224718448913306847230434339677617611298194294815025852497187314927985143680466738197820142748642134815378601160230952756310518227410550508278949134621477030939984349861785634043963144185864266483281254534393294458981365199968843198684188362643886987387383904272008899541972543365937725185876306753469249203247845520579063826657074519938354996092748914952551684492402943195607929186464535336964820661781363022000521841785772853789373672788255529814584146716800536384285228607886088154023763592714437912014662492674120728845894637254547524411497205890661331324506985039561690992218809984201075482245304939521639372193537791131208626238841667809367151824199802751628059542220193913412447734379777977338204143950048653598387158795642520410707882140321455809348144280935229765678977339331311549561347053886769796680730203506605197580344209263521075821977184525890989293649413409999537721647786032963121182377624365778731482523874219566051018341023633634303573393003251685343922408375708329799624371988241352441736128827405905551807715582661963969050171961436846688027930691972697236261074759302549654839053975511006120795708736041065205167435267504116145463954421278461330097392280912911444471197146281842369912413565578800545720472783718407701876550603080166537192325670297588451264711591841677681231248449520368656126778661130273546667658388663341645429660797744895435740747237618714709447509619030654992453242457019193604069534645257385529530192959735216604705901137693682730643190974373787644717767268903371305179680907030885044442185611556622704703728057113145531096303432142371106337624400303578232443783829060800515056349072620466150328776329252168423496196539306383012802453782937070294614828471544312323665619764667886568971638143436514526543299929212460815422988610184068529091684297943626665221497205809480736197973169050742703655665295306426785383174490875865641429707061448138534241975945892278794062950858209605284453885990516593505606626569278288907030329872351813875894544069953175575726561738153470873714114440582530879311863537848269736696912865370532248660624607547049601676865346775105676708202888646527034877725889615290527036718141006317921744961191219569320317304053368422330356377031410309408950300389710749890990340832607081505478851387824510327007838622361284833360106004270115981563841729453522869451913618522549131106376806017944037501865620040749006271618152590870978901123057177294466688131664609953626845626672311627907516564445063059300382277000548514263716141439831301775031462054707698087089351691913308734772093301796969524235299035647078164206171145837156803072258852524164498511690758132803576435056187866319295214359014728673881971112146121683354209556334218623842353207686246090556359481656270608636356678175113860736740464018914027653911077474654403088675895970611617340181033900307350740554446378617575042033745625993840009355280966195762906101330994900214999527256059287316547153731106619454642205621577606420587403252932935156430709857965351621432943242792418605378496021958950792724523561542996057032664910446672299837592351974548398015537748938590374905558490813305841863042178715572410707426127671135125215514710139019579404836793960363239925003082574610582330955012325147222798393306735254520942788483885670957506162956186055805163962535003109270421438071131346223232383588212805337868619908071939458281446933819356919229640533106834806941800777235533928328896557196558604886086774900452209811402478367317661018711409817381411420921281690494102586852118936731986336012793059942733720100368726238810921993407540339244750627586549453787245502469899236286726428232921592907365502131877586132825644918909126378733319836691309669356706918340475548001764055299715918679077154173416253789798741035947157702911831005823604250050864402637268716375526921871494983782472042378007668179047721640233019734265992369554550924645354899541881993927139812018785032387309883001688974775929496312219592088987485516861359439791027001381267803838806735125724445767623120736949425442769824881902290547371930570658189974180039040457180093572103023470952720663320947634373995382508492873855910555605288512255964017000181544081704379501307753817967957763725146035496485920492399340185768756271482480299461153179678386800613726324632091906159797057988848248737722617615263071102067485266759268684058003991544264345847625656895515352553725213996820577273779809935076658198745619430998640860959403986280557392412171138503242110276471673225137411661107307295612197815281371386122433064719583068129153239060052357130882734441431199411619779125863588503225063095551562395103787425139606775076749654681461790631958976807856156904969456805636810146757420459197038592485074076642060953314615217402839074139160755804410977341842973578129054506843814253257007426172689992945030522059284751402304266635718225760921769431713915377329204464965534108566308114357821568526685124518557443707550201832165576924363899031676660383712292812891762746145091482501628818250132498333561031285297851880348183465002212171700372112240343141412281483454912903661111080533989229713966573342272325876571612342417478438122162464371594469955262992308713971464597662370411054028266766359264675449891876980034205331689150095745705312293356756492665277742646034335014615449525956775038228076495096021624121211657719269601339381448296093975426538516281699807566403265633702089099916191399621053546097918389092649785716905064950713171980726631055981939086515717562264360408028561934708322598387622449039133031588756818131804467466244911809661117384294967461610644359678742227397209528316522919055103834548176943579403327825493966893112953790910511958499184841845457747990226702939987531983567304422023836487905405955561409656498264538891507544269269906120497097692421923587222337348118417287306750473137841682326911946483693620003433870300058475644416050226927410995520592324922990953487541064639732043578330076670794565711685486295448334430420472695277568702987728235783394917268885141887592274506767577362270672677472189407728078611736957536982096054873658539647269850940585675200749879889944134854193200098748026992285746810342060951856973509977630802620921964299748708375464880796141289066262845835964060157126699243888530510722365494231454269575711023703944832794753749382305177383040230494495480282392179980131138825263375524785054094249727137925780012836272045346587421271248248621201649488607791483534991655661520150628094942282661162576053026865313096668180913420221046485681656449313490699392272450735973108847033729926247261861572977327178399461735296943503896241188482790888310055698232930199839166653212678595661029092067196658494949847282885895375485376510782418550693028158338744115236740071646273819575646639494046405173210049192612523436230297557067526311603605650991945683251521068838256723321821729390739729815691709157026822070557366390850778505448014214568904367152610620388478789455690345222039079598932624343933540103775502177667879067399251411561481675107944162691665953057930173824629086200047667054918448010682799817853293613322641177072578343061340528708551948661574715242465387967666186460234942946571927128493412784016365669008480877816023017978188196838960805288528985625463266464438119634885640907537291244297537816724196610974653347221398075002816514957180266046970424625643450350928668247524015273453347010722991933643099228160370612284780247518874009833460237933890020132260114392668432444094176444821410965351147000326223996901261189768861052758835508011534281854725946757825870244533504345830331131834994200385887900214393100529555155209470928457590229680665959642513440542684599430904392409511360286510942082609162609069359104429606506737201505700013357971877978236355151993297177824715484882395288341503458712421470975548734362411974897601171269619924913116398277343872765376536227471140047300440533691110232245621147654975690082199157353153375765020746763335750879257598267284101640606517844860703192402101080920521861714751963399334581509989419888695387649930886804954314203320407894794309765439180040172573992692320172079525351862731751643978553949973746355449782611603622962261084933082719446315784573912363326836989239701022420166921294784117606493618821275618360937394840345692024965707964884157536829307795138933979377056413115518101784269697246387718643504005533593622906211603789670774004092165072248512676568224314559991430584051480241695056682416994344251054816990604499427481501477374078708613189359889464367490291710251358505229762322966193105627987753997079980728069618340278832215367085742446974090493219710837435571814886870403322594373831468263736642022568281328597877285560706214270218053403718027137158724746472941416317552622787711340530580397810721923605534998958223698947589025374315341096175833038844471464155644128389318635658991647833796609223941383882120967264752321829396666788306714205332555007784115514807942854396869778750165581541516440412503015380488158969956509919824389329004881099100169826484773336093639907898999773502829307385254638472593864304076480947468705043922825904006777980855718959119885679423988554481076533782159909023988624615554217173949252339173965640303518649328735280521858368644890956621610472788991054798415632209713981775187798288370362843490714972349886489192385765064168844132728474103547701009841539349987130427749237289225711739152276861466823997666680023168717431911141763188502084559902066036485814973835081496248422221238305805377830768463859056423454694890026525633970620166091732830892177865409498091873855642700806537468043050317175664379475711088340418504195407779086951290740019732399079924095332334863283474734304352739925847360323264017117891498345201027713913871922867314446825956391612679862300685159376366636500274604852032913407241260873984450089980084560684115128473531066167715906113838282113522019544743250380206679817168795418457241511771401349311290766139732819958415110895885110171428628145023169252749252069928079598943088073357773714542194378576366645774724734879089008066191655431762380634562688623181360186526949596915511135427886180541298880101675599473631897439735624877948068976891270374654663324225598811838870047039985613791403330703542754802493797320350156772501693417437629979047258911438771224088361837508549220838407557341462367814160007056294012012668022636146874913885218786639331770620296059319969471134637114601229578798028559030587311725536246670099994513991574069847320867792980669670705195749169866135386573773394386785126472391377039266293726903009275461453679039104453800118499920457229270420555063696788468243409687503027962835402550609055368805506809898136965425268461842098159041494201016338571367106620910283459871704371004109257055443528253870788975651425485699106173112263562356224855515477674588634603023667342340973819276030547852163806897882704896035714121052682744760866593969109198611709818257969681251672497636081370048058249597840911361007359799203246971919089901448995824409725506718641037419872737910997425963999648698834955362903668879394432774861856295990573328038785509589252147143126098829395468671383521754281799572393435059643797263917191320974684166877298185399191922163819449185235586242406917824691111734405382773488689714332471524589391437065521669830332887388003139582193256425537450156981077885995718382463303687603908788883790868938693552448008620219250098252285606587880296353649322017034847385494601692120552293655969593037093889996493208177309183465569301202842404787742486264029523968798020236405730737308838904528640700026695564158518115468173921181028789397891190808320612823861085739460263402589520989232209934870376947509402719981628170381223861069117932256690516405961620693151769474405143092233442171148857233223405586342607957326307256638009893914889985660595353084964745561539620435731150173968500271580840703493940218584767700203327295556673385033503727982486689996408163977530570072821389002461745949949949506548578957668083586141862824660503010497269965479758476753899946900320430849515541941434700953217007212216294993680056950546745303952561235255207968787599103706363636898006145010398792346651474452584293464419090164863078762850897620151212077358363993835174708975664166604138411483182950486749424057760513565272932104537269228294576313299374461109160384164217318522654317956100672294805470370940657775350864096995989852365203392028433591734888956831490314676398519015428925300787730496966992177808009691699560273040742818309085878743785059522967201733820849902939290654551517925701442667199187310820115546720781378814539663008690672861992249172729695234823271684438387751204146959242954344237504571099359862747875363999714862455612845221662253217727656478839105008866483429278416890572862305571031983438000344385104745537775503512535350426581906706992847576492426519975191491329442086497979367479186210486013591493804426498995797247016892486838372374897224681965267748763869198609248629714627893268452488009267101819812107693355725593104426522247661823190555558351835306301249447780889324273505283970634569678161739739201794123938140422605651078342573361259369518052545848890871472183544624631729552566293468409862555692907583555170311882312090535875360476786241039830948217435076110607682365810286646258932722351186695799009003436849892109261685013445377153702761772718938335121845333949579713994308455170702253030355792016982289341767924446150069190798049813502596543664644292725223328000964743269217549472134055728243659630092276123021348781316516711431303612819690829631801386102895823833656913923984560258253837338935482085572262264566550698618068404607545465706619545219911521876749628747051974777762561011125444297437751818102580997155053581233518964085232391358416858794373385666771864609754734745646508943224779029424970936046850664706515128383818540819473646201254742302314852463899686481945814127251283036150977246547534035512217206308641689664376088645140545333706940809077609549639559129212310805227752043027986215628664545408289176783231057984541686811847509284408136640292851443917087680214383581669200006097666135098513579503559638440380360770284975439914590406815852456529937945912141413759024046574088467437490825623858222898999020366384649979918788462077055321409887776014167815650455592158968548540773584697973189063461852255184049070064736672055972546656707697543464907838690658440724957028580795231241677579179760073313196340790367777245297331025848017937717906011656660942476422155966713330129356109422974915821298906879334175004452740353715299312172669605039554245310748307791914215053099983365612677100808936792878912476588249421605234919016478452067027353639435736560151973628703492951081346144925602504088582785339850133136852600605135267870138568695357641519035044192866899530683319297430565703775745321612293784873396176927145624070503784334523810164658530660715881229010908233310957677517151275694832626974646461441398692002657470512670003764477952847706810352006474643522756452577922479179850068694610279612222607905124130564283411478322205597870315656516316749719665655517434491544581616722216761842002222858484390600799085192442769542288250332635610144136638729284470496708293218659425374888202204177834421240393036086026751844793885125950804740800582506820417980272388347496742124705819377581262611443189441998031383486737991508870693089357159959665701952090609085505293281828225111876249889164027403802844485330400794023245137666873788858409143301095362583569924210111193927393324566990306889863090359294044845398398947825748484317991795355537303218407737551457025713377904222715657635946617919858708120578812587467987156778825797817492174444923113519806971603177444250799780199186151455296274883033952226332442524429121982670227125448455902744114641560902053220678231742433964214828494444877959710007979465059658788327458446940205115532593833251218323191903510739908622742399819613486022349114482847105095037338058559960980849286735381530717111221419130195447457143872634032169416007753316675248460591382918319603587538015170613094865190649677739847517881464373292946288929375914013483489866621298597675288462923493795896984121317749733371780220399191558908476069318835803073562137423077843892839736269144652978624532322456690173073507032523075579972884152380996788849919478294391534334584812502368336641527441978830209486667853208178758303039753262526303577972148601219961345722952525911320245571743270124072690871310199504633099227494361530352690779471352143500767363754195533867435378280265460021187010125833573552470140558875333013846217013557971460816127629404846279938415185400237784420160255660989029453465670674986382716740842698325281209958471634919231676558237402327989481876794509033739414115598167095714327587691851027070611059316373352741926532277168958089395333425190437533948376273420543257893860755832704577602967172583189973475528241898020525555334920110224474239498834424966822626895979019835334949261583257984163200808923159364521232547770939118842967609147395928321835048945976309517765549494853042048372326690893723749869194029389857031651811472014899712148004116937763266914457812492257451066695651168882538980479570660159874596087164933143623773773987875553266451453352792617088860709292412968714906377107495595345740480909433056619585477567455440355734250799210885781986793955026338250102090879723606144333828961800486723868116371862272134992441267941857652136288596914509433202714193517181543732872675783274263620441256632944336775337355407734468318806084196137031120872640077692364492903030762663234926834495281511510487345482247997051321936329562826252486621967693325136295178818085269235644867636368449041623481477187546975547741993865064780275790266134090513361278612184932407321286256288054267168682639985555345790546736745811827915231496601341587307729054741417314531102424953665840207767100826613019771172836928041341902974169732013947706771578082569298290010033638666125203383944746156635732915569988745675502239157758957673837936001116378256333728244077859841665576722154635333257985446504564659349176124532274995087170719075987868615875602759207626139059884754083813534978977058387835273037998535783555084512812786515531339041191200389373598222887510254145409866455424117882773154598267791415494861985109358309109476276437097183439243804677498175387480442140775611933642675080851150821559300353503887107680128718373514581229005646815633548498700891941341152357915330700086316858126940323438074841744931295309902543253897125531061727793503542474070398481486819531609061954327450134962402443125951372799316414521308101320655901402689682028232902478093160900626633442692403874081536205964136398663855257255035141597631649710652368172260174130524921345439068776619580308445681417666173103028010820354980138589295727765285121369892424437865722721320988224011828712091939104735318023490877879666944079549944890877486434295686569501996286075491289488675331910243797043831536711948611959196440984147971465970649144454905473579110101698538450343738347539551127442399514499201475664805181097559375363021892644208160000603808335138835750265588233756285900042788374045893165010146280361711509224553259896944390240638688146080100414808550349217681290695584152090208912279223533649644469262771571407401451448468798922746738509927392142054252518974120537217787494844227395839084712689431111917631072317752159695140751152284970442457134940059558347447516164195984502840028062435637112058003871003139761563380969990646467763830655177219384917339650351408252434028143222786330539486149802792816520625147462442743266182511293067854975219843662375992713412961554865245953805520297409389427283707112348348270111624093639086913954875803697585596298425343601107686900735799985788927047353660612174518322752849182216823643321655517836376023850445687297459876681435899377083018957542400586742891228115601298574291377456955379354701381853828722859012902875056142279899717603836334407815925152143874101273968773223103517249563690786467030166220206610075090582603344601090080856311615381565498659909403720240880712229914318979061267252210177039990713240350853850755226853283470766414470478577901185758734961435750971866655281036345093124334766847189065010551534092377456627056180274344943240652391061165226376092760520329118404719546294559475582860949602741088518293003087914789527198045140712849688352261661955192505771465078538324783121865009129346525681768287419313813791037603603711312004842788022632306820358194995262025537074441424772621102336745317386350970983628945066055795324109594404185063965745239690432197474706533801407206424142211234562955831407460746817456243760273328089591230400219662363360882255057369598200744818354347957587747156412743730825352983628133135091342396261185679120151554922807667758284228731257579616105917203837852169852643993242109728837886404963461313400889963219156264288763228469735596057810197985423956794590343691244830798048703200985978122582959172867398462618933818463978682891455719527218285199198993548043454164127141744161386367836308981067244578004573874325631702469064511870271859833388060226761290667947755018997028334686649215922876572427074505461508555783378516271927944356039314314634386686265139505930754245108279912638331948167511074510539999389951910990623396005644274625476188107768700678019674379144830916082989873985235800941093841646584574821728037867754473926281990717859614882598608884831666990389792792161517046661537831216054240697044992637779883792496813324401701820382996445841863311743994555714120867620010024938717917681767518035673581399908460673354181440741152291781621926210666864987782481157175760825666727300397157007753472061187326993017632679841362432337776678573421309653955010163071914125793318305704185866474062561013812708634217263418709104694070265266422050073722668848861388976223868844701263483484968528186204037626058043229524002627936244269384941623036217777468109744863813927126772662289796366365315973891038876022104439978044248445732786661898394618211361061306057643342139178537145995407088773995670735563294459216246024068459206697745048134318818330087073632006783040411080111670735478528183933137261107803410243180563356120382372549704034099389171860198595742119725273039459189156942855918927311531083883299957120232381449387716470019569371805983637769866193881921425784426450704518653240307221890094027892650428845113971623186076922668216868955947531868354620920866198056192636846817591238914355122827578334115666853374954657780385572533399034118137281908803231738703237715132331274622837921377772243317445189182383201619274037794327325796936302746123809499086973499848439694678907487291978943815325563386675585409205512015299641595496461967775363303541521380588930033759676245266307447030551716512880879845402068651020338506619740501591568147972205997368618553089217509186403119823239338400169745580537357477814947288822613178738540900004515436911787525969208058281065771830989689317510165524426793796338729507954730464483984049770234212476186890172042138711686238003974891691174707535409836903390306098534138622425634786176311330660941153124581117022926096001596734480133860366662543158851386902240226407739995505984435178268033943597552208580768742613501378232312809656437740097077575528756919763335908702028361043342219423710201515455002467967913112150327662110912944791903851869927411332998296573829135807697562774952271586115878586728209509537774996555410218491510434542939011478416073527203881161433351066885365095390200397649146016533386862254859926117853899625928544840109176916118739036339805653494078373287888124514344463360828169748843726156309791308351037924615138341037544953914953833257548223452978566687741153566179983267264343761282339525669498298129995604843725635226971678884866137379587099427007507016671803996677315687662516028266328189797039731719065187060070139173836751604858871147422188515195971972489511465351594731191469404810274638980408651640574475680993075230905731704678481247335322260338044029963633068600448891319186576822033700237679920358144484110229288690415371468648767628620240970784555466791644738836358196362280700106197852357702393047779312524732425693423020167347113772771128089774592271205040080729099296953760084327656631175996616646833824838997466828683863777774892641494173371508247356804803313523228424344710552373650095630841138630052611399298248438161253712728240495642751737461789041263053702807989797199032304621665594150609243630750179651808986850091011330662489346234033560452928283198233266234890589733519377590635419468500130492015920363079480614637046596984459386329250907996052320442186001795692678654288211257181236899708934418626043404942827956095278773544932937418518299316049910238665155443966126677922081424349010801310053723376604205868124012963225382140476978188641284369253730647320998872797288781769785677236613015705159198051517858867148207184131306620193951895826402613738402221802238117318629560103900616557951627945134763425096351122510113806501520460040734296034901776094456145490555987357454098463269514811855352809990028747535547278904570567510723675980354872430863354416895231973982526994115300854069828313501530891094791457749941847907917030721285275072409685140996619694345680021598177494284029637668148765504928522203160827807349572038527160453461195687158930970262425548139615564782238834085402452719411783802330622453776580139010491953357092749713173026756268786696395437631457649974961552188477144498213779130151921816575534532230428376703891019346306824833196046470879194734769995487114298836170109293541106311020929863062944586367646261021087377443938655886939228760488478539698620914590519501248737663011736441587537417688777311638921339205860538886042137095821641246575602397590496215575805064252929843671194121150162415349203618860575344803668856868622013240610590894146449374733717833759936749504758213052619779659111914736381881634013368406059344296271311141747246957421932095945117666264355627824736904393516321379153617367908648040872411499473275198463087180146706116509246354077774865026263191814744156208229249040378392157941612549797548879640807166228513697792326971154007478636204314829951633086101233633472096650835308142006480481993472944044412058458946469733502330636082984137685808315147829593321015365308942062138771988721533674447356716981286645683622328628321864937935026446550779264174437243370617427300731076951295382113457491196387229003915635096083131801903053179371653565589725255649326041802291494061324724946814893564523540872362123981934781726791580466160721686244931020447391088625662494287248356512499772036158824823372271471485098617358707276912715252651678477596884764230399548769687217707678519927099866389288896722856447406012045888078096380710256628257981595749106403526126427124908639602397955354695407809691277547727401663069935192841170905981594907191954640247276665874329821877674934805589525996489293385157177327007154889066034341023083749660370950604928813666543457904584748467817811997801370209072311117226974371504464285074026041330119729726060470219297496174482785659582848242461004564135387384205018654641154476997075764921360692676732973084485333207696643505875717081684546096244935721279874971570099335410093631629597160529518746068978037839124340783128160811918289548367933295165929163699821342653398587635776124735164765378169226636380992993903105306065402460737921851179266875122345263150699320073515005666769795677370456547751231448792678036920735184751625171775796116307577304111907656666727838382806890511129677043192136685400438438096050367187914715260757020767842931667736000565030351395944730788513241364466154855438061803015296605919664837337952403238701171637241153792369883477112423979154316687342164343153548910056033017512860694170000734066560367251905481161578072525685973390782556602839217422853522010391804910757859344364874122049824241711801901907460218235102284742911864221105944729164937534060966933927375208678938429440975956511230695384141800550501582585489349857718509493176339571057870921740934827992905889855454152157405666096806188062350300792308215920131358269972832483034164691575802978696349228628896535056106467881096299078889809046257127612687562787490585569908644023814838665520092317902800825272432778910383535856716320721304660508718823169764086516393440150498237193525873729505592866079216864274277501495424101200860726950266914115137015541565122959366632512439588424762532887185774579718402597258093587267403441032474537171359453741168982078905195060964029745201276591573629402702559079728348310476746729208226577700323521930958224015203375143761537284626849584036151651730199247992913142962878421885297147391092023840026810657639941393742816756798534714233196461457085982922846641950161882557893341202786311835577482922897580334920342477027046835262327871553903069956892160391048655327392260524504349343809638069110998886059326983501494284000073308802811493378819569609292920969043600087612271709595700428585622164870620898416586655271415873268660091831839660195986144666411362001262424622433363315585953144395107165471208826483555067296424501701296815942176333491598015196145959785860808309582145857989356786647452256599021523426442818127699312588681659381401775566328613707567258052125898552921063732034788461652163730810603808399198969604017915626054691047668827929506863616456536757860249256704507718946479973336657501650097166271769565963670371382296263959017864326667405028256017429302294982907462509458113135171068071953900766374468932139964720354590156977534043720287368927170237520849723831798250516898922722650035178156548750473358324344967063157367667019194364264800415382799994382045253909955044672634551562937987625795167368664645830669271052559999918432971849626861526070342132986108071005099525839396709088129289085709980605528900290985337279603110434337971644767882846025850048078667375162285062837099317474430412690503902968352184400972174812831805044027120971162685336288728549224097003968029118519058939998824486563054358348369324056642975276912077561435188551482931836167756629850728460284175595129392081099533065101175455034965741642786500835538347020542383006036808373120925441466906053790046833069135357523866985208855159765032224115994367611701872252111407520079813374817912772341883852280104762094619962761548355450020025095827191019415826329478290911085260489066901217896006992607665988386264215145984830722727668441449366562186426670902989323379715818446926406102488804090455204187889981004123036825496657644207658859343814373957440565684412921932954605043202565021566574351208502202173767214296171531809689376292401356334010967540605303375979489363584270706896712189184235399737382861519120144519375210423471659291350559272248247185750288555096920785389350172906884655618133385154602237272463985133280971127698880035706487558601516472368173742564944100033599172391511757073197914955192308116371586256919893256255500186904060362953881297562588265258804258462231540356346939663913492200721691967386582719707706832777827191853209588328190295051858373679884787917518301016249377425112815867171929246247268153115628090770345780684818216459768573126980650348288729903799930938267435142214943645603292774578603942673592088452301306848937059317323532736033170050550165739389070159624493397832423089578864985348286590978394439291288505373511531198860816029454630332427894906457606119772782772978194582269120551391922385036516843268497196722080223476874464750280327375614887904487183009399423116588370265210508678858195942312655684842008568981795772839454661169073538258403172403448287808212807698709061832809920204418159984260085173794849483043646414495352656625182746349374046806300685765663876690212325364489652190092119826297164603518715587412896334668718471556757170986777082619133157946012650329231153070535716091654033591156211897934322314504114680349102544760234106958970912751903830356363271379166045152350735791192763686248967541451702963751605553912316679551152168903360211932655270309125931397543566473056026963389567476388884491986086014232544906479894945375504562010872702296005923247909851835098619349085332622707483245500665671391402930631966936942820726715062970991565953191045968150337677426406928677539992266392508856208604254440602479042552896099920598168765028056472411085202003086294365082423610076550913183423718707798621294405929381928354874562065085517682266881527519192481174452072775705654732996127478818614940827617857947266916819852388403751602862493440105349541578154221370255855474814920868905773459545540749962275412070892964139923473961922236759505458998711361831923706162144273309395222113470424695465454368005371002853986945099909941763110747675172296754215461743310561825509468633016113186917701151125994479028804213884830050795708335538666137889046412326610936312222172322639180271952249856761987581147458497220357726685065152134907069826365917887398243619182770853510840434466169518838988049082225468766064270484135621925307040353003090583889110553707569872778840446431734900317194248310885804712565378843730484472761378889985516041198107873927540217244777321907911892295153646599598199610906894193921849731693889857385186847316112708536133284249379232597671069106292761349928572345554647738236710665858685935769299992917380468731053700916305118566062796105186763023037716946427248134180641634674891443198920660115514861676273617242835684715302507565702237046718358910838562073740489850133065156494468503938659993153157221258925001423329215745031604963981514677517474320485882556626842823903111121863733311129997703481951331060760620160887653548080783709480921306762467582352685746036805787660417947504905323115988901826518300337719867214560067252265291184742242504020510911275862771519731758797297540160736941017306105267870211403484290955088924626863937481590760435534021801035550906948537149183523681114350652777389894361952493735578008191071518358830005888786933913011909539750861839905136629750308782755990656798648189474837608075109640368140652164183913860300540545743124155019907088192453217287173735156579373808190540104519615341669634853891932198416323494859440624310626528947564865150588774993902273541199875939401337322057806078960493533340559316775269068698204331986418460374080411563330122635641605907463149879160023375729166270342527278634035905523115102889775821690817381707878890285848489865043758181480261738253437931155232584889444332171115729726476345098410833375387549281269066331345860574175647812380428752774223611015772591709755084442481620660429334610244077950694589751275959029431450722264322375462199478379530436658065268134804940493221001716992219709139518198300680188555922848473682350043582166821268433111252024783030387036323682461277086736389778859931838951482337395487836004530789541602807388335810511672779223805425289516391129859582551402144815304213049047720936134565135398334014345136655960040852862248645329714007201386724176170607464474870003319238774124098206290348513448365316531915838382222562070827902684257680242281675998368982119939535087836575059592114181176941215650104515670162636741734609952882515988627036063387062416666571985862417537117254626837772308181652981682983321304416176835107426987659785352129997871200894349190189156264802512630754532992755786518084361280964722731699932697493609533546488968235198520232482831379716190042546976666151528189810320422083909723807699932628540094007407804036191977388853837542740468944158555655632029941338445387927523093950148165299723605181877216057249660991359288479482256342007066121500426858068079897181828473682013380118766492485181562637699177896918236084237824174487063847140523182039913632760077790647015204713179711738406701159821280575044739436678314170422283979962229043521024734459047285947554911065559349127554954653070710931085422022797591003708596958209514465450371065104767030161228348706387599605774320528113751085652224174611317618893224047594845834386477875670290351934366076676562869122409984114696124523026236632130663630693307544851342098334101059880452946330668438299896426300272503712733429801538139159176065978272978752973368547774722278784793002969640086161303934586490203593550944008835671912974530058914050765523848157910201172401231355106435962069283494830882781500334644807471883177115248641972879050184494380308083472309850206483934221841046203390522905519503682493242705716905444039732760556440206646291845631608620699122000497029062268540076055084150927587582100872059574772075130422609422647636515980948075438084826653926069262094052495834494518508319532706641902460572131705073422424440727098807598598846644695666350479635725296675307249110030569784883429115601209603459739152772830887690085025928410041463918273815657793525063046602362100188791685990811860262599010318821178560856484524589836549621091304506771955923093366958950567971012160550954232141527870762548137566523927538915706190627187384926921357382833043195218722661505543051885280946893870040644945308669396889564064392651274352371338921634729806142722324629515114496135502152159094237034967885627551050001718053873130913424282089119440288946989501391377251422038521191128449699162558324157291030989697592595847620664198965194633391848064447493640147808380979317777694626300508478601752895442509822084780665188457323308657158367134708295650794860911342719045121680737914388968545749516939209034992070460018799994863332151359734529862398347369295640186962112795300470719031066551871041266025405853601318670314858242719048395399917710592024877086185125736856100878597469353803986337810291473464653692235702399915956528396504550572546753906718823804965786293415293707489149081602793376233704702686339096843609067082487687527316025085159621898617620151464501571146985780716517803457547541695121587430843841978035655004831688053774872828992799561782055466248921381519663325073862642387690900378165448012032726054461308885956946156071501522027106609181763002608741856180666801366044796948818555857176381498103885547762613726182606148838248438644675028375102571097449931965736880464769671269207983531973307944653289298836649767986477555972461821022414151690781848793403211803781683415092296165158728880388500508095499949184726048177188616468387401806736241121024275801049354922708183618354293433833376496074728949576537557937573992862090163692618662610481394865392101245553630167559414942347882814639110547350591111558545508422631002259081470849151761207302601157442074063118294397605708913001572192159869033320065631180183215310090857418173836475579835186739020584267734691451196230214574709915886571259340514373235757175441732273532040558670915362906438465303618538684253746084655780807644967053550897950547028637892483787623858671694954849646171930323560610122542835237704192596598737192186353998308778059695246067444167768539062180854601975576661597012461402989056455921596065231409149534891781320330536953601949989810698169577698710392191065187452656286754847091202489913873884701862039128217977331791754372946047213130077330972907600333404052504259559618578378435311930003850669761235999276845858763159206897855250863738056277559101890758284432551421614572307603553719132273206098084653339665272658083368786963796779293247643699041336468389968737472644761164149935880314313842356345067423302831080954083756857160505032844001302304484589630745455005153435262492755817064256576386776557835577221886771564563216535600327583674285458009234738979818636708127263550542895722974635176729815095018445014703316241568821326841077991077043814996015438665093698994883783793863879584313603730226365630169560683827602268698048835318383051587764756373039880692428398369118024146575653273503903723038428719047966738043384372540578824427850353428428447885775622798554593199843042301572923540003059745359562439576625208499362813956929310171111452538455109704539055587139230681426924085548294860830328617893079276586074258781992738101492604212670306135668424932177071176574144006223309489730421510818900762329368240170895172496148101685032676191550652385589109404194807302347335438563356863364009957642791448654375119808058157434870665943876993283802903607334067320463134904308635135428509434773137791514039420458717692187182262057477557076783371320681979553214232538566475716870602941848416154830947670734049757605511972117542196971583998042891732989809441542040516056787330561937694573462922523323803999690314631447315939297303246980060643486164647703755957168566735213418305555140820512330692919489284862492837936121802715955747751641049587573027281167124580561543373242301030531270913544076848356190602692134192715368841715678312362929394720982323108492145808828789709421313353320263968987767668639845284827575633394429576750895845592255464266847638232440639265652862030864348048505445942353305396080308137746162924209777596124325499740407293376213038459299457609567802306834275787413408137312337184168514680487326963668242560767668186302559601971063113312295339598107476003985382580762543112455000040762498957792283211266090578158152008792058777157235300940918901868048301303928699921848894995562468617821333542243680113769576361992703165887025618438884110944786716925846753153450014206625347958610945164562137279105538196693229937557863994481181289464385466523486812852398458679038007288525309155757653347578047689289064066713802240977076224188496907575102782756879383330886492944955076367186268882374359606627411192548230037837016860939398454106339194828116149958572656794289896526476333071980586377958504780872881393015750500292252456863012266832957227569634138717775835623216094810161527645033901306055393801433203385211453538716848635752699325153481243994208906308802154992202759497979079180117178193952349559484699160342402969652699463266186742722730627996716128413338370974173921042083680906672866294709680560460347061576203429444111032690398151392048188305441625595644790927616657039430204787735845064410060304570052274118721206820049673646314503411873131399129815121724900679560760678121943944417801032578713619079075113899256317849542698382189518662630732226874763530474485573976801122719392772691123809347237050621135562925866038429920862090559023965587445017754880364192589743368768805158929909414735566615575879085160331765453604959658499157876139547295367281108049405352989309666594450102861068225356196585679585411142659095962764474110097264844663377277338587188011058132049598209802472187164514870270741813721108483011152640241820436096936198939353639596828293313706859722140751930745613383617548571500521242643389975564396911859431553321543029793534614883964839572642207739177689037951689771338784359237580654946764669040255035313136525444755395791933803809444657015103124144270019791936726216431547801712393440317512773633413802738458090662543138116001786003730523628812713734467013621853293246408935956389232608662681270486163609880766807620070920340477601842093547476369127124158128261718548856681598373567765493826141393145744218574284733402650651313510302903208406976961121675276586419824026362128371396326102643211193565185609525298482483808411328541107305403380618749006870987116365152281310844990847500911558716340441752019494634320127833957198651871419414107904680837314816427774798776963610598773591527535382916571069635986218505392082525179076290981866650944534238601878286288879747551223339343717803241724902126849375888950471350715259947041809353398361304700758765848896124137629572117012328932997263980088591822823633615192801916902122916691578807828592689066680937040183078168126738489457681094672100275023147296443367817274201819253138011998758852759268189992686535977329371023243688025778129954979884137635968986776277687301098773405380435910667112423128269823407714985700416482459924644108414414195734993177577585940575880505828803289647055524648942001392705221427187962126774843062819526579075752285484516509444865125646502974362941993986797812226127781319016108133123063499321695556462644924743329979428383739337386725154510848732803637406247555819689982759090479664166328901639699522101508143295582978798680660681356524571897685647369147553592490255295497469480982532096414527211231421703432182513251287671950052049023943271674868775354574367939053801812061403041372609190726941851803127037613943996621984105084984583470967984098400759793954806675429428037859661362370824058408518283079117110327436807347799381293915747129671015804178250165194442354053818437830173725720556063917289985889766311312390323571581996478124096639721170470831073813800172125597619953814129291949560867557082999802065724595703981289758190668439057291013398299871545825462324073222677237565540753442248926842755238358876479077813017810730096757156598215634692212924858651417725321750112218300770930020400123373479365923247609529229089599531415283211974343240967293507109413934070119241900734418037712199880919770991472722894431141196799396740689823754636746661572410697181673113444341449930793243730349783259767713074801121769771034146187273479597311643487728236096496779309679490114028254183480132138734323427788833685714007509096299655832507266896661122343620220764011451035404110003251904650252020289523388413311108557165436000862828644436492979927957193604360099219177017798429455660814734266336451520300515547621970420157387700237714073261276152928443691933634686554671989007037867765109354343430032613675305870630608653556375748946810494247532871257882499978077141588975866701994369677125615553861888149902450782194213496179455009772445022452266275814562776255270458579516748714848129211123158175592449081978636965024185786081896791901550239837821299300002324758264759189810463962543073603008156902517606172149508681072964835611760751429457130929980801861527197646337720016841959108486171105492541277735970142643322634615470562213002626776463624221122800222147188933706202660040922081184239856700988609481281810133010178845806690060648205982099798788137683588502681658706786747179417506860576515514406164265684905163524559149843476419242122647618830014951421228215009625189552786241484151055886682886292506221429927998566523818830691755822413134162491586500413977700109977835198214759627231332942406562528364402909312069452195876341636047111138934583958233625744635459695703737453645962150922021599239124104108745189219606607398860345295239939745253633858261424710093800071559701721715123710419151539923373372555317261256154997784373994490344193038630702340950836736192076756229675730617262110518317537291129572373628876688978177973174661925837235106911936850419420333548920000550789490913533163347831890482720620401962105942200494646586015313165705950851566339848843565964868527534998016922435046786953788352467765900359585327684904112122616372329985762296597396472549168971893159431571783347299467665044254494745679381449183243127623341911702630571345758361716005281027061458465952090081054691386631396458969047066204974470645722056466631916716501687129659381634757163347786577652620983519362877122481326155285997010411278756195153307417163222144678411963458932859809230843049103936249889435416622792905281048865397899265767406921302147765713707311310389192727473524933096109066686885338089250975257338794147534337229088324447844212892101398531353886537751230912033498383133158559676876723547283043106882235942976209398421580541853017168455623310374496311827921535175604936759235247555501801144890882089134823807140267784648292634477258477983627501250802121966322950288782229208688488297247697086664421459310389988233268741948870778096103796282605343818566127505137570976750871497095065531870555194214993001999596842734585399746553831294196002934894366873139332848127550103689449156409417321652240923355150549951561330735278250023264961776185254056470055374640661829603013895480257960531267366518958581475028989264018784415685139401081448649184651776722811096935419135369291017858271462178866938637203521316053351835416258390824975732784322742534456290063945388343771886780793111611257896726804342769523098125641353846509644546584325654891202316164255876145886989943665221294484495851897868364220832218336518607548504877246466426181561239414749213435956160564622222773855357237246095295646522528427242743445888429620543023897006849672133409916795842904616598669178403902037215792736150512504231306151317496688223130370344167734790002561878071705094261757680383084135162188792650427198897673758936884070229189256778674396830158724513266367637679329755910777655450703366102556394326960809756672357445368470712697394636087358149832229511259147206165966660162536678104945740384989532967302870891912890208988822295831438124180562571176024885183994352066445610945073520769112781947321152243859056816098128151547727213714628837481800484068784765976094999296419129449182926642004172485245539896895590804400265354955065403502417462908055328924737750136126414095644190815748640317303151505030915489473631389615213658571567617878985501549057023509291319459654785585905667860627078962548965271094742246267878937654772988215781762851909796997373159422611542209621457838339591439045505392159851300957815718395623550698784880738660355340613985996022777162402021026288149570440331085952753962854636425921393832767161419579943082919893860043668271751591648739225505059289846050108369472328885636144658107439655178370652404488747931977842716059495536417686497145460260088865059105049200863235406208711284694444333552230529845362150542022280488984042681406567703938295735218818742724972542588754304276115281772154008396815517798395019525218814034938556762732592456929472467644124506416302529699817163978748422493321839425486618397163338894933475519076715613146333497687290558194766727234169535818107730548014039178035986301391743794599174237635380185419544847795219326025383665744455558952535870964932588311083418708208813580058278083383275718255648143709148245330437026049583143852563794215426908909256775298238910965888591812098589483218038977605780607248340027888215555408281466810736654307485930632381216088188072706310951834879962718432085892930039035961377769468695189293560494939506527658954941504384345036748870562269031692747479328611702086868245253340135018243764712094706692221630681563174311596763172635059248442580709231286325071974456074099100973781884986175580487853930082004239646779825208134016297199262606220849572052306827014031396899370192602310956919288995770755673516692974996107696443096944590634591361046315670670649247177594258987259401356621983010585940735591673994753950658115083506485660300750653921930675637137744832234050832236190763047854470896588017834925587143949126552227135639633037763732902369907680416120581379181376646549991381408727744430803228003045308630127072748312317048885707421088287975410938995181953845757999802541709466915709517074730124930082029796681872180879267527540581111077730732405211722230114658305977885156326322528734570461144642660968161276188230492630827375156654270915186258758365863649592398901893767504238361737491074926498311213021315347717929287235574510274597503530103508396127612068270536709639944271582868262082055977377118039633212766874155068031103101016825784490378556245812559176518112072366099288373781805557714401130390898162115694465564735809969858018569679477072929537702455909927023223903623136109049692088231782675703989981508883935730496855477854386931050143447299003240600922430163997730967674362755846878453813659329145929093301998888032175577328872848605870989292304179801784879595669735807998498468275039891544493381341960939198807710377622056433482596312817222216383341945273073899419892917924511488263732742742433793956253157632880325129404488600737371298766117825389119686042254532019512279763166104568302287502874976060332982145580024488597741473113644149503673726588965299530706295191637556358650124076001095481798562994438038998589497407498897612824409107941150047416498444909254817920131625615935687394011956182168292768691804073115901570416211615163911245919142056886898755960500159102405281874154485696637209783181196825247823420072566534082107026624399314590608661733740323818365395797874805467152475207227727522962772730330310071295327054729076161428544686113635914719135513646077135188429765640119101529359534779254027281871491244742582109201454978441762234791062440339603824182218936050815322966074830809305991887581874981992965880430898520431749326385041643221899961503165518181555509301848140544821803092599124348171609790216963360261265754398724914811166069577646420378895983495780733537846759009772721531466420560108142021668014355938427608337099189072894483606129209985876767782678127611038988943251176344614771351182207526820655229072682756918321395375587040507747264062932241888982566094236032037388066436127470341811734618508862782823003875405164723370064207032019573224861331433577101529239190505391664346725397251985862735321292756721407490399941937843569047233639115771864089006566347404667989877108123585349846616851086071022381703297862259226123203664330829737914006904412947620392111677193886420877289829181193237903125787745157552275687993015797552564250441314775155738866636676985744510913644756800461886319610000009449061152411277997019302319178110457601400973338363196942774552269389928195825868400274542947602817781909676204373298679412934836153632889929687090279442362891002837575952776309678094702328018277868880766291485830887642489651462034456515259409058770009563096108998753598434381356734107235864974164469606048897895774067355521057057220435212756459867427096628075772921052250018108811798788551873542899165635594437635747613765575861364006424141413349448704984981186758676921250414740726884545214361337256985116615017616589008658477435517712651953081000677072622377337547706446116198272683166822527919617481229597121566230006941369882420067002536796791972609247757682093990784872072762799948427060233293625570411971051564535005343469684160836384790266799331595123579785950108204785856941536061851644770688450586848106061398873254338184816852663404502814708538165072292062044293711275379080084240926449388965342113220504315057378595304198112141690918985692490870381639929585399387437179384723695371238815482233481029755419402003343922420197827612321661031914379705925423046648365605014091965503222103969664160307993014056179033046409119880229112880314697963483105359103453443700878222714830857183534542749449715766198123450774364326035544902210901225242758787239681346643714971493339000224213955510837630737076328823033639106010365993440099317006243438910122298650518344177967340463006318350059600826374750560826331295466827181263246803032289140079952928313435998486234718167015814492133009340268060732241778144953799069316888523057988824957641940904839298218591732509616970444979283528918333702512002839143252539163135938683010102003703044175729384882361265626461961676459113018622936726326507102248273560471963143901675389835783694038817120269759104204311136075730476010261170510760633121430013281364159040794731441139114657769403246100716206090676521969253900211870384217043382103079826074401233078978928912308455690876545415388131175148164793553902703259854470744229088272363192174106128739182420503213719120254622799842853728811465760224321168334235441173964513866145902528233386919854705446591345472427800192233244731001714466909371453086281233401808842651761960604296040657177938131779470229991432483736597525418221053034313426018010182595446287920817812574508694263431980210516650139999067063739084266168377247165019326180930964115875186132654428035326451226158111673366155067764450205781404943654109666927989752935694051616790927245701183987066113366310829235862287486534469879424940148519065418861323420073900764487475672122045517718438941783358192039677259369990906285523741683989101061050198675845118750441472044461738955461315960072922950159423875147903368494266409624033413739023009373860162163900465319384151405774500408003924129137624373615101217045709356496199367060923664776420495280210221388956814760706971316353466277048167330884617069565540905040265861381675192201095182389736290321560228563177532395398128492705232330427493151837659456423086884972822547822152346962147522771316980755320186927396519303022341394741839536499100890970643150005388496792217034834534734426931906521702147848505255778317406870781374280004069711614668076077812341743538624595037540626298296390163743569709293329765656283860312142984249980365309681289284060447591535444323245393377546353135551738604961243419674701039016208419201844344112479635445988289097195898494573162380188217613275080665090419185543283143644565907744840458025216613250444801231487891619145930940897070434328759921539810133356387439300097434992228021158011347398952142776126543254239248213107657368144594969605452517216344097694002210810626416222091179014209120667032431347316756805341473794862702694258890513531168036991897769483911128134260542051301239695114082831146389038819672855344209328267719796631876088179828562058349688913227588413832966470904111114007836571411746944107137205437126559623685355608690473540470620287516495461958251852928671595055903271618350805531047131733574268137924867152363841628555089813999366791929945024686255106234897289168219787358495093118964139284285380520266180032433728379131310203050969097438687629248300605521625224032052229825301822286674200539104075378379229171468467792382837517049100005320887670726721191697413853503051940756332833037112051366519198978569815731656218340299878637843467688886723618865113666561959471287478972156930833512033632053277995590937016811508132922898271614424977552894984902691920731694178261186188399409726985679451467771008463002679165890332389101382765228737257947110654847511818620532179023767658769800958178063223629296919951735221534767680408777000060079201012664454572790082288334752003383330037608533928043514972934555980780258365463015067671321234602020047755724103486712149005728760089021379870530953241807587796650541131572797820840563088353109777673803741503351374827416030934140224437599572396655625487213046444432086661189891141839576618042091641931453372685292926922477063910455666986630828830421564562599311305149001317006745586823715994132153635184246186680910065890432860200801491698602019791517721447833085919590022048910907739390712000372487137130095045799438813022228645473176776547769707141823281453297468531476414728551999454142080055707850368191431362565598865374259811387462489475422972861758412983572495710488583616374706386095216620259536482719435924620256289108889125559828224761217953820376323413651035493181134647659251348950409016758844095747921152733373393355514942630273319909095241375171033827972690112815761499318448044899995335221876556350163767555638266032106865671410289666293960161455772434663519334381872061653425215748844160065288097737886217019860033315532787259129001619784052033942634054475480839525846283149931426490375539495096359445731905395464112318682319658829538192494911025499008380284930344760276147040627638834093359841234315207827956415075642188818769933176604413055856534571083010092931480201484959723134034165982195651950567802377317583932982058889800954988218836321978278516217005435159302519000389959065649651111863311516145624032299058279869435450383839439289955087741388832142643101243747087732327399226175659865941079371146973279336781652813082304466738364825195358146565667399769908238587904796053603641571086139400992127715458472192039539820983910282395692745917079105240010963876873845768173212813599023667877845310211648892400323342680127489331071479772468499487269538404987980193602204914744832190200923400605895541774465152911694853106039943288596675699578392569819366749434580763461534508324611971353907111275486678429152368640959542457885236250739894319111557281186684468076597501750991118611988313431106132411363666808342957764140256263618139839126322750229299351156649725696700818355421377785051693121408593604868168038194717427206242883407593851012193853127651779539663958400656131710733315185572138757585910572775765491702302916575605364118389341617512597464853957634478459363841144119809135874244974367753054070559993395579552494449625874411771518495465342316541547897073121575919469796611822231858420473103303663711227990375172020835125868944129659336179184418928742030261198780322483179379136558985897807425824730998123867711167888356472529339979476555016221974475644581396586948088748350751624334993043195538888963712875072671674348608837361399572994101138088402559350878403490432583631048990105368213585140825409590074649791114292989120624416637931681372344153683206772044534042744504558214002968423376922168259568436790111333478042490466838531019004235709737340567673636619861602141951718813493402300423711223677314813564794512755840203970060262077466190728433172191942435571105004746492591765897832833869495854750608853528714818337396023175549036324997390829201273923602219818464750281961890094681471675431629194329044197768692990057552444040731435530248794557101371574875425220369570779951922410552829591532282272545641988785421175681774295076886886234618895901587711190623438197947863439104361384910222185648026465454800661020801839112304527724792972946050244874330762476232741851213301347904744789150614776586767590335496036170511290077868060068848190373937413489792225152873546801049764853692795052153739551730953617222451963813691695865352541116401956642456262062132328614272062385214520921709829207803559084591752340466725605216032628904827830096673756911180223377505242569602775378019759101967214136201389405900385310282624247659467381826392400421011120408017126691042146537637047072646383536452511422908442147076936226545122230524192912758818445029099814750220749067002692016684318085140143567336566366169625861302552790934784355361956041260258994275049154066658620010715880880369737609514820030171998455328099530668627675070263854170082332527692315309563304548758536626302251378002877770091001284149719068540141175759209421494514289697463214518338791582003201118506554331643269604740411778221214977692686242700511530952071669465330126037659211656977010330150876579035115515579005911309458309856124190321938254549771806652329913337501276428250595681187957165419557343162517937321198329750571839462599609829441140063086307955889821765265498188162535766221161471107388341028902904117120570124514798695548095053343990751192070328639302288404231132139542923420256660827536878814913338064645996854670489015401029138737671478283358353184423756960986027475529814871581542611488756282286647924390997791062859669981513268784946986060391153298360891891720442663009843123988476620902897024689528978687563218616305898439727465423892578067917073249661880910573042730239173091351915340260702718952883449762725115097745616195704190248832617039331341830845050023310920756369003383980214198235391561192892260889804249525086281266428960847588184771761952005560912304111337516329783073424209103074690203087734866638447087205742645533022216015681898062343198746201329759197111751454565985728541740556174789625965825001132590005150569513100479306359390613779332303488999063916888170152048550101339498850202122236106309506855514984437177017985191825376435680790615956249023599836954787564458180935165485149776557340364438578091470078902000254267157444306999595157401024990725439970601987978085110413110153087362226164833375266905079018471729946320886646024840920501534046299452654814167589931273210177596673727643173498599193349048267825293226123331725198748090274836248167127891436006280094924035887347220240681226758925810681977133789273166948116676826612829848627015867909430734133546107393420062279559279979728741366426399759562609916767958296034856001115065016508080919782139512191710127806445637362012877993706233270237102576513060616334597292916380535147183863133105015774810020517689632105506094230859378176324884253695561233763609728104339112930893557732720510075828320700666772328402644656372907450218363401715246208380116604052576314608150273757745647121239457152243762646404127283513383258594058353495500784829923992131555944233557942948396307692250808385864662302553365397964284280394740845228143194440053423694157380495772371363780918590711909083050956476294302096913829078566324547949736730497204933487917488285132173152654098637786451784075881579983729188496752014381996745554127875040114212439682788598421682603687663555007573892776532756932664969002634508744946779746880413723727757939317097735066081158368693342487757949560043746928453699192894976861476421526908799979882983812028564042125653667885088607209776335537934069125952442392941492312356053442074711882185874786447665545825543908335103993859108122383894246563021733558625872698986718501263380554118559521999450358375346467779731601024325554118749033278362406164250738050702854692213023673982581997429902864235453050758434818102696157159625491907263791015649914185634488867826813730240296064389942921051629741503821545148068873951213571853146089898062530958506106555189119686482189127502121852936785485824213193095978004490567602866877434629449981203131435093889792143933118542066259761480326984524782346504596976106639308545450760261174291517273556812072297209872054702020127107811829044130614489944652755104698605873814618201132102380263479034693447970823646486881163922742115382896592761446472405935137307784206909916014913136370969868083175560779901400992514343877367367278710582265189329038636325157726081496846932039569024503951136082122367681187854960284247367806660203938932239405992144149821536491279984577534432860825829547264251334911143488735705223750330130685288435639800724550603678845867736313456480656883380780925976293911611108544089814405631444003022131975839349302452027895960576514100872857930656942146998595556959157280129520971150559064459203024227093547515500924860952892966495191617281875814938204695377598624648270989296072205805510754959355930350096378505751232491487189223193649673229940569305035108702330413100944470188371128408061814792107780913728968798981178154651799759855747160413288462282498402149539650553101733139666719466951759357788773294504474931078071881381068293725828274548844657259749861076877922643414090846068587906692467711486889737629044809493544349787028682076998120267434772386932369344520175780225071721673863433028958928786920697410030822556179405633107223386839263891171094878989536383489209481947894595820248866062897852130118816013682980978314445942242690105878467110922968910713899236252617006995335898360858249027473429551651695968441113770890065645380878575431089571079017907400145846387507887161647000462458455219703560500684247679817539842449995672092878177219559590727356292181502445225594500438267453729405248136575727962336379178753524682368026135924835206045027931672623614667472425958931125023608632387887925158376060920180454999158354058798915637094501965882578246059894702474237175274566492496128545070938403215407133147931744873543688080104123576243479321273361573170681077207188812197399666790543078232415969650853743778871084000190878866589523008439402704105083037209727730617952413539097700130502586557263519263168027619176942494984993433148630972282429650180867847385969297438631105689380416384845378637474451759353566431359667282717487428773490012546523125685019062910215189536203807335967598968054966237538523966086499088407234143373613821031845448485421671708016851419729920441105772509750282089333263651240494173751222695693426280792483075993922246492170897647474919315682106431281449728488778532932030507968284521237645838833617024308725942676883786830356972139941188957276683508466748426134980017475879531568375706587486843748585328933219741597525551922043748702873327647394007705054636258455039285883480103516132475115519599454075153130441264681267646496215159305916425842558938110599155785098265531862075751331003701483215949373596589838554735867188239057011562044211774086857696151634183595106795433197508802076668608755632686531124550330186968217840179067031936192463888860118579240485824000732073378989425442129893115110800772955321043613821429121790885585705413691743640838200551900209420435715815277584073437477726008431004046655765899327670824409534891722759227203015183137640056136329995333533782711905120562536731452969033848936164949738377456195483013175936376879382261647102029217261460362192676952012267471244791187279789572542575472862296691573581963024671869857444491864940693912153330914287745687711473176270110034941691803284741973214952797215690972876098601455436022576325200006487429921078781132092097684305880918392426681814026566529648723427863979033955681860040342690872552383164165783205190014697861012011762860479376233766812414498783908090557763229435931058625571713587603229880607209617773009651221144326845005986313789760667595665508292386860954243850426578824897795057041864909367200816268306197657205346355787677826716485521511454876851248645984155170989992362560424189064202055779971339372207389123489995539396122239611898811167644268451444704807555387769666104772052332546429649444958256568008475977672544002886806596141108909053699161163113914782363813192544893713875105669608207570841626155720865765602572764061084560708019407075413145194220888301976533883390725982861276071869952628414216042319474093095955404010426134241621541161309803838792802811750869401334257053332236946104207892648951733005175378094392009824251664872224114749286931025250699180626228999210701211165405771706750238026700000445772588785083067613321791897298369529749426105370144118955570113485601079041565357125551969627891723981303573399052091897530215407006861619243863206520745353116866086354088115791680499166103207580322236882604963540515680327880258568206084508184742541396948978682926992421597147437458070802887981912869498494282734471267522176909519505039324307532499442037093128460169265980182159053637934857750674152543609109783528384732123152603665955411424790270643254666458174033146752999900279635469108101387900047397425157743575994332489016411862067167524856164717456408917542498428415037070998803696993489800959057522172557755103712361529256743737273708542105395467853070696337379312381697072371177251878224050982266259040028596160400080054188383724190377921051536216327636691439309931010737042958345681634036896141355942555565591965858357319313882542556565266594699853993399033752068486995467844098370066273827559442833212003296815477173295895890216246477430416356292034721271958325853238467257997876499088240422061197974449367845857369577703271346866208486553725501233548214229832936255171573670191464085686281014530586635649405463828593689631355406099720192270784147311241682235585304972146262172676762762952217332712096417557559390916539039016442994224114880489682808570167898357429548257235048779279053003254183288915753626061074343705429265638835480987356235717985194273462285963274273256742202414316746838661831886471655605054004374400576783130164175606296053414535526136998143112097384214623212867631145399368086747819179054236755653998329148553151170230796664614358734650920474655544189115074928756160278428558001665445561852141867909579332723222124192601950514452475971577285551232037964539490390624887222581293942503228146077294413729022602047317390541450055815531569160328484462524180974311589099162803930320374438518662481986371858746518802311206102972778631679733977522282405251158065070826716247125838710668733173658837830558472713334550609622129457343342392995276329563007866606796491420096200428304308419340191440411683110347111286431174109351220961858412941865193839884999083203931877806588166537036844413815747257543234676466963991715562814110756206680285430179397141119294543219986631999744224872895792090116412859803181057885417978865388037634227420034633595495496860903735065845449458000633705098633236457705510569866355445055036815948298644163469225099880349074909380831234080165001124056587617314737284481404759018072231044099422768458626169576045910749696635714312877477347188931363214040852971164017327564529422825790107538829973322245792065528443977945291297715117233032693914257436578502605382371513899776627096067338132617101719705267399596587141344536633331887537557993972874689454582772884972525302645055747120069477361222278044172663858999401340634869129422597454179905444670636501681359052055297362196791260071824569960365241803409683541397633153262431295701129261692576891917037644340627763445411622724817747686368260864640761294638637584817725352256704327270031062412150562436337002559304079353409950813921536022770040247690655786285241250266359124316350599483783641725312617337154304096409848102449067362234706394703694053607136134839471502612890327628287212488949427366087880890155700267200772943414310532544813731466742638975279439422419652591030978685742825443002916520936107100851507931245260369207587414927082036184919205545616772687611711379147445889171396921564909688964435462319872451670041780639444551869151185939994545125351780043418797711750273594898675036567582130103614654710773549513824553369438582209401048605596608584925985469524552326997838724481437570142801850701954017760682389130259752333744385967260977003144761270843353504180406880263405319738015804997941487227422013164147785094829249611409983137833954097857330337343049750474761435561163720603405347032368334447398189009442197719637439911251086262709445009740402516840566090213601281922910251892381697980751635512054748155894369224448227350607124410589725404148820223716720042443791568074434605126194919211223792729601371372061921908346144853724418577026703952092109510523053709945626941999819113654524555402258887380962756212558681298052632934243065123721837154244584933467489024350610842514978681539380186910329017446341260176206378249241524277982775183672960250374332794744919782523934722662514307411066684582632544589105937109194469440575266943618492871804943096144350241593643533762840837302785146449594149118915083807598611180147465254413181046273083688449744715699328114241716468021337649320582200826674288249896302509633987077421475377346575797680204455926625921395567234994282734185649577316102182326530512819122249561798572598750976874195102500183423655397336898917429931165051846123232418446798842660298803792955955860134189990894482110398151035697975127878537129508040623603617346175784884582495862968862758775967430877593927805697398214477012112929835768572017471513025847381566491927781460186158430600114993196030647124074465640335451615475920457882682082472007972861175475183123046054371248840164230084322376233994917027791875931646108447977766761290607228050814766717227347023227918556814955415655656351172113012678504486391844421485269482919516165542018949187378605643240600733487290352024163215943908656841631642135841201547530110891140501100388893003291353127285979892797191502535882785707264905942163572873817230157357976757556590906125355465470584282303250517532879584399000717800438157023672916290400225241190978316013555211305306564022905448020875578662210520926803493077508735587594235874715759051524482304941646879820010879043486606306309337892179825466612159115056649809410346211605682781684398279934993817594218005631903842564562247207513634392979947044110184072330135934163951847148321912118424735245139519137337020081679922134393000625605293730694377254663333974922579444145066125072192729105498875989731204034017507788119886513871643739038042428560667999373799025730717425561209083431182311516867353156836914293381170759941915140596795219364527058535463108951915399893872032682234995307818998593614128865885820004593036241950628029860831771030129663284293577458372969846701266811447725819254261325715057529523078455707685919670912936443875863715643553854941089292477249437471275383576124417251035190441890790666049965334017976421055573808400264972723300938099552706241889291891641445346001811888372913139561089838057137045897728021166298196348079513251322546133605999810604752136699726313010005142758252557199765598366240520324967302523752459292493944823242770976866263321000833435475233635600113617376646334839215109476207589739849460931886007756188917949386285646582391679711740077750180050288456538298730039005696115987678808124459411391385995578520023335489836024991618223330341648984913806227156713778431180764361685156982173307463920217578086872699126309268591785345350000220788127331784290747630221453222956647488064291870650278765425677779853667596530785387055308271838411847865341197045041355572582817811589421712121086770108721642538056137972020444112886308663048160562590051381382842129989766421075446102609187164151862878743101876139697532134956587571479273011851916494010207752821294873613566415348639936529101361874020828926573704694190910766263298540004969506655484347619228828624905962926841540943851714921038496660285526667282963043360795754348954869599536568101820494748084127166677517754152068519657990536488540856210477218979310252422037552899728924961071755631213723317849077273467381861443685558791357991790068166624242603328044903553125201138983968224556511425945364923449275207188816315011937957275593467616864729036811068836928710738770804733767403292709160405947668659718958773620267379985332752348336152596798089182872507855159788163087992864035631892331644147081822503484772301491684801155815118039491028480279913478720771661195101845109896758974622101841405899319331637796523593422183092239363101875843113344651263984577474943610989121637866639471270675399165435072272264924629866065801123735835562365767381013387886844919688557224348971070606568768194613100216549821667598264298817339300061807248730262673964301713928379254405096771586762249943127064644400847113753097587649004386637398974072499995502009522322586939923410715351850816123211335737494168748524606680107713740462605133022200601252975496835875901883978443009637161647919936859754118477788772671141012874346962639794884783384116831313517124691229017296011530348386713704057431016337866634009226579291033037825399116424369043561578610169486752649503959769671061516975569634764921719834754211960404063310713971802530575615314928790163781302045140077230908206842342746270156020460420093307891649446909068395939147973406825823478539999062891352012866500269212981839195037215095736109677271996208104113141560816467883361056015459883603792145679030899862118409364342617411818789167793956256528226158816160823663243138940534011547231943594110467873722865322734233283660726955251781233233301358763936876902563003404639562621640305734065035035592552418301481599704480002841847675138440774792780921581372465503163597585363521052687226889229101508412506993903746497222266932968272505943523820562418473456444149004638366315877827820241793820553076423912201875703281574677368058178364116020080195725907065118647322712774789721693371977148573013506757933609280214078822199992107596387446076178293799456227806078561665709509910280273777155092547423591471605860161915826686964450527813704118719433340696479184447298499116446993353303831083039233080769724319410082893827277906370081934673548212390604270757099817489065827131417689773153894693855539929622299663590491733734128616490081708843176473976018034012556677776595866026397010251159570374138664203990541426554026519461972801787016557843599166436192424327527648414715478691802131315161426205911709052819805892180336878480750679311996856860387314306751366794631210962927161396802979586984252811364915493039343846652297082192909904265686468073303568181400831472273654355584983839119645728233115875850769370624172613028951979737286313539564384242433875699817193523742512469201448530235436613685776233950849173493257085675421753341366302591149541596504253624806180810391834301197446017522151402321395079468365975631048228208095221952042901598091714410594640838757272208799335112400581582901244935161132739152507920758058765206843604857883742036914745050143709320773811998806979137091480471767887784425297714867620813965398657202668372068394702634355468915731487128847938522529654561948408183491416365216632778848759074724897087531969510574684464394553681112824097327628397012273772234226901808645420398804307006258124446153887614049861616309427202317134221855719425907336529555444519492325037558644004537800814192150498300815562731899923742222694768381813155434336124143457856884233705433043539369604489684366225658747614201579286777984270334993240767151164945803934340997567476721085767853279386738144830558068127145193358399088007936966772738125677361915092124843576033758234738482672575316171090680127438801534524342296949990716963445577472178912961126143829306215971968682332261072399577846496152981009583085677177046849134902795698820689307003391856397372554979280116111606412743698433482669072357523337939202059932838202459320502048206204328824281124787185714861516166406973203604149241581901881195314749612569621173050984923683215626575963661806412176230917124947178678345660496839258214234729222064962902923362482300749484891386872566358081993982178377381786804880381956298553926118580037056333366504232817723224309484682379856110624593457057241974237995825965536711351826726536572065639748970768561729084462807499110682488882644658740698438263747170538207820325243591999259097796138967565377821853082838242196169877560399160585509844953183417492922026944172570149910165618706317891581058483571748382843382787492791793283205824077618453956845385266990119097181037855769106485195204827447390315484237867936118083210139691016987088574055270371543541282929653060354354639916178739986702428348680096418883141729287647680431386827230936593640608814316887516548753606630727683429865044005661805857562376631973895564064750981922967619933491021432004848989087631758862627615388989998321426667803881482813309866792488079201564017584199145285563543197902668237587874535376128020504496216361993221832957799739241785459916146650062190242446416579949550114400606041085711001602139914119933696240223204898278834293251152440867395084057332246324356208206610378761515241511158102750492105585864582102667163239734028512458729626297887842614959306785812572532885647760255486318435731421340008394532171498003054656315616756488774721674039997228928532688998894219721093418002138612850120797244382967787228350150445522825628834426953995412915712449441071563782895569748305762376769704663938312780359367847175735777926810626046985297047746253170608543633904915370416281718708903661612953214344789490407029752127121645476675863039921512718485466719562202103642627602290215286676952535208532483485697538864841565614012542408000819218500149258392566290579826901097799520791723636250701937404556095521364851188716993185940084366550537293360265413837678420705459367539714089360168584454439872790859161010106437575194220331029790633075143569033489078685592551403522036135029705646300064248998453796301801956340204471488833719896741271419661480383703024093124244411310163388124817182107864966616307195633540423961329356563200392534724337179639021175413761273118761769656484076570081477509360498613953640343187856909918300647861953178022522711312271982186069729094177532944164395833420809575578446745119958838624287135690014206129585764340190655625100515169076079269302110477640548522608993777905981172982687674500129361965688355155154192011668439490116089303852370846486905033708638637312184877711919293326319186050363536628644332544836330255162578580546045241668074531874437264355696981592208432148176142299629111720167024469403183484602767714059191345825777023594298609541921061676320187967111382948799266595095483817062156089775494853546765126626625443599989377194549088912877674375227267978433893667356266168014466338981382153450117495279458897947016809033588586855895953769410281669036578582209113073476513074774656028652255659878561926248930341147690488776957125860981439954400777895005724508656335428040354559218723345771360583309785530295220230781555247617162872742712139222092023103350886905893252093671227280771314963787237759335319480552465868860622620784954368410417940410667668050231348394575229041274261807475477522026596937832125440521318518249850883451045514280334443345352686905919357186162198406507329812699369626908358744231875821811813894954920695676914657620196227035917625558886624385272978689889912832684225923061597068502597813495637193482037546127385635504467311768863980324767865721725320687087108854845176868113215887656437223816450055558610743824065679361521021730968286800013798556885969980736194403005959599878651647264102969574697228342721127337948350381533221439851678416703512930934621856911428224233742070213161747201468466738432952128864507164959906443805293853914787118084656330616834271172711793602471203353347760053050564145762936195074087185138490369788302790066793293332796479502182869167348459875434843567777607474391806094537181538192697323225936333596079227121760306318112135420594183534765585224066264001211487444667386347129228356430208348412145751037417639283869391108532723814699137957855593251203187080049456927470777865993545472288640711829430397661605582954475425806219251694348865925921165639346846216649778700929946083922853940776948682973710327317516987001295176111240597819951022674448973027248546745737535505576228801155032396446806200307575823657900673168704982187831416403084914043982059321909093618807223283229533123373315399530351021077245869355822680148024820620960387810126644934615210512206512249754044426656128838235870789964947710941080955553363262504941777463814669877670001738275479025168162130261329395246182386845360196833732294471445422810752887949919862578735982091830519953225707733890585961028085849972622712933589920587157589454128058189310155940178615711342917845664455132390763694050114668615116760027417202612825110923418661784085517764710047727685304217299996167731003657169117561279664239230970292605759497304858147799091427466510750928993134528043570630851606156815604284824537947460534488033876364662069996723708097747029082834813806963881361438779927559048216192251600545638015880383062691829722789327094614057514238212810498482757878074582200065037651452775968294047585158939539808649404754892610614622750949108069522047688055190599749681378019659137258251790106758478830336201987298993117837787323333309667209261866819995413651895346323756084483962619404534105829633500238197799894014701536225576584980423211886559200522881671620649657918648440438842096382854351129484121003661335157834605585033801944178130327201383271874360418871420229584103005722859225565425958827194895927637020748157130279819638019818516381191928796229738028290081537900250583690014344530479698803651626726712996594532539595290826473329800818543498814577791082554838906555060447727811365842149998740119991673077130822295405812135478763226134354587653157895012740924815336806950641322626145111486682173961037735834073505615392194133833945976716855990546144556677171132805546491865880464295070388574511976084588343796387699644366860829629771694057277527889256588576010824400853371011641593014951865890517426831260176923707189904790188892256796638678636206211056361118494240125487727420796093902052430136291920379251274981566357796057905394398484824483319433013086003994099277117745682942723441307628496251698269992123462826688799787633324905583273364402309881417833494077335549686986741285718709106023174587489825832701206035332527731787179183030554705849601912706170047007461593552188106970589208028807754433904459296151292984036559514649515464352572690086196055248255035170029347957300860255137770595092877574779255515608148443090846968118684381507279996738040129752515495417829810284985659459186872379608731711872812564752360487483940504859903053750489495063979100613392721897831015614409221933297213589406835847044024807217323971682002518546917698338780602905397992081250403448001413842769382552982378389389572856888737954466536791102479729371830354326663238114881426743484358235373727009823403386866883644708617693991236410602860599926457861977768609875574817618049443158779779191432424688034612454407584957362130128747768858477578796513569476791944908243776542471393825261043259933583058038272768677443137016428872255525526624607865383755589123441205531511991402265491277704174404843066185066500035621214207187285307531017379477325028238729059183755379553130268972202988171345848681930312190668578801872825430416395611577635577192458825600451126351799435980117114434909397631151544858046205932390163656901713978950343128184144780393734520131833730681781675173742937437635603815149586200796614173743551048079919332475925623232601173420175517987446165332090513239362941279748276076076698694713735333858616186903826114343158296329661280685194445242941710254058639933379210714063560806451949103177958045162551541610326581959522420316469535108914408923281506167031917634217654665612632537429967855628121944698210608799835818008657785077876733296881104114229553329422187454690945660363527697767536166109662587426417607701267745188011558278043010110189340275955525885476190197541221031187589094265405083597700044576368224441513084368412833784591952469857554534694510640464969778522613808499343613544712634387854364520015642740523590644244179753086436030913592468648502105317480200560836405896760303802288896902904290552856936774391111879451235363732522369364811701797460799491193604178755234232624786174928950578027778096272771175104559032767544776878608325688704005446758209245751677998760133421717833247032824423517795378032635345776819086949187148425417166680917012857301896479296866610230258627404696021260237024148272367345043669623644209762729681130466934971531820275381699381668915078665823530032649646506287612595362586527210251285469049275767655242889294058072307396438791510188686538187926469248160622410163894933890870214728714121978434490765048608692613401183063457735262264127569245988338595037784013109635634434808579769588122903553533701054345547999313087777617807827472458356679058706020399644942060390157185653074769320230359913177229204975461424868034760364602410635566800081953476599652293721410348075056843111736849291440161145759697114725841549360093575064649122955420154607104963117296449226123596581093306074834543964645669325237308504685623895718743917988433374023271881237032897237515315917695062457688096872850163397249243001589576097288945573550952543924505821776684877799213286308063965614552366555096641369219098367459165449232706145689995579871700230016580066942745037979771938623255134931533891502559546675880549644405707305339422040712934796558959890830650037922110677470796956979878749072843656509546789999517499860237104820436542257484287188928032644532802785659724491771006406366609073715524499625723752129158707310463695081543411476599716272933653809302217866157992736307250778038164717048505118036194403766209330380970999426999905151393177550010300221431855303871130938010198509426614517602779567258727472261641122411588427841608059626027166206829772328290020548732355197755987863338709388243595890706863648555974957680910452720176449714445477072018074984737626387807658304259333990313273246552182711193533265499922055106447432953999093369368272405897433689833029034700280223310401256852689903767617661407239212501073768118738752322877333094929990651621328561700955888434068613273348521412301805951724952834962915633748330150618958222277002149381036994157206055066724626576317991147865028350102945173523205987534368978194450458655226948415076838353570969500667710604296866432731591432120482569042017625477855426026259446538475193505613858135452370036120126270008160621627068152009716106025714502201898285638702027057588824631071899093133293309697380078359557311955773354832758759516089080966450371227714620628743648247320810608524462556410667256662088165145946083882982702248270490590055172159557265490662284006676208143741317496592368472787757903071129372216241888516868032745846921587993942085771720417113873006353204238475064658136775650189621314638964684928915220230520747247605611783938116892455406914793716749577460902041296595582848904600323434226494923153333415473915414010959243577592261393184956395548140451540564482040705082478127202119232613530951256283836165059887759594423152546698226024228578771008141683070857209265021974363849710958973219080217604010869706554338354056700647117078537395904470320996603278061730563815550167073044747453080420564536018385450052523489174888910623906148988321469849507617773542983326772240135729418336158024473219327303747217483129258220214668146647365218832848080122609862765125427357650594876049509515048831754746435639332198483433502000515942306743393762087675678742231680156677274470858069505704327979209547914046012681144786847069992470268576923453015004455035804809738416283188287852415210615833460031431093254437671519473365286539741797956148500310834142908910456630084979215497460897612918992001730689219379367820756711193553935822451530993163386699050246872433929134942443116690304470817695086869226157082479489612665643762370105570297712633193060505015412694626398117019094717854730056148857129879840247337677742417198678276579232514037606301052831804025480428197531652087201543070378792926225781305822241268002627781550975813809296338198625340527188579427609006956311675638438976529622020944745814627987793502577071371637270310541985900071124496035742268218850809193348958772517934833212150574770807089318621558429772266609528895492483733952697238392677045828669340974171269808355627501215819886073313547754041129843738821069324095209729230257587801196020472415038749072303490845577051552366537855726132060286699067427851144636513400162268732036946810307076307912763658878181645850670644864507968868612881424382945670243936764728590490012214740644120148995230724405757659320845300388364409372144450773900439684515536011452197425718860666086253240731589813333998852671753488475403050681599660442098617109651158946677220860571854674633351822714356872524869643575500317550976976498643747498227188774705752143514011908457094775901135777108801309642266755036058378489775236600978312429817927670973151190393812526362370526728604275867366822493185534727327404455173194461135022268547105022484458884399023581824978815082295386620050545020289822728327997750128391828305281786482458711410731500241398486599911325740150459769226225484520143394279603871883837075921942186664326173913781513056932266044689750965938253239301822479635299233847486925496979319879036245140566727933846477281774567717172489621772223791967661149114026980546590024886442544707577290691980800976494261547873169063227455124897928159530840227817611658787733315551186941436794677251967301477110981846603421119746242233397052324788219931842281856310991867718673342225231010062579064426677561186108584567892514292626389383190155651818866213004635016045680878676925750700563576920960130648144481537966552921541939764877386686061762126944372562315038012125843476647553181386772872264412059191925310401234102762815076289400107986874049479528999484735886700631572879729057513302908565899744473073114078661901811029020070570778677816309911855354405363119139637066705476978253032088981238612308554842727078430506909917420480843297622911158042185543301616844891043809649335077102635408541125905142863386939335350969380706310528027486992074463124530932743561785920943250943588977408222133864536915264918301210711317696053345805971323888886355515967191557679313097504659803494006445757457205583933899615199679876470572939364826591019532592132167692980432371996122948932611566705308164401468518224954521033668710515644455240489777698168045535701442266579404675812331377367195896215023858667593154748093290988073465523231237629760652000260641985649805602332223615269387628299569190707703141130252632903309505654636468367656251851592172567401920551478272778476917126959456661146919167967238617098756386329798414584978444483672506586966772414581497094661072506453592410176196450825870179783000127882484246387141522927587392646176011747892049606480476875113755238221060873830542014382439904105033234997924914762224122306138534573165319021696895991845079097375487379428140000262681268953517538429487092439476259425192868209622522107260410111700712331291060494780182892464535992283274616142620450877877551198402905610426598626518833225035565602810354521113968402820982903318093463709722791433593864110502526905746879669584506896971586315392633483515145673638445987787872827753708285950725694250560899366540292389758594269952219207836703808732668459903272506798590404192316918582160824987932672889820437134392326549850765507903682603220585623913755459132474353668918278395904753327840391766503493831393232059339738816290879591780843189834102070498466186592084595962682477560022458284546813341606272109712300622784859153337694259897498323330736803606035553425988856441590613384971173012088834057377885821974184979263968417409778470654248728762144872491614428418853537896969920997326572271825542882189397260986448350015809915938035261476373059285407749368384967864088533459227025337533294935011092299031898999246748326722299478765851593776228558025905125508621307308933432788572597619559198079307321081420106587354795025849278768831097158131939586401210719920790404772984988023738174863424926571017327593478539639988333984442523830542388688682753290272469849607463480929171366009397091323692612722950750014983596932820750333310170296938266321754319253246652951539047327929713338996893669918728080186730738544306504923088312689472578972472217386051891128496082395904349589974967432286417872449823197788105152610256952355780010333342888702937054293715165228624179304745204919588216674511166088202262219276298703566374678231874450246955785952766577736561673914554007367856656965580719631991513629173704480757379569063477581400013695081469594301304201681823530946122141546545337019497578072814456387509014574335346385070623825940536443634609763092823290589667361568521687489788120779350529071936108749943267891801640124972218812592038805373328816126639470183888817533133887186198824877096995251109844001174439296877976726578659012059005863146980253523693423082167980383664248826199779792934324227249669158618460010058499596818578142396172506070897120456523005247256326166862079643485134375063367791646996853473607688276966526616840443454063673325529767712175004698561691529210325013464651355350529223619315645026665686007594211472507025654730816013351402215329333790214290414943465260235053677092759919469514874777771919589844842945403221613963342503931674338071473794339904148568681036418137894022070856085992581568930105057080518000196890688558515421806827238800928756161125164681583004888637978892296868183101578558646932769987616270266062936104066977009847369567625971369836768525418163012598350358780965870959946891385974477638471876243981584699728494767100026065247768212550138954179705415656217060576801397455204392540403547148098249917569650937838654621348366775487417423459088235076576568709273511012628583233579048899998153832564727629407512528534682358234574589836182153317110774500869447475216255837396031952599000650802188001593147187115836009191709384310969963384653431798083879520676680532726789327135515369795202904948721043775002764636319363270686631382281440393528348342640999937360764357510295503171214558025186108852268411924658571352109713170322686205590537974921775261638210193200407526285934123116456875693809477068088016595527992619600197623929444581792592395900032330908860252449612833999543389613405936576152120454076466152253512908270621985863970928812960929419048666964012772197022738756199504181176852418040597886403610271967998108073463949000411240622824982811861239225084922966730927944292294194803496453963221395201006898355827332066273751425804098734097298527372085757276832632030766115284373779191810818782190541137117649002721530417697084986223404399618507640261299314930736903641716858671923367136069438485256866234507390394311045091501689320703606449942785648619868803283348663692055516410412012096761842477003347704058498479531841074067027095100086109416549097996312257272098888982070028676280467316689668804337212204494153674006478280470950839915882887224526793534506299313722081780264794485385415560047634346642871337938041901283350593520941904005067664836077949277573264922687490915624541144602874021313515179877592609853764905859137234029254486114469728369380249091617181953912079413536401730822949454562903610321410898168869313700837463771496840954623877034940167465695580420476738988888448413148355390520648192933766600498932916661768218159324239642691031881165364427482929630966302989839022973414526065781973078177069816010155348039236719844029688201886001223478052833340934625375647301371355777132817540338681322787331219510694120131480470308483867785196299525698939373967843593255303886803096536056550988826740139265355059694065157471550738997452535975123632503268429077118188608427252897842796470251257678919584453420808537741659135272321754272100981187201148531348596877375216364426090903854440672861463022767143810814628012780817476859507414757254500138469389950191887117711923933454107881173916716217995021326981914703972825790635015474621565977127269703581370246475786859945860359298338298019614795722881190508597101805233971865949899902255084543355215574512163124697384681299156450506012592762506999715142705909771274590108046311986385313640936653746310790313456886400208279746474532237549336034779472330889531733874714776025564019274767478896787629792645178631993872587268962519438993314976692072706559540129048571288016279623054481784552988108292219004988055205474255943028533447630519903854492885574429573587010397120415232643997265513777332918046184239730470735763299712660472296736648341810302246719888807233825636111406868496354133881142163621816021347673701480917125610869355134194847967300307556419202157251885919297621289564864095320254976547783489743726568700752642228084380435493353294759907451137236273820742888858167780004695707677625926553356769113280868834559236432816028338042380824674107500326251559080183702288808107874377654098698242424707272955345222720735898197145167798558206279268132119032905705921063890554323270893825285143600234602005844661771086450353576958545307644854206277776186536717719763103590289559463617163846515113173733104297797161370976090982641187122058286529901041168325818567256189905971305598736148102876500360844853066699340782309315454757000516927034189100605335223047696891168936673073575256563497209663864760870381295722162042067688695409023737541309608321956563127181543241327883387759558914834844395027669033568382259152077532737546734268326054738244659010244738843138969563790199268124030981464459825566256453198790350065488165357641690404811570290051838822928787087373185378676724846188832984611510693445983855136188915523188751462807664702716627618786810021582934374955832358622782411095106841069552677581663436062332990058991151022810649248068500407018173799353938616675271131662855605777359794625903389050573190808284886015828559738285823441504786833477836673328208177553056758826058213138114375348614323596556031440094060102180880380219459305756236270240983781324966233130072732155171743947352429527618078993802279858003893364646451580166677117603481770127272410709710245724988654431353200994958217309319410708321812807225702285491393068889425409963291725667631655604516661065645966167158016132619734371422117678648649710878583320285498140656196272809674841840878377432274886056814075998033781541372999420706077933202864378576900410911287358190394976581440848957347441065637147110845062914877726336370232851060829404688738424443620598961048253763024765396451234693637848114143518762957857197276161136146291962878624892847432912719097277456809076499424119161336758742909394397050521110737140251951723269857405516924704691909934848998347912115243304173486634445924560754823104007875846805798098020850232999198275550034583260436494638840972020398677732701772167877676682267912637991305967038415762387677010393385769276259570970746404080852704785206196954117854405209946541804674289820644832222037967240919244777932395659269290227573339798225831576316572551939446292133472106959666216823589935043344298836667727992255025025354035548394170738437506722757859670967271686451855860758967341267111711144240386074632459385858906761602463205016649665238947082070288289023789362556848265772231738058809553983750286992978352963759505559001193131808345560612032709721554507377083610566574280805659547739854912630625950682205364069002120135423827668365370150547238750962539585178330832417179797788415512057428218442185327798584041041746666680944185788325293500773977597419278425165928278788455848357373555284569738410430774666991835335820150494964212380918499397197680745923434183915711921117840471390982000362675921351161908081302695433923026023427722351660201211678903677562883645903768589359321747892871570519299650000687750507017445234357202429161421928634670267810205821122267374844964334122576519681856434505266946652563343543360495342119168431237477984541379962251752520251143862321244119793961792509510555502755399496504145321942359617932892116802159730931737920328263819837231912750695661943727079790363221973941651789065013553045318663237969143570992465655898045392436769706359679309192425435962991023658505419273466692635326790120700408277812317608890212107772175535719557670292602520720016608928707607190609140146406362161823332319480698868908599073449780025793819459716666852212238020798296733997932067499383044437535110526310553280805683098785867119372232255796169654745756890821333303434977075583799853485883803044758014708640497735862003107962478674751364603070769833957957502805760244772675267991354244623643742003755671618432349709182973994527877064852736563083694049495762422584128826648490207078901729391230334345570956168644286982176375243655371808111912060351539471047405548243036820485118386599353251865961030442623841380140856431406634516096275429186128635125581003576559906398387696047573382593017519513247782025809664121106942199628781548870537739282397628909906080416556964145839076611491181872279734020279336189736580348034253796406038227756547682325947524296083257371504172357926645763082733829606010320009126997130356276337717627336680010899902992875949424062285512319094044398264397391476199886082720027767354221475640825550029435449689166032939853948545881202535945315207688568759030409089185584586344215062221615543497540949010556064968016768054552361484458075140266669239628139683636193302160312532376344659413224596904112174324088554804397468930584692339921432683031754368330791133369141008555669984419792432229505475352918185241569930855112238154864055333134720342279588155619881216379952721481737839003448579970857482690862078157769911663781536335677666314453818940105579022091956743620581596681598332054879663735199368582946008291906409329370850974357298295467572912095060310826518518277729822941976894007362955796238331364672548105624704732210629827301696828992642582759893426288756285068442364886934939293407109697524729753446392994083963959588626663326245439257596936163537253936680689572837865787965789273617306042006618858999048063618910069669728825574442913165044725158052513864953605029578328812064790578700079909387437809161573560939625959444506399187839214243225440583113061576053430371266452254418966913495964826072905710084368980887889792740544846987961300078951395511561455525217884723854524159706011658388197838989596539319200725810868417298440128409852279234741961931558233717529718291665638912723101444683416328229123430393718275610209643232798895519989892870498010080957663434803352202388851487157117879792096751996844497960142075917615308453758022423639342037149158252191132061267090995963756071816437774396482730782361571885744119972995421756615725672634861975559138060813933039771844495149701602301412186867017398165919337483220787600918281999806379649106769849050707407727768998466341157366189309595536684031986825125358880253267798082009674767332302848284438684301730809131411629187521774986802891406943906525073947318176717929001042468661816500979996925581022072319676563351287036423252711243129519955243729205612915547065971921796265576885410059084706383265674509830168828402749225614101137202240255585209041633011302998968374889762887912385856693804252414514224359124178988740368482896571738123357643039983395615457834861191189201614662679309028836947541052322368192611425917331367481883334472890679651704593718274414783348549191423684828212764916171321795426184700954357195630522885469464938359116653084130822673702300344552309812564798372499399176074281850088284281293198064939557430711165845153635229896463554672045763515155759057757739196826267911784596696446443205427121231209963178522316366008726571958449404555460830401066839054002589007317931418608735903873589048754867048632750984799698394320413166905552807839551500034245034537969912667900417213933912230648854507048374321655336698421211066811337910322275951121254839055004160816937505589405829547397649953306099162560261616392347194324117865603813728826842188286319031388031483743021753070737007567195225042247800276117965483594400383883473119675311625439270507785462030374855794749945401432801684970226770059308838929943314054490787951307810910908302097792830560663430639957372798103796845934566555200041925480413340910255872503338395018198340862323301852566736696035855074407107200626047445454992711812480915835073830857938933092982629401752836225758561293405099059782659580388461794231522123581085530452274038552056593883742743992242728639343170771243662630745142942046576573130866139168155647094696148453987594109128618192046857132616713349736271987455134680291293407073488734226677438132846646744336805816812120359778017343188324204642723597022236641411279691990312713646521138845814250203003816655324247536373898680780760380254033235035891701976305816907146948386525831149606837215054794776280611832421874203879077410781158457952811200774030031770744581370192069814493961038728267217605714921586095555615631858686535621117651237011015896210969883172050124138232766712636940217737437324730576800999019220211313145665402181594252419961962890956790662031419830074328795503050732470986566304736917605044562271390667141513642269417097532308629871510023379593714982700412308634928427589701318803592566225622895187761023944600497076735891660346182883861825967528704039568313557293819833801464469566867556426174743601106119130084953120153991333070896975444025542564570884834040984795372965918444590007108576409021111172587516569562382518228694520542103821158048414654931976569156925588442530480936681780361502477646735298212103485466793821542034893056996752939631660424103077531998375250598082649596328451250867578473443181770052782656547079107097718920027783668539575364156088372771991461028954738817688265949584939084847590612964155254597251746576673998705933815531931736863897302552987437819692128857387285203680452007598010756275840650547742971872051844151858999474889792845844156821528754146755762483107710793528208189905505816996429466364940631678706235891897638210046745736629160864606991476846764889948946292481480635142339975643195364605805618869527993695265430397738648376713997068112029245282415376533797495287532734478395846074093076327327284754245719046016427040445212310497222482278811967509590408508113173200268671694409563198685122360495349140195858863395749240061754901846958193752388761833575674932568733235539082320082250985025966318995875406221434278793570252798873252472189262392555466397113373766525134443013852644167106377877476385817715426935748456219356521846607525308009745602275156075028873256263257688494725620138978404281285637411893229006108001737855611762647888031800712853284528286534059672088115675750570388696645049825238973436735169850724885419232968597486007506793905247001555671471986954736135906993762384592651493803872018203376759604874694478946523545703042152870131723561211017285550812391808286297270294056497288031104406529085081190564139967371510185499133624880808288801567189522991562400991400903763972526881230246145567645186440204956882108060347034802979657636180618178793259103448801491481683632701031756883065153784069947882188566051344316966547847924350302210406026513038754588324888871306950975262566170884361530279660603255375386464193371870983052274939147082031960562784871415145261724265429184671244788059145365597896745531675958406112161453731875114816291236033605203961815565591793389502983526201546281641815215883939170385517519305047679095061649780459604966358464640245540232314377312877835385361167500409373777449287269793383499122179920447443312004461101038693295887294836236609727830687680651016574464381339851100003270458702167996510721424582423015978486105103167643575294925286145118225083255993451169463388124865907020512070935335162690755082473473716206657996960960028816735348366953148855974568123396242858997479133927200111277998053907129824841299979231906847168431601408412539619839502820623812210388533987915176769935192016613409100816674626075045979093707827444349675146130829268344934363853179603187305086818250409387821428258238121081054256770261309513485373826115424572069516129946533383178727266964547817369781275631690973117820766533785346736356660578612486443218856093014483991409124169786177499588378812344177940219106916406778975412349461889109283109746225613450970629555143759954667052199701879666575265894207178471712123843741784094807284099741474005369440352819267719361509129947592261564886320389104332032154573181985622108577110803440853155403793336937786756162547235687065734941878563705109677913158809666774901690300882960076196102180046583799291117163542973552709003182454129971685410910026809676768715295325679753668512619010376544758515227217667156806913400890035410031509001323398471383682799638085930675678286291543377188109217306194529760342969482538496371369471594602854605710275293016083330614034511857173966328306121756731914459627772784426438094889277337525076296268497861430937095423940515465742632357122691278988904979375877252845134063619932368481311353229342490000013797290856674867929316014474450938921906173108988168067589484536340504089740295094924591753509888149729781517389217061994083515167341365070098540010303655888451623991091831849648767849818836596902376073070076780102571564725829397319779956280038100065724645337293131508421800401420004412532742538545875348012716314579714117625124853099105531885309231680827776064761385761970742245396024050166111391846609633257778843993465384649182279579343988283555260210232484575874016436229748832625125026017201778094488607123875702566207930387731395903278535432693076075318428138201737270595111788646696312023156352839678101678153360906962262485221997947723244947541906536130731825112062462894575079641131562615677531987335322635610336234874799656463201908237603304673085125634596742660989455814016142425152249037715121082774006212936532870668061696560459982888620916879683429957531458662205662621213681496298349784767886030026337866485602074575132529377797463338115890879118101233817183329694403511307803256522462132555867799162701357657603536541955090700410868950245799794770326240451181250285043959292474903948743754435388997551439015100432669675948947625488911837615786933421726585093066638131785345364655266574690730554874836618676947112791050642680034369795687079393823149500374822386052892223037442651776783442576130231838117781067281315951182128229476363604418403562658326820141743276985090627033045727018364038658848433981488117757779463675564498007430062792326877616477558142250323682584275768297391905373053914642651678778529257954510499044671545080572358834054623961427263340248420060839859200186694513862878578952166284058706461332507199715707454773402072282806510218242271388423400760277163004014428833394019939116794919562787258728662652688892215299991199869203559161692368516454189589078276341422947284619372665276094985741576963697792700557090426538993187717739639900677896502216144951643804336524407913876181486771152183753776561785995558336541669253329248069474664232400587721431189442648982394514347003674528590341987483785449600541496676467689494767483917422281904521492799754466617880923959962380060372708480665798587044985413757937766017195644314594406082478444414950763663795911207587512471549532019709312910395165666764892096732360056638435561700718878131188875087634340974094573883001737737045025849225895205250640923711388862272033981633650511515583465536579805022148337285779458881848567649581513629184315901299564371419214474975621310787525260106088996766063649018813760987368312385242763565423335369310761796327912802192558279345139469961874760746758928824726828962103128460583970716022105422607376739278596250752387779088715021269657716242859110217462106747778373955318972588064572590767315528031874886255502367022716046351485399006817852548494295795056602490897056116975305022404051497630967151549157199480083927499375256077624688706911611929451831550775508855192868588672864126810038126348354631936546321890636381481566595634956896344981369478638068755259245971144068846712920536041730244907311220400391229083800465288769917282294570706286557785165915554184067282528888836493863471548641074663841505900164046555296932295405695277017794403864197886432823405947219147292999195126083220703827169895672786365855350665110166699797739805436921326474276457964329116629402728055516946955217932568465872394525886530920029641055943631444122696956996362302710889659629755229104346472800691419023322852474349616685393093109650724911126203427030169555369358578151717060112533349404211592896782244044654454457530940102165150129181256512648003133279962396149955933353307476115407756896668439588585244419507702623958522273036966649876196379732266232123277088822142347634631297542622406636158843907999757481063263805233853617992349325855389758907859122517813260375589758008904636464503616280757728268223351332035197306146923444059843615088308720499527198111490781206072388610267163004597332302502437567122847938125531295133899309838350335328511543458912928195927269721054289889189979940939734589607684248735870395839378960327766560647173191804283590507667612797770612789383111766684605442076064260881438165864883392436123530321471344346456185662011058414503077555234421044455873960171660582810154423465252949242407106964778952150293300701558132872332440100863710644631823167739119888648778099744444564828058723867926138857817156095744980554836775074262648708672749034678910897152927243724033019552401861776510671053962389762269668631043635114725153681034270730839790058159779968966415114966562603149437206929486295107023476842655838529351802873968224964864690630781030039687880397919127498750694498408859293380982670987689353841246459152212803632589549104094101005232847896593398361019090328077465095604864516790302556000527991310620177809347908691973421892324864131675958904417284419868360159872820108653984765657311720725760321163549525040340662387386521198746587239313279222132187394084454579940751671169309449311020976172468729807673033581024404759095694114631640973091504229063832920492779871766912391506585032778248736918478675448215205351149406374128702569922108209371463925459752271872463644150523971927652138747602523371051404108021864657846654661061280761805844812490310274514195605081412407958836581763694766797548774583311222298248448401367513125959041652524518798090144660665340918026514653411274717920644567253825997332575082141960842023804609401478569738097106980796138303200121720461812717862640710851930088769096905393083312701510316313737041406564526552961874285838034528359666534826457058550077973690090898081676694821367529599929709264481345384494582486971459084220924549804904374554795266547983952142301702144683853212785106629337421909620319244439820757784817460761078617265414836907645924358920895016500785068656586253219772211805759288550510865453539523971809545243269684232768271627707217470407577601252135325461412039252891363864772773180974858019283100317739679727121422061815520793541364518902009922334159063101303437487666206024739906336286984492443640537290533018379911567355297423494769062388018472474072426382247858740171165303032693812588438007942898548614558125335265515125882743442965374136047295103967924660110666374656675470574645454274925326508960596654346022384609438523547319080782759655112859395621462348901268182451172858232684260747507190522226137453324293808162138567442367002632481246799280464437991643502945457631461251038663563976090723691956377209634927348640463231175234857620508214821806121810551654671476621908506993674959342358886164989195491159870826814271891162247868268863626262205160902711179626096299957076687817627221602319285847798296293514927901445432003148562191145265338802736071967664663195230983426922548077396187050691616060189776588818702030508890068768006087317058273588924769702214772874719732787240283056152285952221113040930719453731845836965909423855096851227195606783311470373597878266027059487355118723213824804571574559218811785562153879689923288532799700914884760960569840276521496276655604603551159477398826518480426767873326680535616372940947597600896500173126578281303231567639695852346584242424581130611350159794432859729492910509898235682645596458313636667071516626553315123440598801205730937815035277539853652726441599371839120483876152816100166644261009528231045770193900458013301106134984584788899844960037669186315506425591090194756368619577167126144831329080013845202918823002994303561502122430823004929531502653548439089544094517670393689169873280548203747824390532495270827120277111348893207900531028927540057919773675727136567278295221272906527105937175951501619749737999976607525486563282107614735759493341386369589845926204388110434305309085714668949098426615838311510667213843726378729284629119720419485209339988408843144838395172988518346651973222831410198534858056779221281556322030584284471808738548333445067536742897038752523317014675852855482274363155690043657938381632535430425676589681289276355188044912402751622000094803191765241310749025821495629414664219008955390928520837066526200155705145849391705153010423459455191776732426619922294482677861462139319544723362109092960639837208918334114241206884392559533055054959265436007290616962621218913924807806863024882298212380024495091247031781669608737951482518763146835649128646415538878728046835529964132487067685853948821501340248018747944743114960381722869680803067347479257332727236659819956712626749651588903954588475376154123216236799864906821372834244806219364169734646542739820602359899036693849409073089378258989413747544877776009943846832890843399066692720023213681610948595208923022723515381752287271575570354584233484615215553763802371260054145549853344643233754994638886718295118150575847281064330411747442460190571127928373322108837341840537830647476896917532802700968968556839193630396790820860555470314330997910791868038906433190555101961773566263516582496187076147788838496231274090294101679440716607670639494657140807352148151931106852492249561618613320872035319431566694076799268372586317562886187887283638344984242308959705658860541265513958228496627024320443727773151234087656353666902801398800379218949448699142752480365571204527781098099740982975737345279336411010929552510823550847707989339097545238968911789941462682321970579146697235831075752013902566768036027937915115604410474942273386746660321162643621351885345368439954798493439318234265541805885703284341276022935933888040612094737754964095929133707695022768539465281360616022938544518690445583411562422706446502410941357282339241797638452536218697131884861018100478572186966953262421616421099436361410679090897786880468018211700830903848924098416160868665008851470095738150364878444969815101135174440398617896456138307251551969701868021696685701715272365136830024699850657038517406567712141925182273326487586746397858923859896084784581346965670985032707364917326811057812334775289307584904562794150190972116769181934717113318811813271555839669749987534660366677871459586151607335670195722997652925385917719107736364175336287713048204964573858232908449394126155441490250823200968765271373237255348421844890840649243037484161151030724201385048880063497770516945306836945532445134571845270076892309402349388622559573104754257931817815648768753108931677815337522923670586599589690935904846413303403543057781301776300342436523470172102519164554976516305833812283865919990180796981712387165025622348619539271578637798098462591843178856212705820637521196732047971082681908798575218518213627828363469356560944717443460012167784591963933191224572028194153010842762511928337323840202092591388646163252259048131840260070642819015333088227711770370601823067875542496713448788771330003747367266355138219231671485518228971399444973060030035686390668046522074681888439424108537881688628611125954536474556988934014860654554749830054727049479051980653308835396008769345166826850686838512853374102013994386867660683128183242550783150623042807841466214815984605542164672384975291862992351009857734825149587712480526982643189769867214512881028090381940943933529214169816009478603471726525191818973925345891756069868212700889499971670342286689205956766537762485807002456196524395539683366432613555550147479967298948226151651983091642595831569565478877974835992191483058274798039660870384898367626599457568933103315104426877068452500871287783904952353074886066471523250974625505553564361924895443008411235904060231368210555152584674769154020806176489720421778298446267391370579114658771408337191740742080209455288839332366837176655941756901560223645930217716140942300191302665715579937372326675510977907898611415130010672371620733451983060688096131144019074075098117775060525604033507300553518733076014962233291945945086226760839329030477668535759370618097778239313753890930953559984473579148818829261133292016095524919152739408053670616546932777412096860003997093015993891498068341807100182435196492031082480502835292400779285903037013069014944092113866727007240566488084427697893828898419433108354322477250274025991110747894705506042518689252826112643502452343473172896606794204649320269383845807054719537897891797999520041683831562161442263620369763313989081479874290022398843536879565898362297543624216855002127877135581212132151263594612670244810364179523628707415441644079187544923613949655162348088308883792269999092902661975579093079443014192193285564780871160166725928542643327482528504537004581899885820133822020045900807171704124751717447819467224492627948791794775914523260540375197343081430675969729029591237293706285468665593580804617285572043692534473717023120678806893090372877621770082960890832898527487337215521770727177001301291270379717003897457980634203832315954641919753940758747241018088407751444689973837529266878065078390300318404754699051177386516293964449845575930553144697603258354542986587805566141869015925177209754665072248161551478513936984106298208887690046854482609371485863530243564294150120782520347523710927592341770620720106340388238945752703706141727061061696254371450951349861596315758472209724386816393156736797616687386064752795087617785293812444946628890957616534818591608746808896903968374399209451587477738129877034738737354405739586208764708253852677457318465337413606324845622568542983736011348049047462322789707611341985480083808399874289886661796664645330410941993978126826909862882704650887811293460220948744585375265092481846500945277672503918103556832413775650316018929118943621349731558753954616779236534730136965918650347658551561918859539553393648173033864431923274010030946072163564975377137092302842991650594970385061685163014602519993776589533324636863839288635083469139464713423480655998915240537574428671733236218795818088605423901356822286825305139990974326007279199821541219822540390085809119361451468867998654378574557720729503829512146338799000709118917443511660010528912444934501606386647314669860167326603192030480355922216234003053224596154980095529417608286638958683161209316776799377385980267380000498961178987199430962264688289834879117521848288075770987610997223020312231895929773931275987573338137086694784651423799522368579216413940094456024446684523667897954555599492955896298413438678587388275399466936667208298735928274952922093769983292160154358635044825263336999825315797656321635919531614388185574605818574980599579541250818230759927720266251530027555630003472593088431390312692913901869962787629093365098990114752771287832252422482995475769189015566392933240048005384135548900113504564214364417019891897525881579470410489693524671861630118948655016345765571584083101347362161969082977886901533921110207276478992818070837645824096411494574513386408326752441251901211541242025805763067921373441406074016117386331938258233845439850614247248933632733882691614574796899353802896263446614102282824645655657975281221059473592507805207912652263771503426146491463916824299327040119755129365213614966920772702584514633760889060215052396199687860260829739300569628108956650110357236888098146866084281220540694988983477812225468243008476698229487866832063586643741516129832265639511307616422656780946273112051603765022674267532610588152048798560639521417686719143391610250968901348244608139740158445058536249585332027231478364391897932448663785642963798620041982750814619029903893594688183016714181941150759811226779932348008494620177115587133477956762635251807526569086041147034211445549562086554920278504862475819254582221433873109266139085391921495016942308761787920814428379703436435797221918759670232646956625918745515847659542120201325271019452414214884505660087431644277018271731009997329942034077059927345508559672049083886917926307618697039579256052782394990445811163852860203019404384940724632895669139157220194311341776389220430000854443076326857840662181642009215147042833477657278997277121649486071361443709659214375491286438366415262097016282229971346645615353489402587146409977232740697900193256406031342935279472956080293829608525394676277359994497244052323150143305923111854565085213329487103289770983459865943997759663517547617062202423022362590183999895830879947141285078507752254253337973363162499172375870867635604313038373413603777314617063753806475429533054230164255911059636990838225620467407456422912127303017799929014412200069406276167613391710507128988769181317651334737978474806286683556165888164128150740794162538133008015256623873557396221007249544002099324177984904857217116307203898479718851855559989898705838618116124871674786886235065535243419714933333699106089099973711367458765429955026110116940503189997102312023499639760594112907106614229812939042700038892634626483694764280822664924702643859419125138172972015508799487466360075466805557235877544657272356321536021132881349156994067520999796665265611703807446472776357461306838501789220320339628636073704115377505892855713476636461525395618792274261087619448067277197709453233330044505300729684090600532965923464389833790019256936971745694641768424309724303335995341932957701009593896041907019609744530366665686939785155267445868565085085969495310238854193889892043221984801538895978967699308229486186798919338086531936519937594796208740825922282874673583358776090787969173461288230383446346938708099489819583959479211201001618801125030932804477323752155556426012891814642451832312216692832434744013740687023880898180565829171387613598955388613665832398824567363564463824131313898185095189588051727387342927152631376477946399018256082658687528655511963333381785657568886704192045642666442863375121861890692031815518990614432717113026048009467846206437558092396807899537314241161073349049980904013039327075807065803785290371343963638739439307046773256937440139721905072098628415076206663789894578463708537335502031864894439458133858817367877973941880193382987770087925499440474042804500234280455446152028464577521702033862006758404536938845299619268736371443618788515936552581700926947712612796105071246887788109039755704823148874779585305452777932744042542037084705616788871959316899305566056861096418155799889423579583588702389929322354001585240112414708107345751158769756989548158150076354134194670653507624911542304798033802129980335754735744937530032268390804674963541991245782169166993193358601675407697908838928487181281487795061445263407624515737834901365139887272862860184958261002695537296376141425075273294698186471506390747742987117799085555126563574469775182792013117215418056519451164173769098212815437483092729078129665988366488127723797202906863974698415064568674189507906578133821387085521736339161611181562568020656735619451750971881452592773465217203218414939355760991330044155652655593207118828529673978524047775947855881515971193994622667549499857031757901133478604181772180653800180637707589558029851350905530931443588747739122780856408757763950830660156381709553273066163358972677554973555346122222552673384605486214382650079726994470996730893274691056134703392446693456115997391927000196464803085602826597850434832755084289608181461424669048024234064268797140570237111787387274236085543441616110363302192558340953480583084674988310180903896335113214282791466512728285653278140925669903324248094381632430918990808422796907548070674377421962985580014705998579236348293154594822589294765485701653961128483884804397926692426497089161036672293875642026563265848516530866675010347566956970401447421911442963029449699049540841292360814690405640199235108313899440801210340614740432960814870219102009337031724663148152130969202796716778658562545365816136529838241550200590187476728681585493068428884040932484134486049195514469930319381517740604425711281698839535561707492491145309495770328166169201765863084563808968028368276370162699578622412983017540734024762385013802183399779861668164114388673446550626014608061534212149508903093649797054621086261565838559428429745914917549041909025075209076537352783568568833752837379941745259483557205673603797935597458534273938294782201432983792127508588745274458056796983122129329132334388631876820235471852423433650258374776751046946318648413641206966766152794907863129748704325736742155252561990871086768459722183297165837753591954242780176762122067483561723805090241444074345202170823240192073279019222999756682921054120198247535197735931956787738431410993052554341031874591637152593126809158898484542391056686337170023524144619834403777805730708797683441724630240009194886761082828081432171510266005428707257879363945233978058853214275717279460603945256352222582829210581582389397827392642623639027693051270358339857981362117933825553844902797910348794309533893763582091234919100802953844486233145403551148377193036146229300333701988127278906051024832453177047608808039583029838448006518154718702462316304641441100650194458482569122190848796386465451789726676095414907720604452698537875135075680962869900022794850256386101726354111611866756940702620016343969124493625897518656904428119258353481230921899402862296385586536553978484762226912956603581427296804253780125362562716328601217346843577736768877371768493499641893030578771859376441187341680218638578972510483581626363106767802511347583768774875210097727148461032896828164373300575356653751560708447236041419929396507077472600831649197769898467832902952646308964488649590616175005948620938565326450616174644699413522893603429451503286351885097307292455519396373490821157836111015244365675891769806469109722924762644218462721893841576660062816181942583284324719911795101071848429045252495993655154463194695789027996836886874223354166495035998024016816953381552525030389220715843872821490272468700573285812473257177252992954787392175498081999598885323850679813527858933026886626453048966901442495015422118933340861526827803443979528615921475479267785378435273806012050299406987697435858334980461834027274738568261001391263595780814043842146956659866697757040860911664250689592660585452309381370044190358369963750340809961093553821294315579739643229521520711883819884267760942185681352679157715543494362122477624718301500487568642255999509450279552647653657309233537288249507534207914260829700904115894577075079415407602289856260513906881882789760669300576349293680117567697578733563641433800776309235551549139743923895249823075702892528185189576187033359248078530918009094757344582958326680589738399477973989862604337111669971678924537946095719351831690753740776517577994740505021357315227269293003641972060981987371438466250593884285997264947345046049423538320236827005195328764649833701675318693799046032812195892295010083741611048864816581776141513810324216497149048328538272955928273309359808741336770078960227748742911734441025260361823296584079235472269043070071690546993230933846587552786409320458096368797493860671376512972738160470003227320092267056535928241849065052403276173603663427697907228040866692301190720773296971599937447496999464872326946740425789701235553220637156862447566162543838410828251106403735127781046577835409818118332571695365760678641936705816447105688013947778524863605392218660225273192203147010305447186315031434907061646551229958511369217696164430356270654610734781429774301262647201763087392377881277743829000646552288204685158966113734993378904048656630622428473718360545670752227685334081558272264520562040543604967171124689668412251976955195636903390777780735738677890419724452578711666207746533583327108654233673206742592695394847418077516121193439970564921998170002115853414234684941099321497296121149418116973583249457012651567154630135276095114910795235513274929883259411345565793310371753439359814753211192413010820432541701565206350551084461786031122471395608878010778447119279182967829595376642313691776361325979025999579010249172987043445425396525597683673128618646478251768756557723899959137585267618066148873438264616592704011504401994540061568919032885678847781624396847202867001854164567258124901994337755804039853734431725053950264000698268243873870994158932934525045455819261242334058642252572079665502575534868481819970161059620646093074551487584125494998617442857252481561827325735967538426915411482072363806349610383302557989540416363588943624701617878329535133218770536582631203342547699871474973768330839054397520526889507306890016660880112091474941761195788887005859339406221657458373862331235418072467010339608984753035285218407402949887885636897717117330599375016686641334683033115504846382341498405234044090871987916538996801452899961835067543144768192688082841817390922840911982874884214982793849138630276163837403368591068618458567911358713541666792309447375926252910381798620667375417266912657862373794489504553008028272129189854134959021883646826763683158204394275991803328041600387635474880271791938787936627912840790898142797603388939096987320198509263723469047406437605602150055475368016521349076824315418812311557173261290464489743577799312274353616143877843164323467641864139102192887633146808291637898383728203333401861727548815246840884721144051263271104279142129265578111060299604206519204390873011753450242532995618279201274964699517304449629251860696345137921294066799193135495616076517102943748036478337245096570915337918401241842635069688618629108036872530612348031982605584365962290639388770002496133258505226245402794556474584222578176216827908063692690620206462388603561484602187576894183028626230717669520418664172734523588041667612873717592817614780476952247233497690466464972823562130885933601762468937057852557180397070124777535316565965892973210129131899545698357495753881489851822016982887783090867042676094796984653601687093403893365277628538780047005458829746983397331974910256500206553172800496046996470223512475642993584164493090891925840290479739710436116290139051637118329390974374081073561793153139231263513659053937743169488639747248503011604658105537123627790918363063868985702511313121367177162035660837002168849312970972062153412042954200580616750287249098662228011216079074264105706282711486641389915968662535598380835370273987638444258369083511448540057077792681278125647420630994751953864288254151848495081720645834372546694875211890715357986290067550024909481841303383709116627929756688522374033960564036923180117973953829333903530270402238346167823653744067617924599267474648587020210506430093237384846262362481543712546007983107400249653778932477571064987636612502487291789770552053263758264602154902873831276203242966235427297559213234227075866405137137021739404096285497729122236647257487604604381282616947042392400286411433129833655783106198892010217372266010746527343944984188860899530389667825744002803309611428849007818494143787164407591240188420440630547910596118380546264918772622876687114903855409279258891172672264879248618045063005762734230315485355505737200438295914516207868791003434746865086740056600353152179941750928015820437886841716400810165223738152625305513337075674942820568655554621949697897777837513573715013359826394238960626402506536847526236624559611217515418488458572354686658577973689403390155909334756470300428046351471905934601338586070140947435697548135128359124530442230117722416288591865530280180532333942102050316670396861085261449340316951925113515696122238237392271951609900769813275036106948360800379895538948477136732848827979029233571963582694443608799978224563572571920509699822215685832460339505596395620722321687219752818110273403148935809028874051705018147610179752689939521475014276654841237503124350342361462307430137655585789191913651718235664691759765048684044639484460353405491704934741635598282455255276814102402160513672701533555464599132613916012317353064013285566513421390379379565799693820195345335802558856887431368900049390185092067552046903051857103693174143515022342737865310618587712312274512991402569092981758468644191478758214366075776133070515839826168653604464120691140018273534289780179542082739533754458573172540544966367907429475292788733471190565301127796208200959630674031423514754194260140551690207123393876513906090562410237055151156138794194031938593211368119072822738585959257621183419283859725563741137222330747339432278075460639872491591299537942304936595805495475321049723736302468745071859082453896658392195211810943342133118969822242491286434364550637187533674069958925156128729755151977290837690711231356724439722882796404923591012306044237935173533547212406088594580072661227774806841331335648047139948180260866386271503236410585132121069403766297428475202430611076486272439137087554433372009927807171302547756096657091684390144707502957272117469868692494737559842364055957424323128769051653354315676075519242948961700944323983304473433974466979911084329752177309533504073594484361765924010728156269570066120186945130908773264728362540769208261868774608620934098700010338469321284584499641394673495892484338892033814739639047972983783167952606573856057602324405625847968614560706725320348235994749184117766874659661282794394647108061463374913465373844722056136892103860936517346098036438849847517383261230272420938710899341591432919827808603736156469537844126581924664928778672000550268174602992650828660290735900294600060747849794205047235573401218500679059492750204008816753822350345877861201190344183621337523804726125664254644311894805096386083144301921686069810373985312949655366782943196506417277016942548127204387066714094439867095894994534818791716444579021007612950418898117950132336820196892000472947271634807327382286105807733749634396910395271361105490939927846416112683526720824662672757608235965715446166245306581833309273002659800494109739092530731549688032813841726149350452587924294708738516808643168953448507657437457215061224167626413394233738352619598845565931443262980501997317074804025963888486929231415806560632173530863237104258399232159087432400786547984830596947568168708481417441657994782339487502519133338347051564352407246114766261495499055407950831986881505703514581084888252363540614221893500011956681100057123361211565985979986040408430328412454762380926578282635171119745557272432078121640458482212895596847534792549992130089193516210479923229518766599115304743025426089319629087552580109278308005932381812343281813960872166148518260884890121868250397838623491740177456992456819741441669351384738190613456026640627946693838065689988159844605499819939819149763688032015292272162938015593445614191719511077963284869568933195638251148505827360203130679158418838975795212879234432383913909620102556386964197300377524395079831193173586119117985174307256774071695548315221134238233414334297641307804640703938058324063055261163439123247816284535900454739471758720334247247524268520939093544504139050592097912014744979609106286662448921399254666526400746397654495047523171203658938130336936992985345871578244267393457823123370201332001677479797804545556359486259000159840845740027572871506258255172850645998715354371444194127244527263034184204775407993534411902801731323705564580411359260537776761713586466809972928168786050983308761204972288763161330694589102057530484609707357554628186863286878315513509357987013934916916446460971111203807738201298402675391730084874489822919875014907616524112941148646952469192131730638792676397357545420207171812079481679060482795025563041551940994774161216218112966155895540490687575208200099512518679555682552644388648939075334044162718085276832943838020792800922090218469924113553276657690918470722920825015848261748959467342051999039675428532197771084504770117230458852087608247426391524375736748668953387554390590772889162136894823854575326573418191449319296012391373561448831961374508945927941306694665878786074653861713113707304807626489032042529480395288735571925315983672494118075424072319269051263381957719136582939790375103543738541751673633311030655088275532002159482289086686366850191115423331954432354455420615749179268621117297148990501955592964686698179350421436147765830723265901053544972836623505715183983559651918630472118622433901742751201773892875743495230885163391727000110549859082486514827181898382981587558163823618931958677795528127767779899218993686079379621353950406774163107434553708991709814005699097948800879363590290009895333208230686161945271158389832064655149131510893539534129352338628075091433527593058559615219242844618733868688025290235210658676086832255589539436134638490816080374222344116670990209231747958069373182242848074434833221925103705109888990153936726791545112540269410197299124157944311694247037844516462580085891078473791862969467693841999266625529011877287167036575420976237552137996145876693816405477747406229003343556392954333465642838529512823366456698971183657251576931969162693083415772188994041852524815300571636181664136563037208680032126390428547689862996180217200716943122779705729315305104663063319954984908330959048874090582322837939831607174898713726915735999664887589662376521634842328894690953216608462653700308596152890978297666073455203572687830738940094150121317608136409213240932008063850422839352252592569346349164288777540789898163541945057345336153640536101891010012829237094576489001000345353768475859474013948421906494944681268955570286139567244658799232863099939211034475921517614755706108509270686227152711006034473292844324660278644273447567402678408942372599236842275817204992681584289506627871033876961126234956226244520891526524626765141979542030270322684555231163970112234031565563622154817866222175698280485019628103178120437985996127880807667057407945405613813827810923877037215790855451254649311759179811016384374557036186140272349965974626890767442141336198362595146319644967963880027387564584471065824518682874789047083413215113230678782142054909450843785434542743218690987569968683902968630960272935080496724525408787321102222106986428768304793513739182789956916093886134963184437522992587484082831410039057450670041186100219891714914001461216374932300192617770945652072205842535340998063246529213734329698491973998661611741946514979658013864361464660202263367481003520714907519110330072821458870133620198676932440429222794717982276969209673737420583730713575808876262759429211670451620325892693550707690408530284267087472644252820474603149169203786628523719214496285647107217509689880623419611961509416762423415496236814674937227232209513448690946866687275251249489448658241445951007240347068752182978974735532023456216787414401731865733877428445346114619020756084380411939443426413889169197941772505100301554352963388098644688186352342386400874638309243367951217838660275829089376828106332824229012610650232362095341783731694126178103002070328572905223018589957628232106987017361076575269191856712570441322527790180606618195928671306533298731017995865392755196148236632718588889133688381891920429641538480356175951763843948668693306410569085553419796838604091387911448790325576960326190150929946308677111749970966907810636945052143115025885194401400953151481507667425401558530633604061705781228347784132096821820739603235197772368064080615337577326939425725583599591767452605057048447789935366320019705944556021860494841626834147495377160972315320760019251396838014078241686221296378813448975073030460723922396020923452899546679413367108566789638512659381635682573923167166265686697087669467957438653985905550780797341793540228539791705366633429763780271502775278514015046345243095097149748324073052179590760786298697155314882750505983770250685454104226326536391358411559694079917230653263934855668229564293645962021374009544648967793240194498977079018431818166087285937159222136056313820079349529438745603042603974685830671137594283441790710213569046446627536947821963901485026018592000845279139986577725355206544501866325680810721417056695594802049327470854047654072227936053539062717997258553605795117505467219621534521895698706226155017636820414003809250339898859005410049119061219465735884241279141382090429612265337001998374696462083727360327809579614026953994573786016509990182381555213510656126302732883365175617797804725534085240262781633100923629687458656217004784925159402258003394936189889705171058782064991307317029115110176849999994454607162031365248113103275769242631752984988209577850354302873501709005985863344363657325569681334470144825976472539652956477962219995812515368189889956851492560171274878835895208567006492568055151869068423411381508954427033713694823122993239825739734723202076373788818939136712097490157424344733964329812823917154566412442113120258174073115903864482753518896622373145656102986603204788684188474844314122605024723921414665805697416978858322835745367294739075222361410947965655822288469732062956502636579616859782220192156178518509518081073081928461505340368519008656783320356180258930216260616021286251123777202931549297243023661149118339015310120624379560164291585320203416824889500966240840027326359901771639407871502246357638996066782802339009650231193586387773418016444708234752497284537951091027632743213747732832912455513822423262415485922188491570006948664669599094301761588437171191449896894738591646153735413436775746977533716868937723871337791323644319377276913586722411795142000563870787654735418444809760869749437091590324516343699091930196452907254127934084222444629879083962553874493817984219062599898874044250048519441999518591476078683911886748414341387220076781480024659873702108435221687031228925045007906699182193210476258245953346096449131373080288203649251614320168238216111765547835292200243430247240300303368424668188664959286221216445429981481692350808064997300226804190871954453648963319552014920272142027722159445121320389439589777861035663801247672539660607251647619729269880659850919232533506404530390219000942017847660758650299470566626015874674974833674124422085861578151663844403345725179268683797583368113539894241919619081550527220181669691636437229022613759260329920300333902993857034321934964788779228938732399260507080192516228444797934416483813964388836381596125780436565828128436289079270132290124887507769646586561093439619905905295208695927568178663610655316708542882652809432696101125353959578563116801764885734761617577625215162869714700544613136117761520253548911131513673908283320249858165560400685529381843044554046372795502101884513325730858906136190216562210223088409189981316670674886596990279218783646701837873196658779304305379235033324096847740701174369791534360648120207564156233306533018289360985507505561222209023952019774884844885404613187109291306469129845943731563518136604216827999281129817754213585509822457128749633905894777732790574632620993602178163322130939201364850491210587009474976142357853627671507051471426914509809633042394348944742353124238013769376084136339493970277023530152372084505187086123229755818913361977484548465441661463179531464693079139486057589208560011302907521247307038015758646509404282994839200377925981581737615459426228007162065921543597824107381929014743988953742824889906644527325803484878888265616178733478497975240064690477387801188183916432281585221562990168639996431589834856300416316064615806835002578044211857916021237364859685443050784225517563726528579360548226660395322981456576161286774178857759780204385297713787897095628682902953998021334356906920621680050839710523625711712879195442079012433276589601379074401565863413023424633075642761629283411176569118985825514561439124844505418012440675939557693099269412746301830612969773859165417513871287296775308123733127597759397460455223805289605449734428083577535066137921891115793362173128237464404327411916250472970228760184332062570931705344690955500853191860104745355387744509474395536024099173275425160375791027090604734439893163678106011541137554831743680100723086296551278550071408794922213983640419243273964598945596948260552140645886565046060849864223405888703908506989430607750789079102366751700961272747294061027560092050265171411080697427515868101035769750033394793290514687830966457434396093576027352177393200121569008786282270201587649413080707894591250042113258803371702761590991089039162207826498200050358808321878891347054496467920315248672345832606755727313079831178234435057682366519671507299881835175165514608738677984892457365476576527029531616464812222072855881682453438455687001788144323588610924164156168274810246890899426559776633835050240557531430567372011701072381031718121611527443214537097239464698434694783686387659489149310946344589462958592342855936969270196844380079037619983911465675256469346126336286166684866710048133444848760879769384718696174681795226023907259703079701211255852551443290516095600243014767601057519648386042184219921002315275064075069089372611108270259732966246803566330034205148090437490942234154738934974199429450714626853357447176276221296712208490410513550182554462508632038883484175027851795083841939347347690018834844405662745140194699418506663875373603411129769841643806578035636511925152832013221123376458704612254577587283725797272191879629633414357429171810767914454687752550006416441358823147529451534614898490529117858347292853082702637457136995015304576371358662055792937203861612789770672069886443974896193915623155713610981947155963348270015568882281100096902739908343785136815450807168000630135867634289470309643091363479217196574925631668854790816602622833372117809593316269190679206542745396476816931692994760288414236203051692613645732599761358551059128486530791256116601423095766216156757756006916683583368077745881378512605012202709976950542164524319916561555893407037870167854968829362825151474476030437690739474785668918150984124852606280717677439821747252273486498271504673116031745493325606290409655769934598704644526610747279375551518823160959371656669471742172899334690371681806230374589519409546832747230363717072521669152721410674441752651527228331721609372698614431506650354042675678948747647008578995740754793416294254058139097082099638816000812607682145409967963683818690188072453996937740589454313935477561962982045526877013152085526888169757054303352941187078298236044951400347262608837143997279198992884051799059098716280534133365968794582424271527289848628460651145311768689219584463526818844589831464807404615176524694312153619936251511278429962726809068332321125266326938000042174206899060056950076975142506217778398188872404925323320311725853265344624645338741470398419303493951220726326444747042386317338466806680420295171466495149169685355466477101441853881756357977905059490304136455892492916706777567775596733361400753334995116254041754323080420463598479169855953551982075413496293950947956728509783502878281097689932549050413808661219232362879839044706173278614634749153442162926019462786148740279402547250963813464250313454302550617146836191532322823801261507422363297583147295242205196766180230839226140467453775570358532759151198704152879548939287640635616051363232856441283055724844825820453011726130757898791466263512223179052419032374960034028038540033722560350582790144060837065164816966971006404323806898169267207224131732018342942658265244242878687660173007220454997490940545530383520439393185148760484883933136295016988536228478968068381450319331604004147627796556768966258861837077149752968362480945253721176455296562992092874737169299032406569654893069745031041654196842539605523488334297299643305637753998406303156861196044690735474131566909453346314670817480741031889160822205797561305738718699385737994469491664976593992631639251046035254373928811579088691374646361645378714979950947098272880194054550487006122356531615181444972632891944620905492288516748825043236736498220797596713851429781795914099119911709578013304174273743938524089395777043668906415721284226463476914442069191897461617179592402128671112617862199119479320002697886674370225906971674876825343834367687110521483847530135510012764670223049616964535504580650065787246951050320378367286676178071223352062205448483822962762552805556115195777320806753718362086629906151041448847714621390354876603589114086829908335879657417980478847899747997628122919987677726056920427455378201447951851867634735924305622552974577566879755844902283557592607568714515327328175195809919310544059656458976807471881749092142522928862116404276414329757594624076497032158971840394580039561251460262587265508678635571317127248714853460098728991402748956695182479059797429784696481712789378841058292565727189858522323745283296848893917970241886915013245234518245816440737626148378252023493580404798213823453504205519822196044087722745282249742611272556588941343530699822781240072234303269377231630895991908613337203381584688183079200933923335578576586723653066551467606371884848038520527750141085981507930684970639833642489340046481015256725649982787267182554248509697872738879673158847670351556900702501357661587570738483594707795020965432946970731763634693548975839814000386412668187977237052367082842790457589156044020679191569408732224078118920413740403020644152913561331030911311305124354797687839427948707410948696411006343483553172960424495583966048051015177976216639251450599616108520808767014361126702651852144830843306896172092069527645575669068513903154148507841139638518197776687259360225476033743225415715544325853711641166313182543648910487069005437688217120268117095523520730480297141840489936010807527555721327101216168099617546709018008038531932717353654830499239948716336881101964291700280385355049874077411054344832717463784155284528750430892078443016634407730353397160993816995861865342937523867274167369841380995516286840936339141311895528410835939249885171819873560677794170978263736643002896294869243372704088989360968555472407844419369448829024167901333952193056457249373447202628917646228442791004824066345608038577033274689695221101491314774095894482944755103410901441130119102703466478989944919151475399232220099734518286986943014710765165706499351518551565539781621891080283190903290036588425592185759136336330720715431525630559246646663828971993569307327295335086722541957421812062985415169711354742527815894331909669211874866674973152868640870918123356004571050312539189019897369516762540442186562611339998472234191184793914301189927691423986319013255630434902970106461753957035068048472820579146629269913785375894890826926658041212865191567861270567381648512855711482616206316301235384188603767678358421979166714687866660067153836306778109126490641281861941935750056412887363804236024934357384745082611206206796969843456679621494009746447632635317136849346918893656357216342293124479367766670463714415347276869328542861290926954435925608518200750552938984611310989220339493164832516450820637192669452074182975104334767127539827745587959066144783117781208626323415565879165330091261889179877469000366860450746020206581199753917620426618006023550782415722017858782058329777092129113174479817139142014171223598660294983450086993471523638560435983038006869198809090855094904364570603124578732151628578057614464681335707258933901420022146347167961436591315134445296611453226778922833131022246177654940711355786659715856362328635210897103322496136122100512621625717018916801712106084837235912539242391960446691969957217923157179441421023040673469134879873192473098754208708643228410750806602887188883701219742821134244186580192647095575105406076223774123919957765692515879638529086770179940629121708708945686594259628665639708963878608880250912330172844770852988344485888850192565101608689425454437350412996653974557934099633802557543589524558264246100244880735817621570159231944433558933444736387180709781510759837136518217929615522279720946257404677756291942409354518316917836198497915721995066083104423538920602273900705866378285890932682636807645733858319913404777850602185473277702633196422492779853223675441622018569855635277014486106339272383265999988844248725605725999487413627603843301089569568398891830117136358699720992962539760166400825821862602900963245696766643420629792910250856047069308453399949473103756270185109163421673014253146294201157359065508180120557681485887849105055530074921805033953506401210215205628782025440923928921106375569873902708521511174007233908474144736719691246811273346616809404520774079068925523675168714800870043096291697291184944279682801949058986832251933414567459037900118662620096458007858868513296816358437937672539738215845137248059045788460612655502891382903908166826219878798042219411418393255766567859122975549056294510201437599521218182456027644269248804258496679285995565179808566494277001959950602753167885048339530578791233681049305832537632031373367916190274239898542564996633703025241507029296310944041089524107396990629243573805655097455247984001988689985604514814028223878571471214241802186705755300892296246495905991256702764477384153195194972916263391136727703925703732139657224419053484398993628143289293362792737646460543087119077712477668013996048608168374797253992245037251854499155702282815155529925048631206454320709119671450028043717350744638330592025526699666175159127926377300499422354797420659396963262870546860700941605867793334870636725071059705689117783041988111129477590662047856115497105068503152917226487021895591171462480605337447610419441958354192399100602408109571889576261476845643829262787120223560096133407963436922958923398166158840154964596156077158654888844350069797467394005535569397348033549017968054155417963745693510240009851491824513218127826129323209127791291536834988698034305389770762788157620189347206600148274643884291321422900669480839012432668515558721431213309338242110766323877778917898063953745088176687708280179421083495771939979297663634889841946349023363681767799347438546905231287975220260754374599555656343983817381434150422555876436165020122225859901548297745036161613468303811974455789925882089712528273637965860722258176621800451531138147151141852386561556956249000113939966098404507497812820682572558181127452332657252941010372059363592155539292279896778811881182577857687452236794671509012283844319140269468624706591618222010893154004334352065304428745396338826202950767189199105889898851635483952688285565812800061584327707577299541984556773862786817004091503243326822805236755904980281313211616720284824193760179901470806853007056105426733850114007685450886359130531422813899906730594684035352509970069605397525678805691930061154756002988758777522561055074737265832454983091241547592980392086869090332226399405520977397388098221538661839002337485919810912551647880883502781098177900121854133343838004596856560193664856584457293606131900825433574994057787928540142997742146998771367029989022635986590740473752929466377385157052178966884301147237954519676909486206547940678531565022333027835951036235037799070825025177205017217226892237001180488312329249047782874143512654296681626534386028493473658097075810950623516954976904621482282394234249812011329987609453632072067727237592296075429452150326017569026230495521560104686904440890625398960228169608248119827616892875807350427872054178261484703751342887572673912264896259608979333417743202424192606789219704382773307251941119063889108532988263838134247034150637668777326525495641109046038925695437382339470868813558163899895230693837973399708358882601801651265107073548665978532509815041124936147352489939818822344725917680080291285227181087308704833845086471810913879779630261328260564878198210843605496342626184491400845552257982018167346328583063755911982119809572901118232827633669323107391942444561291856658325118849299868620694755475774316326739887560220643822118133676196773779066189958737118246820294752057760439144747870642241185660675450641177567971627671463662889966290713806688997270693689918256118513803672439957513309607023485428143158542039422090927231987064743052975700808024377736010105491441051134878939224538449817027333500099033428871371122134877224967056556391933708701885442680648354390615114419895580307483251307846257565005556666039696057693349361102652268724054767913382624640469483851827010070600634277808304643992827893390685567809446654319577139715964551856599915413278963866924343337869965101210972880372360901463844135352612931731634194867515924586877084012770130451234888791232944321476566174016677451221155606626757913679308973775065961785082867708458045032233188089172504656417227456310340487103161902761285773699635478813940090565452397513659053933609418075193305777435357708558833419808123316812511379811904203075721782758686349955062003434610336272426911944489849271079305460301362427345680877193119189488855224614033358875382954690727835655598026350143780399509089532927443979885758474561555485411582084570506888931831036193737891382343950045620624658374802275667040794456619544390887485216968078839731159089523917288923564608294477107230021182943815823344558404656429708722593007086224829040627492696129472798659289246200218610557208578853351847853230171308912835581773457852495170195935720358514018674772518928127700108352846579079417036852187960802971058913744642640636426348890051318021577831925347679146469821411457031350167444995531236754799396940801160146788770564289716738932864620345831142002068755697002935365451262979906595221819908086530682662334652796568743950114547296561798861224040920685801727404730938214365068411985149150689152905398583522863480645286238260903035296300317032782356848296445350130612303568290335457498205819967858615317719712416348165514163450999167466160786030804836065371512915674744028839893780139610408297907316528717923407808946667275422060962342124599888555037932526674848660695526480791316917658750158489870453130368328727517165242079629548026184998870022339608432915406684667447400745855356718252065155803943638447285323844967980305507015442663408826400638568714677035035791348778868165444420078788411333305728002531629555580799005938935351810633129207249703447409919711110106599529944326977404679122846205631206456237822147047617599801196166809839252914307276344978556588164119362779412066622470873638683727773618888751968720368098848689785386796962092521241692542073409444789375209599710770794940385416603805897150391729757106009408597694763329659846324804426246004353018679849943798968459704181423506322830589500608727353116649498640851072403464493788693675588099090405754823275414294275904235475900566121937637633459003121327893026308288380288509329153712708511695387353061144617964648837586531481458751612197870554840725080904290704714317784865455550316598407181090320163028230012802458191140361938950143440781118083581042672192427056337188102708913486155698127425775011679237103468812775529191472743905354586476847572555988726463747314792747237157824013232479108038218070313709639598166724786174714071667034234268816031773908594686366388581031864318853842101807833694950715664407244226856023345402333559306780814422394225106002894513584423511621111664545548950553380610464516507665042096308329549320506024246249766970896410891518258208574927452504974587833076627264167294960259987399047410130318824786247827078596701663756107182428002650505598022964750535050002992410533962843981489210937142192338171126764874141618706061072554692068133858065585444649577387057434198212332771471285515669781710517916164034608764260335193035346227941479803961504520530775389943707887458766402859998611325977020100325977432954214106750865040486457969367723294436684674087707293920442420848402333849938945007899205210098661009734881866397736240255042260560535973982586260895707326130985338766980170971114797688894437591754143967842978606065961398401388434576534078900153264097399321765710547826376658603189436055144717951137945301286172059502339341261863703140664849995953002961253910625666395530787582721457508726114004307155000571903034042670748667587977994209243833542178246521534914290096028202239692870550261891144417083281998745292587437395967318421328292738064336274590792493952441709414910438611386560423876682724040853071731132274088739995379978078256306279183908238850455215943090370581195865515383434477633658547542127365501907363530875733106978902064068150220872556311523331925073069697385847759586525956681074155436907025711662637246226077415289219014716745270583765782680526002531859490381696120005800070017532380200649944049607440505519018843347422772916354051800680865128378974934124800021575781717200574153167828755919868388821754017492590072180746903036356996781751451968786738898253255128359438865344503581077523097644569138643401216938543570364211900954556911650041929870558541837025232932170644603640615853233861659523142809046881606852604731609933965164499041781378560317618460409688206725122347061639391094772678081261203725334849984639504633870916145221852670838203483926961550023081554538405722902867288531782623102044955396617879004696833412014656403390771657679718257150392662814488058759422520646348004013758074140293342771010590458469970623214327876321609177452259024031149813029284226940117035437098313205246671781482793489658877551972245700039215321660212472404236745466064215020616313149059710895993579414064301780866233612556004596506775822212774953261025122141617686989410525620151559845888166490325174802321157587968131147716527704255065681804443703000941032311673843845909822296071634906451387888229138450320822768746341740370833117743107804377863746392604034568757506876435186368473746291123773369267353951221203482224075770318438059415105487340819136462511226207523876986790169554119501754004965439719830428481647899313880976440752311895031388208779154849548177456946199991832851989365411047523755911609880348844699466803525700573694408733558827423941009034133162323744719099694129663929662161597116294450712654494874964627204595309285892429105039368798475266935580540916146344035228288248605944599312305821112438048918819036438703845141164336614230612272318130366203955911026749756729711885641477466057156436829790958315216331137664899521666703387656855528147714587485317469037356683732976691478375408872010060314933550971245067396887354322850192582742357473858820525946270545042899136972474536738110855361313808709630212973993807640980825810664932506391781834021310075633227282485715724155512718094824296320268959987077499037503428212560127752182125638215843831774286395696780106066258791391658124442115131420678377705160461312971082011833346743817666839695948128094581982124687988309723111070571986090076693397990953808646500386697311474489135592260452809429467117630611164985044083938075037288415225278947243458395490594973385640185727440067111643396429845648734602301589271508968721364017537231808217917779249583054603563122073653600954413189427909696294907425775719232910604027309792659113283012917724653981531049904950206759254420341957849268381769131660743505610434146351330251983185897629002565423423388024233714068267798639483452631870992418291089862242764503142169052352283974014036356817238694757992906894844531763357057627965325754111417407268105914130500573059545808394782543265189228991559126284175119170788785534715344906064952284044008411835713126482469169005753083870114210043571219599938556988084433580280296031026673293113406991440345606358414164110204939487589338104118115944199245900390684992599462948512283058241787264085637760284241746995844771812984131172200668120955969446991648049232653466860261332483546346089028593545827963254272127278310196773272645815444995640252089579669608350534084275685912635096409232457701198577749212510855009415284295459078470872329577383667236411375454129355764239670412344129071535329093526307662298986378824790500845723040680302083072930304843910397934297286079404876383236501355312931566509271302385105967779081547278607721967241932875101775919232188724905445230871734619774429216849322270062468900154801631437254020425401394928970333583743934299132916197923747643828309822589802699976139071997082889058307451520545369433821527924649025057620887142802330251415179078257111738087564312419687134558732795993223691541057621669739923933564006838245428259512579643301507660138251472482026294541818377743959639315577002654809355098594232017404094103678329143970785512825940904007006161187876392543879532627226248797896041524798502206990897425673557898247301151138284800997077024603382884526039097196748160831914259705578931334603702018657066960946328584979135803682144039035368161673769350612096691540157165719232511666889817578189945673194395631950811973438086015866333285365840023662392108628437923637694951193547129553449757689786062533952681005173651672637456525328232000983860071376158420852076756109033734894385098983342886758350105927151661020564450906655621958780735963916297193287540401610948812694243080781302522178373243164594460602274763851324611538779702760634814718786367569611645083539224448905095521342205036745194295458879365320610047324038687691838774293518597039292652051188929281849477839324665697706350697741420873693044940067040620146883693104312605194681467362461544111068590020519925191976951842880457341961822245708465029875524771375980444987419422329822651490682192942403216832837217974386193169109132006365445248027743201783953383283428317367581971253943605620184881335402283980629848672659714469856667352461977540830313196443166457992101176957649471608086146730087753520716270782102691206542641922343233132471823097046935896672627567101210286160515825325323668979103439257312834396115722997872520393654846626275617485356891857063747336448403703467857471546708219441796220948638944474457831273578442919654840409531176503929320763009697977758039087790033752859107159221862520586371901278761076784270022579868849279893823802267694414167868013962800066829469161449987300960243602321180277658706306048156031306839819873351366538647295655241821595260371867553950418249324420635557009834487775908562404518960121629272310109803945690284028806390780012834876121353430556931517486324857620311648880937921898364129496405697898797287425342588679592604340694263684718777745430552454356416245558348165669553804379579247162389132824618125039686049057354208761590436066061999385821347324985256938325581747745609466529006497822261670581458919550217450046173153353827847170438133095020412593375095846955531678046063484062210028081658892521857685056378270784186760376325991294866745514778735117278475866028483195955893379591671395775334188555305942936969029279687863426190410625388807622549065795262920916553344466348271443726208709215000265000354345938104500438057877756128341419228882164299149091859319834173783987259450247987299847285311928941319858582657700029558683743691981751842001466924722914632932623731843085451741058715269697269043517975688127733359240727444258704574831541714583434782166775494089296878513558188495351999877971589092063629738696232231479442598593063305314997443149896967778602473008798799355902291113890692419644763691535597362960338123448441227960684750997811189148337777802937108090137121305469145430249108756035692734101898115627501650939770118493001450112144333396831085982178864831349418182278226430483482513046483376818785471909962827171263299808917089436594185696597670396543689888326538324238262932692992631517484440314180206400749302471520859787579477453110691464636542743443198031365462920029454568057528439663430903232564266359701270611065634975082138267216603740106773535486316760366115894273998305793509414346383316938452197643285034820903293960129587694794859273290164332742436677310318569291973907664095701847512309641357242484856100817318775938220114055733917829092035789011081722546722099985796999569876505551802380829043935868271895059078825852224384710125763575845320781901967646007190688552797797666800440055513034694519814261171545607754241491114426503067391708026773327430530368070856522150024391275763802892330919659044176132589955006997378220066849282802376556574771095454432372424019881157819247080968378295661913364885392517134448625495685755325001094494182074259434239002839084812804055449320949978677165403838443403346191530459052761002373881000036196849541020210046597981710195791378396522899387018316286519593456022696803112292939269618289719565953983689325572093078277580771027731855558707319269723346946808142990672918185235659280892221918194320721811374557603801644059092599740363904654181267310568557007866949017549556330621966020041772605469516493021142030033040562476788468551723010747923992614654763985180661403758464503338896350842442246273401673994368062149215476694973454340546596193113264764359066875528449529128855952200695477229694062577338491574955672444709272136212459211972635626719220444307470916479589888134451738813932487383324589053625837672092544864843266648584411756051522001064332903203019721427571624236120704748693736876345217449933782346814262596759601337771645138312349896208993008080784438265804275138259839762311995319941994142311464022395312283803845247890288265422107944271263201771026109069442193686803309071360704505377636186925856971004664683115156293324808739454718863214690225854620776938972081306371024459526890188105543191883415637094427601005296902467995935984512559450625592127438412582963660486509744664620080287186739417091624318563387030168656066694595724962472281225708033043768715565546092083155896492744806228565006094328939003206161051423052968572197554242859969616514289816379856548750845246469621331501133115093373890935865777881295980513905102919596168146829521749971274997151394889587548149119679414792801198097842784328647707698320477732441098334308247494008139989970126123484119317127391505785697505652536290872476139234283818307832949300120077006478669861559266847943038295873052808536401109325016467525299435580817527006568801523563831223205577620055829121198663454850013411537841068014709247025512745911508809856908167988263380274802705423377317179575247081746897588887398033986503945118435118068027066181494779316246653334170064162325376653789466619331702215367648070272815238307781060923632252307667815923175699320122607584134477647276810546292452231975893452733005112106214705367783317097943455891633344783393327542290618038007334870383515509828235462093630562568202142237627501155034430928283973264808564085713188991884716136477383074238837213942696758823288979820016064468785345040608742604638977430880284056714354263300998609794343433307725377992917247151299220623968435284206048903394207641017698864023037597131896834089596518920349877913571501842469954877254069268389942345524993631262908140654158277308145143464231695651328444368218204186640539496950657609758240418347514889737284560954013133163435086234525250106499437939028846996333582932515846002888198677708810980911165078805573629078394658212778407926527081120045291866632064239364870437593063374484607389650048012742599241560096190874040843385312576891601338399632453617502287929175008772061739618949343526185522755177314576809167790477628503781623032960976703036415488852638841881266641237561437894953136039360596263252713068484968781059434986923333092928964060600301058836585226206504266973445035315980924246263220924535282885520066548984324359933090715611356608494936200547522486803955056622250068015784523530488661222838147458732300180209024674283040020174153105449776727955285768926826549298116142344892292324147935203268855823847206126191426577249487675652238296688154740262665454538533638718149243904277433456631198260839604147978393978022937312614272869074189121395795787756615079542698630412995629630914206446833585481718340224661988654411916766727438230720218137877794951537220973348929530268526644905417241185146800955043160227874921195647806714217576222904608364407515939566850409845788271812331760029767694219865775747804976796866530955581426298327927461926215807710380161453383196115713733567989309989711648810625774069665411399548232888683658576114087103750972460168148376803022864610240054259542286638398911151660523645939676696726221061310990484156646440963381896248387932448546686607998173753394257973123445541707430043971600610287789912199167035873269882432625865687149808112510719511209124190061869886270873686623389055682449171067896760334217746162671987381375687961634234961833562781621457205185474514041226142389085713331315581027943301109850200063685256192425038981987337724035825089338862938835119200973837712593284368954973003171916256043217848127275304471474209673094249945448766816211132030342178897501820123155762701102468074782013006032819874296725278929414306559123319334540279298568811720390845746571388415382728845196805439568947043138050921056242407723899578073495582994559943748120477003551723199623334040455942864995223233244799884462894065119836854501263992283271327006053611425857455954162043155114572223805873111569558743826219899818339788578644727527973561525697397399877520558513410292629082406758295400862069972379006358986893270470131110489116122809251349042929282211888703484091387128591607429799293601254678603984347430956449013452205183142190711659814888846966717186293978517568787893790331888508585321568973824529195059383068369379020084021133947842859694204387361351115586138693636415398864704905369065697290599042648269987384825438994365894464451787856990790674191336439102528046762909406387528920379649858185031580720556248545510136356203806051576294236232352732644193608532583091470387557592055695821234986584383710167308989990981949252581696166352482030836466675354681299490443224357841181436734261458833126036412528787580166973838805772503900094532357757727422776504320768240186329292539268617142307591132567746483598980545856376231392253405789046067931574071781743844660387755730177985611724428008653482364520678799721637292585965377835661703891687196866412489397222540759529311736845948370979436416106353520608494554024117534373470110861991230477033164421519385378100341158824837468347858931960244543416495053420274568591642998061531038820514931923293764214555138307695040003321876327259837075439549776658116363722163907210674353401445895823250186109288559994900001072847454640161932933770429558361682464071942157060278753596155001521997149618551418684507491651605895484524702529319669907409562755972762366271718632180216479307833516253012563899592352599327623221570677466554967176204484141020631608027730711442808401717811328395314955967617996553007324897398825308144785373162963872657039835529297779682702469596158532233490684594085246680942677545661775989088712210712372589445200232003160274531236058400936941768665645745621514601383682964339286671742944700807161957397168221041892098426727842535167924186807203073982505817081382046231031934702304985096197393696540335257581735588237497080800456566776380624617974102999592984091153989430844697351490559960674633820259510501625599530059140869940169032645191362862855049889080682185666189654060280471285529453192004958875295543495788270101030779625383891942739655121843260422280157318651995121658758771915569649800794365104133506299499791994399428256271413482987644633348688346468863978384016406719144143812530242541781718268716223407714353138450856871177604347693919601091788122148711211013721780947526359597977687938177851204731098940312532801489317171152456516976007058897213518891326339020755255054595379670611044580139523735668235580506357548019467533201550966366022832130671542481757426631071312247728244657631387145335568086335712998101574218729930703946399429215513880848460386668138136449500639883415412753430165086972479217983644633466826228683623628990583677220541259809343175580381463821553483543179458408878910807969774556602182506088379406165573882198458676084602135922864628639728993162406311420605473771042252318281671958950040253419898069099857575252705040482841386734773241586512718926473550426983657899126244559769781621699771066948440947898450247177071845928058110492886135812720599187818487892732787528044037299538755887457129945079586142640009666967798124446956851233537674033409026924492586229109053072506883490683962376700595168086262594704500725632373246683190892514047582164081898368165775388002425591992699436532744523172179433733959446172568165807137302748444120163191927245346725144723403999540797357433131988752142183877727517926105412076418084601490625837880547752403103003425679616214875653145376399959008154911708632604860424227667862693174072058716296245655067766644194504100298264079918749274396026342876941074001752531440658091004337606875777832399292445305022730365847266381746740791110461891363664183450880394059495637588265011926440666778823118450116053264230641354515580232420950402752214185512802463712709734611033267594273469299777072299821895177014627100929626217868506085331371219333160560918465793516480368541593895059872542842853531817106760325253705366276267581676387458811100429430114228532889194392017068735781177687976972020241169430983350456570948048032866017300495097646286270830288175667942000866913882531909438148280593812168035904829617700664366362343240441998478100277887004909560020767779272230505151907581695118882864635638505384041648954472395850138041508704999826741762007672486686727760638801726355092950955629838680160779308455938520201358771938676357621008816749399441928969946447554724149520593686589760348424878387606186648906143198426977808157816819666054542263947175411607188001913654077689789390730271859136376981341339494393340245207434795741642967701958338185916985036721057661856775504066093203063247594391464832520127616122290607542773218743062627469095050118713853944513756151614663091107069857262492881738149230238681604327527204373130082085151317364395763787303346031586730132153546573786166002271812150882310719583499204627090143158030666000157062864764682217455607544027438057111039760569362355604128588893765781545793757164396147858758274516010802196656043197207969185205426170966809247358181525118622063247509353881552005959473135755441489673972876766113698130416161267637952611410926555371542655802340909595325806969793890804454475730295225554240447117140152675843520547748819032759713405344881455534771613410878040032848788493050731435078449604511606811243435328551048611419338641778586030175381547434896305801207369034233294014894661098287261746183785008751396230909135538657612287900712817963299344460860160815907516975992555265310670960205067527661323134365259818868533430066394127050957972668729434822639803505477203039567322677121456217876040330026645024133255714854559625713442465486343042874207061749286939576747708097690754465917384432044329223702918872853924950400253253254111095072919989112556746957005672989750295381094339822263073732217337329258489097472465770060009033889825897412055810177680798042635638846261471614087714244511611718156285189550887467727851597716378669243516883305696639023452958666182716466392749048823142572726022183907686558466923906908011584776850384547168514651802984542479732425244995909255280037402348519367839141389063773657332664996192714624271529436257113024427445805881577627066908297618059424324366761068140551918069314622513670908594892512925197716138274830576230073399367386264843427276903557180278671981816634460611117752943495785957115948715715322752485454953893593500425220991450398606599446903432089242236347714601126032967602318072658099619305515015582298675656106089915160191956722045203547409273701772716095669195435753421764125573714884168270782573739305430187462372447497140443805435701971727142173733203950395318174137926273711080346974880875693031723700006555689585124382151346702424229678473483685630025180561787232903610640470820322622764710444697481906578679257732046128727443397687750616469773854661760757614845318317428008082903640044368894632472675545018325637257925977058717466932863697598471633785446879664316824739584405865451037688806837399923587242618603931101805945265059158123923613825676953594278967142231181732678016697835226728464788743034240787271263781901063354806137928793682880158512476887880565415372979171778380058538218387442382662935977145350153971882766052636871039834187522129519072836371800383109022927730578308444976942617081067431479006509329460703953317288572210125954173870835857667965147211952162093996906656408431917490582677906784582666876392988856010880277614007760468114909572659550671485059307303617179111491240422953661755707258953625236883260579892185279488895644870416772260687614518280692762288055549058600564438016620594043920717148009757566931313086499203722906864210503296001662048407921793831910734891641388895557241525991266760966112010045355732454673737575718424112585515851817286887076315729269056129415174061109390158217752414826942824019586115136321324166524708685304279794214733406548205598408952707392698702554900607787321351735042296112311365082479741154003102565394965674093358973771820379478782570381184851767186566931112572624531387799017179941707113626521047238506329193769520891143784233903147415770262986711970499917821891144786215363208596680848796950262747147267428894508865607063474354959833380694982124265069381068582829456336535768934227672338100458347827182628925055167594705519936536070463171882761818234164487319922212293065266535126660174753753686884440823564313645200285670857625638640544014719491133031284444406466850873652987890868883794413518223896895477943022312440695539614274465430555457457791760331539051732788876336992102808835859388921363761148718387102221896913021319123777748133139800084675725307769742175539369120230080259090947608030444717080947785436885245520855011163461591519096467940876859832691502213885434167923377561880468042256937690260440158596182859043424899452676544979458574116407166476218542894668708821758110225203103518695516077392015011915365538309425733712635642188843538713229670605159255068151942141194886517254967441183643521701604794787712160695170260323683251187496475255585691968014280948957682862154256987218869941337222900309738154525354286094757498112992903508971522075164583674216793710690369670411532841178238878630358949812170061225836014779723132834816836730821433638414231032540987806866577697287332034244138371446814676470605622470731917659441246127539441516486438238909325375823119690623535056189762376955421726034910572715279257748439832210157107740469913075805057330319914615367968557503358325448818727757085740830723619456139800807650161791063238753557608138022859021607977216632203011545630177637560901898153159242021947445747874834480760376156508504376860579448805769922955618817779017512203591753187103343133764837567076795572440526658453188038857033925350956437598271985724459595977522982369905364055279987404187280301488504699512743145199453201184482542706813615354642369486619644438175205175687632234433335394072306911460794133860352065354699546071005576622616191362215415273337835503489376621308372569854717535761042713980598435398613324081374282314932503458697392643628391015143064429259007500852443507672848830785770135400449119208619710639923925481596764752076561242923688271484029195913259797835224928342714426963583481035622250958447297630980240224827125436841994300739182311128286526099510945753429429593214564194972449575590574219897534759475079399471156314623784311935346966872987230863568802306911848067313746972556969710914976759352806574475541749257983741049859946285886426292518565725384081105927308044560096694073780451289249191449876382763745368077160432313048694919911915110754503610352458079135923347981013655389429254300590610611027745282281423373064621418029463616373736241480590451865905980231561108769099579089210250927325617215424275734851853302012947715570256520531940078996114452685555780658114265781890609002762532426381672295908772603720689901449953521598711615677770615993641197833353279043579537127162079988759846730119893846287378933585480988932143671657942322613021260341503196997041791018249735383046208191306741167902159331809340033388984671149146580299663731060562005831390308925137633423357293586453895825937763596210964396975675644679131205034842292073818601844100500506496542815349684884382513144549015357041631044860928162427375599855591168598905213464872545811556589002088388532167474053281776263054829794916884136558853903410086340373943335197184671719044938835118615418007471220511328710933592038466671431256712111648248047765036265511008934644496350516663401960000537867514979581911701555376520164855787341696130646988510769628423793792885697770033165933548990660287763790112509293329328881501101660690369395734022729931608226783810210573123691280117844894880590398614590482776783734879423953152383714455999394708669561025393526014835838291240164697351422349115575161620099843449948698545948037287006902930311858696613004943348944087844166968498232026823067962201978701176882970036180580587292914589299830201700689501613552428357917962704249208160532004938733543743478889110771836255174076391674473723173515824515198859341831654456592333042055710068230965997837448322115516624641209903505613021129756014069312134701566730916790281272620141125210360515948649209540529826348057456579092860796885861783687243290565565144463316591855092414092455178539167554935844103140703523379327907645287714565494676790818550079198307823311797592192718670166600994706860033488689848844417260567898564223918987469966580060600610100439115964789840054528293811833021392335387209767693121524124704625369710688147839450570829584050445846856514803772059883473063121585202252491622617067046421749344313893899780414121908106294747022044775694226884066396512603841845401008141165129237444663415284718324316620458174362587942033891679087149058175874174071303494576616267251800833646615853778938088975167496968921569855659648413324819992970415918152204154053369996997558042463413056854564409152018460487892772276299257270286990245917771199431091942936635879613714578589098639945264830830993017320269863346092766767988088726990066552976298741901213141605804455416915405540196193673794870526409797305091085258404392719845459975758893263562457789056374652987954127183428185215276038316750776665758440566261678027058402783921589937104471548398450723111930058186381770479226007663642547556554787393677533753919340809278088198278841111867254709039767982444759014822943947134402534970963505093842722356735876899488917563337976269996915367755704300229757130774091801662028672967456423173368771948707334157776809311150407150158076158301984548278622085951851503594642139165604597026210269381726375270425571654073051645972795477165027481274666796831476577229597871317334469835745510145228467414376023478704727637100656310871975109308683940439665234389853869238322923203594811939269806533096290520909880180697142771606446991096839487137753357226773105999636557133073270914751295819336312374825140403950263649494889299052795099039853493161882528314358055508689149479957209913965140473808972021840555247739860718389603717610463805628218062960910568181856970973778460397465526843354233045898441155128429371333486827479987224190736309709868523877181253219694152764688867252954775167443291774996241072772319972866333045452491518187032630365371028448787646554515401936034956354121142219398486956063366728303402000128747908419409889799229613274882651611846114256830284256304294671047015879608146032337144993130233685901164746329863109515704306843124045405401813926185191196268758813017540624035680815704393879011719667247276567924154677448674996927242781846361609391864636645810034336965655924649046129018565489290277987935265991460378040342404177046168408008334146375701967268648115950158358143094949735726223727031202513136321066373131815791205890265231278379253664750996803748669050710415731972830285939466244321557218920183664944801767166938067736466831635450624384410087556206823537835040611574823367799255119599314182476213979217895449188828416028720849376911242522382332768801164329771131916293055761132682597185002808476724197601616469845096853419350212640169728962766445015985399840854220703569706333035295133002585233320374043013279975944344234908298202724789948371241835210808953904712877949082847859004585635180920203187487098638935356808773547431458834629302806971932908233997518431619629065243659630290174816766939758619396612302581061476547893028022508015540176347113526072411080199474920077315522341176912530543527576400616300345201206417924114228000568440831973195996077628152041069854444388578308909138788498820472672264053896840941285465195299736569389047320142419361432045401957175286289689694887656253375461963526803027535096173141807905793252702969178234404621326080168980596211448753281897395752529712457474429964603901807889610746689575336696182292903435038945557656464764851506069283686096895796443894042418032679198175633187382379446092625062470711220415371813794711406879425010916153650228301123940693149228510712547378867564673050779153274892474494802679640899079848018835582330810206241866012864067621054313686528378159964970657254803146082502582603223528060506675214551864958359257521748007110341575169754337060547965751080031356155013214864488682160264315876300373697873843426075635595224929056933516795882829082209640163704620491503560505797971684105751574438708878971600371902531472583636315604893422413289677815073033207728285625511318336670800900124228770962932709421570233232542372896274892682173262420250684874480045848454040781952846256573429345093601871664928026173717853830077713172750608342091176969825718563445581365076608108609690820731825311921657176288810495511202120260213491173351262448596357647902030399627619746844859840041336562261471370102162022626735250487667031449070775093587375701720093092498213731794710347486125092201670403744502759799848108444269013625399723260113333399073590211259872588447294201373367324386089281202721930321289866362530658906776723806549799613311186072056391622738569710630357075218679475992261500600658258168139066447577936649132040525889918479946654729548295167736362256826661582883660217095179081525731657224462262186619881984624836867519892184235279596566546354930673496626679334860848434893226780712344770126839297432573566827048280607756997809517254485604336528498661066728074199042307043794096910796516843105679922224646622060069071941053119167104628237796924267874003410625505064993123769974801792184300775371160051270095597838351623565251795891596658299875947430177543850571836293488290304083106767321772329516963709226344358073625940932789249123942052271028160510293140417830810853034944401036638873913085195160617665421039916712232292244472798714738933606653514525989823875564511636690378114319109490757256694219180849831060146083503297072848785657625599366644038362435816252936930740462253859597195819040505746394060680843950292121070878592555039156299660415351905498415621505759130446538920653461241386622213324420769581351638990535519695335731385028188803119724690650378751133016439785422457571223373039282752076349106692749453934412496187964340845859505070315692774149625232841979194358958569155627127933715063777747227301260178023753151589239527840630681265349545412384551741214466663109559624675532592374674799382572952145283913299861768150196245116303480355357846722188460382875055543568735968693739431650808484779076840333022567727334240765820228622935336433490601904960927654875584545194952102798615779860630506168507267882606613275407408422453016512165600422516833827905303417622055891193705071635011246217370954050828702274374055059117520198457367064037264973582565598949224634421894131827280394776088936579883905689187979515756293726762747086117438342969898873345232070636211959046374996651643742169792174021940685691158850538641344233840558888677168332130511191837470983877343612841982398800578336863736976591238907940984790536320058126096464521240138425617118337841472746863822726738541487491347975811998003736571740188047608622364524456091769003661186015520511709726059097819049633177988574262045772892449789528916678988123852811743562867083403329952732042812226289398850435234672939718759314562518500339511528460592705738072869937695363736398705777229470550563414623735098722366937759278719522186092174284444805638506588910315884055053835186466982717914545602214752971527311403938057515733645565598907487736037464821148664218797722359358604316685846975627018686504835808951817794485972450704915506327118996813183405503341527723759251690457682338668293485269747652427299167011363958543176102698892277066167894922581092050096111362332393231386648894694354314736423962469223674305819392330632422943619037629936704758379105668935258955892765583328350264431055292659291196592940456707142410242965925970859891074839358803826764972960668762582617928125193458448394358902200091976873047739364869442486643866423687750580861726736480808533910333443571177443328963042449180215491834463948097585536577513613993178409430890797486525220356344824005855597149697218208401328291131438500396704050838612425713080050904913628951131130098995288215887227428078183358224922412132019259017323983628337808648866802993495066073747145417593639248735589733084403784813785037800180620789987963153872611922952703059046993470719802145547922035242831236273267308699146642175497799273628186503505527747847022960271513372328116795255653290571071307087302241015350619718641693249184076721382483193391636859159469955822824404700006997170946902816835445856893365404040721803846220799766853193223943417385178264301253562692796705469459713858782567490423388460168209210060536517214492818548507782011473931259533208017279711983587780356828356855007392407395772355825504349456950952476555522150871768358531791379967337880220612456984282064039613837627744426584502690789873171128166049931170302037799949320373898440923598114063241341213818563347040454200409196120191310857889819740336239943233714425682252822443765045715148316750015711608463727863765534951546873210348121881922547531768563046554531049913050796966678983571796509391767436222159902355560097628608518900290972693255037417274080930313442005524505874565532089328647661100395358096367766627065184351856123671556293860099542035147447843904064753800498573671801946176809589732566809888425387757124436692328082179634482197788897988382733192700568321517224485723506259310900654738629973749732878554874370557596013185509745018250598612260115687733077258373268368007772591821419125158083156159332881156313091059169799856484029305032390511486244582953657484652896593934168576436933936434075734157226621748379524733886553039014350381669807992843383066312549612400874500618885878473740665255855919108893232809085811356876684850763652893656023242413456663059742924769075098846235848029807242815136159661735393109865268032169496851775809428299380825711300406063466220154415150880323429194678962265685167483387256485341555668637487866546797332630860481593162372195367176109532063104688166383493591978236308758452223638488767688588984945000999437157748443002061307448583332678866762890595783955721812202586916564822515587262177696265892351362190253269474744074152300600680882435037385109301882972735842829426701584854518177459895868765522339695675904293996325769695787895572307619330069890573235584846256276867045878410274119484033250579335111936872423369759670994363220074728600481578497835841057680689958209384338417824698467643490324151462382803826244700881631496613063045914099055237684673971443102291527350859211741857456481972447009525415100801339394143210292694231871106551765945288057359210231471381701621694174951641877549429003374102422870774866373112865161732994310620280821320453178014331191847759497303697968391604562864802815011566314462047154473847084706347951092783296371539698287878736283678319497825145515011622184783209824894068273358669484059358866200245894965492457465187490847426826256023147419848181819722991063261083194885113388812177620281206562965636480150418370483145053957005882067796604315034900360494742159794780743770623755758342815796781756616902416073870177525100194768916770712234679985612558014779342413403028578094452623060564544810194765471249547457505544297907051490411974947032245755759485933391165497141903149551429687088433856913686720814733335415577456610220152151989568855963812162499701988676250476551756507093749537364472759984007444267561750479591417019159386662294557815867549992315846326957209985017304436377718091566111446832351563511921079238293780857760910410745286338458717648628348204395721494326774287433169721603336627006008285957490393243977101518087245550727667766548693845875290937631225832173194207564869299640809762845934840432340637444046608570054875031975775512273535406496122919699673367128174722734883906645124271785420710116939588510811910912530422737281797151950306476108134440298181860588699740883245749732112459636423152099305316411060393696763085796913913549173594327783506663560703231519779642255576334631664959651725610396332550693230166841103683629339985637702291707981445313427053253680861615101209274607283405621464886539579873054743380730361063140213538255385593565522615952777368473074828494800839873763551386281921112256175749957313422389703666820144809545191710644172409603838856575645619738790973228745619133250213821563451687171220620687996889991989030644705026806143209638641679152516001003694262104138466631916235324439758244914059808998117193066179594396742016881371422845466624231457899345181112145737151338644026068976037953326364212222036239899191081517477545574629093538790731992348174086108069795519331423292274632342084192347179152669316281528077602231848098708289308423751219158682637091679097557825694451189228951676500939112926476826135726286931311942215085346349296088261756960655852908602355541894151810716395417306168322999227697302081330398443975773111051116621446979375548749512045409725799361870173427414921284064858853089486625087731583840779789881726158985791526321186365255276195381423961648230893696003871665717138641558197816024122677754052061372302810510153343025280856029776249206169069538504765843028349611293775205413757997280253577066452574039337608014705089947449188150708407102128286714719746798923699837560507967862754029799110120735768215378966168467916712486418584859824335842664498075717717428969698323357147475387776468649804913471744416537888650433891549828965440534779711526465899687449932483427328637038527711971599388871802987928370130328935304172997049231831378453082690861419040010505049901030735113879287814283720653118803230219981854027619729174965315331267287651659877130828093353342855929606070628617033211774897087447042058341821128093884686494427170103977542918153034130946963773343415797708253855874290561881098046264673754158496958219810140652099968005314064831272950184881688549542606896503941686343874941401678941788225986684767127841125691401190081823712849872123108039186159747608490269785429420570508727266730110731214599924455729425989477692887159151428380759525533992757442289804183361558261555096187636123113653585979574026506447544160666120790689959035153773001516722604866590747876896256672012927474777376744655144664781564464067975381800367581402544383755635176435700272994518799897912835644977011418127927357760038492113536507244277780084000526002111248239690089587899300972776761876812039115987464929044794105042787358428740706252160137532186501776971219393936682758524741288456386747967145661706900185000217127646714600887325299296958236789627846133779029487121253507476088015539354188329692899931050428341673990824297252134594608627567208221190232252301711025068810610270445947104387167599094182466738834429948596820679652106117404685702575243987570891999364753635426377156997784900490141811697960974706300705825792612091779577364999555763692232978296213276585058384807604158197709836514128760072657863819646221446971202590172297340308803551152205434330804256765928107942127610905155650959267354392174813003105875081528209565359244468712350623590896289679170575616881534884604623749655513647827247769202802166332382363427128388026082041122594383727966695824298155873281569077556617946533951521203393055931317423201959392568848900170393723968151556334996420874366116467898162681700190852692757518770386620863355726413765896537806347174144326484892396320203827767737828125961443617756197516444732293097085064596006123666990725896752381761654526960914375505562607364987105538277624905644429648407285361928699082658205484571916695534504005619834090142918529507890907021888071425716751492277100451639801376012602099866235840216290958520361486044118914012313258526554632181904964166809452985558808332209308826608338192761860462702646625768429674620678048283060466591893258857664586234704739892290807410132162749549079648302840885966671423984733744488592949568141054724333012202688021269665337591557732227897231567122780525574970240353711950417566572191431266206761404354267932584041036421471298718444694345204714732647881624233968547445111120932893406538563176495436440857496020661679499110464677004096050822008987062209648426784076621513285135893114089863438420058202750594739150765512254837464503824693544697915687285786715848708329986856464671731647392538724099578019049720048241119961056271455710348364820625694185011018364720862618085942600933210764365334918996544477326316875979339980477032507844277056472963880726438282281737778716499065181974956529754897750444158626093584785695692055106645715938523974388332790722788194041151320297621276070235926548032759384215709129372437845457561875231447396151424661502376103982457805254386809184997891495091084400222796184641268977759857863063213630065671506218748292313603955037595073449947507841174535700694730626817231871415954810592440457646552795612470167652992751125702556311945734938244588414864718584962566654242072998930169719372991502124629155880878203872190859209833769873589313230917334654231623554546637067300491121463728249734081379017521437695893974751154070707306844520577263914555669761546804111952357115649325063516784816375400085184678935720787501581513768582823486681287907643351224102213404429235180635905819739713254241912563606791875205940240981758785306854770583137536651991854079803567402371949617447755376481329725872946253129351044360171664917635381630530870991699003355594077028592204565698073095512235554213040475860352620207817854477142756118654772564084210507862602774284957694897313376184705667150480912728370101758090968499978518405123858143484189644016342596767248261329975990311202224085011123959331536676822850376160751844812936589310621756011628329787803135669046180755352126748120682482730360727235237650443772084209492099537988235526358128326038343313177367167116902766397777917806719693824733959582359608200675566866115439376483494374968960694468712523996171629165061126517566777769881616786899262294827754875049965403547914964787416137515115855582853111525886654069072622188725579254272511775974824942579201222516106606643846211854937011410816011059092604083476478584702058189240734869461832870245700676339797762502884659752797360058906581777214111487459766397165301253701344081265719230310681905804663120174778481242065374884533367210229711034075331139765475041545039357279444483887298612645552996379666526392026991494350624287886580952091659696505505403466992164010319194647443301225466791585130618770432035368188381701053866209706727334705163157163166919625393420360245205962661519011429538187313322215569427685398150982608966902061863766862219466124308495207714714053061175017571263715027494653746511827264601602789918833402949341988706637196396446340210294631131871327213180403671522616349777283596992706733801387461601413804167951791663192379788571384358914137142181329477427763031814676711308629876211658458497446451587363391014794672778300369698777871172512907138604115092217297498356988288763239204357013575099759048625918701973317779956853689330196514820849233684552952995399893816787234849875561072629195839622376628530868401061950835483613351754623948069845840025802711246844869208276980796447322183172853001680851357382938847482363033055561178551723825029322294019701473297743870548343784377961944185359328706656417794931186595509329650277338516063164228104874356976461444758346646588595734127979266794752088289784034809569093127856029306372566798418398597888490559165995731336108497754116951072217953847703094147585499773435690599932023109281714673159312301105431034204206334476128600469783388449579746124396592413228326758516972805583442538821951042666998351827104492755891018748989209038571483498429191687521138845208494173735018083712418353496742273343017725655529776244682902111682500238494331970129921081361949821764723590809446984405951802085811496784761801967257692758360470470749515865985475292771832193319670486787340602385305956140683259177047055553966795021275005746106157594629409889139452233591442804249321575319730422819457074034896484481336758384002920629573393939094835543665999434805403641625494757766659311002877067223351410224309715269286180392973597196294197263597720613044111341564278033441426247964220766314951153020207869615778505618317869303158295825803179059165687325371717131117187060521841674151162120749938276273700011123390861321253611379358055915071354179885855738330657814143868501418596730913867102565269140548531751867807554474807232938642283354300619295674485298151931492601650190825497267068789280277529670696019673334602379918588578089242324374708081128533415673496260000579824155112777560577885069395133752795534147303239162757469956609406900356046195818179629390024030058453895119796901386902670567823613507044953353581414588765236241299043406919971750967179065712138562982759071048959939969705448474000581213479302826315005420076561995874415551482696342998719899221902879478634614922378990870997543927859800623205306561296581634316222712775717611870297502932488774480132965228790829563186192468973528466913935058165506450065758861065800380272928227866088603310880894372629799829626204959429459775476078986949097051759243784228588458824583809875830519407230550900403206372621808287971537665787054124222952375708061755402332251604672997740937459885233572320705649633562498677780051123681221481998315126597775690062145452289184391833855509234778551532235533668276420417075850090567847910376100765989473054400384695434505623799084918043477057984258292420845871425604903601835205745106453176874894592131536128634284753471445585191653469510874159073635856461344824788484130080441351661729562309125304360527473874646203995734073301281905612837032796878658361972462595551829439029877734647941361818766595662192689302620321042607935698997634228645031568746345841933581130656587174734936058196218212208930145912752139309301488632146773814509404338098030651471592096305361801248226938406268372827738952966017394980219161311843875947965358993778272964258077243409592525007066480436634256701051831903426578733856554818740019547730397000503292753770261668255403942699564526141670087059870651813192298485759305900203389558788938985461288794552356299292093568630184917348470355443340729601911536032462657366945700248993397457086848436138026886755225307625392255736537704611983492104178023070931709463503834059907275353827862421653255808946007340786588656079886305950014722912144793076145742970184808247581318163150135415313152804991727910885927566676796621763538682021109954333628046768267612501787293007449061273652873301323052089546986160972186372663058776172835219541923922259978866804747094639885297682046824435697527133267059426524912045231965059175747256858308280510138825731526889028319831536444374733813545265461278891125773364460929306807507470897835189899554427818252008161937359022567485366565657120677194301438748730907708759776735238009835521063443052328224586705367413981550812064465333072850022073437588485346119482075006020255219446363697923639618520710971574207999207416175968471064444775366896251025885530466074530678408169032116509323135545528226273092240511720256037918445657764362033090956944569481406038844587467037709836996563352926308461504319593186575331128387059118767305367472370262180507065459117041518188480324610785185299925792947812607366788189180439823913766807541118625449137922375513708981103952796236926779813820346050919533329919733482087573639410999931728093470282758581197323761474053694368557271028101477498623118660535326466571258077199293451354573241975865908061180915951171488954885525708929229616834759938458208520720593331284166508327252346961417295536870603181637493062468988458461062060831125624288638122516854186500220433737381943835820288759989411066533222626144396467382480789414107484359598276380963671143674975061962154952699057650538027687081334796692015866705350063673341187287225628641387214988237367594493415384319632698701871422495831835418276253005316981924020663890397137851356350710014446751569321863174533243173358093424916378403961026482388893959315422757288367108650055821918106686241189798957741423905818688567984270729068152168539333736743692682029295398094913567818064240212320313543783413798770038325986901907438718426018560336559897161511398274509729931234412602911478733435133615334267386664632778143255544197907932906708607187251246904797503696587598791573908668772011754082144110075263762265140082296243230360167770554320078374014953368631116704065740453166565711849076678246761885001158710624652925609604290183016350979262784827317225384117993702452109533983096614439002548561675351194177453303769129998585008557643866813650801553163031826186000966371601697405678967839634944139684914259652668200919377158203378334975872293498801045694661353969783726027157773340841808656054811562183233032757219924852573452416135197677821347618884341325659894673529912541583149957770252221352881478194571460181357093551849140247771170683335296706310458151087189913140317088429434333675297085991770942859456241258250901591360680850259752889761636136642782385259297774288584574788482500389255907667058489483756176115967748535021052322836483981378393207476287228195768020528954076213504170493621899692673975355966808558604382763978749040836472728658995946440994306163971565984766016483479969922930674407380268205190849027810876699282096182412819605479952932264681611343947988658789371838196975772524572926375499988370867305418437689031075182255663596819299878482097711990651338886428361566392410339393639491633231836956790479742248754187063698405390929818379762559618783726121073666878144429145422498778301891662877852496603061036711656139899200563829134216912739703595106822547797984376498958687374807679736069709111627142109236996982677507728223114588733238945265872553090297547109458465019586924688557606709614147535759562997158387792636732285692738596670933527701954710664809873393570398015337388001733665578797736654403394403466439558278875417101697302776218258003458174324274355196483521519024677200556575813426175596600712329692664267945353617102631236026868500796058033888789356033814327565121601764672981569974059074137464074362897292605926758100625507659846930558188175877142798761635884758642529418222107111748138313573376663337111814846035290189789136690437963524418666792713735919293782412511439265688609083723446479252241922482599806052040415896490719590906591065641061543990394711038793881374893562504741022026014438851617124964963179203113194659178123620428761049691530871979163883038903375474272632590045152183351558669224344374247508137605669816109244770334986361347894488302616449764018024606241278936860804450397375355162222153806139848902039921422422827005300417634038888644430025286290375424087055791789371290719275716495899677924769005217203287104149752978505438381058623726850598362404907103724712983557165048165391432286800032925280624200372624223310407405867161696854853465887516738063968203718243626868638774059309135271363949392742306715687730376772087744924531278853808225460707911245957930170452788943447654641593041217375209347279196716491711504697991108036537249441923070396461370272020828056129812491275571488102312922655165342356391007950650390964029119089713350609358878104717851664534838323459361172874254804688477466520539413074188239211504471295372767399862155257729642776878300940210844341504011512735503211239209609876908794558654253589572030377501420031431111365817797502242299837256292388308312683348604261858694032174250141255233814077225004926690330456390511910877841052756526032221481409408244114088238272282115726049541505124312238158905506521465066970604143661421132332299067053662821409843241664834979155782851538014802167551079463218260194636769844477581869770866370492507821133881866169993335817386429569316911300617022178217514041867019205882659061824450256403921521143471513701750438041847994487513704920106394704448857223229961242421763454851179718026653397408450434361792832628645973489667095560765956831993851671836334933839644593566506673412060842193779637971176519151327314879165557999758599686311313940711048329253428415911427319927632691347317049790478811646254357645288938896610046965709167395615791006491325936099375572028483815460914225070223848053545102979119036976075933545891654152561536406857581593017607038242317048192704409309059848862427770845559991249978094646553501664031278073650144233535109546977987901056460347187858828226504377889642148402235047360107862236714253957203789124636993567240669577272591131890695284244635721966083695792514830161128821400222873304246179118349036652342665057707133886221674800776939697666659229175732508094625959812656012673415581612077819362929895984453321703473770309323288787346907925870232501569775847805859726487962288536543719333741561477173414670190704718484031350151245251378002957978334204698681593056891702441678677785997721234240876985384937038087391820404589692648196773706598596761054892516085427632599206467748893086182230179087407773613889515946546453272458247508470367020954571965451117536376640081973362838963709569597627079771806430565043201573772131203188308531119418465442033953205406651580080567100308557451758919306677372897190383139185959594474089661370023417875900908654403163220007115705448536686732480305311913847301531733699763064200661806935734233264049397616688937957886273055737745225951834330478006944695496247049222041815117253289449540312844249819658719771495827820210025984957155498212963806782961255870852768074704472841634538297838922981937877490581617275781903761655475122641602578116869168524912665946409246902556522812211651771743707917899852457569952416699645390258788570043727766808876090712979744027511083196951054554102952140163892634868688246259095388200474481645273316913488339536191157244048084539678792609087946604914939643956940184395392838087341165543991880184219545603216764352754168665740251361985332655077765273344374463384179717749749790523824697264824374542976230264605475651046212372549755556348728009196873024235678431980447100583654824585724557406780379508060595106221998343757835937205121132986394595685968766593798965211975818994880637781315373241906298879926398110496025015692315160085024305684883341556321840647282532253772324491523675259500133929558205226849524435224459489202658459356266873874337867854481756363831915431585627984154765753750267464432529319773481667966241511818401463805824779190029753774673612377845956376678552199040957203608587215102896313954238761222118079924321308450187683903551136448885852923610111220662386887881240870162695502928893867443435922576251345917307239385438660717293752572883621402130495080689853435141250572674733469032523347798663499683833214080638613346303508432838114771046534670642707241108877036421458819983558359945333445379628128305779830874593470969424952196052803991136798416392421539916744457509645472648177564248277749989449541382494134847186730299332643824365932444752122836156522044463682141698575681074860802448999990230143723265303847063276237247758011423988257361806919290236661815228530914825017034897293160067146533453269972495759719661049955112674737710893870544088150402859182784947902748929048799792238942022180112780450645108002620418801228396769405263824965096403083372690060531634606293299924149849593410170760068590634443002853717209749948086760329710599872169871616686829226235004373874655226043837389370384082791337983283035398062757858582484981794457662143968357531615267472576216864159541407046524534758738103899329749239449106946277067267882253505175913416008821200491951503715443578188842869627309990409258793878596830793050782449171013715518412001473816967920242213781301826151267347888911645970354577925046228990515075543964165960101658588554059661135191084167606840164123619374537718205664574744877157957847721205586249388762241310715286866641394884234731406999735194122587501218935085728690848702187885084639547671424160628510431607316403235496624354655808015344094280213070075218195966149066125284288097203667303016504962961023551341013162237302089374885487221893559476205410538484116221859747331158392888951677774700708466428120298095371377988142392202684022710865306233190618801008072142625899010643183698070389193974063460896667529329532907462294250123468261493730089433202680490960544849932861357210184973680575087698923495351847826551775114812494998105333440461716584303279562456186705053618216851723453112890664931158618519335047872713901773964711080551727325071720120837106585560305287588709153716401616372180350020732199477040697446998452619147023397773510711330698440613162419475793311700861533775680675463907713946612096493238401499686282095693651860227354871902910184108532329466310621841172317040699589553520442673776873719904169511434364689077080481776837936192213048115673001086892784391856639900226173741708101293359670997417622285141027003079135344374010989589515192420897534904555043174641568330944959424816587982628688168448497211882131774078923536276267080671395840132836914532295692949042065538511927412281089140657088471808314448154031950438491810237953407314873978370308699256230776072148507532687644121172865255158714053934210379016229517206385900554980790830513425292143008739556458886402557716896199608313793825372828332096679101905717055206183871240505166831950139092885959370529099637026652157013462580878049194095206838840351316944720835511353335889464417840009576768792277512405216352953348071951295512366400522377031717904082731564567811795576034033438608296224096182034361721390706008343524788921910215093582221093499447327327286123101755476858748795891045636779099662106621331933776908937986029656436697560595867310086821528478638312369903976898661044254188686399269090598628278073680143795842033481878160590437542803796253535696517834024351932891734268204551532029698911772926437878405185314301915550921878402579647537046815753706935694080060638761741730275989820457304619237766715823431455781247614414362190431837703544020047462905065393156222625127742456934729457422406158930323976128738749821117462310245053475315166308954959059269491437843494270616698457293826775008526392749850940234783934609899315007668909758105289746920965527031723409694573711807971753186282405898458317253590941557875916286283502273275951930276167220550860352072543518124015919925504295421559127994608740724377971680388207434325492130803961654327458791862340958568392835879871205830058246193074923765328198579237369973581015712927138790582480683246006249151032400860444492654726671911210734868508312328792781031150489282665684193945334659908679475492327347623118411641576249004510402561375789610011834754379240451947237128378310489654370042694203541391621315388448673901512233103787849292938667578846455618370214650525028119536157710638249455355437906452295135131141038214575857695241151126017484620221559949952922413662003962094903567779982513590861738717551083740638511086772423668843113141390648311648403395811119585247452473747306970377332943487372595889122814724279815546059848264149300804681795310967048189727341476958592657585715586073892297148421425432539727588497774006257151964355722939296249110755224999718584863226726259485414042878502346067996945681726525664403475185468590787299599225853330664881350662773799172955725950855160871880150310795431801407128815144418720484710885670602778927567359628989243351227201231630536375797055626325798716850142556185035401681990996336750999792231747815310657347686024877302405717659287445844515247120099662585967393726701826055243985931608858885136131243331116208233082093595741919576699700681655088019217646469036468494438818005766611996793509964006942667582179731321343703285495497831143815080948611255569539177105387271626008877017593720106076032911864521145724657972247584883990014721560057808324515420443834765210793043090596190391005456871941306182441634025625271504549936121527906952425514816462867308194117087923659354784226311687660019207363512629600134474938783924726534809583682472384672058944884046831276528537706240208075973645094361890156977449485432334459080094029684955162675192322445109757329097284765658803628918307710169770439224573062885469133179129627483113728599161976038264138853148091900066747359479748409976831230433132355093999796718941391535908907347805276699574011699640668912426540372834940321773247032339788596069176967013703898929708095680696735126155960823495606252674890543780325060082788768429981069781177368728897744967611399311514799434177549085490526355248828303870739162062545980563244910364214841401060649728072229867684786818232731565872461852902310750074740336316807807378774276793058235559187631343163866479132672455561974240662602775311515163496294693545324606345744841269992074608851171018569864845728307481060108424359220210753136903360280646446478815525111378684833381827534178192703440465791273871195139248419146335306204999628001141142797612637372828964945491633717780339445048254776442222791942844590301825343522307676769780563240067766936368330760575566951830053325267459347792826406460825777923524911649046734757718457981262152229773732213195922482790336674471677506929655334338501345456245282428914014380885605479514291832066599499392839245774770865952625581388931962490915647359470417412170292097860827793365330392730027369385405392253310263952814052072674773764086272002647963368368073485232970524847919349349596043324256630110809569739373056843816516978421450665343447332029117578774211029242018940049988566304816617746596721494269791959988513610845513552280113327841678911014646165950954378615756810593944983460108597732979913196615958668443403397573221596648721725549386125626890935635332220274691253892912380384197736218349435705457573038772040665704072055793754189799532567192484016500003284149889349066309968029675465231539384343776129605846691123306112665407509978324624109776708780435088419722325606525825463640663046628065365288669878298303311032794790725543540006654978276616300122443842100588559768057644507535438721201392084654812676779539557753107399211197563526880691349445799899738806262108250639137976979717038991333905297072662452130495904346194971207222747302306496170073334199450858589607533118130221408549677426165402879063653741255535893964379012609953397172250904453014671281140026575566762728752857750756196474198772010887235712958745727218573984883109555351466318784962589893340712058049285481092026611328705759128090099212614045228453783537649711124618220945145495402689160827753382854624104991841859687247793380525901173546599131005498400003253901066830955857820937353990534233852892713646400917283148634451822009076520833819842185632329151024507210077822030271503071268016869208402417855690251704318538638734624680052911848571346773668218931128818440255590105409815803919947957541634499101860104908543429854271708100786220690455361996009550744228238684149449129926193268304713592982561851302232659926759404073899623696090183390130176416163619897218666557634177290941775967623755135821384923403483126774349959697041764969617756620573538619762570183965732565652987288248031052760554277550251201609914831500292497191960343946280070612228571891004282512835427334643206707183177785773692048312770394801236340701299590520221007555544237979780120397148088707325224583876570429854126010953127515442940880117109558798094856038716638084122501605521830085985207101045409470322180370942742607234004953903945227932973171070515302891498875369086959400073145582794630741629588198504445276725495730019982131492287846036517716910948802891569433746582674160213427670450885185080430411292520376117329723688404328548381643922775859717459284551045427039572754386923778425468973210720342583896362589416905441333519994599767968535633533687369430519743734940011665324213314295657841127570116830358350233410913121406832328073345211854858275105460020743582505325284034466656608106596626140042709625265662267281444480352426042911591610427388711145666413795484730920590038268980246778608244684440217979810500329428479410629778961797704413408379254755631407215931847809917748822218390773060175898392094817737376564982956303512072749047725389196347757716808335693961788181022026103740638457554333433404701646061454488030524802919310276629910237413945907636290869841794998527041782910085733424163896166226555338503992426573167828644047591335700875529363615979549731180154081763775762079973454869601048397503875676313920110890900377438844801433745185312520635659930348274479429062550219315985583538821246975000721415950529584601786887260492909979914725680199753936505680378651504763124622082326824006961764447996321252047217273675497391654439711515646345739505572423346110821330030820890957742867965158510669134336815151044836881417143677890836078257035456618964744734357235627678636948385355215750311916706387548882747130535134429168414935621050492082047296690519425188634972837384703072891211538550272022025709387409172301482782046496847292445989316101319445789419519603139719493205278960320817863423472881707750249504734014750930845912639936225385537009191174034860308944922577251047779000754251965458533930438329680118593301328494494835190218821851744354693129340572885773297892972115730011436338852796097074166022867885285266739828335334502999255235028454076078895547577094887391321995607142173834310610092398183889392870575911684928382624579810072621984633292889810269475455963050072603389788793844330115391747335787199415191599848638306228239710952316294210230295284877836538301848420849526317739673951197887289099157986532908167755707377453497448670874290839471666625282741845805101415955590810027612728539249379693637178434790554391599637902532969046656061503676161246922432429627668365849053205012664003183297126243589090540456024405116901425418842085218956730465471009280239148300142597592127019269334713679273011177615940585633554155694786208904675458922180276523698421882586250867157173102192382971939299609453065683868018844790512354989567413330461536236979012936597968105274777310923089250919492768525002156031008599324791043016519732905102416540256705087499306587600214253906869600596514923504185095050795323255333920643489958811500654401416275519793853318743981223958442901664377469147912509809008637063118628745877765776235287848670786702770737024304507934307250902933707150436651378723882496865401244617388498685604802219572212964471724284608926515082790068428238069057813950527495789080629835854725510905388898757432619313477110557961360012876597511814520066939607302843334776947295542225040767559126458217000140150823331552058826561026009813498428886519618755801953960409206828500501333127413739130037166404004526085596385847647205479284519310286264560364222751344042451775715421640602191445665916529254054815558426165511238220985458488861652181305034317868297939345390471430565124890862351196297136344402805590613204736140697121420015861279044240258093966915852721477926912114764380329986213664733524759300140666082455434003609417483483741307072438995740011825359013255273755837114479595327350483346977765052805867105939182073058269030016857112893795633146362340610463279158721800608821542430821474605738256342361985378621258407953756223861338094697340923132880274140938016124772339558417539522979154342211007889806919668757116784028028866381455637754421727495385742442352750093396591601761571950176999517151029873241705205311307997244523668917293800625507184565280666345220275378894203385221081823352392994643559573038883766773967449346964895742455058824990528362916392347475599872332394874183006500905892852373803211738016960681121456137295367122588085498524255050999267243135902247052504628573024172397610183452463695376440112304202970900549280833679982675234314193305969526680210030434310259309434314340684484966813464169935841925301536949750076271029836522762061091830415313725814391966252531027227013539924617848559852547514377839887499926336695752754766952808805535448239147113159885425528457413059008673549555007870342521167460214931966452523466082316180136110982345524860819374034511365446299032175361787623452405137037052576762775187818646446849604105795110140451163363849872273077602403178055251876193841762643292061359679119632756144049313922978972303039349624282890280000719220453036396872695518617947305917986167739850927780200926285892372185318934886379304516502599866326406168650343237574099418026141237231072411737611615860685708078775049748113870906420700580452883336926051720227145079887349709912360910843074839309101738007856037568341314622653121038656062454161183245664528150690709743511265311469095013750270341067736835749993304757592390228884770020958974441530156345822590655702871566267437128194566810291089553832090096779386257256491736372778357683219432384753937068092805633099365489788052771471781365218795469154539719331224895800101382287053498248205601618853378895352102333849816057810545342708216830237150756807163881207249838795355171811522606977204494369562114056804633442683351071169171303435521472456200489715266044214349284160185408704969423906963130925340045799667693738327976772002929703313746164514775625676025374767421305440822042542978569673644884583095548568459948082478232800250888492642321475099876273009242500782810178203986684234415797669347518196187515206650409402039255532223868149277423245721995395942028010498638997583662463452220213952835603578765613069956471068569182514437967368275237448203233603300215986483834724638529210478367529812255421591524028817379654733159570369065948511932084945504337643709179185775128590547135391847801586738920743726378872406034382296763081568449925924117943370040470158392658318013190223887777108391290266444698301610200431313048469892437935788575729944607552534986981954083833635404464656730035570375902331354942636383444938483706719175775689284317376559635855794154002555975262124772229420591919900071396764360306618254233698379511599698884190453314150277900265789549497212362925955503674353392514462444956355158304533587327089405218438068075535228797716999155408081746357727841082208012542395274775432716321152111427611671532168060130323174843036993514821540066139690533388113614867746202229906553009588888428869329236885594578164853012899846365632834984778924146915285127620675500752192584699635049535484885847692704004321710446105572842931162774765998537823051857903763501486426630446696255721004976374791245314622437565094298148027189845134351919226133360496987624164021072729873521335016771380847250325464166057628925520016512480394155320902252846800802470424743637240390427114448374960000424947104923191576196592938748071624534698792884687331491654559660555617063218022154681858374963208377316061612984661699244401448178794755629287985033479226497172102501001552370500814232022497613899584074114646922954339270833793598435126989767306666597570852319260416305490276695670335232929995759873687411432849196491116287723716780380800824486904087228650351373537313187129899358418485742803257967721785353901401243928272632909491139433445432142348745188155182662566811986128398405056613709443470024684906896121557416526172359676888644430532867913755659199665273751053699206456701328554081426819322617397740028987200962928634542957561197676766732100535039582187244658647539025667061786807260783038013704963609085998900160334996594786929923655625425958504017145067848047561975249825989068368133190676054983636165427832664609252139881188287131653324735894758533340704923585745869757363084946257037098710341606384647709307654068065254333606221650777950893043261378656978051587763482029129287749925902284151901806186496916449213090053497224223997680296554945563806310894941735688007065847245911196532932030354324620343773751969077711483246384454032578424700270244533861888905369691603989810462318930155731181662513601683597827156361925841971840093785128135244615529395354014684587010107821507306226172449114317164587127820469063062771590635306933250130134493862919706609202996577105815589097901535938325481122301362206653596702770442960124286786943828266961070864630178363560071136172512528277795046643626779858418519937783205633900892367293907528052038533029479625323172656773569746158490553022282244667142497590130749177904334124607034474588463247364749646740987017997057427393665622962844122315968338844772729908310303260822597720680426238022999870613892101891810277681796721955687234648078539784389144677494828298834332237405572508966933660646120870514234236706282232242173527341024676671796880832720475778383640908948152852305329659887648957738784452709471509283803416636477497031711154137688356464187182980242663367038450432981584917481446834764813148787475813736605358038182894784753364892435940070461106338230817282590339031396525118768924259708122697005328278214049554680658457925183136144265591854252565265569723214170214921480409655931296475651242418438164609640672453054678773255978642023464937561641392599957604297853037557954151874401319545509483991585650122707096715662340518607172621527485693222789283073034929237978578323923520312066940774699825623477234604107058156234866296298895639955750637502125375383114093048699386268067677703277031833743382887552604723183907893262339339600301727266483472090599987485425240571712454691124431263954227019561949143097988469777592656504648342749886891451659375601949776893051623463883754947625600034678385406901021380732969765900244225632257548406910843301846501311365441856730496471311243977912890115463477986512006633935438988917897316910386875338558131786960315524920851628488670150010184713884399279804252411552586040545853903755648887726759428405057252236403127369595080878723314464791293497227489443959641752537119586197396129199833880700219362625597404390927911059890418803650449145630169376500187601484335477123123917497399056987460117215374445365510840618804946765184038629189537684710700804790330852134910309782613199949325942727110104594748131792688941135165909097457159413054072556598265714922136595997393618348578423680718749120733959183808455379462812846976578483506092472325952342253568506963632894745083081372946359482869134777990545897473933427317555916756208610686265936145163228316810114067374822597257842245019278606419757833899140336453001783291413763739306453923049100249047869787410713648447169014404925398027245298374374324319643470600831803348346271669518083310865102608377888934116354855297932308960839691413098321444072815301875226427874908728266407728872397250806677863132254513047593976301391594051577875422793291090948469631709784113719503743134624090671812550714727831322448082455376825250044970472159789335660404871566958436494825174998959702262643160839828750040530177517051173616018999704501226613601057615093189629266867577294840622897905251579606535580087381087279077689871187645196594279308401345459541605954946009054559748658562749708925389984654334376544455669851852732541814412756069940922050816633600631887552168847686552836044115210626873153913750672020929011807270324570290268578427456098853735263599831300623619453554836509204667179789390999423185824157867729325663016942228553402103550310293621663818695232413312885630371992762734315188396152952853157907294321223668883270723712214251547470624603618449715444878089997515155801667324459053354067619303526078674656269779715188922330236254500998907507328452250443450485343118187615416903358200948495232437636022104744081332731033859857332582069768662626431049807418944645700963127283219390511699799662085684856753432445820788864385739472243671824612371924299865091762081270864355670510788470192854652544669985757888450497080087285835728925999902065615716924309866843980742156806566527874674605279225785379785803159011698596384491264343554298256799460497855854670435682744211276064185174991375224871566877329694038654285992766695099667653941973113142822787442121934748717682951081105490658442944255794949408484820548508597431581610253348662172518041476343207621471024503918928751065225606205112898679326284723113020625714143484336787690684608418973227429922913033852604186898968889759211680914702566570528554322368016038120684958731318148368717710917537775461218794852202426878691666801051097477774163005235635704923964486183064680111031426572973769190490595310248550750004575554997854643567422659754753802439999783404610081494629915288452536238682046629917596004394657224451907483118600079923982019983115592067110191228726334701032342631861920082128083192368443629600089081380006890792155816621693883917132730521450478650612285931334516360890665164839606960918562778832268555412201526929133572349407475939892590909849371167984221511970969670395708307906118941364636314797592681139018477774308668008110251320436803458326225181546507812268125811544045516117770005631364831764161429879677929501746302858552970930560570751349340433561025741882044319454338422360351490254160587287485411619418750547679098131214853288395926185894880430871010622623738391602217817909111197340064631690426617412387985964901194318929238795431032851504793185304187960092486921033903096025456767921845941057757812979339572998698212784330334193282814714655552408402027726211984944621958435618074262935223236223008487493662093401404470098971407547706407856114569142089258081478715947792746127041138124720848402132662474065386962685826509482432413811754999115240283767957438351862457525966113129383448872575851010911167878369253420236759898002174093812537337786429865691520477786511540502801394325025251429644431098369207041716810961820865763735547950729715882230139060203180145334044199720735863329340038809118608463094708039496705864449419017705954166440020080528217432590454901950070008371676624830495794406850641019471302943362747018893928057740672858241299612200623223962502456567218220301524292734279748423007135255821784567910293611947260411037207264646627201336006048064267145314253956549597309908739834604973442045903530870811744831635392426233211675152126895240070915634131076768302843625494072681629509499081469347709664080909827466740527050992760733089848608644665055874444307472278724021546790440925782068100505718410532265895846222378581135163389792385917935639759896018499414075918189873764891112289645059942502154803470805018717416339343334561068813206179594906650682993106862371492159714666978603233801386839040752783331858607932915386315148459605319125102418469568464231848850623692165529756252987917654267552669516203095012100604354002279963449662505308189850963233294286320650226604871901216466013215781371207019250097983064613570234134734249122723520472928939293944983231318329945953895396706598759106713289410888774892660881686778336200485823149276627201170734265243294454123514961556697268279261154459648458721348424061789710744984551587551994242146229858708095099025062379854614613316226261670087207433072327838451587752635699664655454382335004061882839280061961048176562558114374001693922397693886833277257804949573320614954802286671362047516911255162002035652871541184436966632381499763064193190198026130343470140484777557016573671657030547089082588664996921481701169409840947237687580103450652133273549997096504366027716157908902335640283875556124904057386410189113298278265991420284324121018916769419395297716333129369146625592384086400113535502600442668563988216317655802101293333360961467065219462089985838336202060590209485075426799696357673845092722457630133635952201873042905375992600981224498495086066813619065053107852143927322797198412124505699595424283901311871541462741803458161990065747916628597035028461478000868143470017420395508824850904283164133838379356911609366529955862876048823859838321261198779588215756355818515820710044009999103686837933895282669436001437506752288918678776397639564133650071539931731931467077425101623818969182335869359920154078806168137254275324716946592047787312271387160529599379734812791999840635517161135148201562504913124964739570212922169946956618631155643599642330001246866674027448007111879756369249532167977072393301588496990124709293754814105441843294191716491793395774347140328711249737411223774298226022771625763751656727561155086093472936388254713295940316662111512068039120598631570076049006726495427026203895780398245712653773418273074025297448285803354988329008030078626441113546558704250344631520646670679244568961486555643409406805453961836992969234810031559383008094478783832611672865567255906664306745902390174651148786583907678810442183587643217298535285349985757210807844516792525736568274564456647202885709073012323114378525509535651349602671536295477932040946488460468372090429898994352205639796518462858647885696424078960382556998140730387455002631723853799099422367684753404380082301220224524904048694548582274800195842898447023383149133739328603304258733035165416837454229882609240226262570938701628340101993560966396210029846334317054560439466684873470717206442135417334514634560101452094481273452019355041374021533086116818182913743259163235014447933067220665251282112522725589462303011795623665469355017838814765182692574754568476600048417526972854158491013440751952357582822047392202407668040789849308094012463669582116072118208569261100217236098200316646535182336090166482152626555704802217383229972098510636777055494441002680153608585137670362590955672896058303600709881023307847680082354712559128955812328014539422848998043902636022283164000940527452932713343688127222605056994064247408584151254516529058846528524044450259668984790381398808420012088127306588414855859430220007968346087100895281361464107155157394580710705472538483686780540756123742244017358526305986685188471301961659489730649695015255138991569915241533346023274743904201798487519232844219449829920584479802087643758674840597805841824989791964870075762638153205537000864006356339248144012462760182935674650127203018849629006813980744578891087785004753411007259546322506769546063617169139370280066877440691767885600482154276069821154299751401843588093863097896490256115571931847707584442589384759379877915009693073350760805811781887792021028055975676548759012145723926028507727544969630490495105681701224951878273948160369751121093965875131998576095330578327132622460430901432277182640566639037611412704083602755955155192667549891571322663938412914730667380646052461799821824402338244865513638896223435698853892412450532195261732019741160307667494044878346248481374386860171762903818804262421227355642806406453059982127350471587977548794199278001391230502559108479064365716404153923345875856808082388131529950153903909054092169874426558032915432949691208889647308297014595745137197738737186959576952570568402593854204336100398799974544259473273696955913286807777537060717151992917100677302138246148724675723434385040890776042947869787648219255264306570870642367568761074691403670864418728773332538914376907883456933598373485358031317086045308774038410048968768404178151582822354844821248551723619378221739655377726384930299749847609550878074278868773589075445280400660086854424866638364075487100168497010837967025779748331416607568321012771206145928464216586114624524460911316463149523267967742371182690301337949369918605676094758632495889280096120897951707762630452376809078621107714474498739261461177996364005014724418980668235647353049860854542421353198757928875801753161736812090972899607413304647959850320502656592760000043497221582165408285425794724915027694669905239758023822756806121583899278268008215307395216473828714531651483878702996582821802014880931866995234756204647903135026392268703180581733484253244655664343075880309521154229622817435465918075885727182711779081910581801825437558987955954553164090162994257898854381564224272728461932420293824716240644017976284368272357606040301474626893567293406801593641650750098725058904880102249654821997237601539862581556914991776652386107507510007303211768553435630251321326671839448496137665564490367120613472962377382359791909171776581182806049265288201299417817843341657801436081965381348334024992997492431884036766260563424911242348108754740275164974831437807641865235226648494839536115166914561786361854089847515739151137362168994922580029149733273199848675351392559258579701751364303741621036936835598214804298027864415176832402746877155151681652309702891256171325103557862039318658998113033211952621177571133730566957327744165230047404788438585850585539307895044669792312980303208200410415670529763096391233482762644386323879504035120696918326946471892888603342255812430027342572266991737898489364692986500931646186585241274482757223579986293277994669713287950458427496139171731846840501920307926511025422262567308381053008747621632845942945365066389999430052314765645231982651720678044587213838410418665760696908562564644833674169478665033134179063804692855950042430862459500190711761210673551722972912478336323100911183356524079964900299885919319985109191367511045120472765579915016877312445074180544042865629883331170301480949643181673407250677661224913188564030925364935504407035983048462975919890445400282531143774754086779919965619086671452671527959403175180376583545270477611723646124009976236616480030054129034751835634968120888591662071887745183524473928580541856587316201058720149834887443981203726351635213198094221333449520032640727975950037768561734898333498084897108243557717498125314675195086992735863153287923357687823022201056835499819251130251801215198005830468449156381809238661856764651977797195013405934564361157574441619935169324155038253397507798670711515822987381921409591083206404404666735511884367096592115685033974491638511321816885910281832562146598690649962476211055127798096393325396788667481935135841193159207770751561575235704843200011577609533882911681643851114374520273581819291580521960394898835703682149474298317148578157462380706610430339458935970191398525981170934320799915187079770301795856653472449029365547235612113257151181547417125184908134604325581321364202691753749729606587477978327795963464315882556461820352449711868893144395619446541247777418786551514252134361669879144631567676626766836256996729466212314374252587262262700348655809915745179802600777327352370407044741750087086672041596129677648822440450856836388913141782034084657847798645892368487930478906567284511598671536811036376070625041232310492319074321120594632541080796716408155378537236630904916408042767575601817762604328053450803926534381721034546002216832039272989894797464763497074916538769082529367292958346629800768067907050095844761109088609166597074129989191408856309224774125765046790827956692957322411738590020130844379041074016942080292284071891735565783908773536106046958364245538804909563265924975098199565961133884202711524944522891820588029490825680530242061094112065939421334881838758076871183157266224136475246788159372429025013247622906731179622178776086274394885808887935080714378121976300235960653777330880932184852416237620139032826097706857406536035537816968047594786639050548423739088704550462663314395360377450919618034262998498092117687240760602169268087405825413515312143793941027466102431229520122993595185015450051370898762124131244121950354165087961167725442347076068203086510155616808669688952751268840380548811764581512035573132280519387295802180672149431906372051234988544934571715144887986018068670253590808024203570378831406565574846140709342892169980369669666175788111743114452769975156403964225779130112219811017512494726935719970108396045075303628364411552638356582900592319489532033444404966070161309500150498910417024776886886078770820295034515314329955563794270365712157386830433689149309020949651567667740973889888872571538960195515873988101130844817899876775911882015507062906774669237771770622498191105286503102987214236962195695679694985390792678622793846712898088995971344672712466205479237478533982187352209882110762619014051662918121466053293502328249060115209405448333617210592853250266026133779084234076948546290392383086591442148986861151353753896809319266838577110693684792166404682437632022114125270982178831261602799791874576058837166919068526173108219702792921637777023011109459075153657980157305259430857338413531896811616683526326715577982018443298280383976264165505194161561757961497143383204586592901938242787553295132856838036309302596505434753496238284310153812193787095580450543196701220176999864192917797519629625671147152632530396374909404440458165601376444520466027979493782324349109164523179434991826768177092676895794215918418875239730738148246315253999025350675733705340011137838739749094160127737344019300579698661180286415053410813848591248144511914357877629992750238113566553207538121814487270889022520530604635229647675759738683016121319020883385970928370203627503495511523310856592098605203922082580161315181338843106764313311880803491800819187242678855326657346643318011259052212841404032362026587963459030548173596193273506286978477228114874891009901287602321430185134712059911886185557534507471307108246847994283538932066843501258558797417246672264560383346328332547217737113929354117539048498265887404289707512212674433867131447750512918058083434499606506334605382275845386715125992186465772115278247361620319409476892771475450536708954486463272348456368372630690299887874651492221692220784193631595699053594716339111271920270464211050254558006056437963961561706589732154928566804751968629079767608207746100116906218179546238913203643136258198342300387632282920046432430107022929673362403189334418752293720185167457857911204000377660624740177125363189288788618902906584672679367684757251002599211054627654925209048318490470676744089816850011226338161814574389470210245917789881538696610641952581421830610633278444540440638140868508898985401019722864696066024171053613828777102267504441058258794238140009401930016378236459870754490475550769738902679684005802344552378522756465613515296743746671212713435263371958352669800279733466530786886458019409807850620392507881248486848343667884753737501522385720463860387907046104800869097710507024051500731869219777695699433263366335512620347695794074757152443021749457725103029555042986236511140978266917760448940089850609829974066248427718380612714859044079991551867625590097583664975013087177128392996983025167840275057318028488842329902080481452386523250221990182590690910618569742086383280880647760464221299361718492009719169953187925596282565257510456551404039178994397456161867139241153326353876023136453950160820557931970105480387564199207019062582701013283818011423567254930794953459428503236640726762870395338047520787983866484080116917966709077435730276466269775953654782337245007672012607600472855276040202781675578519228247289491876755642795244763950672359995935323413454247223855030214501709087715016960524260746774174712386469009105803918394470851975457867754337865026320126723549506259758916762506376922639766770352907230988828758265766508766670695265935583902571172364454443747851990765501859791402769050917405188997889723796922327215433935872330166721047374372616367564436042931451887792026691669821982320831265380390817166654468837965433072559255770337517184981887903834753074149216750516505364379000485821128264207158575213484216999838877915143525295016062064392702252529428362562287475231503480376477838761542446261382218772393273238800624001971925807047949413272357153387850004707634005742488083350131853041986212299452961936217092373772288401478515787846339842165130530605871439333776603160828590846437945729841281834451813323687343416090546888350863236003659623356890560418604946512752315634840154362493024679209400036576492128861520060702806795300511239963113711145396276922656520039001647301928144044201307230632236158114923021422740216582869922978336642079610577535092153760136218386507059277537048217071190793204916382450653029466397341610102918285465886234826432588098280951177579703155797730330103545391716635176988301239212344094002582632252479754110903405415809902871013044298538415829498804284890668711908079760503691911993767900215257198154014785094047422262474869977574052262349999010590340472159218555240010937552298582581724355298367277842851452769664147841631906773104354955516489514886062755684147614429074809801244170028380737745811057327638319242550254526355313472375656851640174472214169735045460606032075912421588395024691621542118424521098433745558153422362424795860947286100311973187839183856195702513885188428493879373280573430422633399941987525710369493167218911092249534808832358394653745400197515870576300890903910395983619899739717372319056640164644383341355974921523842546406011009405322350598936096979124496310817891149592708707789526648112760759336681901865203473209083234482467888826813255606864088883753322044355522858479530946319842001390686636611943302862787140735132750091086347451716575399075433343299330207830122997704746684467092349238351195072899590418016159907079643486978478450060142926947183854390868211926733501985705436403325400245473424666568005641807085038241870941121663441416978468672674195767601192266750186958080002695121594094274765208634550488177245534520244664529084770042424676837863786395525300105142872548472429171174133867636022705187821475019183154813223760383471973345389508117993841936799001066349292722983088133456138063439937577288695656121226700886318670126501336983925398271722266607615251078804057764318961867368317074930767239245475120460153828550237133389144191995870547293796679743648016205903224725266908164899279260281495666387552651591566660661496145435710403511566548148557978225845596802494191279517483218028117016500688486659856245973509322139628942556687559741487505097874622565619596223124088812321212779170818103984684803937359861959843351244678839560550046446596094387187136762431115498518325082615384563890345412150321917262461129198656769334457574012216971588067162822911461988229805661269194782385178629292649117066161374752800817166414889240166916486643942464967929127249008929077954772556042229593287136221510066893728896625879760447850007454004595703392762619454935059034541178806314421525869978055507107407449856984143328179844256943941206956762882192205480989190991604660997759083150975741744729127137936633625975684614751964859542264396980460238949533253706217576398969763331759691891516115847892139131479952594325336375719187696149303448865897538428536760751881875092246523630994864108115774683262996510427465900704180695029184415814560312170853143417304119055638444720465398418881186228530869930102674496757212407998904886357884419527813781687574747618650595300840645152285520860848744282140809332879011110009928432815057152634780464161608140062345059039865878959236024628930660220330753959937468237370553587860531002988220075630390126887035578351940278657828673776391261395743748808819393505277860071926784905142007452115427617605572307674539146133681924623320887511150057765830817433720893677842510118205718927230929481901540323516024033760705637473413644697864759524996016176933214433621154711185861987079058281748955415337135435026600523586468445213722675569416565519548886202100198342410855727020234253190923604855268195163117411452834256275824586337935597786715766076482838667498871628421808314007356679170547974294322010132788253057318086505322955862849675904623644899671325711851560370181133951287448084244553995615844064863670869140736286815430892349858743467421630525406886199992811112949263322851670564744164582760906247473661089210776601234149762309416335704587051984003009714112999235494963361889921908173286503380200019369216960227414880416734238301671354326715786205438420895702667404391971728054093179119716742607236947790485337234449123904003788243529130580162734746198813772495445690825527657674405188267489621639144480400618833067323415935692185623087387456864410782502459906302378374426972929879142358377922389878652969159338013750047227363661872245613181008454545107488235116787731498474260278775052710826499108015832767189864835163186748537828991127429698839239792896921238596483979892000694368406762355558685077407304271365933334918599350091899319736828737918508935141369257709388745623247442158184740767534448428386041462759898461098676046132164682612443386737171496120743447963517738466004588766807212520424961861062167549473495296519732122475488346126188812999279836898828003749910251641268375625440020157487381492181203859053074270726493152478166471228986453280148420124692558207737436849472938620976936432006266910703836855507127436072280369191592447253791719213626181533917370264780934082385508757740642222492767073065440666176748652435778077409280028079563326528762008100760356195567406313143616253129586618262877525975053855401952310948858991511930703505696338620017666281817059340678605960374031397828627660383286090488843591943178469092314702352671078334589466216654029751142446794735603382525572420007862412904570228159497583629568715736052277922597583487818369446195181893810571768899601336387863119369557511736350055155913884875862804735645090069795359686650223446461873404226389188850305382929173330524370876362798322417511714770788466764489054302268664891246960567741870475158702923670304697943469492879007343358767044064282054683443667102047808990998955795254664625773039230097456717431654041752884268606084503398758334809941897285026024682730302763018349286122676567914218591839976236181095088300081642269016539695888730229037366489426497471932914185114333183485234638767893931503413411174646702008339723158083440916966314855376793862989730573430307028687287647872483619872844711608257019614418166660971715635635405176493174534641052410499294977434649774054865661862271453867405216884358262296720406160612597015161680781178236571286365125634683687397442563077880795624944993755586092668098307815379291350106466757905977175897861230851822423654319339974103992819618890323162029618453225949025868869960029759357885439455556311129473768921617279241892918699788755569604791975030782648741540200651048914802489818453073661499674121884320663449402331727489962547949215811046665321757370760091278943971094116583069864613195696816997169969894999261681213751342059056283929059048350333074188140569827905692308202250911006342189234583425285236251990673291524665219337035553583787748387978575891348431339926627492390898926097129148001709929562329134129873318140868059031220657516651570212673276832460623339824202093265481208724723951624308493120028087905833429553663003341901896979842401096056081817300549264669960343120488028806592854277682679857108050083662922442849100287279726484135188756028707473733590242287651535809971734664810813657062836347384106779130093044013704495945840601080046446830465544245266481682487131921133425706970801422334574252991896632981240060852044658076269998242226703182723834662053773366697404754981212021376860316477204316963650191086044942465663415842756052761544863000238121801248263788178911943597381567580857308156343239368553193873409678434390903713974099307721981209860687279547291068858207084667933290654315052639855430977521835822995526068536641568580345739737851958175198498574574652680580756499281089791390035284651211441577768524791604741650289837872198878716219609580777428737680705787694475313819996158396792767618654467671496590991534706072991313890236790717337334300988595983175843386020265472173348746817585730067872213229179127194428005533825873194236773499275540622824776534540188708525849339183863016207696157775535490875316060971406977856438467161619396268384362922254390523276250731889547759556750566496076389668160500086544664076318370595159631996473985741419638202671706295340564204158188313197604624187847759441712458563781406492710253653257891090511183435462591258680022341351486431410844275163156313178862372716810554402102210553572402237519411699430300512733815511195042324909551638047746203159684906040900162833751401245382437706455041216151136646379689654483702980956175682799501636500154795261482724760204366160572099472052436978469466460833586021273199025904566189321526586880064468002378269547651641706585419010986765583774340093495710389100492516189543674708622797247227037562428433542516685798493913071414029873002978908466774200302601122333368085829176895888914157629826622234819212793384184422454446940242160758965755983554685063546270258678057622161668271371130603907394662126156475823770865086301553899744517076489343688393810783315719472133457711672176103334206255746920696463724891764548130263077807423470597923998359465893165868671478356263738658223060104240977773394787825895654282188130578461569886253235246266207988274059764136567650881890288552880019302698625885293073416207775074120951832490705465805206934717298600240889064111906529883873721521118843700637419875528396363074361707657382227725922630543510828319543072741482906131391625076652789480703328873455474456754614438618155898596883126213383846328445308528022427017522566065100519008612878387916712161552624872483819138401228837833065999271612474865392490499490964713013668317844230628914910827603349293695817091931096426490464835276805224168485494355488430386547875865365388333589146666278457611017846418774348096983466337762468429891615724655431951270521075010801646382174122501620403602217254569755433706336617259077693901106831693450979536445570717300927465117049302306587506104663305998303526849810697688127895265628982591821443931413126472400987599647544524157963901151644933140533077242952584995340872398485955632144355079407964679651191013384742235565766283583050009356952342089296390243466754847343727564320195538599240107621407395838632453565521087238683387740977012361981396857265664416907674340588227341531701684623972207542591100912156035104180160764148792736057611811521347936743105407591351820482210070713402500676752621067473871598073161991336354541084304375237567512449754587019110379187647949709608018995494630591087078627145392253582696492200859485253459183722746136720102348449673218601527017403482940715197393604302614396135382570197626046069421802364934981093462141415415341958820229038478169748443648629407947737452821955852705424285889359717441323360875306242909707998869487605274430512370291430262351467956653706104214007690689782391546566658255925922413730174839911682544417512858015098019144977055738323344975340571006667712254659145489490537110519877125593635747147779280985603819505097479493768720322787759355653216057143865880446393330657707632347777908320114648165303287488180986345136608585030479003326069399072588960856166651659038587563148753308915786621492104879897479473425702525698577760812267733661761161085615700253255570246883277553811656170579407001270750769128185084085093956913385538134701562023175330665810975786899667900782479487384639478511369506330654249221941553748081478865878247316357117599634021579716235083506353647840585261642132144499251948613843287453081273182599928710794950694138229513308267074358920274733309646812034222204585964937123854652751036503970570024817323793015357820472628043587239938470199310949120972941113187796391462713298113432865473088751189818472922550534053956738942773728225556100837074900051834532048603341477698288619851287497130894717418790430259980365610428172537309016261179448774084549648815049422953375532031712195119936263494059048436196339993955326177121197493081568384396534383589782595953954221660439818826903543370045043843867273260173519412857324644395933760551615301803128569105150507116537969003175601262496724250768041549131135938260957987817469388073036070924945912902881420465432121215643265732953681901252463828596593080179241275309295233188124371865268404617476989048300538489489000310809319013313169752918048034431254266789660159227815887953628046645367953882900800308388107113307560374621693970454662541410402799439788428485485783809524462977093308374411456665498099348245962596110157084923044148160927079913239090182462984785850096330591418918593805727646316462503325907503339302487700597291954411691073178763618889482137600084726733029062450954037194471219317938150061405644071818623316559119886773744982103708598022118718163779680495283954886727882805326182653224827018122788001898237121362676101222610302843371123038666206502286454293968081130705946786858402695434282040523157814436980039237675344223704251811400693922582982825189748613108351550619435185993711119433063610485559021040482986982650248370737359826571052921225942292282362593887474351728063131110127839483240556907843798240127369268928310060620718237196995225515546040724301341949090817216093308993684422393513216951524825470524815745629516600971358273930142768070889625162855750486582752049182779097165621899336020481875144609067860536276786234836899624997145084895836412470888761934017844537466211083635522654968884577664605555050234619412614441836987346868564186497499140381856269988523966142536318451766091905564225880017870086779246604176421485868684388506401414453674311963799851719423878871041245371874511850142641685516925123411749796603191518080418971298925226141211289857426073726854362055736601624114216783603223533351620927506130114152235206136414065777580897826201364930840547394568305572644342711768948943691983818253594312646793041083266253023736860060544408832856307547738025454045958450940586607715800723409913138610646466457476175764119936196317029854859764925817329215649676907326581120319429767296698806812410468763986292608739493413776398300892210977219284479114882695387572021203722568479420022978499267415867156148151953408128608132213055716339555085335762765065818244821308292170742978743101743617053646288170393385856480789702751173208257786842545746373905767547905318943810767809361296699937171211081616571953239588064546411367010631493488848636353450371648091236347529302229830528467632232225249953500903896885981278006774702551121274550003615490129067539559567397894576834451383935924304819971482888597548136213439777337513900521741957753045094440230537672365095068460565505236436127323020323828951658757976211231686176128627799946824336825837459165716415329926777521422634331520492460604275321676514594852295844656274564673138169738686670733655709872351843523626071884162992612966329338394298520906950434786288709072138125884105244023615352361250198882189726437913597003265669910010013704255817205400841495613067393964192028871349419515605282683307487970396103027279365300633600132509514195552414324051593429320610610321919231986195632005614793026135069196246345965448022430615794029633048489597363438742458927006987747809065771353944882476039176367287537199001996470590751073225457019561173142541825431185536782310153404743213011346910798903711985062402765772134954978817957136708533308669420963334562232769032512103727624713310339700473859100000643156971613722280284309968477676163181596651606123530129686139161566834701760036971341826567482997966459640176915553714755837724107261872915675616425047086099611753003177987212047811541405313209069009256400875077289149926289759145433399525394263665241764170277625476328950878724696798995302967851785512950896569697650463337363572292226398001019167584245533279269743772651545847482800302858429662769174330474151557614416032705523691695643934011376224857315555176614625035158970415524728908920774171577100215560235047263143529818442462859612089853522147964750534467954773499805098897919288592397199746012736365517162884441787737084955207465464583885467612409893990565846439394002484866000123579968739343413317870522020732892049505134332723451316619601480572126572386371931392832881734212222583343091951035200731921735173842508688786328987461048515919199167824434589742627180707498416036887904389273873471585366041554956397916759493859378409584014944638300350029382286038592408756140113812393191732933195689228537740608892604885559096743096103562343669814955810335500307590681117725435357878243455222673073847640556602176820345244206152906768262302846598050275430098601984237963156566474993801690059758817898532387905870075141150331956488013021619571300068145355057501634945990945892762603483509099001759071197171019717363988563687369130320886548252239422637558973272171139229716688627954482263000266816836484352080794582193161853472285641694683190067148164563572952545107287954619444049710483089592356769375882051475923340860522028967960267657993008913705370345108123528909043211857808475292142596135815442051381292905503029469077656423878278255642515744155722618401962028691002088682419959899986975570620990116030804810240231607172656831819046450982915195248844627896698436717235675053691904281285663922734486688936897308626254452499828414780334450586168323703286715929784762063289619676466211064328221149342932499156016145085744564575084163536570599860566638281107062503903023538319215436150820993546937257207244139555956099325050039635055295806919921223805940172812120886353449457161903605069068221671871646480989130556209862087510213045439684151339392820059178239957286408607816874545699979844465120409159706157232010204137049940539883556079767969540015920450204713075952237821143418283802658204634974494191499264494592813658603424318777334073688154273276417947968846272858823606557033045626690906218442273238993036763986865866607048371029767034094861100821938450642539665151601749166295868703308142436408271117088702663289558597710799354920319780913864860695076598142861282630778085331598457523644425091280308440291045164259031089860008525701969186122120709204261202932305775408810447870184062622377278038866967950309051724855836054467104469596885814562583636569601141108351096154176882217758256628238804946448340855280338492766499924230020931224391047183577383271619588561150756504057562539544401169416061828047463422188267860557212986932648329389865376236690590499156013840336336784577157770687731270278935579236853957657567960445596482833766516739934769664201531175839014379562884184193468678948168536477289845538495943665213494649675960686633351775485711048427881073737395571840012734272782701064957843198072408811520004367397196878379746494898046313278355588502586577887740306419226184465668840255244913111137311167547898225983538122673387124624415447075248213964556443611635751188628444073194435704342471786637088060882605837901305426801183649926304983103112942027291892439272551358595351038194339143805327554824444161458188314589190984057977134058580576108800626350908401817448150473019519023517324231204210753860486069376100644662596591738098871409857533604486643833648225672975850787042810133332606284474687157557544464242879948807162529124922235627885140175822019968007859932292088066635782958975477332831863160823011329020845699770813553229242269943309258349656355915051367693029586083999740293113894027372854836696176628513892830437022742817130113660292464781302563373367025261347051166501170874826116729057430241444328217986420864945052954469450140025623969210937520447401244132318371112143995422613814246690531952287495739652049999553575465949003465064890356659734855327676767961391683909867007866589776881721799499414996490364285910016541285608696561463393023493430221625573132869950458033666830989551042985633389959559774426466392304246757547708109360775170046310761667475149964375155792602721098609208069909181903640453896991416432456713953272795196871274018908213310424851617121068895482742668372985178259433439665625198986927771055095944464340242982884863510501350710806706515540505021501888555276993652112093450789973211025251085466724436856453501112420110220581757837249998440287054178697069087570200918523810589955532505480839574051082507608545528390812916215430897554303923334176944821592839548142919881421391380286931560902122932833865529936367293651768020812974435945135450235579139160468811125262135381012075112885479580738391346556282885015659184688945086847640499897836044667680000114025895924425622269921844610448301649569210108581287910284676473552424359812823704744704107008222117288859791613449341886048690415793204677297775489734188203435493785917520477669031787871848041037299328648628595576908757599009944127803231710132017161950690887479114641961123185930153021494625113742396990649607122079675870066582224014981395461046722276647882937736968946654845869403560736267849890779853901359289934523419646277091637442367229953443702321929894990217853131063794970917259995237593152571282695629005074273383652779352989554453171341884498232635797676898376396118300729812249609581860450778994262183733625901503288114599377267355670383796825921780351825544460879033471245320258426926161861445815962046999242307159843916989479169715150189318133366333347934295006355237764939526717518500201201266153788399572763192326460568418427534212766605371004928414017090349207662672451488677013692710087730730844981337790239513533976040948401660798907622114230388476170686768662740463307728434332715804579355569611798721981558605370644227321829459632773871100875686942763457230711037335682221449579394976242495216250205287684196290171301404096243461322816591390450980936937117178867851420387376345676080374660619963247967592088990063741583735120364231991279726133383480532470622709037054154690515087974266198696884663107528845131875382734891740633204911652796444945884063548544365209901213621119702893872126937463861637785759523285232020135613656856992607731598378439155071252499518362447956008995358493017734259622780324960619537337359651828234962252202352462692640595688416792902869302759111590700193360134224913486099376795604631742486357718473275726436881998334879885016479425883022415493652678525573221217728703436373811911812606752231051799740018521464657758823598399536090352109969282546508819150859017344336452143639231989534124912473132883168733497016329714090307951545177854043944222037086509606735723994506774269851217992587789748922918876148967928202731521770690350072815673259278047513533720566075200269803111913055354838536523143364997500893483308793689724861053685315718280644136611525803858328499343179053033707333604053058620941028560975297583318405306517162016692275154039733158849167379678248551307047590038835689299711380669094598228981288268571646925389676660028000964535711590935472622116767642102818008981039717021850666264921025540721628692108589935755101454130319812396403348757432454328631771873507405115772860579578745664739555393344158877926364200369328112896923563244637007642809353801724492596585193649136362938839691171125575451955507578385679474270227458095325521020549039884456536875879105216463368982087866594314290455649806628264513788402094929390671046729409649170314438126738622002540688496298277744233750156464077180544410979233281835281781079563016576929325187262127486362903380596759084711060751287245203095276422565043021868856965480759233023776585666176264666010048427126079682836021571035996362289636707370966956005505718294709860701888580168610850388158625263804515426550056719765053223065822638670518538777716626577191183800252547942028789020728619120219899156669273369383743001169440200952635221069194290925447999733364937337733658211983197258715596828785088306634116939541578427053107282882832362889140948525051236373231250029312672490742642397650491976899588012121792359253528722383675526409656679524021643661270147745370301762754880336868995536149335789075130092656688167061244387188762361950683437601808258162526037882759637525300659925937113821566332430997157563046652736000152613564843485370727609207417371475360531215709046780756017420247995797027111831886499687162524116578163020768626122755791457663284687809961507249295104542416331493198011630285482399778277297998630777882760977022890339724490580413986804552734452089597552969407007147864758659908948638611674003333920215708330073924642239413145252453542204363732967820753875553990139474524580046835908171691207166971181089385309436796923401975307064916813236529375977299966743690497750495754116052650059805840075375646724067116293738864316778822849782139643738988556305182206073903768212306194193377191916433795197910706881280893596821284925583846713596647002434462757217523877261673518693256402113147798639278518945062115282642186880417210983734420819127443005467506671317109883363710798681652242571407375425598123812937391275695072100497300528070706816248801168872124351360063920593868704446564969656931243912799790922747129852976592363172528580174520377885273025868194791112171034622693493457916435902306876651862422842185414491007581857491635777980396153578094870272833394990911592973151802146345499563784138211240522601276100790784584172083945571949100987850131992061084153272696752588981239001939042533067874381888155402100839348960373442585369792236714048881591937996431372433248661951378716376225098948353645112737528758964554331958722394710274976564848394000967712700496589920031478810574830350459318453988392542360380167953629453126250436527295669700408243580883556509810447876070016934472793070046210554514876647066468093361054486200730053747774561652344610753108633473351950944011884681874140620362940190565422659712879828075058070652982347589906355971524370628767042285100090110943876613430787568463227818409236927847478083731134521859969503466851448039916824865803071097404040699525342414390269632289808547104134180978725216197945952658066283478009828401290731766402865744478307866470580834697518154332652080072682035548433914337577109607653353452251011633860613603457232973456630886395867362036029907093729238563746151789405572045184128885437762498036224962289722155109333972952683523440052890128878649922931822252996115791830228440638826429696288755064090771396893435354281708060884344074433685458306686338742952038825760353218762443051265998942116825174077606077387600012669772966406673148879928791609969190893857038445776593838483245865002994965199065475979778432365963033052823320904555776631951704656422260346708142487398047554375911039214042717575286672320557437348865001991657158014285307452440685888016602445739506085447816812779214000742144891593199208741295444415875806367339277387484584176430212475221730640558253468386884785360420621617441116940261236598931114745606126697345296187863740406932797719230055169180054620317241849959719125036578388075351276065667019534944795918946455581097435618998180796901742872144580196150486442634569922773943914542164543832946040336775028165892089352395563662270589113244275735030071277370289588967000502231289399798027163124453916295596758724233957566826819161638454343589324552740112292292512948340031396260543369798434741835789973697930934695349589220225320010341485822537689653546056621731631041341019260162471805267460208416514513175624682278594932890752903763214577567180808522829118738280558010541166796252804615886517858481160370892194620820665447708582103164473548947327371012970406453729709420341438994681040205425388217000895976138115758262465787990796424962900610876864657684495315949208886184603212019918969135158020285717610378576851360233521238216094185563703699481114362542520373580343349853895145744122185526999913574352278043162996935596494005478701157774456506460545287395271998379815751122954111294893157202110252956751133019256660742906244455333799738146547593309840608574062884931867950690003388456099365314410983030096170020037051038582247061578814524447191270692022661443402562585898268125549569178190635552709580945258145069251712988441668306630465411063462256361419321321848900640115983627558071649680373606260467407326200250225863877545108743405254342080526195820137744883772470379924715602682733847486726957808263297610421627718415197384720220814825324760129163652024069665288710981088595107884228557024992182906739393202767022809806863301536307393618720738453682255057409910473320712042019789412362318878947337678217788101967307867260229905653428697009820114430894996785089755917670958674801049899657973809607569106844845217425445193553320095014198447399792765274126663012166667908943417664264431616740913619943400397960010651211114930607689358708960410589950742240970685722841420587860265932843285625418849148713591602018354369665482505101780196149771067491836550262026200420246480704912979822548597712261690139670183273745245458435189176311775768193963171657972169083020684400185997818377325074754357896673381862908549227494667298293400817150003345005079668109454575350400255504887826423013182734797361943210501575616190814415997346708197889223563024449845482202225020154031585054046628803044493730649330106404928478063431406592677290401626799162591353701903686425968963506082353208873365110992141736387660249051758506736446109363969307414885836609667971242226566512290332903795166732568127054737178134528646547726725173356572064472064401351860191577594180950865585786472652478911697662989879436230277666372699214941284765777129551016258303421453693305120831238267708885643457915872025507864342784499929840811287623508855027847648254890227696602161636041838089411895541385112364443587207420443458596521986921142861461223415659448206448863432803546615941470847692012906124844346665260033402922772810141903314045657846891992588897225661452247439906426290234279846624115448286663515554934775142905431135012657171835878011647364367846983436260048261991118337638402054748187221023050799997737247312097182985610826559378519267581455449355007687875847337892733152258837405484472062175663215765371017739377690096398069615952317138868104948815920861496345418763946746217311952950747346503737541902811536267453298149045089033009330572542722842948969841234812412470200208116505431497492517823774586865909677455798190931598283447195031447291747763700086311387728906546063541688781677378467099515430079702775517426305015027183626318004837405797099325340612211565876142625910609767885783722110056986488067619337437925125436680275614179678999418274210546559850192955238210160676817230006922776302441416853546742355910328912999236111756161953609596054538851027387913975654729205430874016892368294112592221053255153638330885172305709005453153270430931812705541986568223662043770918715587987107162880376292696299237200493988570177427333303170871800457141006947423379413615779789381689383469557797880293539857945368529157357800390392059508254716333597865119686184572445525343228895502036934545360395024359838539524956395313270305072689721444813358358207804410126047729211746627314733590488299371687098653925195825923724767331581069076967948971530825266189517092099307651150659867600463638676834467329463377926204629610776251396914966661011821754388906479972940308756797278517433258345886961363527775238881829522892470417741069924226700287028172423331331376128081451719731295235324252016863974037970979546459852020259627985223409931476219470551431019616518934123317137309784825512678411430702731279063818227700521099819486768325462350971393659160063382963259408027229681436884180191832260129881653099139650141073230249952583047403271617844649897105927873315157584981641666982759528779430081904808346137182242213261562961667051823672663560531430700833420865110722868944788382735450856718631623786189353419037657809764687403508592604467677308537484677855162361591775403217259029847949701947916780686773132131647091732582719809299177872497164771197770753667052386910691491990629528600593503901800101666899409252992123656050172556627337527705762766518170298540138794393630291325776373676542218390803399730034455647690896003886032818170797305662150390599669030150559505021044262649326861657603369063498287377479837876358489267786421561028899118140219767831623550449347163732956821806869278406251765852622844388470968428345726879209987352746745580212002310693189749574903299879156202715027302418947107026051310775777598009818047560859292034806818395239932337229527578097106489867808951937097149048247280100203633796120642335286780481255675754356864284312722179913477333189089689564442839662938498144198889871147679657942398606035629650060230158657191929229872471948601001426505892103571353732125332890876422083115750658423996154297556765825191834883957978831011977630167488891996292459228716966563685432602777398550706466100602702328460224034301000191921770784245070684250772739726409225259598322232510537486939967163222322207831910723599059533798032690313316674197592952955635897970062107067279271277929494013873579313051407347881790186923524652604136909297397771451940293670872706878528631483060847869065805931708676256594745277466218321513601903566602331100754136140326428176109387360477040255719929631218568927846627557033236553303169806906264475190702991723063253625207543870297945254747523779565138974218680642765126818058712270446272806209314226886506305099472292750567416078710351228464324221284740005230738235553611914918919453169470590487370199119412704348126079385893430118097711428050901515996786887244923117207560250909706374258795252064019276678728208796820056085259283454296442711882260537577064514212610483213793641716348585109939903719166945589805520588987161683583134429191110523771164534411611408261009391387157572860302830888839453834675473365501262405094188066650099867795940927922516908405429113362089381753642066300141101573459930033711238885423583416390535636865373681412608628702805430301365919773964018746848848486518647850038078985440692702313802441884235450729142777134893503414492108050341801187403777796008241297257875957668144955933337934426642522377744011829721582461633764578941211391473765161479216609594854567011295945378570984887626462535557418887021939609549302410446255119040271100257685040813662926900063307242796598690237409748452605982483726158542396200233091478650902884040703749166346874422821169079783851657204822550652687756233418271069841650090892737807581559349046206428757871422466436147149666585667052483339148471040186578486392816489809905082868455228439798685180872238473766894128968486180294488603727888353243714956386411943477542839559191623072238122953040577885034667061222253996450706779219573387238094082543863615977581263143113792124315228703480895372665452707323735007475849311332273247162257423759242808856087669679456187747627626198535995331809224844988223687325621823391469403405059508304049720834344326510821375516536130201280007725683601983567161982398808323858339511886734920330501638716890782306422749566449682554497623760525009803187254925264971602787832769236222980002030631212352291814343995812333856457122152719380197529787035650048324900171327679869458259764424902080134653036192754454211470363787896129385449135638609141901721891999642664249886003878837350146551968055225658121583886613275476705277119450625038885964379216976692530820688500611952277689206178664811279331693841017720264328224844776679986452113124187162236758494681367279932994865019546487894584356396691719980482906652466403960389621262072110420438636783736087119540735106712048670034147056145682751449132993268424505410205277687970838374615654813639739951386744089305791214204629539113923051665112173416371626415090212343062428263343876669070132229705245745895014629711590993312497292311947948529246973733980512219688002780587250914922794028534448804402087614905929679603953205987356020957910578653997778550337419179589368620635460632613548818860609718871595231260033357208307018751316791020454028541481730743423820542346999439607682551090231534372587881638931583405508676106450626587086237409076968806436351350235068667547798442496913368232356307318259860610578823043038520141541363752234074825682385005473939184905998091023299045147759375953794707483610208806433239965412201015979343716108544550415320617384055336105187848417956518638554614886426534433284361306785412468232339584114004378531323908583856817907671369960552341722479626146324563607528419026392627845396613231548898564013729631154281440827214380795263185832504795039552616657635342024430576724126985666852438700823572366639798362537431888850320413123651008931126433100135286108654237481179627820992599991207503702542626648028210963738527113538114464965619282472958986445055310825747651912332968677428698709761694083795434557782005581096344481894814121674532148428717367992926080991873487058035641901240619674475427654676766128661351678616333979660822221084837711973728248593088179142341766236913964072507911058304355690961701631586430400595792127928315968792801221421533099970662514572054573813753901154714440371434385554241987477454822031099531992864918374723495003715720597410455109343148089836997976716090831319204838059482977053215755541526514705979489476989502943753931409412953153849869678929333450845126591939416095023516496143030514581817806282483097641621689445775364904241473206256252928984967641260117905728312547733391825079552246888030986144517199477980263011467235153871079965293375640542272177570824788096648020685252118353111755813837215305696593777616012183385364549689007972731572714028936971158736774048586157814519197382038963471478127262717362991846246014975001574740562650651692683351830210975300618594829032369776346076252238703361739608822632947562355924973855814700354918299414048768266117230965881484404458668426526238189825505152066123739713136202192343591254376696242341887535213692740950041804960113465994144671559102995950101750285572191906250249339806197623700044440756619126067859642434486706501931223299454174414861229497567275100515503040018352843554217772435191441724662379246322217226584482760315197659525439975000940768544526491489980337819354502803794897840037826864941558834438696580497875019927004662878958429762783488412960015978462316485493819145525754388098249160534002177666333408930823388968834830601035434531736938916875641144436462076204094528445431971819241595217245713899693629146621207001585598688693724577045153417800475007722935293822465490015480965718038760307777233007085935066344846510665152454453232871467638505264514901805491588489184846700554531747893035964339312288273708374896694335215766504633144768690091930686930988106050584796389365492500535857679238877077436959242180105592245540501173233381905323152861872750099060924530998477568235712360005178359663404791827343122313114711201818169622302574842283962063470071449457585018410241224732496007419240150639226771037805447236464621811555316845300929599276891400380399937103408166847646744351511163405969621636514324733656210136031302826948428200013664631846040990897426912331150881866025456161319778879676555348018601660233301537192407282800026877717330083904024198170084956510629542271657830898332133253827096083637206067462728231388399381409926151558941080987331031027474369529587739056363390305672842091784508900622585397259087281363522444133290089812964025797256692712917893588507465359517577943808866239609807616447193599771783244314226825541525024052889713224446434347774303670397268425469017225366266088937650134260330085665850891714711403628509424090710623054767011609012388397887202051563304871819976515735187487419015384458356327027162099788066783964675797923205670597185765863677170973915124018003085001412983222559544492116493925894100106636661313838053492806592865947107642652099589095737514329742412961547302046960020868875034187956852172619998056348694005691844605072528190707104686900153633726246466274624784575553840671498122941281640911485200425860096968011262742267431617274517103776389650567409776920326391324428145496330230873188514227229392602351079894892441022021558146863465714681217783969572269624642558950911413945127984507052664098276772879878519395739211047044386262634214182972828714977704644210381570360829759543268244210090068656703445524763113309187066561406599540466591891006685324380125225643403098467569907120554643911000222560233834375437054133541613894338378314176482598446055151883194182464625747781582496765435679183128655546461454043662307039596578108788590533375314652268839710363473421044721777558798804529863312103501239680086957654900822528253990396772646561961657588186543307435202839223150137578101171225723427948510355495714181835236062856088523928206540027885308604216288864038353515060445829657838401487741066439823792196493177219924174963585741594810139356842315084025325045546526754072476688159947216043436590628697051009161307865196457071567994452219315317855124933018810948365691001087102934557886935574237005585795308179153111777736488446439672735500839116839896411149227835294470715905714473429212730127327648531299994287694656844497202425546682062908664243329110172083261762907150595624007482767352566969591620205940736976554047887409070329001893619269186408576340608546648630576952159690849671325048714411953227193067748598141364728301730658994339814504140283453198168221458811402999597838247314316092521129454228882789312072650168338414440548403291717083311506045041686230031768965607460582637687378012481118717006541406700663764544214739154182609469103664059947997978753044390805528718864461406673078130470998119035864607790492237079235930846199425369759804333913101492296429119655173417762562913924155297402145502797493829222734624559106238550135792788807504060385060108893090050857298725154958257799434458628563832539947894181773444719494022051056075719579863951240016380757967674375249752996147791462977206591892274760041535178726805618681903208166118229352741633189712020365736285232460102806675567065199697113865746648242661239889526425881098819138829658121456719116383642819634331677976069550663046000230110538632723858244706240458125473987920093327323791073855785224765137635018330068957723681077096559481795869094328527082496180081833089787555836925064391972776386255302081542921596835427767129896118303290877168155133576590415912974822468862699758193503976031334053110174272720130019337507202660001134338539379723646074097195641442057399513454664556253447820880516278407379859890487689314766630156537125331572813835075739677451013919563158478630158535610660356219740411973323663830293419274258335410163549205043264528828904997913976360706797782421109200203808743529310193579507236546060156572263042397486731660914228172638667101333397182244339735330314092662552934182277456610711794509356598813079382808482794249802055254174278865100732570587539637990146584551113538001782815696226901663258739406412065256218893830021632129335397688037493760952824116442415113785303621371327453368147173676476717771138568814918621472428489935613586403582613221901217809013005067145853882413951262536583703949542373020676848963777367839381184505237944097093615464407532048858698615702172312355438554816495780447679263809617646354349783056399822069332544364526581975693553545737382361254689119488239053071047668114628389536834291538560743055659701943901899446563337247608331626859828532947229339500348446853760084328903593777393250426624635466881903720819171278234612459631504349177900242675288772959568862426111733083516883549476980483297783313217309265217607358544464097719241600387252607284270610079621162922088127398081431412907817482498794738634137055220462836561055189922863660427278013053465713629703229561439293307247962945508578231385893116000930729685480584644185638604152481782442120559024793604481655071379405069940261060710929880924278678774342488099458472413650586231475560024916486593794924051911355273580253073575047281402493170980879167478732308638534267147626560518334659111592637234082727863606921761399996655695892309660712372854325814086732245611338446242370921069212449190114807646298696833468990872287788532252896406600581085896814634161566556806051190455470652993561500948918264250053990560335203661032097594040928187669095808825463320393143350028633332526693320785027111745996229208443796567505401114323807474719200742151544308104536823499386509555180504868174436950424297104153625968474950146674479727098972319715155389218480970479060829224004292774976556708629691588508856557373630286339951002328291913575459495398667258737173555051548806039198775234437488659686560804633588350221345169904330332829597319336441691001993149232982905990290083570370532401958993252935485061385850405173379803028123038316511846885294523523861101392386340587885866677422732534879149164800128034623053706549684351769342037370808899274796586592075288618021013019651019374912680203295229466273439451930775089137203764847943960384590821506603261348864748711072965970747378474343511186792490826833787685132540043757720923380311428538773050762847856264391743486406860002010489187566824877651323301343282741562047610473249150956030697012115358476693837426337090245535689190651619371953668845407342718031930474924550248298512862043911900032115173300764266099812786423670472769884065173151231437147444005077457821710325966579536498510129849160477848123401169421664630467608544225579175084503308846225611262695026344507153351735710177713495476435524275478227546049927977003229535436786964979526038212316786326738681854495563333265240261152177427362151783382444464723117847967826437481592467107976432761304704926250064912311362133643594807738521326257634456207820710555577930904663848562832853412149830563931604152496880919451660289663927120802076550406226036697636002120388592024716063012825471171399445125057891761943759785689958561949622142871320993265469189778625422261204027044428903872785552183740131469357294606636346953470453931268070904732941942338181807111395684108809210150288861630358343327795543039105767953844580768068474384787105391938481307148318437580943320396847653095780598075983798138756468236383767545709508321412802190315304778455479996999154786380240811442066325807390889746315601253939133145214205001207513746452821830704968069775636086084003009072751107090215504779362516611755098979974673733957699012572708136178010081377866760760471933975020467663891526466951825537571449930471151669271579461664356234147811180852430373967474867824844837317196104797898803676155511402030032941932301054221808432717013990277347641562060152743358683085318394749588720059882846259641905732737724810592787472943466749167452851339769344998095592494810990370046724355249169999841472940935760007387624832369666630972003833613565426470805867550155297746503656379579141655711915213844798260559740511173981080886629252191811259021583834758392978246914566342481049693842255631984116090139481720125822946185218600487729627226029290032690515623042507935517325991133152419882121870421646409355022918478816111065474598545395742700433648262760909964443033323897898899309826234405628736274130925367196998543325367590430841501709370989273931497939813877799272203974510358270230756483205370532699185634801117728330923179140185608598134526031005915092199639026439069377726823393362900566420720732981160236436485168667707465007307728304429051184284242773153089420540405383405367130848510546852915824384221969183241031541959489665543431738589432709801675718781146445273383661092107837075224463806015388135046550837896085431869131187080757666082833110625179339172825001115050637253123391263269979953899432866957844819506191587116388136652640646713385335299868934106954769005794828722282496398801033716050691383338140868804882286304424528355289904182452759218912800414010323493366559769368089902082195796866732572120533706197645924725791011362520013291434686307446952532109891406416102420304596895248146037478089624349682889794614791138834309208527845973810915024684441775967599288427850531684717811245374851593208817015217142800953158985483404651624002022053345313053500934132376242801000385172735863349020622090517350707702113536273647399034269453271651359066056957717070573644920654775112417754092301658339795559759058371419053570816646197520772861933808763464549425908710447511064723570951768738725553355073149177109099850869451621095698977538893880162788998603843118321206754325670086153458720970951265701793515432095235750403522328797823725120551438922383579603574643029369171926165017658923982946059390954616577176641613265502064909182871020408347009245590474540251413835620089770428895083317405297611335657057940175930509621357159154270945538619798553900668387822912359447354693342807538852275252168467944782472175872588900793696343135920277785137960476173854589211621633510437046735607944762528121413691177814961990074165906145409348296187355345286396451038483471063283905663402954704901137935823994029879641980050689687841530502740620600746232020426495168908544868273564220385477203583012269345175361746684861038906380127752576034778681803773078004558361778907381146843036687004228889113156297213277587184082432217838651244380120079288253367494013876660144513981425892308425246624296290579542011420406235938753164217034469268820100691315758745512470041252735780846313390002541921650655291885104796299809833353308312684536393741762539994823641891310919977839415024949980835607007590609519584409440784636217959212006966783989569153747894071255881440086372125095049302670748623110020688805878602824604890493786479518132626556782487245964538242975357665545787750594238796895361886088735912474845480618715611377999093644871834164871387511662825744818211917695618186671091838194203770983507689728290357288670329945647852216202498822055861411780045368861948749112966672222132987487876095734714899251722734062719884732296513634941276162504303412139909589111567237672301727245368840230941019324690825306365833918583987565971961762765016829800749956837232812346247591776470775953133856809442008002978633925593590485129844507148550033306720250216739631019690714684717329710155319113800752774247625731458269937149270519357047666723916912734565620165734672946256550276767832339284359089326242792603622965030120355667302380964250214056374198329791774853203823810421845871743781231493957909725509248542580314528398900175798483506474707385736909400130935141404117888374321095159971162678726916906914893310945869753103175326858800399687389096980007498275614154530727116410472037544070863071914740939555507839981117568388095352392251637696064877694916148398686259266384999167587575644926533315707540241340914996787453575874759564120901032915280104213574682719426742165461651800889210979360915428224467807532738560941540351076344456758848814558675854196353340745866980669410230635307014660226461002371600133172095898556166405618404426854616453501005259196508166433012830369378949135925031660645142966009420625718581668950502885922515980606987723000403872352746494906666850066225373439774181591302694282833579496716874473720365317354104564296922795339554732065477491245869678685592823285679377719068729998352705467068577846925645844138490443051285386352052583004675009556224115770585952054203725133345322853574073239506803265699087725004735527049372036288482487993755559593419742001834224458468273824464288964943764040418626862707349694817744681711298526580407463417041163789769358467646298775908910604155847790637105699412147379296825663204908639927285543503768580567417294058337945946536278230510982733677294150668984129245963097637818715180729843652554139185483795537527077841316462154440051381861373739074287845222496239677388380206764832332013854162647715986407688096139091305779500783727604997847663877220590118607311481479113271108662824158264720891272866573378217606510855580298861013453939818579533331350000850470578315475309030366262575257338701092137151394433597185295627352377810261626422316370986695798500683703365885591599216748134550313762913247686884813278198404037694429066121702022826680894686249101493803803986896104838346546371989348194625967656869996770187939963778263498750808820326932397614695654857999836735872142850799301938073723252958781364945671873589680865598017262826374808271689927335884019159084121784870534662338653555823138745219381213289841490088995314822780144053969667716572402175028323319808180367934913408732246794408914273245878040019190414746218369167732559909969116057406586579557243870683934624854568696049921081555781146923866052654331171902968872173936993742546258817344893189507751703767562370951646978150690328852333327547417438206643675286578793509940915779825259041782726970926753876357651877780030150101138683066541885991278033472632325762951705343427639013249104590984873013358067328961421357527839660429746631538830175823450444833571810954668346106305689720880442626799835632121073351580554572721436475120777580138584483054332032176058649318355230114179140319060460856626867269758713529052640107356145690289505299908234711032009654097739573725715955028521235629813455460044828924832468525110926729900831210497531468770793139061229837922501179896183226135781937649685752076755545207614966121446466686637949138859804125764164003328702654385541027686170191271813648766304286594420745368171400321030618608910819691257801491250494632008368142737678551877523033585265348374567398905217755729913474261144798468546248504575505309712018372318468157029205974323527726740030267744091306620803510509789596136305437690357611577627775202179729180878427458079595586626471693697610610034527696683538851706755281016069906015061273019104452602223417857988323808057199258358479786237978479251625025019554502274747178990610504925809072707945666368348397687950738774632319587269051365481238177478012453258646049948727345851923744532963359398436899761025572389607888112009837133900767722161012823404416049101151083520416640171124216245724507237784974785128404822709957226078622886005264243644606040675754155109478477785179564647215291296350074943273228484367187804041097066774794282277179410877887787426969856835575063664705292477890349606782374849635229248472472169795680391164600468665699970611613440029476984648245209917721862973850923710447679534761252654716599731651115065539705124880626739689857005541847005676366897483887791212184866693066211071196047823474954352603849961648718028158129563264309767294281437960015324733463293603922995213946173671363810539536249406496251667610299611321257751138734687073262016169151856422610841864329785200124281202860313077792737810176955388675313226306808268463939950668047646474518913471365193331982713690421916117512514983899525548650041062260527266110693549022436888208318647452996329943126578110643302062973079042952217372331951041194952347244413469641438589265281266201614657576275703291916329115206599633370669021094484206220061132713769559771232433265068120099497690984354122354140157660761479394199173259968931113929113750351053656933252414006001735335601403405466156900996261917353287597311891731578640546685572242861992095420365426434385310133106417429253508489100839276005920993585957336803349057011847337809959422083480305607857490017054538652528105675347075860210751626519205590187418537380929258798292882843004613244225613663545752478286208098578223757688488297597771715260153256551266555464902612756771527125189194051052314838163928271742688168379678856877732654815591469082275403633802108752924423330689722209094834782236059111532174548741761349926454314476947601279103674146789008346232647429302097480790930372638604393949437198268351960682069527779641728950370879952072696442315907406484375074814417163207464266590795311180346220459531220566698838111261202049505240305661403041311307930524198289670587333015510401180086226253633560450160898588833493427777453105727731406594384165452590963000729022483988437986719822093324017841010492871202718158994698838142689740886854213823839814346942065053114118400559103985533509778789503469628631456552276412244642097554284349667263272158472801316139079427882798894896101942970730573930940156144186433109898157497452522649282092793277645847219282062534311307651871214041881116985332746046622581857416283743068451566485443772546195904764694841813796709280761384703743541379898279327427422297500481677441524401658677048496688352974309568168007826595930951412382385885281814468110391301595441208598107891941693588389584614769135774257329972197083539338761476905493033485338167498251718803625577000547437432518108678004560789888137908609690730312487973023501941380918060997668197769498847649674164706717222065236980806411838131956833979050847112278651825829915632514350630161448536842921453522106291103866411228924884818222717108559436470019218084312859904416610565091231523918979078601029949278689341610379392528237496991870157189724922148659573932642172683984276484960730805115236792319853013914295840960918730985447857886258876293666240223651229266118093041980002793231459035459514090280969224584614472984810170594776774816957897402917565028696402173936037746189897753105678687947645019243276444564773968488122578702872739706637285663942641559735432630692695931604626548279135971265959766857648697921596307061436129829570664899835125725092870938249374569929672348878661777995481132576597511365087562427681323891675148063272163085348525923769495578466945749120226377262455004371199561265861702726728901401775651511454217672610548541533778845888397367219918098828361735654731252773855298153026493160999633912063633029818660965771235809128114555239761599203496645812167157355825622218554305884571576656978339688452680738402887626490890758614050331210834754101353628633937769883204948423804918646402725153911463481082147224582296728761877979349059258346725699934563333258216986432191636411827982288258438412574507913003009750134594519172187624049642329769124578058522804237778912671981634186633145574988466034605603580782705025097899576349895495760307122689057889085388551526439473958423708889658163336556753815706552493428938272762048678558394998705093622141093392413967492519840818161601443211679103661030612655567302659786987805094509486399086515337436745839497392671132741015052655070192626357645894700636827625406941818965253998340400231305017826658097753582690974933145214529627745928684006847864150634223951819768005639334890926555758156415459955506587917041473574995016239306819548496806884378271631043329807294129769830882056697963882301300687080792322502651472422557667504511656728162882914445109146157281379167604928497882381936661792756863330168945869252793023884378228166060753799118991267089772502511216002855556942964603358357108320087982614085808630793511431596674499141730478232996581546397676204012411324203103464505023089927675664118056486713685416372684598046071790158322579868069561912867003983197393509142645728477407636147979158810645350248258492976724388687214979445871097152912821105746166959234966932117012711952906580379025375896193119641024255404075115694248993800374550492873653990848365129276252474019569787842977933992698376721397185142487669350128425219399688111784950067445002400974998771003049264720866429476748897728732388101971326066109846043998135946598018481478003036278747583385585393343572309029438698583821597530619845563422241732973171551596658722589933472268885625534054478585264533888603914911562939057841594055207614729525920090906369615975693646408261850197192333024310833426151581907101151208006488690298574983395958560967044213394461801123808025517962465011005169818857072200590889929381087413171032628881698163402753237084832576859866195635665747610552274971652933071171063581027042692574049129491126820276649491103908989311988946322525526570409905996281763423109476018423347868604766374461573590117778192434105445331199389482910799964943442710771765693400465075510739410888804989193671848396382876793859732719813539076089875365150353590741845012414647564026758609907867144395494923930420090168566371230076139275319106298937218972341130931119959597663062668963776436582996686395326682368662090361010616650100439950783727268034688130257936289860847373252146271082169340126132133910889701896259399348982584594717491532193716477088438470002108828016550862455988924341448146242699218680170734924866127669548653557604481156467194220458020205649955504923476401480981864451656077848184330535095470608509861355091084265326254267299907062116683427989758415051357820791637149145205978634439333859167862010950891730523761103519764577899596343296643004939073083928016005166149319749472085343390336302723868475335388302707860689344677410530341047004961971529674605531320640123779025796461545099853199064573973492858473793482150524867424739783891243928254907316060602463679595987590184064846842809203953265249247223254868551086421523326005264827984774516802767166575677924543062669790879357103546062416473350985429064944700897729615890273436758633669283550365288591286839306741621732786421277330305606973555678865276225502913968818625843537787195069230209281706046484790302645955393015037595772859801825286675905060209895525477883116310114813989594710673496545496543927898678793965359478284234566045795833561257991335764602359311559109111486274405273284101771733100472334134866157124446288835483863581447730452836391736577047205308352339202471951744232164529969429923625182196428708124299287891047731931550547328891039359607048501683109327889463415230338476365198724148442336146222741053545587368048741457082367557271780071244969596851282537466413215383969036838540420675288216385178432607370421355699071371271340292825809266114656001632510195689263331468970773245719432718225778651439870661968759357550039790878623644200984356038195285292489514429581387813728717872695651198959435401426073705307680727709747826035245519591727098108919868515295182929434455915786876722799326488624138352111229171365622947818569894906636932483309025495687764663747478043974121145543842965618451102006174851925023066215290864038038685732620358299418595254849406922670779977659211381653947800544546697483385451801180928406029990683598395645214602317411589329744501399633042511933050923061389504602089817435702945564766168008739824556200368742060717589526647828468644805536074767826560322679939425234039422659726213291143219933733436220105953769059478048737867107852747966722482095121733690177680406114361085811969558746189324015453880341889938905735373536650187690909181194112253606871862896157555029196992322544970513964090672395209705761088357630686971272359233903877920180869096165967870813342605091072835964112900987852642835819489442395709377379259440022543585371771222560906398882153885250465645527554449683869034071858407739817239715401312923635872510813054538547690709302224493476230139928594315947152531559759570193172173567317733205898191972219615283391224102865519081558196599249952012496233447671894203409400816558023839999496806194538382650662312261049717819203344470929195364868120629694946364672114254697451961372834928966135932641337929927913442532122009732643519320679265329435995676680584598016582261492296656774653127590326584462846436405283449045493789725677370189026751031966404851912277015110383005561247812543844101873697068923047387663839586284372364418161676405913387431186132534457119804687044311642675835680895527969536787900178753073268575856615064089654965977024230243617235758804155624021459351495991639279275193372182113311792328243834287879840768318823280284553735983107675596017358485613177442996911921560968655282868866172455104263752798071309558604160560238440038505707193273760653745128529963397718469543013900308258389679500789171497758222144357037531204524150706369645443795893741680276186353337173031137559224629793265924258401474292975196559831732739091790687571150412891722563746265921473981035611067949075402958252752135945627931157236765732505955673678977505408923936229007987948907918009800781708148461387794946026808646265800744716883242040236714299027218146091759941884829697828150983565346312669556946268986393312182706466904162527994125369728893825816147206729765279276844475906581797991436303426011211626048958926494273421304502110468251917375532554172362532830517733799690113091889293584370936514560474395017453449593278359868184018266048340530962018678327486244415315813170245738310340453534614818395593088800878358740385442019036174987394962411635761130666132430050568695253683256288162739335115701905463859052650030953649749409330181868688456038844532141950999235086000678443955003164325736057458108742645790756268016930633124977081118242503560435507635496993216196298777014656550395123653136266715882948825795009365056256515076870077531028430471975980550976234521870623296581864466228143146899590861977083175407641122247702496819479055854239979303447771402592317042688193660093560403521261330813184514858345181601729546457904192505303872895040080592477718963445139477270570709331217927246526097532679966771619152793898990075136918488216949222447156372048635258245299155162568910250109359965731368629179936034445992678956242769731248661985865458069279206486799166690452340049721511786420557869773222081411666792943363741489795515540705820954728621037559190148609484527985351758839274843680766199799726036058589061847616143075473555499434358499843650466867983788318809314840302099601116464915469820971634563996124593097831100149508023086610815739947181392902237180674573168052726779875137431139174633530961454099305985637792909560867894246021057033413723513018705675217651635722605146028959348890110053380998466967370069414054539332362664371546683442071120894991972769243390624499093192525702326436742998005879034177221844871611225999518313987126942109404813992287095551778807152832471380609241987462921796727962094365068185267279739751032563711028510829489162300716063703490582224767429902911931651184668237971378852772491044699490812852244619992948216331839060372408776736281914064432075387084994593119845996038274339809449880357323304568567447659760686111426072334831211556170953522056335191900104779514309718780016615455145970323121741906692775098177928169239899549344072910201442186211843369660093747143970608548438207943555418077804087130229394237208790411789269071207470750409458520910171662050484963416701916213642332564687816958568952463998521068223077611265456757129550913315693124402155226848314836835671904659708577727233139609600041456124086608286394046081803580659764635121858902822775584953378365245982022400823292860606848918474609574844605486271469680639069962987156840758998567693523300439456234133348619513068115892194588011472334910333148168702293864034016443414229228090132739067050687858236864919550278783419752697960979815132744627010328745138270814204630140048502217101107620344023705853700634723380919022567337274746831881579590624003995323810100228324196796540000037279952121950480964197569073915079861535462064411914785747364893843348319901333893658507214888943045039730430055404558379440345575583731828429038835383694849853696551116120004689540951716724265639557185489615849581595633913298499899581040480393478473487621215636731914079005445774708680790487611648590014650842915042670386364175141508658266302193122076416256068246505825797619894049992735320320149767533866124065043875231508725565269305368959774764935477122357372605630052264729732538526005131061067472824853425883762089729456790164908805671147105067938398048423875627777972388435977220511185356161909901202242105977430163384766160117322355368549638101163206238084504063680884364803360079342737017939153712551121172190919662807467153002142279589955114195166467468990824125498662671033980874540335228473201098838576977263205113601544022230649546795121992062047890298471847619856411939434687190518689767134569812886909638238185637434838831034409656548630395348538835936626589935800088015202190191496698275328675195369705807756891459335606957380430816466918948310851848185170502682558253127909314757662409120678200015535878936825999815793834078769541087815014355785188333767782682000182360382446410094549701619013440588399111097111191704537219094146607510538559354536070531870259052364775444236387600927827703593662871970906191103718819293643475207358312757662171621832320141782829897442784500099558443768819468374237519121095353803449900181972262474055397731191598096377623282727721378031139213043459870636395561069045140635641502118398445481815578684599377637871545184048835988608041087899833145850031656284024992863091707518560745645914037851018725449648163366532706462680628731694361510717368845480580192906729528006146795953874280592758401260194267085660019407406267710933473230156628658531375953272669441417459495154832359087650956268342513071684112607250539461154570255072060230382535736758271832747895009717473811567028203421301321632055401336117604813568228547374688024120128348513990014843932105560004814237982049288185131960053691689423880264381269046888979157503499836542679082433962240756587081181461174380673468875133382873902312938866306587297832676836859634874706576833078693306998268633058300314921008397075418223291329994196404784326369921572541074631436223144319529416000888137860435077795022861408604598428463658417738039402304840568410834658861240895041952379332723254221421815215827964034683394844673254473592945093863963137336814539376885126605839493104173982618935870575177988796396969731503410953631224223873819525345755629524669173734502402565953765010474666500202945122472714304648944360683847368678370052494162281037859198716059749079191531572438716398163462269116169581573391597104826864696220195225883239658977016252728561510382521871299276211215148670361155972754396319151016551186478624227569575367874237464352446961356330265602587102069465199544977888013854684770400530841427927475901642423634676467590894760903538497145432504312311490787836979858516928159399204510835995716508695891856956829310617946566779940165623232681656249176264388414846445464303060999248353411922967401464842655921890501094505783735675865288189039159325995960784490057238014185628073883635682657957306567042239385493865591963903362149716446187992695589769232897460252568736590989832865827550939954577960041741607996266334556342367714988182915868132387856507630020774951975227118318740830349231221814147184787010116765576208414119118110627120624437672785756375860859055328156365096732646441585858133343028049564769260202352517393938500237008783943941426441948493112576262945429070819322670297324725258864185631958443205286990458377479562434404341951120437611461598389750026158425224013362440592401169449277412672293587108842370063294361367061228596597148336600249775018664684636795725033586353842431784249321604481274099072726423277723734342386322299843606764434728093280936471441100415219062541554318017330655240481576360512944435571932867148145558985347431543089026468577862550042435004234473604024606143699494130154465446771641611303795074481781084650186136193130783167381546016111845539401833112191563830869050273868493062255673279205030835891770676197165398445222403257484722372252959958556188381322061327042191269284680423608921208354415291430963343789216648301467999185226584810601280805865421659184324669023932369300676600888253431015156935857198514854722361897920247773789053916842883600153273597098662737195753468272039256389532712745772293587389555980128217524812087380357074093627760773398288771676425730173069766994455713909461876720747359918534370778182292855690284867484043987175829979193148056125144228954600265401249490222525302794754155077690262550893688991859880063120839012130454338720687351526618801348912303451128132607104132062093693662684642550996931673102730462066799366810400488893918770858546843652990022720466721721095008953036433977038771872774950205480237394597479933793455699705853254057302898607510581217059725995995999652335180387983448347468561488147981376106962353793908650307255888995305360070386953414864076642288756101020675767004292422911250165839154323589393730289015672939888554879768203902049969740060158942188840758859036322005460187427104827848907947962689392224964623524599513332903738001332826572913168200427856405684896191235797820246566034216042100590803499976138887057546154909747744813979721650705906725405098252851074780903333524748628013151247329501854165142843389244975697042898727606027074165043990108199124669973666606408227792950500891378281635406523072433960061557074397846880904629549527429035118156172304979137296980502650392096954922959249972059448553951327470614607498624008505251215339155302042561322319457423649308912289418151462859404859182163941873197099253592012324185002423620641999139728004262417333276688676761089582917165931725056700348259597093200047842581944077762311365278203063932548339534605467285265453807654933846476858510197554930135076490767878022225695156584972393486754246772813138032691814659950984426023619950960503451085864827856184273900058221276748145469522324523118072797813299920661055635096175634100021719284909022437940018087980432627096626912917138799988250464737662758114633414841975798663773940337503521282984948344139012292389528235177991264124492996204743911296115678912346071732464831772541845814608304839860970787897143627086595098219853825651167031778994830758280887439127370709479586412586401058969898674636557713842652084684178782963657684082425953423502531479565451823328396217012132096287247256979290408292046874536358697344928423393330886928808959924881813925406047222193235086348938313138887910421232033426139421954217497349875590319246911434662361173354253041723880958599984165426536743646657616795170089422966621916211743242849057828198853248897508829556467161810413680824377252077361941617116778674445373029585073285469045219333030162157422457775759051505339966363662338790000777933460105681000531564294153446284593258755856645749931528774655054753747079913654507269505028015121367175462495586240084025601242999185848034059916390165323304483881171826834795452503877545553684609539364914462097983323794856390234169846879232156756115926003546663895310257913180942093961305168681315301825610687920526785074721346736931250396441673557098550711086366028084359751034319067523561452379504345532097558505659084772524811855301472286595896639906378052398865469855961158249002969211061216626935048215856098724727584304277287974707207990263867416312426188043386431017241509081734502957833389162489202205194481347953897048516602791771866006023899651742795164277266576102664388950884428183977303937773454839569391002788487192596623892653873744753924316639673501713985868835689974144598564039447933064186933824825334683482729839746174844558456818756273779293264986473329361263145217245736377526805562279072212109466742437733366835157393380268626087729622136346230222872006423292481257391895507671604985052255342692889760039168603125209608429152143205319171424992739804323952804138856412019668949265966495765461753488138576376649360682266159579711780435055546332079882506589517442825677728619131260101674920089379461393769614005261790811634004270843703774947655164320791957257373773870628262787796035978150029866995903313288993061044770478458468204444853633644596937033032515919054040478869327841753635887147618091255169201043385840002121440054524007398831785767869479400063332312136540547509595503743609094580451501348445725848199396921750802223162819690486616509425798858036782964088920638079533255780485751119436538361457444685361291505109044204523824208402832509241982750679142108367908134493281378628145424220843922782643021337511399712093005199240857924436766316554834088670972009095394732730542675763042425607140035241077048684116762118171636549603896060432255902857879086283756111158455964930548053922839660633962872892022558013820758992182234937765404845584031596945286392114248865786514744195591212722211872562595650137737904384629077999336100368820411030872876669332475968582837562464152438019693007339540948546002467708389943221048312181561165767146426821416434373197526472017335712693176231915180789372115692599399058364299316027464561444558239911979918660088546041858407665998324531921869173068001473538252914313692849262851128335400837135096259324280059242038422798570567002329311379626299684937641450478699708067499645377479231395686660340683576615874090019151822600893243224433395424813131745676835549364083064550578738876656428446647662698149707147556226579722827222978922617110209184536347321700057463178701137933298214473456286271655970789873535228131008818772213567760230869854073270939170565619054970671995683504607248084510961737450034842457412151479875661484030905504669867507595229728202584611667565377125151129205249581092334493239969378424203874357744378270375697880682810118023853669676920237216579838716450589853833734778056312941470054157939854255335227505996530441381677617382030409592280897063357141465850230426079453086019619108986698535814187876206465221423518984594491702889595199576267839596278900351183632210755642616210715190559192078964819218228219930473582396833226773963333396114902076035091569384130068271844873982370762040160083571961837259157993150841355136648618994667316942352105267526096547584133546441985047487306324403713321099405711324338574060047888689165590459570742402274827822723245606441480335649671704527825949289619231902572645179521965574171756196945840257379521512093133643975779407318562462431271776098761437154216850023747777378462201842995149590715700403123148067482515050963339309000190108139024960257085485391443059780273234332032669682779106569070688100474334703238700871717099099289727109022432700840293433135249154518909796261604624901326658895094581919898673791939020814459451804039860708591812003888958019063506532159614061034942528137733578642266429723277867344818165619264131880254594229570225638357629617887731889135531247619687602589541188295279421530997646807452989499706773355065048599894845947176235837524923077969293977381345045229616679796883212676943098983519725375511676754273147835341296757082378282959358835116099459825994382380542109558731404045423746747356320604441156508547880786590101832125977367419605235211342608572087950145148284671277919103754965129313697715289581423147269971858219095292329952525259794026176111957333989174575209719746050378222633255474099467303476578014420604596253160776266336089349478731766472797202398493877507288230685236481273895514674848238859013117404820560937816189581316852156607884019124022966078775249638211378988987662979261563387859612132068581604170472570781616681835321625894988637925982456782420483416923178480472051478519910508816404166198673890922501631942953876738181612464937076148789034913858790718767579770854758771096835480280676267889285448759090756533832035374825759925501284540135574494425275708966249812562920184586970495863490835990765353257051435569305182716109062837500647100581208097945228201898774073030919669376854320026930556928696161644296654887777206314061911105586407110416597494718202336386444842112615924661823763810692691569297738981767318837848211605525424012871928665371478134878225827209991737224183616679561527242206402530311611804292609960521928624692499515019103105328898701887353580835282816260020257217653778684942082322403095423994084576861471461507837277362585870175654716031032858113474454426690749394110216322624181938376053007741271357716007759822674313197543214648266329589203582735454311456765708316785770545778653678765848202526037611730960192282473646403873847307277935538771071794043355309245324376383971517254651054687521621449853234287751769883022409223737185510212546118658651448221746609898683921771949726179871226998658078400753978449981129733791358507135546259348311977789465501632698885271232647267024664890971310077913343425163999339932411967640414205327740979790090203573423392705185587715088566344543109157048792921291769923738525544189776905422735868036121884836611228219166436643256685084832929233032257871087045146059266772254206508964561524891171379158743859985958661762585257119959475506808662705645040281945166441775674243783096890393532295274671921000516804635893522089218040283181910464892680534456712400576781318710787858036748105578624496294862853437335217954649958575332058242538010416239925995390392108574436803981319106995988591413114810488966796858031691657194344522307353662945686349516175305120323386946100445147286189484764393225829389036544214939279678382931958801004434993025553079038973640264746590715838975028521102972374270139906053612998265213654591755438106534881649248751688597173294490758575735019550456365139369362384366773588348458509341210150312819077392560391224314748834959927387325888910945182147806090139058074231870530452611416265443581855812459678635938941195108960733390790628180697035898332792151604660406124058531669313080807325033684849402725082436539208489815743882847570381749750542200020804325894427635113260103973849994344117462671570174782193750062284371465184970264359092528672756587675242749754663847824520144150776597975269103538136904041191418546989720012197288347736522397034490088342978855779785873499243657297869281198613723860934644044817409879899219462751162266474034259062880515589872625702387513301751564919390425293018319038896049720332475654777319842117795609720913562025796087304894819349761966605597061026698536321297561149984909804398092539369855612973877516969718877563443495434268768575412989723513860216600619645018257814102528005043856155392004002482834339267162070366339035027689982436171221835823539705010269767644173335798729926178657885568453528927570516204674219104353838718770278832868928035809668350066424509481961480302026211688321689380797782639547483704455738849949901302083202536011526117114055474656640176068061789331245052528630805355424781707718560403130171807718998660114179772563336911293854953049133670212803196186680947292963783791087592532639849383637634686892507564822387502107840987553531364250917638969727874837568894275302525465238432300708399817793633552798722408426532860033061533936904275339988539617928901944799359666468704452389798876531153676690784028697293639854860310861464100975634246239629944729402550663009410359696525700197210249793417626549571484157632100441203304696094166648644043920736648625638715216442196782180319962468652702057486350408498877051374451932177830278183028798415464951220264373914694516821647224172308935277810438908020538374540318963884621317870350555572941328991124476260778011386980118867267451823721814473616245413834073978783168448401080071945325719044727980494195688339348535223210125605194377723935748181888230164958241634066596037088544619269349039746523899029848770079414493846090578301640728592338286589327257692085430768267602263531784092117015722524451054998039133530642314664934797897951000312196314490308574459405201825406174171020280226783627506166829463217821728881359348308317473158875138456385678109335107865241271271186979352238154517481873295189033598387459530901060204595329919797126030673653122521568245636390278556864985201032200550053245702864199071282714314357081263928133152433308490930459209682812663968692106513972815084684891878395352773678673373265778690482332225037936855412206149847712645009241418007349782538691781314414917395553067834086579428446779314494000784462576224626543494716280700484972942287546730158227140396166372613852911470951658192289745992571486225917180790556505345433032966484049265860156341175772474054643829956694806104820226428136837340896204172338856252729968911255584498121404958405179862353870303148446462722444955461078639601917357392851374034935306432216408785744980059501251604705799398720727983705968765865526988681198653093990946008397557645122224473682253986644461802600418181799498701195806198520230072886910596237869623806567811742590318459070668998354105086796358202044948719141321271924694193410446516091902534378611469844676862186758846763363977398668919236466107955656185564308240338442475216361637651496481865990662084150861417304261193548931237023005297690453695076745114476053668404346809914274923753206161086692723820968966743015421329362766327650434329734959642692512356188169838509152451441636087933869969780244916260823710648731131727817582326766440368653799605193378569048954746716151388952328183357246550506271273395621352037181290584159049853665793563818984889900383109517505283328074573797374408418562404896886255533570358193234396847367269969617254078015261495566569968203180758646174521246600305632356347610399026358467275636032732744659366883038854421240745977792629431212173335167128344142884508761925459918086162187993088769050112530508509123243037559554057655227532480981113272019832588165116801014461259606158113090699373414664086020631027798373634352638628007737599643812961267143584745537422642748467293744334745421252427051731104648722709843279750836304617934408448621812583319741435180605244161703027190465284330142653505433787278925163185100361344139133567755696629766840928730892551522029631279975248072277726789054055230870499721163488535854765318232269950039353648969536561712783973890058539828971035390865768872319288372821947274357360834032816541307996784959991814765445395895767873535059036581219363719789213894203701619203864278580131065745931955412387458962398244519285480079328086130109560089088902751201440537381086925619817700588909365308616543143389533515421868478521607530274224343327972296711644643471199543262930793535551404216091435689391748613239836875409180281110012600973433485502990141795993443552717526061123730417997487003219995485939625806620494208505779067950558300329040238121626032122053291219983098990865725344617748045313695744790107294329960259399416538984213236415702775119817111882493021332714984408057318013279554728399312586870078901485883997014640047415583326384712933923892484212852774046081766842907707049284591839297559263651913651305352559206139299310405119356095750040903034379439365834194889522910485772157435957431705034473414205460224440662865330147252237258973086424523352806068504554595297915487039283100679218047563223518880946390691690841392614455361124690567448836906080620925584196133293282693443868874394269625924723111197987683439671659076015514703853346078080720320453308655750547941729499580945969353985906093864653706511916957099063987562350820525564270529379302463106699668400278873001028843459674234838044001291155875510123353875192082121984323667761774126196509311612442497524662514922875467211974975977215892350435264876238982604625031880468302164791602294557999000471702979796204536579421870021670879625975239934513850276484690420375814149642907031257728884170934712112599190620262997965144591634078399872956789335355367198427562110970554932797134390434336778846431429566250662338427528298410130940136081096756774160262343033112106932301610465166414532978199905268698506418582207813929807851520746016873379410334662715315033026838393014437623363101361348205608357304629858934941496322096081072550032092235294876524951335751669304812617984832332770573021552566335274761447513155658371460817172194136611131749084449384056504427814198028070089687636439785417799045061307292126733705191771090775804727460897345636177041486935533505386887996942307216169223225559518256292266626579083676128905403553197750497004190560942203121614442680407660441731421053656652838861059034159842723229507279152516292868245561194756637690772970912796202874626001922967347361700002205087451477906670296062984997719053042572477731676307560800261560606801071115896778758719846889405315978172855293003897474417012643392658790011867979919788677285554385300725316193185975019361147168195993374127705735367038267199288698008263130758912467864435418080097860118027697893990218045773783692627597186215584634380249560898208245711422610979807504095107776515515025648882069118235062855352830800523368454652659767719316912505919588843714480535915319189089133711492016444733987310061960834035752466286247339349408375573124441273722776446560032226572560947361823201829937277177697718192488407079747176599012915582642933869452175306404160419884396302821490861881226431863186671729166225915004793922527548165827751030858555967085148302817585737816532875223949086696032032725434566059702915080382531097472235082642072620596207853564282639465626960482699041429248295885263339488599346076338779824053606279667482938274335356872338421323024498834176054123684926096773179872788578122901128539080408379701788691549262066892482780049359045645057789360971379564609679516742423979250058077600999539927221952981933956888778598138875314348268846048575380051604439403078279365912366195957417673583436829138769974021335045394274809421823427039631798173644296325781094132073801359171568115388096311861683310357750262857021054239895357755966383689802922937017777072817597194898257491105026881750589233766789523961908288758592877444482399440104386216706910108471359665960781201093126595423513896081067271682272645435733184320865644127097321296463079875203372656236440141728411046992415984359127658072995845555767451443322334534851473599812591745130459581098575296639238241819189766712886000501524704424279405335459703305504422764969787449900194133225902066643631774144034228940993215254853641495696750124355805702440456029242477043591946052387818202916205871766171134587576937440662438430480701409183681393183111702195481131684505338334143518483480934362518516545390298440492526457904180908173511924036278548212424063696645701472429242978389924840869521881875912776010615325746726368334045300759400732440230559690342759170177621919949786945896384079874038771512474567950472542405925613002616210810712356157277943881587693434196284956142129942788053580149173171932998536469355272724420989879672202895537997048598008553598948330661010525307482183769808957756042852163454044901265101662593077412234476158952031592956649333210434147875520972809879184378879381154009020332230700383513106200145223151566528639149743368967975958993869180484374278105675007388105600295963672388845077656150141658754159086305383848771342596618677390685133308238796587056033494824410135895995158592953384842150001287604190668597385878544813559716989629581357136969061361755604449442615859888791172964808091747032348370459024966117804283195410332835689027770792841829797895882000251481929639797123107065963019027804140129326849673052555980131463751158668207988773165439988176550279123325641464588085440952708183899777677584641804852848664978860960590963721211550509940491302844858443590973505694431923631794297074002511020609201319841604266651120371937859688992292846106269501704624393421529849251615101595028326705039366347511445044440650568844799866173122318304226865497484340778861020222257790801365264531679011849549213692456051282295559349553829140605885522275194517671632039039647875269012819645490040216464341298285513984229900409296866294255014446789980060419822956260120170664894924301301311125971111370746731921297341680392769742493093631094107369241279018788806944285296228399489733468474322932077767523482523461495884664126735426780645446999974224029469254994527829706499116217056165880496716405454653006180981250181206879113159814825075721774309560241872572251523337994359526699495852295130766019238568832795822576552713559979944483015795578004954809329268947934432953669024010618267636545095849354688485456562757582375663142142862277571862160108347580179689715624263264455861240122892464919127284445978691643617618435501589063251077291382229299223555764697585421500325116182720176139227933789158992847495226499917117778574029313191585801683919317250239650622162012482361947576686216137358840975944981639063730622255360635459430289862844545094940106453940108716423403185305145087215397538317647171721018310489716704840598372281770332563953393487280740001637766932607663071157593171904343972058840527869601278666791247634186206388286633399407148075330374871584555817368861104951305352524356645352547352451325544574325842226823918085156043574741121828533189332932111353535318819214166491661856226462351981706114499302397545705090099063943670800977271472621984078915686007382053169511217179325902762649265429627754887405472325012068711256671410603476166381455067034884128813832777844654995483907566612311303309100631607044568633828828100406935034399587030949154957687167954754950939357072202410812107720344303171048653240536778592724093709431040253880178384674861490246680602990141127360998328238576510662596203643101711827907015354484661952253361895801453430396998114460746633785253889264198695196938684894911384297151162194538028816200958522195734210214904758205726269017544966494196709481143174401479985615431305662977199921884534290344462754848315819133939786526785935598223975882257898544249584690352282846189972286463182292298380860868412803886580251458138274161918785397370017296630458275341818551651553150427340838421757309108986691835270213064331649975231074374973436018575813882942479675103858225770516412679944233344194638805960593730396979253433131353590271262171483602717642944860956142569742713491198184915958313067904326028863661890351115689542838483968741139564442758505213854911310831820610321999626317544440832604857119228850654952323554250543340930469624772365724909914130620712745526069199139857570485283894519947779186670851987601703492078255724381014553640597939696526432775989387893218201281012340242574313515662622129633502479709350971402504051464132601831540301403181604319876972944801370250070442887571567368308731534716271332442949629839052751359991858078294677829125302102193636129100460610779611223040684957749356000192086159111553851633469657722921135715199801173015900621571714193091985634822645571569557139958153508685717540571922499029791745116863015761389572912400816724214591187596208130819298993415064996443942378104414562595780701315066967122647947581099939728469898630233041949901873568547833467032259767737765428406377750707967844560248465578628242238315880092050929251060815540728061077391905586599752570418230135638851094717063728886821538839207277957827615709895946582799764887365183117380634099839395295929388958848587813229082159654783916996542381170217611703186267737548239956834080210289091138278903797025612781389413044682448820502884499020125353382884482007109892050526065171216801409412699625429505439412398304760284435986721814140733109324044562470149155337613226632916741193404886832937498389978350427819326550488875684224190483019561715107286150955168168492088989309852797630484135497158454634144565450647734053745718189611645997797404230298342493945352285434436832738670293682453085973507454467414751085953813372012062389404702375393768785072017645610750340708357056139007517612880705204164481624227605059823376868182691927749894032203072367544942799094411101706181327004028550891693491945873261634060868696983341351715190479604515414598610321569826703702460965156101595379669709208046257226921707699680240557560914324083348454330543283814904906793854970439289283722133268496922705996432218619313796792237942980581632923103533361095346634315411999147836421857155822272363803314044182064357414963075740875205127622646093098190832566043601325659263301545187857483416076984871608195513729161256893576309713132971521616632990980189624823267649452155968464762517082347210235244944424394810667835537777775060125043569686515357290654450767398437537517555537336606264652968459136241733163384193916908299082479135234150823322383581529278835164252460565588574466576015326281916280527256630684573511641251407737226729190645741389516640450874898628457337005964127342008378795244356219454789018144129706358232647365202345500819991871086811892561499619292937736370536807486778658024837584876071335383048303229973376326042945699490952421085865913692487384538055176263769489019565635863566716068706886962065953721978182281963316028896801210114703213300344674635745700507419143021298860442144633135952286894029860803646162431602225432800687087681337960289279267192233699281597386611622162660855300867566431775571741040747552173628295792070303613880411043775436708014966287914344430130518667920230849129050699096290757216105608785452040167792417626511562929049816698701938127386168034426467442828945269396258440706710644986387192704909875817054622893060044183240710755795985479310120730672230272169874091156587907034805739599297493019131098178421141335618174951275744780179515775531656861194541928377005290917353960893274621561180699746141840888810885853924018533244086128528125337945792826975688463572423266167467172091049831714960176997827929187999220820605274458341797025705582088402236250901892096547847320673844720653911303719266766887744398599899537985177960145631289593912907215486443437861958049339739169852888820134487921315793065260360550535877452132617375910260736873069918996692761084735394235516713426084855288241873165627926456507201856889018242477632329635298463832404798574522277420589550343526189994403946129470069650987576809916326090255383267263287107149346701999248745814032729284553464052043611496161062407414807684456445360248724023353971244464854615347718219266259122616542410425275869258756023761123790087072698584521173690606220832028043836757320903256584243372026868676192119522083536011811381579397328659991138235799715641953456541838471464503210600329968127537582081219882680114782567267906676765577490812377894895028275906386010057305311829380042546218830770170582326276403912704158176146380582077883917540017311092812660993101340909649379709070687353154447845153378274792527620916919953965608951933632455680156455505164971507649240932876254544757044052184562572642542062592047424935716834214255008851595322877940612953568501967561130471395501487662000721278251827619312916312789504283446099703560246016805151021918343375167753963764216167913321386018868521384940434513550367920346696012416685609069499028159324551621649544226183337682639674602989285538876784739841764141901145474307880164853724444997638654074674152064860341520200895144889675782054678936141809081635857393142746483665876264383619501105245004119860213165899131305131493820136144332062839620280180981410270786199218128225296069811620643059196008019660801146729811335696477764643569272920038877798720575670479748701700905411303690661248082125513926863265595639662340550707009668609690754135063431157409054078524468067124134072436382532645680388662486011983887952560112522107332947300490900436422475924402304109350873079242353988598703616671727697205054807830933342863073500058112674536767130423929732380862666966535460599019735120821204812359691219853487943782291065010675730971132884214360392330016962596900630921428142931158659755157049819757306886511857713808618297187975178156655480277596043067415636955362011386547698662204147925998113612023368472208759364675116717761869924828924279906178562483315793513756918607295804093783667509960848762571416842507578864335381478756732751503659363009932272610697212487125627806490719143146299261407710996009119343540935685897829219540542116804109508801883674254977810655050325367713191455404195787375907442288383369039229174116275352040058011015067975495538780470166862825110802073060387554424215935109223699107833974893395099249759884306375469065978707286920767624444940637066677556839725968640969198876217927017963940931396723714618744679701018892755358023814526272352015257994331193184116728245176647352998212965885845550139957972280477763037306194102354234846794380409762991874787590881311808127686489908436137105806857712447656730590608967406112164409741018826554888156755338587377868847193653638720750985055807323756927515529630657403981227687520863956171814558767881390923745884462501628246772590224159818790256829234589287841680175000410870393426153218888439811621856914702679426222372044906489440927782587013874706873627676835318930151803937259600090629427573384741626740740750163523425030743492082742067108734984543562137124174174184933634254312700912341511719113418590707178000841999555548449972083917558136967041752503211799532404699085536241523570750653106831349969667006053276973575240033528634206781640929576147773827662310096764850467571042730893210235166056735725536655902358021656438616560316672695293740411575641187885359063622936067848490941459765630839819952349866951058140316197339636607910414862142118610600272260332258202131998698115166909229383465696911575009071884782295512225970891989153061772157130554344523829027408872346998773189885207579675370760497720885765065970499927782434585466174832946518606040572162809629633545122127336420261429460940283111135000259341500367057911334450238085351070537347909874712981329457115467827486189285525785074827354436154542095037227119782552731488454484081808722526807232396487943233149034415577877894227307968968827445008766841223673340950029678817298591967527950779518263374959837660249331095687746690616120039224765474183842798146012266781660420165932042557516671517624419858915602521158561457658107307108815104212500917138241915745842105576538231714824359583116170475672580558726384897216744119698838104885166160208741684430080332215023709737813275500828606786620456015742940012625889250976667295607386580767927981974527477913767344670507185256616799346851112976509815614847532276785387108550844938288655078210133852261309081278951974561205270428193463342067520941703398229285217424323210126016088094749459729844136709409440321389281771306591089739873807303691922991699018648369101313789276034084850328634984670829941727452732758265243560854165728983877021021406812738826942611476315768185571777992966131573120653719451056412395400526241612117385751923609307555053391365387618247085785375821137571505093676119847725362297835369664791551367021978701190304352302224793686981203763130366520894928844858088456501974669018024012736849403384135032011401881488453672993287919675792967660074325896698502011488058157446498720398606771088148324741119773664524061321923924529056198191656923620695752339890102976124445988027403110120815419380241794644165607414044280504040431989916152588037971474145269013513932261333247372111117449284871495757992178583803112025935743611175480721977529825083157834343391607131436029489648104424787064052777087518202055892082131877314111230196857548424020451348906052355106186400959835988428909191346893803383903306854855011137457742519979990859943753816095099561448185878870977546400689729329790492432380963153487834821604174653778331976443721253230096316868901842053926895546465344868258702866112519032141757790249430308758706433637474124386335064408860429293713315476271100515740094792313677808671640595211872286307640993929191135205930173934612458502567836932153401290769195753741983119373781277646133303380029586378203125239853129716351687288298363384753438786949140904211112777084015462614349997602562041800474704809889959338200398799851166473144852738290121636299767001345933985786755782694337931367919181955089150847921728777847732355702534918569220417176627856314734627376233688423105027886563309909473918224951764439640368941452205496904650572049930204060265415262826523974269823010276604049667360011342266099569278668923728982228729512030643009164065863545801026320982305148400096196820507921314602626140936849127514146697025062267560728319132696433344955567636658650792209757745015975530029284074094453229136419068473142766718740161447821772915273514172284738040884108519416102613496126591255452957907007568105894871213329311491623509051399971123763520429162471781291645697018326891561152995821877018300421984916781111396723219196345344156292985871425516890292553081236287155625262634495941229699438381612670418719632648616055518509896774711932730291857825100084316905898754740675315551466176692222596684051633240614183508375157993352957213522652008353935001555976299378599307540794865940069937947960083054872528515526270715767386227609877401188516798360907594860084813447380722170141287561297319006000371345492198841235249757075762858905681785825846119962455387809374441425462756887823202812608520491596253947943759423008162594734316568561131358759245890110403243873571411877608550894402847659586149178090153215711962163021925920194508296855080535262216775077172681404742414541837487682667445420937891526665406144199709968004430407696142866006904853452397217536754399109334415166946309465690490801280912209310633369639763816308452014361964452225350599274800057492999716552498662248053875516566512597984450065480001611566958325915186675195624277718461828963041463107515256505665253452221029674327520232641499496078144233835390604287119095603441606524649494756544119702793468210234456814490518228758467248430490912580170277259828785238505782923736228283057273451544963741319885219328311288768353189845433798667158620071732277694319356104844316231122780604994070421786416045940171291899466746248180935487313330373104330947181277115912367662069398576052973206063833311163646687149107608377878826748557286668878108751297621545883238050761065216470596715470263853322138763709203768034667699774279701323014788188533861201090778252682310447275004508040277839051129890442891217499731444911201308751896226130789184736997199070386902077123700712487877217890227792631638686935115694897452055046178242895811513101382329471626374839337913414221629083241133994163393597988995091982943741856795516126828342391283409761246447842514216089492641484143675407049493987719681742884505001271647938414547473351885575730743895766578051208940041101515414177373309508529366704277373199492943514264802993488370981676389521019381087963671284372398972439826300682838320196084219536964270594701600386227640352662167423946679925081808279375442813575267408980444511313228347505799320096087425732993815585707541241548154795706322717291715095691679089197096493250188496299711940057337907456899497203859745384050175657309138545631032660366225076356892649623868908522050047241510229660405870272825135815723972654325914775171134031524246260165706624675202310525751931805419114865630311716703632347265558121006168898216541468735155384237387877372363305379987178997359636728925604238710428886871584957292830788338882885290699426150269152084153135494489101148318788185507890138258288507046844845167208833582570448134707929811758763570545238702165613702298121497394468054678170360308786342332687602957505754913552012469694053697463352692856818323689244281518992112884217774314974866375308545372585884107166016446111902892321012731362542541755693547418094980090773195011698015962812779072671657243230570667696139960213833626144080695192214492537671604292593617590597573083258716279837968989100180003839753217828773182824555353351278920331725757788844286570260062879937339836537817882368380146849225463074219770460322474774491931736052722816802469948683114482799384776137234095895037824963418890776767782411844008247367040647561763981827488641421533962526290699663953061472043293837331103028462393615667760210319441264731065487366854543211220338469884906839747595006917234887491402896825088354997403265536107034740697750551957712493597260315663247163086943960524624835923417208647034281123584571663074264675751393057063366916440407314160400202284644592229100213587149774508854080836080731841989032067743260987504645156034467641210706539600951035872715926116845864934670296005884704837429420241582046561294585146122368531813242772280066654636833592881841908443571608641892556284725554573054524389645987951758128054507181003892473484461127469535846633116675816067565470038968299337801117149934992954603529500164329750434727703355707039587899034053139562304730873453731275422199662415049196005083694075594310074646474094996982592032721304798375304105217579460055911490063085661376537666696147951136520614878054941903806363156524778472027918084400578740376187645985359357413044388136117832141250936852647392982116362808588707196604101575204091126927086728004182081554711983926497361540324718294303549335016419408960206751022302517371719612615561954759018661675989052878571222324775256308704560790908970384694932665197481518785692896127903364595806204207676360826584480686603202666270981647235790965635225171199048709256883685645601051746254699590305057844990211063761328152922195036241344212992918445651517951661713069743146996893201030317038481402950501754467303413795211637299241723124759240545533330507469388789845024961023103995007520006302515065640701722329297610380878844555196650004076505119939286814734683662640058984522061925915935812290303476882558532616874933218623728675293607644960673952721916135337773585106426277960878924919146836996774879225206036110538980943277341904139465952089373099457909805110064124492894641460403606770888306764006018842361660291158301314566970003815831952648614486439106011494545157864367025341301569153439063135082757087086543249627963393187196449740236575220961150590954787030930000476845470062402327649051038473003839865245155100232225867866272251919216985339807778646118371114341099211985659449301321066061378671983667625212327994092876049481948380528203413457798243282439665959200310865488528508485130477995653681302885133122829271707845287505468799158071011127160997056838420072215566420879838725676690525308294005507676228905113502522165008088359944608894164495235463567136141332669410346026479238728818830180797343235091713084404180940609054057769327187298573409173662933700433985919569281958762581733676239147183454557504551936440440684438314969974553211235227757737477307435122759869168648643370849943161461376469445312972330333758110527300747861649323976200250271573515559514497991922570409043248636977468741885360398980835073120396192957704838317677368790411586550768453329890402760073808146621635166667172795463077125617518848646918869506545394677888530077225423302852756567203087831897817097796446818747317364971036314287974385664463026241766967222553294817380869915752372150390035359021126385151435196901599264276856683232563065694725458948573524138988153502855859912994487349701773386938261885040204894913334453456953025677527120962581071449830453837450877832553829646990740013626214296026374599427037324895103962345645302572432045013366702121622203839652744263095366419058164935777699730622283048027300851355073436117090610599436054176453564553257572747646239127455787226042580787298063323564714314791146534086360474719639981593931315690790200491232637964741745916737791888598759251028135937244444956443460415096320273194910239728668367412200315246490605136635619656937410450253545094932716842885052814574916431760630114377794949733639499424480023453892100486802317750663037652921419992771553157177265547369270509934355857862070030963622814290605302040864201549609639641067672857551025518900615407245407939208021343110119986805045369790788190921412308204345500554245788376102062498632096476881220675437724743818478442440580856829649962017905389336306025180151680297242035519524880940101053858901243290879378696014480798790966741682064032626139491229314238522277590941519802681393993772058781344200748522133377941506256058306531637641684708937704440696715897845317196968346617268451456410982149117353569551191098960541402642096872636973677271998460374578650706283869653472193753243898327264933329746122571712586911889548818805010831390144598132176662081939305411220270109147610160249522722039171454632766258065076132599463542143175215186686284830593035172985149659661143134828641858567513753985076665744858474208025139484441801850940124524956772779509153581703397468923604473416277107542272002713516499072319588553008093125263210676950132963639609125226249150921033278230661581432180650946492952729384460941784820875262179770832000690613887385472727591284757582461839821238979530148140321627296434278263835944477220766731993531257727085654777280995897180846107762504577146394030362748995553987443593825649169326259139402352002958872105701220434359411040683608192500246985529426821703843588677469742903076658888750029823075108009955364235237575589663343913843806137249797716125171771570361485325814621786589592946180180319535241981173668201743108349393888997544610509615376485528255194918181757215385996019888979913005902881972182617060637859397372601371341875876284432365419634367885398342578231293159510458934293018021151522038262129158983305268151517113568757820960086941901669238042786406717472011972957601378936332162039918183838863042149141532337443529688257554514366700244456223275068266253746775596224564964056832992571200521469747251449191859839804386846981058375182647418957687217066382718617346212518852526907520459825946924303720448592664564350073801350232249904750454965623391279271306713606134699432282653556158765188793118742935569317519201765790149598634284296957045479640779220286702541796451170168582519222685894086889855103870509099172562711688394546330656137211440550279732299115678366912640310211996788065208702022233088044292777050981079170932822564107195648207207315308240054889533210713855567531140622735062779435898956092643365907263379737913766267063626388109164010089227527501660417583702562042212129673093818902140523614634389880917498325045859789316902073788284905742481919873693176139694320844308577148573778156389284490126455933913065117764391811261598002690454303559892470756284539481807221440264659994402997977727253379275982720962620789691814066646618887512467022707274609890807472412186316064347461651303924894989901966485383725631838695931566894956044583960542869885468551471199476597735247793680092886044191785953113969646275379214206214050719782325765879260524996435646138798533324682375906754441788295381983839660230748620456353982517575524721939977415106455766611674513159218429169596055448713310645270963038416017110454113066210611814865094324960589013632396349002927760476910269972425264695509518731764067769651002164813172735382020723802141342975059723682843104868452725369990167351243017910411172686467156633850882354177580144610061700677163079986681659471072086851416980951141876165928451946837980290515835681251096792650126150022942906932203989571211846792059256171300737635057433815464255171109243664318544228873809138013993260481700894274752508300456197938345216915741477513858023244210258423666320738586097732859608504985133128221052726111846323539597343619859707390719125797086440450457263393199060405471223172226762463967498271858091717384268202385625439523317367867135209791777258826868543436115426157280497506747851110954582301372402387216024534042074796378189651925318004457566179107124467493809087775082579986563361405314433951098322569456734596981649045769874914200877434791935915107000868517983688931364391549095872512096418813071401767273031605218410999029949502420717501776746718334245796303082373075632383606852120448430554851614265492342976145474620448418725347509757832135025082401353200931870366782657103578816863685227934283237900509774289172577556480399788032853497409724145010011071907417497784022771801129446280889011463108291971217064153384555008508613339030205006469129409964996928832779940096298636642806658745410047285578284548200931512288105038288358673885817960555067558192145953627133897789529977374674000325066950999075725412481413573627096879899182162695164582206002152699874569929429633700216594156472327641451927913114735304169133788756052867122553410302401729388522071223411215105784186077555689111900483486185187476815706770604620327705405414962098533222064408890771959974747893437858873686028284736647197234773616661137537470226419940918204106842290607882977899766469542979246475392228753537864486840330441655402011702442906811796208279876045130631685597280185042565151547144845029735679235479250620554092965611459613673981365576865129443777877219821436777731412088860582083388403968443724921564712766294910441343557706652637120271132251108941437850814446570698185403760833073814835677437176014312542836603227561471788504745417507692023996420839522008907424541833436706202897158860394451481965348189459365331766694654917293594129327217338349912513866916038960953014443265698628783696070882310541837817803176573962535827278703004040316628305049125830310106877631505905653868855359683682832874589496806900507998043256662173519681992271442740225545208418088007757958549003822011461731998016193596142204999281153191083239882941177100827337987633194091461270220804283891953540362006743591194520727598236081426893239824613132344209394544386930544405922030903603122341898443766912372039382097051029628666515369803065345148963172105559973501055889034985004446937725916037889897075631472797529117946661758011027809481944986660251052987061589218512702646427193447638237120977699582935508932624639851925704484103498752669383974345380534930610706524506502341253465044528413903601804581075640613177968133356417171535151617922162720316151063122505067893888474331266218800570001827208063956459414943762838688981174592163065272063100662352828713988309076401549995345304658479390726001298975787299039160967833752135468106988259343826023311386622274828719392307255674966458448867956320517966327230214000446477940633588723118607345687071332999266925973002926009691302752548778536510937072255169480992362804323111285034557853138351924147620965395547394049839517074100221736286884446074480676517811293630597094065185214037686977103389039673137644692965186412171342354582579675426568815980166588207784098970533169070194429155076489220109427945886682667433417222531408487248745098838867801719049976609163815571664120662703402467019568043089805508813247953684983754351345703319369296702092146215293403014250603623286958167337611491102874035549730084627536345526433331873637903464584467638770505121992159693787747588571919818543559466543470705671550438523299906924623916166201456054799283809060013117098403012444218322631744574790342272871450041656141722076051980070195480664958702371829696400002634545787033875716013063223846662088381565326826876137159365340918423745173598037040388377644403137222165777231462097552469911213172404347156861596318182944282617115640110207259064952833196105052268460544104675044810966968621702948326491214925525666673231943900723363693986607811536434727583258599329546319472371745317621070555233460357887733194575376826680209906036488389682973307794002394820285405721907969474193927858181808036472537307482895848496229523661779841211236908855788320616992208885024553916822428544419020038583667607290440846027473923633557661130243869645789119126110298557341588294150034333151421124240519961055709442350638831624692308252386711558444189354804761725471893012584181194488609700446778893511813187091276540582627717464241204526631288714709985088481691794167793567316522818864862785794659667676333233140807086195946566023822179242559062855213445939837803305835556944625579788646460352163418171346463442921594586137882331615189586063778048068983289934958678883026291319826502232983029627380809440628617336444528566678246060769650580324329208465073336629942480663765051605932445036744711926059600307886906467888755093725520395842429531654450271759143526253723464958830988237523529726427211932597449128175629005313905382401731150965955059751204179564573750761810116392271990942926889747395982915876255780919451349797173843193602751965414965669020301817287363878453419330994268217913056053737065467069009111068043010757193393943181599911503424433587262536500025211814932505839239108834144302108973241201551936338241547686189676131347859883484110758740508685352117930152773393619129707515067692163552634605645626597816739904489633834637107403102430917627131399103044997359596617866571382915235624197804724905571425283839280987841187210358951149145213193457554309068329176202589885352568707188332103506731705164000592185479135189024990514635220605022971665470587923131661031950818802022070334198388482357873429128371383280765025448536638588043407331037728462297487560551966761792806673446122485148637242208000101097302624906163917282796856729720268736606437720023659624312666668323442032316109773685570757807739982137396607960389551678905472207316950193095702706053997011053173586172974845248479354074166707807496190953100461736389156049996552269481400714301710605264282656945163387004643327474800398891877744304965309372231395392479120884645562626975363285257629361191788025723960711468941225713059425221500532516120694232582389133025480382544010751553614345537051129782662737726596792383561751124661709314514663009973386323946866157088487385996040475095444664689764376269433109001222546221585489192585911331457433822728823435240797144976647808344330547925379729519806650338035480744116720410601678716029102835701991383436653216488614214497974373086257153764623295064352791951344378487559674665370637971292177856586473369394302217728241150610912515622498803158562859992312450111283457828441055850147165941115012632296457320227465128015823639905021468653336313012774198896585848529347189839119113369140207756518732579490785651132658684751622021470899872018952786280508705249832381876711633160108462659674695771029007907963872407005857853166825890384274472553438091083356376099441816901713449542931256221494112227882747917590939132261420096977246751935265599442979456687128770467624103588891294107207791420158624454648570065248758203155457596101223297748700864552541153655319873738236269349113641420942812466188838572520742954221770220948648451051602583344451010515566605483588278172331768174107907767397656678457247446363493538446691336467548149169207683671369928123668275757799354330284987960273603225433695149344946825287500906007098176981384042279209623154285142099229019280403356076784500370237510560871725406278193805513003076342992269990409200755262785803665163664642056108695381344916253880912677997744776743549351436683530028789131276518834946663676847206307497547307163058579472561865796711615078485198132840899770360376947017133226997081787662410629428798871283751736478051818603074154446437979228366081860105389991936637987125633430961479856508702400410767078822212542373667128797059072543262585062053129490666326548921213657867412670424360621512815027354041620579620957211051644986051440654625387390413236487504262545679150966260672998786048053429861138865938356187820372983108412647969096765569474656565599429819828761563873043114754853832396734305969710772583135839362219143458566990479828161794405986438951591542357560835196725976970363251329399668479844617657138815126621090626053295836633649982350487222856516909178666874299532148522483999099962968178330006682934272445266266499909558642002311639783314275362756764319751312736494896836598960389439949182915599147905462914656146933867223684483485032003929174195761867721239730579311669714578453730196494107988603683174656450087977635543919458717083269771317022609136789840432809462561801869289319652697471573185704968750300950163513363876942216379029642371747401076005107331239331602196733914385552256077872018242098987706073643797013398189785929300963680855848652508993755223433156646524247274531861117299469189498922221244661860150881992089211231096638252452034329880380960613662409598704273507254501242126943167803379388401468622548030547796874492582046838090520397887673003871310890253423046912222655427568166480574633073580072412346916245552912492461760864094225724193132292721229372220105688741834615732615215395428747915988296203181013529996934161340143398386117305146904790015322712405601501494229201661742347552407518480445888845893749195045475479804224156665213108217976413812124041740400267340799581780243755239721600881156533989806998568765276596020233850470529097364839789794286923243376844673602244140153415759250379782881659046174477054919299224666649988718895637696470224890522837417263449113953871809777365838424598164083014784104494226138640480828815799904864918741626642193524863993758420766353590185046550474054867951117981664467310474541739759594240208522283283450429303854703116322519474652041511810324008156862052969646876625924338944061224439375122647101064822865667840881659583921390235376112579153589479401201262174601490156604836899993100569896838879771737289757455837725407456068085968979482870371274761641094110854916035425092802275641944658537961168126071699076900937142824667893640423528560229588710003550399297831523301037900566980457573515950722251686024875922040233560503608693903589212908952429071164728842275168729187121913190404650311398784868297909682672605744925079867193127024314078416291971838151317487761529786738585098902398424309292522770275080088234852667801338558114101815916448314723104719967023134348864935038888386126567309506065928197677869978001849672455830016846974920118158105829163631796570492891396069436926562620159979973250372492163688099022478672950156959233775178222911690168565122437919927984199607145530308082316371987214540394294183793563818926485521611789366813160522691508376817356108292116916550962467273232997582246062809297157396008836793975247730994212624714026812281284254771635371089432401343101777875618255945919154744592393355889162826652765273505551353751507591350904405996168994925798636400658245479245272967200735774597422335944239331198026928364681493515832006350930393965430686327987570106879181944638579018722438682592357959976427316936661781313616146826011046381022259379533888855280435144297498774727574858998927414991800887934922800193644365837166944876955965065088291222475665954051204345236771797118251603509502155974692924118594941261985275217847031572659558653468884042657459249888404336680744997063372091735428731234574264372807498185523555338856942483883688092823513824756277232418038483695132361582378032491402245882104146890051328202360835948468528582669872799086427770515933517112460915319569743714049729736922571273822194737011214944639989545646802079703240752668636707542423912037576396000539060155331356324383733760923098582379780329431389506726680697317142282033140527711198958083388529351676795051948997405277751720390698788205999105389302597306236369048833059878389294757802226997222141877555495765131579257063321328887735117226687992167733538132639880383869230405782356916323298533173245248212696981325064145245164840778194292587482995344290555052145034792872036110694796036945966007431982311714355683657403119344007352638274024792806968207933106178197850603642202407531486825903199499683911626476024706506165268199259561640896008474868703719018001703522529088205767133942097840104051513491663335904719300849604793543365715505560003961375111807995588087890166443005771312191948201788866926701758715976894017106361722358408634949558801535557390627115940368129937282429163193020156615412179363721987300415510607368794679161568091618817482758672097242512029683107139807593243613756864827995655026948303940942940527148395124511379808716921261337042893569771228794036391723443901124238300116319731895510169840078574250844937414335029536279659436080565407971744111294769836724078492530644844918417363787286433376440883458763935619009413951236218630163330616322259998961307049326400809689965067550813217363134687953346949095815918309420323329670941179651256544420916379164073048965880448776386760380339982724507733656918361203971124055690440159279654280918857746922476449614353302920924107807821091189422607010858147591429656106340485300830889975548556257710389942995358155368463067206284791125241803151984006873705565956541309496905984806494820053196381130715386960551104920038623392511321356283535239565809034712089876552189818437425932984057863234007795389391299254368707649078356419524688351735079384137937284196319083610120476422871305859827305966458148097491400476644917234480218108803264204098579764032896561875276986068644355572770284956954599318395353220462974386140446555116739582264712211555488017667510565190873689086897050850968740410561692765900154898646822622920464268208156107359077349635455079889846782554079841996319775300381592199752395179549335500667286032341091564448331386380777322943331009583852955572983252613257027529015245446538797596758833110371594070220507072523467726960586439082581863895982531548355238568864053748386120359023845992393240846353306587373706917101791802038089267927481792995418194467284344641319472516018212233262648356782904635431459430817121007898932076190974844406555849288555351950400291254638615962146736762381924106280006423733659532926039919112856648008844922532597539309107837196635085854019285575735301116789158838819299060472378914210224160173256926976761051735471380833235518961683500287340294368488170579574246244255379106245488143801098304243581346857034971235995728513026187209729559950825728145254915768207836941966765130121513330425033284487079463101483993478838448643413159186028100724971139685495769861706000848462557330462710815340604625562833473195718365383604763024314689369894880025101191531740306038016086190646066748173764611223719163600627142104139506782489191064001587165911016327994045412968459477857595705378180005432136228064993292169522804504767937768188103622354955171210803176228817767023975035611463215943298645689924576613338773943809338612666794151698150888769196090236428836974677681744939725718452392345514269558028752664891106150248556287918536717702429368761334527496389057932551479253470619451931419595741737033375338143971331989907500202984111002683410564023098612210584614959300134406857117566818856216957170270135310142598763864873815957887929927382441268132814874961044785890280819766718397189082836942175695285272489480375415576369832174170631968566374242480961132365091462280516859216971173475125717721303892560346892350947870573985153164844886644861884486387219749586878176121978246130791017011897744042582140598306645752656659214327161577311590575321168030846813262258893601039292957414651818745626183553197696930348304421537113078847677910839151472091301051913133450497499223634394606226538231401595981921832515889194630137348382982846453706425495765113981506865782758563484660578135760737749754791339251515895981116374035270102588955745963936872789622679713703935571470522177350958027006678819962330846976000120713367871086623704330333929028413164226607536867968407533461759763030661398457134874927130079138810147873812871526177632966389986363824352842286347499092385597688130538168220941377977584788217390576895804641880815528585304859111140780735202422963745320179730229948026662554893627256792147293331942409737855397215740264793077555188416037663497815716987829812247321980845091375975894465002199210452344671514739190735759894221235997268742220927897049388476822572985731454155193351419450871747474412299781274191890174560933907727385098937603734986183857152956980724478500141981162256861292566882515357711169121289626756303894074751786168701181339591919650178623801046058118819489071751611509662529947627261334847680622514311124260423244997319062812423777000547193177380157865978436033476786442095156744719414210288808531487998019685744171712094251303353598338521019640503662409998044278623495583751426568663500398812006297676856385520741757171558826501622757467599513670631792638404578529977331226043365047904004839101096531117214054995197495744872203065419958794224074524003597155781681146621542756687511564830833141252246300822947707360734909534723390887459282181340966260876449946428411169391588608544213059127451469930173319260905327912587019542273454847674606605955864412209544785630857794718008095603828444394597189398474344210862254000843634091652966436535095219865961627475423325100360308908713898917420449107855328242795020135533095569199531734732962860019028109914178581164991648730725472050257484795257500237861434654306744498538578567671951313993789010085373432176949674586687336010834417505118043378847290903775340667615025838204142490627812411228623688191484607760247031533315446207699501419892222570114176016377079557576124262377550989922891813733783253349840691800155771702300393856644378827105785582796461149866997003092844574617470076320365575013668087699612149611255796404165810148713572132717089165597551007024355261786319124070700255530929024683012578226196424459622986673739324183341020293234326756330718873002501691418748280911855518985837802418594608381184122752712431799567296711189625834405155463324846819909172563784073596044037057829377410403849650350155809823999925259755331672642770663433563044490942761769240737310304760608591093608388744936971984173933423247729905080678326363456853589804623586967316685713366299781788134419218685682213118572249951811464950275021682390228992600556399192524840256744972552251821907417993016507682543808195312871973403206692590118568311152787196116094881970900920319058099826021554480408890205421141502301004981249711273387072238668768242989076276232406847295722187847021307793245535915716451806890054642235743812434210364827144947594111935332651144460213864703067198656541076045242664324817471308084048312147952911426315165936526811834704104531911633036329505941026806925414511245329665310448823945869697576450638265203417714819641970156804971294316411121441128747311662442712020702701535246792687883448999138440915756205357640016220404457013651501837190025680418526410938177114071221865905235358229469667531978635651958115726534557416563025789446167979996213895364883643567824388539165508185119723857624490722386127628758718632237305935222028405854733228057547378860999218032838440681229198320924490456081000701590746287787108835725898106431040984771332123954604120796355358263275882367061628712268142118957790861035695596871240200025420982816543591843019808982305121108045955526212988319492542528415862258571957108327292654203150922504182306333411649637363446545687807023536994465003046874481137469928328119359543628266432513987831596622192633426110561407036912479439379884071647470457160909328650291088251845154191712919560589494570733306893664451670452830437826875919687644694514657985414155019430398051113593464202206097902628000248220733924969615310947167288545875055979053362428956237321119756267470077810743361435339275833416489698527531590001262202492211124009402121418005964595153648850056161115348754203895389153468200801823356190612382040268741047153743474374867713380677047256575990252507808600988850556636815339441531789245211130162735653398931024822256340140165624894625923171310590833277605236946712601908646469442183062903038375061675046840741839020987535355501181372850115916839730214449383828744394571924918157532280473483795961247121187028945205219097886304608994982355356947221668614794070780284679226264053290205650941329448476604465203023820400091528487220518839106508133679907382765890113152271738248203220718242324952998766198661806228266917991472111952110346785640824598540384312323984902841798420435417979816655399978162701027139171994141972422884106452979053319133113226894175348426509904800873315902462585906490767914704843169141174677156980396718785530938268706830844037401911900019762649905899806619582835768522156513291369075922169292026743339623031708193917418215053333435421685832297446164398135216998724091156484154977108032121207654483483299713083459426125239984464162968165466997778448143665827653226254052612335972551002735595420031326639529876802444991732931921970116888458572296543050360815703728480979399298963747414962873413584168222086595981011397864724514087827253052167740667162182056827722404129044748153835463789079524376116111934885408604716560275097490532826603040447255049880317930489670458980354329919614935260557345739570388344358685699004924929672789312633614050342085874308499527986225944672035770307816190360441337043792458410390634400559738200663591295765357726902272369232147506824551431826473101823199583855657499595846499218735643933405215792349899770552092562659385337176186445537605177677275170810803693562148864882871280435894506328779014135130451588148089011008345127687769931310186578356065377283774323282080465329931850647844067585270693337804365696738528377882756344318456941279242340909268786544307100005339020404752956160411568429702695715441536971099790769917859558740391292033719750949405783275471129780927398594390611250526426570586833250772503707458867911282740975420230717309217481728372244486150304405328671677531742474750658628125100679844586202794461755491580415839400695752212816335545705137624666771189844586239041770434035036115837360067975682608260587188235230241372207286953775868657348489995379053497948990398546061941839607150291640297202477919895648895553215545709613358056150392899437498728205273548377090955006086911928610453246232974389931965325026389425827722788111726411467812905752717606621506391670596372475582680311931357059997210816887849272627575893332822645532992312110321408660045787841642667253554148306842912423879132895015728674584186214814702214675116332434739925875006056569135716656032824726834866176170784625922576113260869412882622057495840813103020281778536434834504754974777366589129041736732099034170514591605972032882261039082128426894962014360345451505430694099983787716021563302120974995081137879149488146453989522010735301187156336885870683078787288133540793996199050845381667935105816105554862540819229085110416911396771207531482125844271451912925438327176083658114357104846640180282026306818547754137029282918587819711246434009316858912725138818441113109713524375410665558655643747122474306374840116225018140400603598975294822819715660195085401983300805613295946788715002035827801009546618733512911477146533550994430102306806176730237362551782171340293613631618188976048012526267959496137323778192853692601459699520908685856911324621293148824778412554861083079062044157041818748506671695118479324214383800048095489897257528366635423769261365677604599993364241853502937171409331846900623868634294657011850391628667994411262802635457145206558571705490330244642578227714336080612128637817661329367407556918440303173864759635866300414745570478500908938975157481268962914298304948092552214898497014618065930248904397345925324334575581925479840699726102910954961363639787891691433191038957978420844563659995565455803739761948016741619495941259606439711162425165028073966013429961760658506088005175100178888967725529371368756625059320673675961837994971309396123336138181301285350377992541224986370779510732954190712525211487773138034442452241587660980320986941069476120470960904696557420304042651754199191551112285234500072148110147234171376750669602088421275761795657723753456361307867433774511242398895024520776940862063143449971582217321348625127945578594327349978588476698228968387810300224223227925824313520090591362458905195781923222229377018357776308958264095053301722890758351613070909812102381631075882580954459122073714051155147604537834815404901185912093188868862105506413956482798834673054256972409153853847037572603303697272715372570544046522085533004051480461188276895820495366571012584707980786961270153403915909170560492808740106455182659708264336917432113339249606818839135509941575718568769632510915491928384672246554932514730188134178220113953292581190765571093683461921542655171162514109900362015797596383113388449401986044371442988808433960528095919998264183304465893257712484379201908300537789982361018525246821325579875105552111519889326384273181127809883619143559907001195187327057917680324276776967959771159961387815526925191069707295100036003334912076503727967653853330399215363963749742979333640766867998264382087578980048533135576988869022711367609146502200409297037147515749200995232949209260559885769045681591194575941127869244382834128225282595177982924251427863289459055479218642737971007348664615137652924367805236726589882665541309258929543979414340897757964022928221446744845196650385400725673608603089368678425298076756973160970804823983343603459692636693026432992494727520735063784971143689727671702739949411700072774650943883022211206625696416877213485645344588438230674278882764582734530922927734920493142105509233783127999634597718995471725554359600641463469795894761058904035557592609766837094490138395684442220244551051843440978959041327321967351555008537890901462375092901880439354385308190116470652575753943338481552305009669323475241190680493955245557899704908187789638138551823847924310926598079621104975881771193097702729777698917123565783456964959703433529434081825211405503850239164005297574150498332934720927320200790032564858851606450315690888269766050394084180487011553463840565101405028217102024104236614553623451023120672263435754750268516478206125799522188304146788387089172422577969228981405203407458613247307445822205940994124885784232987958449053509640333624261970495006944165261164658199508933001672728819189486635588580211552736162667046890670275284791288022206455431469031267961033588034868803882040242413041941361056710713882084436025926842364407759655534827788938025631141552286212132634639030409991544006186954704758843750419359768384129114641437636943500993313498405976470674770013599075670323847683272059944197231510559346262296951219935191102777822000969127170706193244621198337779961600996164806195228237712446524690152691870637332287645511865615910459254349780213927986466271074031264604423417770304831708291170245182278012151383566877029409557981648287251716121082209747278280870677059532956292105681547777286594501169653019451222717368906079488334830522535629456724744878308952859164569194172518835301461397779169098362742622914909893906364332726417410328486210472462341798485628963878095839518886585381926267541179682347654563203013067393285593533009321003617408003443474192359782660510277238271447718608649793979771254531474954008833480454838087262960795256306587822284805231734139028643734832767647878223276501375094400866820374987857068728295992556289643250771091873574511064180687506275202055446443636594709806175984266557354799658512410268193272109557917307543730613136807069819338827741725431962771275416815226239362578715905164564260817051279766539934306510664523230623566691024573812118162668930033045719333715791700617760712909902946218367209267234069704437094047197294271115707785230897800550626658660108291660035851951757597273560680991404664509785589905593128571697423972485757658536542124908176182308281657272168744276397838750175162793580371394745639385303634597925191343227151007436386330831309733091306393293372801769662782225133941903257225440749598385605487341074879306817402130759943182880544741007844559744961482273538196077745924066177142902923775479579951458627877032433185541009718109031905028797711252709019830169178324219693174507060429336088634491191056869418869365303594945502067632036311113608959402912427307715043085525401004539725435810575755596036713424338632799350153483277566781873015431011937019832652672751631760010427128260109963001210206720177742940338214698098041804291515120522972181628049889790992448850642508975236574602416235937434886595579936999833832078912355242249798198922631388446661214305895605555397275910551566622614154416647528215816769149934159053537060473591235461252805715034428277538569387724282532824960123757896365126905391216444629851572085546244434443108300621692057753195740171008312664571682969224749325974085731152437081301856841703873698124871500364578927162711321581976464643808809389131318709386507756025408364369852501467786882621571471129607385992955967098235170017924990246265900987051885780163430788429754543234377178832250000498827159127003961830338391678517932731752638577138828304227194254459881320803706301117472266714589549874964681775339724222339798620352133284016318766495937245860419658144620418480464243275740966387393703596479448260165609749617790744536988330463743040751650826280754502656245578098473982381845163506285052259976555416852296702888856454397909106174006747362548884259521319822040475968153256161671708299632402395432453805299173050582619629815099340717544281724662479314215955680657396922484305463004646581915465972618407602236566272517734360448372744056296780495585512517240813224636092080890925349442857660963719515818382621576758016523699105908213864497870520954171117867343850265027645422169583582865856543923379731620544533788582214477835450869071991669910603102791439622649432222272399526272286358932289009154419654427148145443181094891346780855673220308470325046076522513248785278569405809988163769389827654132839368563201967554445187331327300986651091560150648043371260133384013281279969390613239509250943759934702493825444372604175090406867907051920676079300658722399827252967127910198894286916500046434724279341859856120201403622747755237319257857277921147718547711940876791077753730275495673890374361489375161282519913639753076336832279290171087669905747460024130947100646414210650071704638131759855788072184492999380111739260502848155787866126990601244798601315378365218767124038797820868651039467204787671989437925904512205902434368175981458175993148527568829146887712842338207343549394023445141816320774096295806532391442531620086754977977317027932664193652895639797539479247924010542770746421821163444904322571703421671765180680471812471825805571559006153174678910951901330142961875761319092587630197369076562850563627873827817860942185240888434420941370619623530375422353723015167136936206406747178334623095320278742043846798529128385081319735389327469324698447220852363741743406414351441382436924560632511225120916726824422174102091998371900866313063146337093660280101629053697862256105576618130656546775935128328767763857138809652495850544316312589022921899929297846292241807530801751590692246078134281960152365551839935932402613528144170747017491887878665924451360219782792375305943298994116085482815346880168415800326438156693293414444849261137845830717805288256565855542995696709299846302473246306736529887224975110156567256003781142838751563159752911616006828864437761896937758937820345659079364232326031693547823754125987870723531837428107296637254108168011232645160199390631388473147389308756420194609958291588580132313788394826350578950602185186102715530425442787220851646061065847040554205427194218456406350137133659352511174626956667507813651384707448911377937193720830749456842044608598415524565197150594979721716072981252672586514366686411323936805618755806641614119576692489915690299753137145666802710129994927496079999293690851989040811547240916122561512886159117381994533672914529621723660768449286913749036671218089809408862993021678546683180096261009588748751712415957881097966757785027520056511134090719511200011791701782458985084091953742895335736806452252719742556567269671921285162829553503277663317587155402298630793904403186464361408519826304505760288902590396441556452323001690393985528785660622947899927692372381629996437647265190133981996017095342909054435767978764504069573584734140458950023641881131976207164909749788899435589320634626253047466299189184231564888567955082298994983669377675157899443400634692589338723222700805633025950312284418254784893136221343666549864012775597096339468540835529240218794771347460160095510669499843567999838392508402494030187674942835674397334982976400023921812704468217752442157688969536972219425264374171332731769195169632914705419091122439521402075890091543745026116303416360795660827330863276756751229941245876666842150907376177267641286439767250206796738813067648125358831696317723458112193510283242661152849050027189816280676582585879395044482350805857900750897739184974780092003625172034987605370956758283573563559006819303709454242856930149121630122328929581119594114101854174030065392729851859188064931407522476561166926438167658775087041985523797588929380063842209873909455059970792450885859959041022318148815874935241635852983130830581294807753360031054015379255019684005498206536763895044827704228046531645536308801593742011868802088202001124117655377618249990578556681033382829071993317004296010836680179493757232874968198036542301432465102664500526824646174038152409685639092065269583446345196119672141687293736145234509649271997273935108383978544515585807865397293517568944527558393518427359906221326813053472051916673346752410773939675377317947737814153266580216514569659170674757979514546139654302629465813957199214397575152444445736077758775063246427237624093522400930855938281044647759797357679524238658356561017113050569838367843789822517259082846735214141713571310653862042270797492848679215378925911944700139882892250394122677411264602553811068898870031860867225436496531212403609274099797049478268586634802060341872257290330060296054601962956802835159299941315310700655604328942483283935580966549121688619503612934227089826923414354084450269032300922102418736197358887010279262170608546198885031971398215121643001844653884621904330869746412173155114657402623028176560019725163979920414412582252744923567912183735986338287283780561418496139281707077891721081758274602203068464050364837470769381676671518486428977212500459499916726762858558917190733612052058400730255329446965360641699559859963052474800149608389104562832035120837738860108794223339911034720865584075705290354974948888828599375438801507757179157042064062062965107117673191250683562010071699555193270470460906150720938993927186325074117017332356283630473897905383588286696919479196643475280491574473026086660525030287587582534926828512037027231951030616973693891075230284235357775925032424820762642451155754477580003624283947881525425809160809177167212253020068822397657096960141114514727729600188751049477742734477431515169879491981452843617077694729575353274269556015862170620119881011238586508818012064146924374684559104883115500669672453052837111535550982345084943424913039518928629504715411254505980831124617555309934173769386446125399136983388064536152757040555663743465673849582417639243065767131414185031185787217848736310897354687416627831869286760237404780138357542786425350600973508680381617824424894938383203741495243289769887179870219902889167353254547542325717871586212151264941325352505155593401351452987072448685350805908825249084117902529820558113569815028826812010682963644163696141560748188033778252095503242411732924216087837308939077281165134757551141950320167563774159372321833111352275332623384704496973174636436978159138954249554021068940413754853299151058231245115205711136376857923389680074771782298085118198832946266670692636109419173026760451979478499846851641696009280013851801373335242476459808769788363551235824489645088159251555204823506879692336059177371127977526208796203498465470050116764703759172442863535646521464182118048474875315662972202924896537764691935610508991805214139824342081178434169550698260518698844042395739238260947443692961883522850067962576073102048490125258147244626044188168815508260809577999719093868087586878513730590354963341989843861802295050373258694720849803682889825554236515805869854519168426947394114840372685132228721105178175612487879548669275296884149851429355282825434858600336341079411838275505121327594518086829055264486327827408472806080277311092035752722714359762315428982454608820852457572044966232832412546630808311228358125947080120739391077405067622195119171497777886385012456405447219415375265546030115770112186493255077224298582380141372584314924676690456590966599269492848150811152946454387359461993131206952486238040272875181707503337467241917562691804017337212340721415562920746459724199584480726741695915290766477582402097620875388325152522896009103587730462454505258816788608748229388143396625241128913132304427265696415475578742392122729165732600458574601666311379135320258487311853259170251924865976317608866101451543935302461497065268357895563844372072294311468720528959787729303071485137823400717420507795329400082907407122426671930336295158325546014526074634902802436270278738219285790276143781573922227154145324961620701095306646617311484231115689236582631231068081491570595648689756943323230307178068423479363988942079796461736622516117294536912756569975059370172456621454195127214500103125472950004750993863726557563414495111147420587708013344069445410063951077689590683012011321266113780451470353365684468785658903340169776198922665905776588977933615263477032497894709777630455544854722940772353421576155267723383182833463234490980768194197095630321408134132689551662234579449293821726759971752720134122058257602328014364694370419059989109946156719298502885141889225296218773490313282787720644493154465765932195094104546120499406893251863397187258258527298468403073267602627064872492976496350149707381912138558167897713486704575928091880117670610206963980546641549173832709509609243281443417916090382824540335522521347160158729023969798393001699700710026608658397745233664172161776991052731000267196042694255963053725114130594797696184200869313479214525553597078154076413076766265741678295422285647697178966348222301570362237070678624933427836598961233304702083218869598152124348204832950903178291711196819537550983485729667465283562555748691787548662596910767124432991451509453721754940374440780923372539155051728762981995362098106619007429391518237989968638546055296147688723648480269179814755537887633991908568856154913749714120632903848002051747806689944252301276663098087565317083607213200640222426842461101955934478678067986603534077835172325523048614392875783069724685999379480034418816528245738875209244659710543852000195302745021385599861946578127196838570001732074224792558279147836312353761595240273934414737309142167180412033377955517001677743465781878050028082103355050780137682169094022540999993257000546936766131364108380037065420991760509962660860691054235729708991378385093655728741784789973198720180965092789917189564711742100378268779394090293863092513496163875841807257100856817938959971301220389483311622525081847002417496449797872259598689501894275223282247664536573893368303992284472270696592989250716631414298120851284424644011135183183040212553917258031214618707761702555926164029796244016958407979278369211572436733624851246783678449165782777258874185980808245962148896427429948983962024774572110167684021931795035686183407617615253255082813793496558115926078593693417515633411849992344672877632745612724244305589385317090590262487142919387164369405120530562949022573713083104433473797805314263486738000183160922157030769041677283938307987688518096557409589783906251998574559262104787693973339128145341870039798987715149708060225843316829201094608416756503991162481194799262393079011289201700193833793880982027016305564550840753104871093486315265673309156421221830571442228768808698887979232162559131849801710768029021888560274822522780552941754480501088040214303454332946193520079828955249985814652745070228645509249208038467177243451879163082160869900895936355455238205531619579340775106448072275812869083132850080546646404913848407836024007782397218808186489617343148225085733414716288601090006374154084486520649042596875905205110409706883434654030062885145414485977632937794087467626231561523087518438291339850686210162758763724013667494402638247284803148851003980989707517553014801092571022787904032183852502007043333870581340801217910168143945311857469691008756187684239222463061144034530542001926981503704830793426499422894879274609569971243200141257097703333771713947775718716992902309898453988413107141628735006575193766587114998344544214119672169169929772652155677507992604078723800139042641138876972883896473037806917043546155975566647076812958224487377634679056984100035324046446935203493578550556197972411852564563509096957215937145764672877431076890713275011682266439677105262998427255961883145343286217926011881810534918780320177946710017233789500733598027014270681948413911953760061166618182301218914842889853081265235196245471056214412452387313486878781062937702796753665614394874465744186683827242651567776759576521344568619309797444558861809926019456022147656967496987846012588641740990300850406677563608529166835905605632391103844812104543131324317388887885776125135111835813879806709991937033030242813035748505762813529541430040387467580234604375077236308566463914858322769475315660774693721014058448722031092519316627340472918933267456946763764670500752619366314437729711458915284544732371780424523832030363026171395631786209928617614992377583952193760682318282774893501293606183746303909462477759401609426023175638445267813651409916172370916660919469491848905736685558820180759425413466348745845529919169406197163989644308345033728959293737691363466675105282221319808047554325009652458753102937126013141383086013752054471074221011344763415067100987770306576310556116996312088989232611644905791233446247124707756113132108951015071181793607855810821713927959579546562167294488682299193330800616660297026807464610640079600005608171364788808073054099316245932279530071782623477128249064303973674262099211706605678433471015820437117033868468250843627287803069222317281324386661995183985210647981371012558144765553022728656461803701943480418054618556396722215293799060879506221729381712962870802564182001942869370340968418482576600675172800618558056246778839136457921319204382188082742170542674872633061447196404876985527154941652702858701864426881531033112097425207815522579732166809127386888203237500558313065698573497898190849986697784763235950186583083203451788025530676836135690818401299067661637802539769266237103425467064504871924978862412280189928744888129426010641238631484222702744748931842222549767099388829419496494085861240739175591320235221111607877363952359343166025139251873347633162007702348806193447363244227989874540908358018419706543813819843705057537135320787939643218544729680443490460107504402300159558733899080070480006922741229414196325711244357817475935166840997469779697003525981504285265269199167203866383742394732292850495573004517092641431491735116343699342921135042286133912408554270965796550749379245608040660160108867308511068411240021956779571147579619476976798724533774774085934278235766758658941382787535528898863850272296933704018755699484198988221478282247551044431660873073581373645505533751826463300238126419721661694369854239558063563405688584371291971478693081997242964911936585198606922660594152795124406835807855536570558063952011507131904392838746050639569313663962854460792729676747841161039402887230342081680480547483424499722197837021085221950987696871188014686767568529398037428432152277693191905876733743249408347048983109955727595089802827396389244877738377276597509448344164492699026132898935872950309292083660606205001102127637411794529819352458485650496145957449173294491965948717128821148039322961861069015211384200375326073488169449392897045107663212130681181608286173853870467352746465064973722990021432661626711074361907761499418747237229586737469673659515488525110496542573344063100578251325123089200431420297414624304919162535142794668676595419976166743440342658892716314352296932159210230552332472708577749735785868472119208332239439645115754362068800853552917409452914961918748339426834698797281447787479029016468153960120959510089588439373532089739439108553388124767836492631920615987658574623031534558672345112848928284841974652173491493316881620312195004678877018717818339716885969993547537289948701742824129721497973648995890394839706346691071597237986609473069537744459785951589834705151553286464255902407162649561534503438815532778868121933405888175935012528556850980194121979436410207527985335488037354705210969746745181256876221492407583539128431330005980529479737361537847358371756457068289370498944651892902794292393863881821248734039630837501145524544063163326628524075888779469856805682696966159031088295289189927764704655764958072038057734637595751121974233079575024056853405582311858964931322645254948856081489002200549078646742234583860514860774527214168974579443273927457918831576446152463428508431538983310132720060506794083537678320448596722310353448965712534757266981676731826309779956073724902338671097255920973071225369896269518298287992310621046208140881012543743708671204717654825176437615335007836000095847449252160478755646152443541319316182420649596065820393908647821560443186748835173316262827218687774455154589850931939118537447486687951645761381945939156710990142396709820087267341882008953567164261437225059124150048667318429088542668143937198961358260237870931260616275731921842394180919069557792448023233539196969264238925527139890031069223343229552467314304684261549292148738676012424857642124540079274857480141801648512496564696978037642024061400240728841621667599066799521435750822545001026680260906790574277091259979741745797829290998986597200654313895273649611738199905484644816984114943241429888658202596679542097755798678943347572099130053609662431952796688759413611156212657419888554103581410672806501932036052908931736647964928176145078467170225658991188902450736954548309068530744100631089378695079012871992892884717660639071451105924660376020273551239013816669737819552815458019987410979413832582445715684311224410161158713068103741632450691932449478786845239822612553105024013362525955869206353449404285816243421271417377679519203176594727301546738790276221752417167790384131424152572773227969188505948773329220722949823043791736020361228613259844144420260751995959350523503908276992100326247666282401015238353869425626517269859577450126458106681985920685121579359984755983558826289115829578820517287087760216150398489204300032348489869744994765386832317746894200745957595520430789464124106519185318262455887089065617856073694950804859088785357464277879844670749630247600958633694939532676903673977934406864910262525475377249952732875350365145108170180635599512808268606164432820931362950007095910075525171187734550771549407889345602746103586264332075704008765805811161471462247746859638065150941376327075898145695786750689105232000974979180595312707952973395016362131594492111215776164658307406418782056631421109706250886901823559577307325296213992855801711162749939687850247167370817418892718607868489139279019616600985986952603996167436666360372502426247941880933283934874217734216795096269363080862633964030027871497461113544480016869672169835446842899039703038087353765243322371308272832039000387193007081805434067810314420382733359700810087716797763622618073608924499417548839520541548931112192700439332397678423707604577273526824662188897422079929522807316075879235097844256514549716332630194184382379533804174827249567621906590467365466395397004287680692342048870206339412114811892508176071421123989585363369797376261653855151632637962389441533422477253722919708119894748575735091386665028265266098182948017510848366552689164233903818388109382244411004595002125912812359477362359899690845698749136877381888293178594117823704608965459354988472630986454229101192268032419621144275856503512142269123785631958416234574312208495899637910055989449255207923578008790927031029167728335417239833301026597088748509252904751504666666388544264390347847059451900040127464861664004278103108455829554196360727148903981970137397647068472058826193678957998447713131373391801330489236687634475443222242299631189465630713895282897737576218843017543873332695764027386552061722459077142108319200329605014533115920445277272876721469963555471511325263138375050697478337595302033581384811679274089047550689695516726976128307518758640720113919227427834688613543037161448308523097212397235776770586628743110339923800150434171819896823577505971332984249001872872632955092238808311718787322464073646507082011879890076889768439811202234500327049292071132144516786728795942578275105693263439294136522287382803367599977250293938212369973527854997310881275671984013004986113502540889790276392637986113561485338732720592792416485228795342787617392155760474669556246614000907944871257559267996487501017153764382099991435734794627138553896438715571450061804247557126811640642510849649583572925853120753485492170719894151408055121773001120254428744705348828453550509605585458376739828294536993992316116544195685506159990489011540798121471133608741161477920739833902024449888444582324335132846664079601577958455306586852536458623008742296236146702264495410314948453735242220945653721671975264701739668225653384644293226451695687679982893557773225570957509727842707016841037277214504264079442935648630708023996547283229136013363707322502070420756188982435265864825600459527974925201839505204040233233592793086654880083527862912234323489471948722961445345605815335912690798033384077356887024588275519138286386652686125718416494517409481750806540275776835286382346698425735051244298339702024429947041273677180356384227006745393990671114260960973896226330992446994767806986406159087603047335526424685571671709381025883775806049819952209229531334203395947926928013108106390101601981387011922713123459932514930636434747942908484659894737384799737525231013995352198816592622383993103980483486123118134646884821950956770939381664968756490609313643651461412969719606051306415567476404739631439104854798913852467180831494003113314869536277413174976092132803444236355094778502369542850613440485745643995472002777285247006489470827122905609057733160942301324876561891235996538860471867726429427737680582772198372324928755624893533463312896179988028394221685132529472420462533230143948412418526244569236471916406325027048303592914806349422410154132914248066083329549758453784805613421653809901811478514896754423606324614783304676632348764708775106679345405403194548950620834471662441267405316445369632550114387555168206112407637797939675922013203218659087637006247974741863667485760679607416632666977739903727903131033220848596637350307288840885223339651231079019585838702618139494056219629453431408147317127714105161513183899265989154678873096773418592872491210787330557065325470885064339189573223631507875045137387160231458864631598917252595321135076498755945043867071288762720937299919996109239455301105813167142443513699165722886382171657110492182717489705178582656676021968563539012246205705898226873547509024588765655273080055866097210453087779743333192885358538940710627358340711942953395798433832037699375447644268608470577391748110069332835108268148383568565840184646378266705731083714189147738698652954750281421661217519818149209929688375385379733270842542310391801605072358146800566537790101119891039385379139454402839106668903639882760063111520344550327002572394806562459422598599988461043390745306745195473486986472884181034874457170334689645132292515994685599130585747444540252355925043893901905983238532305733159809536997043507897177980200965440677267673158570410701018775919806740563917435814335059346866019389672357150554758548258059553341295549867891042717258583319916756696122179765504420094895020286521131062158181127383529492291405571571757146838051577626488048287082558030332091802832573859323961459199102465586791210009845196546513262305633466523621380818877257749132649344092011250071307332776476110363148644804965945791389625638621087678798223088858524068618343985264104601034913883425195491016539478592235238561967166380742818315832672869802678246224885005817025727844102602956710098943977326622764947660298966906993735320037312202046936245932428558088058335898665978539940954756012082429060204173876555067293476546155311738080708564523479231354211319465950817712420831507129820219470614358476609667457640083149778950995710925936882194189870983411493955034760091675952748816323728416169517716864490995125076497739682424322923503845998961287553602668249155969837213839354921773519423297299328158117737807234868477517299294663617229164118569480771441029427249472315514617193018001093975465708329242034509737789212093835670675554045433784228081259411022885215640404131068549617017754952177999668260194856657483173482309216741439247300017580618855422846226820046727772091785314777836667392767253357079907111821511592267528676425097412688365757396503895361277994673538577161199741662669408009018207460459349556384753331443822638220793898821036289006351289286329329397672729106163302555074788806623754662581821684263143222934736129588069358935061094501581165745866039238089195499154052096390509732042479530454362883738455944146615728553027590607414648588209187889834107499893643086408280726416501511063045877968233560166117552801206369777262402242586908733942421841171911209558586121465386719195757453547874695326323095322576911114555105265407155113209719268098112497727536430025297598825695861072029313882998960609071294272947729450525611598697321251756918622052716824769782817071201353447413534869850781393514836706639891552828564911273802431340580658667726823689380335648426341422267674177169474509437470936900297344264202911427715546595955692854678994334590613469899007649898380538836828515148609499630101137922481068261368711690334829682694843934819120659756704779623939774301606461556449333900854585397700795227893809121848219550269226368233905399127050326300126852838311481040692671019628559924153848636393812104033505072949501054890506570656364886687957998446204360372946659255157554593575820669979871849953340799658385665616089934052329412067047804653928030220057491030679629277466158886130584222977980349616103877700928622390784928523973710620921176621833494581261898116729201592394985536983339601403466345006502448434046681952114117259426588813167535621306758914111371164572225877481959026476847343450261546574130642987982728502888907745009577880263284577549686297303130222011390475118324222569917110503789556457772328985953753619681168833728208807012681760565861391579600688873354258176401080508155046154565800085869679742723772698449625747301170324024542194324526653072120332288939984775075663828891298250253726589528864175778049357141142547705552273644858226084495191518268449869658541830409556506889414200026396243303286505903810831112744228883350048111231171270333366819202610204223764007990253557863744941733984564369322056613739080107190406852104950011854848632184973512320527430512591444747366887889120754786353859830605242908651103431978879321016783188146659391289461616737462758008885099364709519787248992614023335615593819241054724521510449991891198316350222794587503308517938576961443800053787518105334509691324478941226328150327459965304477616924860863797096370516334867753598342958016367685428822084541032555729913676528949268308022593388466201213882187622761198516057985584656168373693592924441052704509019460985500302100027227829591520727411323730393299438752850121645937352010805900473660853366816793355633846984714182514865517775029242303286879501668536085740600041063064917032791234812210408772703064286163604619503035375386504272029738043478806857513981084903054094091923665327344927535654243683288805847199019651130699996273248722810504395270391320209385579679060261452254268104574178497585297904692532916054160977779868543821068443551865898837599541521262249610697059284256006278481982629166506937457798585545321403825808551197882384733794489617328804431292806304802066245263679230947799948925798543662661330755081684666089724663243928312688774448073143270890900056269142645870748657084972095265699891061332541295981424136149381202128663319091118331301314267102398638618044642024939514484705913858342344928928262657768751988673482660372782247808918140140074174834313233417399448161464733109176824191722669462546443037999313108604075019532382764776732175923543928679891106793000008944663966000702944244227110432411529659466041905193209340249078549948121540468287999139368369613736515255396403158845148542999170334311229083826219958843400698030624755058540133509753070872098845519298357528201065010551956944232944140496464759216480142608076254836199152856257832429923047873330962587990592592952811146119506173278496896103508692076188759509935620779702950720102487061570108804286669854488301868345421063426914699726310526294327937588258573400565459079689797073612428744013325513899113199604806427399210524192423192855554618386954879108964327998005609711341674988338798161956474329802790769269940414030620856190618386453566830734013145866800371924078989491150924473474348016008600955414861956935564566300658625342061483493259606451998008620753357270467019512815160388648140108336953659027890047706197261752213703671221222427080175600219446206693256317022936358817337632682648832201241967046691341362536080286743023767085158492146106888156518902581510328344922072353353733153806095554964205530110487947943786404593210687327370818271254948391190716236128599536247527919587904195421175891714320231893081003831103399324417157841290850142782319508855150046110231912422709805363918355430700343751760665389581812262989613688781073299453636666991803485894157458860524962363076423621688633819907048347018544964718168675334226000994876659264189456572965306518864274769295042299479946204780000048761342497916638563812194659500509175360405816888603977910880801843616836078955712753927575380475352560023626066093775533400913214172172525744796706751820173452028701610620816204475451028516030879032605144159624221639416101440029702443232081615125905223882473840405288675982759792885490617497575548083940253803593512099953461107194660324671829447754898899705382747483218644986921880880202580008716505090748661891576960760579315658182834393970318657394424300152140263047260845620776813594238924177141832096161346507984495441512753030676582250375457098198433100558155054715054833825142831952033436103610552056936342605387318295420638412472640216406506019365591846195983062987585924010513033433879074848880595861227160170791222181037215317876794944969620814633249448530116558387689084671881443059041954175774025381229454779099279581959057399568236258556468571501805045643728873400763510244074754881481875141777168817295073601221465996146192134389045102324376570176496230894844842877493830105011838140639652364731613961549305761047136615055431122094510093136545429845633665131921946980332453468950728709936239356448607966297613139204906134465082399922693443751321986307984555666275490184544427461917013777013303510818306995241019379370861701323100858734774801018405277465685738047574112646924625222401908444349949037252442065214991488873105828302531905680498898672806396306797436789608577127994374848013359104032447527488719119145441963756158890959117305756141126618452122098164417101820696656990719227638617097359278094350229951590118767748289756040921085344694089883335898739527212015136677103126025132107002478495691221126672849238037461214086500182010888673236963648427871439714080171874863552322121934773355809350444462881140608529116165743195494716913934993796799189710867772430504258591263808407472549843253047437587879976644441171223649064476230466585955076563977576400859744711415480406467689386946605740243502172849673999952880455676794667343100404841120135683975064266059971173873934929456443319091866957546063684248029359577637242352595999251577007448721249710467506925283393374273996688677413942290995912409240481692337409876797142594668963898589032658157655484623053934693671039587915983780592133506458433002188114786653861171230620372633219260700260081730247370824936922039911428122528115538926733524704435042720638220354579709548748644450756427064881124770271706160196544380589821089805222381287240554998538821447213911665236486204110931304235623169245913337469475348670064905887930637577369945818444373285906244718217861844763087977917660610603415659323765331898051976963278735077147893512795276681292886895569678262796466167574230835253362629084142022840938932307455906496217996430775447360133144799421103835784440459295497573813178654974780772620466866688872113535293501754998298074121274291606721191212526434064404832332258034468927658740778528199887827323891379285920905233355690162687250779459626058649191195547405678918991759167608478244864068357305094689101389193939098847687178681881108910543411359236870426532172800181341520386101127496342264034064281037729393564765151927557076254287265442964799088221388781094985955006230355148965272392810644998810869447236427544257713984928035723657421750440255716664962003736855486223085905600356490359523723851572002186890232305934940914645888542777186106349907157446710544535531499403654693495471446405104859161823166109194949274121135224801649849081801266160062163559179657498903984958878227869874918269286323249850164920742142134953277145301315351587506291929166636033771201024844648749347573201192424455742346470106843463094600039333178022500278346008271889944144655217279614472607072597980421512302581707632832713570118030165751370691629457410800275796564676403809518647129300673084332327780689864605169789671191189270205252399467448914218334144829494004678681599875544408903842422462618400923163157285060936417333719547777395448695839441071650825703965201805970881410453186293010295640900261668181863210602097703511024574076212931982364341528983450433526099216153374957273937865845152939819026157610256760154897509936643532318762325433202310781323391958082128915492902106870381407597855613882145832353948800761791426142975856973118957050858133772343342725602510624933837142440168926944650836089921678082502656134210833141796104329409403970331106846304131522614178056710442830619902745959012892525297047727681932742655852393913727734090376257523272754463849199408039787568076962348207049353834137122339563289544595307458521742947075037701154782752614017755200368063724905504434260106655160051952375793559418064736390298258765366633330022890525140639852765585692906223399668741370065465397889011391826645328720949916061328928464660971343051716552867039645587566738062339641008929564328463168625139498259742885931517656383557521903950125350788105105466352175338705534656837675767464875702601076533893159099726492539055287766799063272087176562104479742269199181482601809974396217423020785311065658780492736687164884059795484446316052264546620293562691180401985473052580971152575270318053666774061937298192313871446158694379759049548605507986655586927308821755437888948920540852599613241067304293328910049157209152804236601141278406055792933357728599772874991677345338810338133468645229004018294651438747262526501448962649141197403476061918604924082543379027860062481256314075965034064244934158605958087195207463943484497497352321367482355707769209657574968632690315364457967237196776624783185864632502838530500003593366714613514230950872213524994738344551718085597906910139210843430276605906555796260947008835102512513279517683475850017801498981548629207685597917897308198051431733180373078548167154873235870251682985722748366357086447602166822963405736108171990358389702602458055658299629710189667583025230674014847740458113616567456316759551901551030397581066990536593012636962412593579859645892214026438132566468006087455307995915564512507307444121352809946721712658258555245590154836514097424260015020712634197805390344194930147171917706162715578250071437868558550180556733756634694929830131864446330535436932912223481309995046289439532926823542441407567600445618804616530469786782446633018895756992351309529423345786239896076849699312016050082605732162958062346615197626777286539161386396888295421955342509600264813895373022907746016103839076190902140046453399758527553400524388874245216252565762442475249499825543341666112483942912432787936195033894294648892619408216606197304004705339413214460495669227109389770958615857187959476611091742701297158693444456710793051618373012542876427720564825729118979741963695435787202277572815436325864835057343923654983075982983549523845588763965333815554642826714648651611462690000186537598267556052981214790618793800649451535526331987109268052077452503045523641242654300532800880995702063750405751896766046107866169669457231300654196661855877025975727366295721536336531796122643719572813226541687055910688015227261728103528957147169328173238504551816467442780714553815774858075003718644097149267207341546799638097485229708595059146603330144661170652452394741157478793806343190898787857207493174667536687361192977373049220355570429260462748143483955168748052631292257629799673790436370164776568905112036276613623594124170689841610910233648657916316605063784733109937886158821213034694528491956724618761942859091433325122683757307171068764669811087039349922623145394473838887538001225059829021179597765076046270846768254608660922279359531899895463989199301496089692925184155849483033343032103849907181600385714809249501289352972194600595157778167066147270583123136872404498398204848012429587583116147765563778626389669414204637025181538431794563612836716614996092570224771890221623670543971483699679111122076053124071879375518681889796233116109716040998450437128277623957917614935642272788645705956051819566164446739933312671234502260684953485089189306358161578729055066239095461035592982071874428019613967034175662562384961684782862414352433260732175260428519894930357034840746277842362528434725556332800953330299266136304874228836689127247150825032487339342020230708356023551864759571064264549497787386826110223161472699549731502617759210073821092184177286153721474767673206334871099872021996477804742862214814114038325314859445544543583755330362217547845990771381456664724725467143521208305607260152813997556675883169682408301887768251116284846293892389095204753346524302181528848471451275999686551421263384172045405701512363823538430274238737226030868112261103462594181227946694366918958051448037131062856014229225281751643030448812937631565267766307594477605624906769595186049149160557087383770237933751661992823539722032999472871545556028941584563217828240303675219812321939162576613147011590377389178714404797630143901848071609401452698264207594005683082870350777272280801899857328005076895669992154260855644721280356408480837204115060528840440545072298272195671378125277638681815403075090262331115342700664575203074953030241701889680630484413501516630451697021576124354416241274956018323713020283596202752470509894932579422200449561303759761318509138292402133971627778993638235922729447611464532232865022960625992311736166269581029905568170263098190030056101874113649356932279929749705254436781128281455459073125765582163710588758709803052218363821916130496279301814853338361793522562384556609078694067625759679608720050722667314784068888043146834589821740300530744055063077869342323293014643421150360121615965154399026213707284369222651849755633346286623969460866769854361666096344233700795604362226942427878927894615382746483738062776033735143602700976481680684232596535910193503642405818045015723187285436077484438343266511158470070060466880621306910933053022477476380861555348823190570078018061941440373629668827953655819356494093426574757081510141543932947181361239665523331746779273561149318616702270031228535197070997502424654528175449032928902816191493857014220063463904017965676545186816431830139236717092520082694280031465810598777765606808091184076332036806148754445329649466273900756330164052261262540500101296094547461636229186807371662667232798945767113219133765213699454155789802979279389870160159249840126825948753985802692377892722720752347311545266002561176709367779999980703097708800290262721412956996515402254792738174716684705401015020484099953917045381286848885061352705685640548151645301584777240642016687205250015294252935665110250066806092494312327885391135929240009782678553757382390472750114823664705124078567613344992809064052282304272352697375688655667645527195329428494803970836508115552731729447018720310036255262457234320990988039125305088783063136967559547799567568655585744144401824268747303464058738729127257614352820243606607847898404193807348520161030252341558426921257896933043584761900250155388638397813508308347624952588976973255427349799355007950028432673063403360070007651287635433786866206113410671942152451076931923158231547157744712994022230289347620233363264784747896110220613396426710371942980171120597595971466269406447242198176372341831025363337966066778540745595723838957627317029155927797492666487029893904433733274771440069199946777409245461471120244074695231509401704386177421806064819302662384162207996164973922092730936721029007697845630469754730562980859325774970392829791853404567514073565625472753065692849436981847449363288485758631657012549888967858284542689582187643123034524617312450908684949612263995382163200280595780569983516965014532786238938128209780430175563663686544515611207262219806901718742568241391073247435104480705813818372110250318777709508035027877879831577591052930518419713269730278907635129949939691741616733610717544038600679343277725790497315899107222549044628383076424399935569317446890319582591462434651317285937320734258386369884477974134427287765280560418889487856508014238762062401020303826673878232157607789064120754152752248056062439663124976077028700963277729538586120784893704525249484814066340325273350831833003297772893091253517625643384033124041724400180566415988169106348269529101160191622000572098501585006903567914204509741895133192075165105422276898175982022134049963598169811461868632546437999631518928892408703672816061915104596314634646141571428562355726398040610622835988680449732549394397298669541751755823758005947674027987258050046697045381535920251672524971553420278921482882544800339632937884709857260667713319182567312397568943611181286703537493893475795765200335743207874355391198240488433713207164519971339233633490455521750178687826941005494734560361519247498481145148184132248752161559086377552867437648770824130136027976923584387564416814154770389062570539834973610951198720651001173847886404747041779266522889533418553822524400922228976197947985831206028808897307469837733627821998813127052451019760450167365861045193324548509904914578534464482898363719061262940578266674480443585119692072253063079212419622258618076937523597312662604141322230860434492375783076800445653820900614045263200610173061499664153758254247076400808317837999088315916089761273952383878003446922432702305026868228806243367016680714505145227528245082398595234321691916879243141838167020551831120645798614756405113768799758717533865832710508537961271185231405127308527601778757218159683311512626302797124563242877742685194733758064757317471040098206590579291528915794152382736806571906531026602219011005863029729700970536286302604455390587421611204015411106842581002663209787808514262548470431672787650214279347228379795535019660858327968459938450090076722915885386457094136258354632411023822733893717569187610608695083697717259141826088058532843628963362399039115366990555163271257739378973518539243472866554697829554261261045542462043739327875596444548363121679213705592645528883094342625495147904480610950797240767655480530992871780849987360595373731584247984123405745051076216193017565156436261466099386224495395718805471346077758948280049044821861652163940323314080043932155432940743828967808315501660248179632860234769462937770284242913327082943041821492728405693290911731394218616687620776890934835926716547070329964126842831722829465222699676809873902464787400651134536983507842886012775527442489498415686095627664946773664143252299221981144079021041898481581293584279086098715838766596035770960828286985858127148359798864836836623713424031710885285294831131467112096202762203981846172866092960934160412702508170596562805370305576554215250172206648201399589656301133293263610182281970432114024844327457510662621265738037812153085107906010642087861431956227253704076745505984535780864550154389762553142559074264227968355771915255986857041518824173294601267084745803842174488144989036243612101319860289644217120637857035531702965171134495842809539412055384851483684038088684537520426517495500157575386885824087662642778301232253525998865523197642693547629480736508189312349785569487537060378145665675798712294100565701860015566302654232886398874816751946121921212218069589909487856232433869944718077564392003092934018161652602081274601867179719275889568804673656652649578293151580868092896028633622847208699274506436878537595182386627021454484659460041678961431731408741422166952378402721983026833268210528146359463693840355460027789815341991899679695827458338544762069505557833179764109675799944218268801870395003942157183959084453821936554087123852977794323667736853495789698246227254557047874844387788069052456507357172158804745935561455213478311930714915086677300875815542293496196268458396287110223073592211251538968885306007803216714472669887530832341246544175192104085795571302821660955770993014383375379429226712981699520800428710124923007809802266578631002591237607978150243931278989508662697866073242568034289217144445818147948611767851547897999365313867488594274710716685566339399107156101946890600841072205376231222132887986577938791161992921268890208552401079735410545995180563517050584463211483493639101196499969385709618620163375093920947644525128481545079994694330597012764080853222768426754967357528580011184129024587027879398842248215901218821147001014939659900879306996739765454006684828904867390815752583082151349149744821372550308306781585263100945396104814440901863304702580299696210860840900880951512335768200544121412427827127342315800417136910581614398955042034024178089869937359220556775196094932244730592834125690076828240033766905445134881756748048630562707295273078131957620409744273380841008863308482206317539333719058886477773616553247711117656368531209015097080625030659685276532480836965147875130274113365537936193443496425970217789036416579077026608493711458623780134178676809965563112138466784790135379446980275297916207125758048799986195024594692162448068789213838240582808116044833270586340810316603559810201885160042432933543593040974662670535550743281523486303086660859033782611336226352455947937966733190848316027271323870947634431957342443023762201115690686667843267719669868814155293640832666069504477964030455948315266846824955745269663160541134099988264572854005626032558155676867729736297772604669619848578174240953020050186661085380620284774583287453423682518452376702261619302808160627704381401519307140149431947131114919729495052476004806049900020077221682624097613582909443819045274506865712868159804731161822802810355298965282933560564490729527890653423442682183191560046882475694619639353282991664373343317557274584570087682886780150382613654323036007876850071034222715254096328894503470281670380900340438812267926500712389737408507198761430025682075300104176752283403635344762405982341839473594524528634114491012545707454445990985427812608893343906506576405435773695469287277532277134809658098381272025445729035008429874531289773412294033512982904069459350328803263949546825398972400941125905323626295229009899955256189093310607383871239527013236685173831458853491611208174580208027509486124694952305765022764991237489679902900111534711003127081403985532398345322923487649283956191267349217043068493808352827272339044808787281215014104563785266019634985190341278934923404247083896603537658772055242207718671415632089144585601485931438772159887263734038143025511465902023750025967501446591514921423706168774300585021013607166452834698921976493258858543247463222946220764008645718394647915639721580871195065331288247731772820228140696774701441719001211248859010130819227989585477251354249074824849243048736427202155928134232803548604744828717741013358181619741344527899913555477143568095848493416554956350345097203145199398407350387411681392012107861681076451424456067091486693900509605032113423267926784018208917547942929264392793352275113895379107822955826304778723136136526370247969667541879187147801551407404334623611453135049147238799833482207028335134471824963129469819897548080239903862234804243645272909331103507520627639708850006622463655445682123565287686169536393385268336495563192782293908305527820647135026611111795757102475352170546676738867632450249397237283763736958690853070318942377735782457049304155667391349199012518146493775787679886542481591755285129447973121434514185043230774391292823215547795783979423603679785628787993799520467532261054599008841834036735154571863269364958751570171011103862771001176445209023359839390322535812906540199141654964563498987721289343325648313947081868042421662091345212725221366744154351309706661593819846063432961843755032081340967031082078339360800171722626554568174311252069953865520401554805327562677759353216837710458243102361693521341842527685347895847393920078430331095772412189383148872271724025309944376571109881353540434315870101751545358016977563068466375704766889113227996319517389826553667136466996163860019870843073480485562225857755136290728076518687298911796658245847648441559251616405668907516333388396452325587313491892050267056447842039310059698771971837201628674251479353254193644456990189398069895119227367836712521865467099933139482614249102876309685102647416075730389524873803925031618530538839853680943006177989583606052107715289398334762407733924132780552466120381963089343023702693897679718841999686242761455978820242122811934415573495034147272209481905263305291201135817474137271192479783914028571016837034736745452799722618605337081616322886939501434681984508288772067664928521281902529114503863883008685036173127795117806844518451996107396727620260271554845540990212781857929016849865137890715859946281968672218103356550294394115678182969904381002757755737884314118650433545286801566473277055322051959283146761385883656595794078661819587994826685638368574779991825358067819942461515781630488565903811194882286379385214541661944019031456720805053249403144722853739554487545366716368090911792637719220947803237210459300014205013576850340014097196489228028912489712788704322243657654035684306653289457314483172193414708756923703704072301757138051519169069697896218712457184094871556110433995563273181255285757613336189435991412217799232111028638095733021882782772317575087665291654682056402857802172187224276139719354259449955702480499888739861737099541178729740917662824061093997273706917208957775121362114571938567104407827042231314855963400239639797253145869771222924105324018135500128594994983309036694638333316018337094286010410295474243125285770594142048157657998801047361770032245548583064166314758173411932319565493740001581945885402493661214554992006505411043110206698222614588404846855444739388356203562953695510430219105564503640167433722611737848484980746918539856271873247343617860005379733422760571206003051501218217462213201425245508195355918380927158912996105172745822528696119392740376964963523767560127081299178447011143811509497250127470978306930452656948377303920185368423779078467438925572863465174365697125405646513762908481155715382767248467438784819085162180595311364677844574118977698256312143910725325862880269374862125595672845334269168179178688923072854130929770691867425008214050404598738991955714556286482676092515517681698199688895267950954770127513678567249894893736626833087102658161036390401698949367342480974989047469695758171962195473326458991441915165430151653797172671977458006609376263866815615961622176450390758515613371324212701030000467396764024486425305127049518923785787619434708008710730280883145502462350324026350104597952296613804117033470933686248275955600053568298301612981381924039411151997651066550547421696935421240567201576960198402840087848322486401692625494728964688151824585576112869343637668371101781027862186298411262632408487844227924818533466345601280040548883080340625631321043116545071084109942192826833520155396608777726747980707757596112544603420171635664452530375828900068975376703900291704220877606332490119479360188976889901514417623067779231902597256590647772807515731398380833497408236528486742597808648813132811841546597898386492700375257355851491583719638178623695272457366952770341021913172976599670117333256573252592527766085701093873159774846869013559495391266455300430930072014974847872907647414292693300156608384496848306564750394883456201366420633666910906704519307926389979536302421752148589796831217662244082515448361503066156709905038479140005163078558168414539099745550832783735950255105953514884908291605208393446572597322957659251914930654272849003483899554529266009243508538179802375358750973402524099650272252488428481857937070644650021842361015571844706120468818723176619455065820909828346149123614867582407186502130193105734513937715255439932192759517501621512290299434933782112865578879676400138016915326854574642536763192105162459455239616607378869785408674040772424315915716968619414061467232367828581079261163866766392350983129278549473550341199295275849033031523276360408573100486986156850569490168593187254890901237010563290955404106917970981588585141976689485420554640847330888097373622969002852420927837622340200551759385046187745420152223687873656201436766126075278552996955772963792164371430361339768473593056117601672526799034838485825832288327534661469219229333741166952930142267948642805092382436703770702081260298478529210794557520920726183432960642704505999673437563012777401029225879336908020891978079654931210733686695855379461237298848598492489599505037930176393804631803547360208229698988665077322095878831983466976457330707946065036993359895849275015763829699267294697333601398505029082988571541940863601001486944818443343397879317852194508134453088905821932682946479528521669357433416585619412476337815825752319138165669331961965761227546880980726294926325013107247335793271371024307503159954094385289570124614558246668272085102032578781656996007828143956770583364431826914671102207752411496206858052587664282291196970159923229860233786977932228261198720468606233577845715520554002917877016900023251508480760984913937589286948848632421109860065037003355359495982503839051662888405734849827241311299086135013733682757978528950853363106506715034050383646671577942808555538157353785850634863612991815053764409641430319545815808617426851013515728438244840648464105246459752942082318755969501427667781478468649859394978989990076269502674784290888838904496097888987245093436155163176690910330027454352030418797126681519625572111848994848271727598515537097631509862926900507993277398836497335100534439521828651572976392537733066175425350614792758874218703233329860823995725353044471524587166138527926435940257693124359629390968268234530429437104609299041398296952405868163151669970336818427832620307017296581382871164779173666960134664688611581254159642356522285419760253029869424020263512199635898742414108877784796367075989670220714178758183747677588090658200857552818980028861540530436306212605883707825543845497339332127526768874392266183604375140317578930293080458880854011938748221612601262616027207638601559241085521151879396641984896630287171811210027213463389092764408421778180136583568225373602924356186534932089037739674145058499454528147685586567646997404434295320255384623713033419902232290113884055024161486165850128560982485511338742217181574704618511402666905975136446265237923758508385049008905792027310621989081368622695316355199829677217945645651073901893697943407042246006631901323000163277159146518009994455414289297523591391772734406990927938079941029207796536477442666045143670701607769221966104229422685178277930047420525108764081050021273651443213347154365949103070587832435553196783008140721742256362203486174524873468445709999417083648707962888609966298817598854723861796073380181219555626926359228855662419575484974131752572292261685672197548358851482240714387256832932945033618712115683353243806452835342925465797229826228328567440187036329737268977271559732298072140113144319871774644615335134394616264626673743054629145033256114791817714552387823481849321498835557646798882759682186707197408340761102025728393648282095723510930216917526977355000408092914102323718213035285699527227120894970243294407051910092237637425812780591526305265011907318003894168623607332569262593054066596061378850363056656611374287283713946836531163054885478852227645694489120861650911121847022549892475417723096710935239143496038485553326940492991623167112918925872091100795546082882053135726232811066241404617354464600003247871244945278608498147320189358281840192904244553334231962697323764362490108584604692942134078203779472689508322035693602970589049706140197418640241409895367582369995581026591152754107970808293765613432043764160471819631760493349786181351387599197231332177623414959239520239546929252634969005257614964396332881456414151099005269641405061384246442375658929056078811827033876567345304228762215087170242059867422354214444726261411213515354076604159331535071516994007322568586242439712033131602483840754237710971983775749139172144240170631015533587229735538077312686034204486083336126185816538353053020692921108039627354598547301317964133218065761162093212011752400216419409015569764642030986447419773398166613516327762986113693970006540792379494386122845566435904823808551369665416994374700337356638160255341621093305844884029858896925050844236199221813006588692044940472212784860446836937711982301547474490509968847150946285528200162880215290254728111744473549798153406770262511841394067503885975029654262333400494254136413624061886957874248398167223958912333900168985466598723110079121990049622769112348238991438074611780803663464133470276534604473687776011253966738625866716422805836446640320216693618843820170915217491192664664995829667548446529567115640185225177859920194366432915199672491855540498549522938827013382983912909793700929247169949538930344942227736668279998491632553852588104216797881839227165391242586274641651161368458758449117421509857433455231045309855853203547242169940889099285443362784808816938685988213780875177266350350690896877757203541770263804666248358618277562621865597454204199269920421812558932626432172216138849056175358733059689164394176808195780375458950158547850303495020800271352743054754162874297876383341661255221432524984964317638592209924012628345339326112555273647702290561057326118390909261640857694840224344621373670833501076021708239955406854799639265604786642080206545046831068942858229015857583464720849648347777269615381964414337778572796906521463077626944654432887289946047476843287196526986955407892186814979451819398639212105153038690432313227568776302539695569973023905908687066261461399849563185028890065480361701887236269744603068629043531730965289545044453114611428345981194058647753455803130926599413752446516083919469967122639638782744691605772458996032143881302315467005684590682764703536970515296837090962289599023610097171408874927116632502145724764757716410560553408701784951192358421754757800013127815404104397810510782952432374126841680455477645249955940915523608211439913282901498967620496961076016735462545201283219577744296878353225595529986874634642929309136430552133028655927443749149358513653310624051027746144606858327249823728933396082926577746167787154408337229015021809760282003340539114822767448170045774695789053075679622011426704512725702098423180189558928171968564343122991761619363374860472340737616878786041685179654638161754299923251937209383267272234931025205180991436084232479042900440994365454159491726081800986465027074096868910996979586743307270542120166519100769623706485705265208891087509703744524910607906913518724522401128373818201683402022728346581570349809800243623313081609001948185988744940443054086490729938589708177363570184720406669619435936953466301764387294878916598450232124498197338701769952522678254677998639882664409180975575594453575624551237473022599322811609370203098171771509260576584902825233212324827828835621147220045142615377889251084348373526472264398001773562932646301001603684090287941704000939567810412166326846735190474330741885409691972918224046770851552279138578337423107552431897064221779397959409258517262885325066543504587366096044717649796737870217918398767055170842128977949183092615708822734776516470905669771044984264708246535134969627964502626600003267398001344918428227480250053487964983613201625031386642706849225521635242640076428871708902518006157017020445254568094731218637751431062385496959321571678999623896960078181926068590011359188641048686113532176114134438324031235770922110861722645507528941425916115141589815960657762780264337177206105338356364221073158877227294165963981551002501645340348808084024790304239275248216184296774513832349545673268890879826242603429036485121720152272674912594939805618515406482119550469784718744245079026284768883423144455940204944855843744689796137867387087814400308929746685112078882051516334515560703463591061491447433916609908968863527681731237051053886986366219516880618532626725541155611792035101514291289794441031234577519782740170397670783290449069457652199001733701968662944253300177123598911700513909383013577640785924120618691478148478770212055701287676224940430204875685917625310557775374433837079305638840953237694101142469775556860831933461830380826177312753686642987722013924137603430500669293477918422405173745073501253141035243709394897346793009994912568266816837524771644311823220795941217337950617231398580903209588239655673324552397136811602566446025534103402365299910756839143636619681086581678854574669689296781071274158706704407438059113186485068114587359478074983841649991897650811105654235039912989252567768992122545198817440001462297933795316596479839189221489140661564132325789215562415146311344880675886124896656967378459778242154949854694981786510187040283646872286689607641224118719763837074642654316803408054198061475039888007828541693874095310022194028010026248548547312318991461168595173541200512828876863753978049328647829313049000587194159371723139812988566896240938767631392370884607706921334857401138482463384793093054183112279264871099905161149449732235786578333980123588975968767600789305546764878787457830457305316547278951369264685805797574789648197304399164404609959053398624865796396376781123647700838621118072894186576933005569818029522607572116704315276097897948689325664366534521976838629724941929740981097841343241083805503140912305693338126623151438677301841250842743910888818729921864711254666106023127627196614274493451975421326878368207067435499520893797974408635857205815515742335123494208569301619921965716297809415770395164317393855632016570101904294391763091305076630938232869922892503531396892241513858926434717410529602732274937714148836337978766799642443377951385895893285653156449565739255228943517414686558883799557140754678128949654467894173841712030459660375593563712062872411711367261547692009966456273667812453964811866277002977513203561290786884527765703546942081819193038135834097589361138621268548420930509317368969366873597579020073726504208657747107751645626884173389081426160919139989746563601209593196320306451218964918532294863744357292787884507638379917040057831848465895435869763147825440724606814805670704711936936490903450722529908225044730455587135953765770312854218551130242832605029861336710519303272314980530571594430498935532409128141564313400192589584000570617027353837471335017287992874613198543194879003115251602900029867876646949215727217626058424252347558418735516057215185180158317714224589452499223881787589764264156104061746077898189986569358222566767592370760629565154731897861963848888966468931200559283913988333925799493955913211808438549930198874716531815131690656633169307148726558624728493027177970686039258827637560723027602007442076557064698244354790007900276512890882011351528441911531306236942400652800322661515182339414211116550479577287847737911524760771199153018960642300576414441345301218515744328683525107887666807292621436281511379749242039528349042129795438496181449043395601009783255384008649038917699959863893624940054685380643272966716348118690621356854600267501137181027481313489619369252714151204794808650334378655869026663744590199346684192965376800263862291157697265605821523683323044882259494315286917061079549400608067525576212441034955069958504679298943497518182223680005206661557635344703195155633662789865439472119438735776660085530854875221544081248114154851084865348487619390704010652110544838303507077364027780372303117124508888998074588580461906608091033854911297527011064667069709928996801712430027452925520641145437735576951022301121771209739535504888143612977659661085620865977876756633326858039714058692697374582507539231196847193409623539596676085467100246628358396795851082930414078856922872478102569699166562645064959187576774643927941382170116503221118499202655718341602466279989042596193057842916753155290565308678937940476860269453768263581771992811252043716398986331427407265457492698957302467340756974235058817228059489486449508608887031095460983338303123651257338617355344853869994558009851702805451390979276241233615994950251821810483945025308307956706371703473104817033622911449524683266315578098495415629002846434079189761764802222531601173473764517772386287875048541650421037716116208168528053900117956882590117262061043380075315986001273593373437599545600257934772866150359954732907457735835600288639521057946120179671267254203106481567304048652906345393487768321041112477599323999524823650426767845099847310151339408447527177266030600440367579754222299953569866973907293657165497259941899593533087452354679871256155393762966683786098774530622982317292602616130467110413858556172920779587596623097617340793453824824586447002928139733152750671427710012206306899427568416348285713856174106237949792949766326661690991533416813618421739446782497355727579141870690263431411325800258878160440663291310309469817724109121801159388409532637126559535121478540215493131316066843444760234944264706135292994966358315398545431987702017738724332563320546845815725013223406101734210921476430641984424010909484131603643192910375419647546937312900734662661751459566666002669747988542596105559958738151471454428785535104683222570180481970762314156415747807632666593277839502883259705608300238428101995146689154327947450710401026560823553992809865038784467193523167248302116407872925218480788352741834239151207933944557926572576264141657235287422550393305601349353339339045745741501659156712891894737979389184933875510799012849813269049286867833788954997030571773834807248660922647316844443942639448592975503161350165111461911863730292166849847824894460627883345470388669916813179647223268648021886957957687709851018655146576995948114370900610603729499103983572034433300387614134313718011573406875223575420419081743399304205117347144107224815329373662284951409764052358470977208746581825357180428093573070762827630752700929284086631154257028906018857872983526200996141308634814113307274779785173226734403512479159711233749910700721429035341018285593534034900929849628669333064306994203801100130858545124906004762750832910300198243165166517443785487414740006455350377076259851293560824247711301018391966769095941076838408455346261044665878496083895297830562290329215507269437732902237973978857707045534928243593190024739661670859140078293514631451350333775715978855804492882811488703488254614851790403675060418641579658587699195965813913945151292773351308514119371473966678697691051911802925444346475882730275501216651661315900298742394943348370807710043297980129886312290254601961874993882899198410112859704640673392406280738167361049474564026727140493637436320788604583558165969495073681924521665512168623409191229432773515817672326328229494911178622114386444799375318017656824968477770363766162490289044582544933745580992794011074487543618238147270241997698170368071645861870517792215067876536457391713155989977276299092133763285328078117101266449239337807011163613796392847129163920134497209665129990394850805607457859196104621269522348404270436671462175878922078947758452577012812530702817765746974779585675586063924391376848428618455403236913661609123233185243930613391427590349208627661418294926913922060238854930632327011933710534842843399764896164022359545238288573597846671331909234096017732436725685802071167487496726896356089122330494192218792703578410462736289891426338817982643606622704376118503608881040158978179759991259667374880163196059055785140873508123879365764586963837738962602093169106425748346169398585756136551948538160253175216430722236879024666089991294184277578187719577200695823275969133830183886923630405431028665035528745854297341664722949580478316238268490648344696769331178422719090366208590933693642078895709208853293968004761990505751599275195344931250525536116749512006125131538287178794782228269090040652390611241335171973226264292661084312505626320339549226484915077954831461932762197220187954334650100382254618444930005243212413856040342481399276108045548814045596453298817847299862748993091767744059476316877859138137982923424358479770898803504523465230444681369248832857460289842519928096656605585896169730545468669773425074476700417691233081883856192625846576152289350119413189055596495266089001296006233402564772259314569602575293754431025721405692133753927683438362109916022257899377185094706911387070374109745697232140484435517011614119281274684846333795902991816216237239852865100759373286519529076923758506793610264072584676017688884570112066565317601638838616756840557717737026887573052538826095132838445951587539954441194379643043083434344833886963325943730094119959621698742665673032766599877527902560122009608688243139320056720583643263171271935462147301310967056534027009014544839583080140646850006051992732299172987801269346840433972482701935314479931281814560926404355845262150927108962861266236907753064364005875745100788518620940974248908210575473931808077864801639909015110471081065612026337610057307190043493121050914027753439389572391006865089573165612290283232723401220519034998873019431885692061667456565892871042033810121697869147280210106539814269956992146755172529731082253747917722392967089741001426896993307456406221170797000951916714529006990715322518566461564964277437893271059251028736588289500858339413508379930547134166281879117617683133579621388816189070318199395433922719593772549416146246144041271971907633906014665724847837789908902145263908621121890079069843264406754862387241694174852722773722411997412467206127812581537826494441323893551132721614088051133284251188254421474508677579412297848394029172392740958545083130545135092712972985033649043055377110006828896453011309925060923995559268119180895782485631437184393290090329766342320423473813468588782338583617835436140561464984084298140550954554220074931167635129763156762762145191836279068828682469747683390619115435583985177252996608468167943229716448224060328101947403913289692950651427694757847522165639303610183121707296661408794255314951805409290163610006729694430160414961828110007567225748700847460546937246267734853926475137046395250696657029816081283084911201975634745015439905919274065256851064365875818861900927520112215258862059538763372096032164223134305835096044090534073476981728331010790419791677331568843405323344642430711934359656013993994127803118229989516739386272175119126266885539622473589039285032388613005759143941125050040224495651669955881088724941631820078646169047210350967759801335537230108066564463060347306864075585129261332784468896638090333803787953543480528365266450151623857678622241282451232210221922318815074118843226972817832384768935779760174436682829378328533938810499183654362613277176463161114656877075134317372506079329178792510201501428406783076402681793800676305538585427788569711599356045657975052412046838872998140828466429640284109688124668458411049450712289133077085981707623379968902048208086643590378129053954657902780818886028435841200330926363002360503367955549408963202140069983000377128952807001930618453689923681732400316379042273530205338457047919160562376738116161307229589526568637557982451387952440022661944111541656479293094595221525980618295456692788642811461411832396030543881580261738798149940403617345623623816880634857568695096539530124866870505144459992595426221586029851451366074739783928905712667286097167391775094829468449973362335029517756767501249611968790545093273988120346795938244265684978124584044224168767563546865227133350285742288267706964978759757873720665023018779454028528329199703029346960925580871977744303233513455696354849892791182067953486235407378839628345293882158133874819232245414704641269733754379640538979183732146449372962929123684368250150088158979718818741292923807651452744331893925545148758908666130509434490483151096556531049576020360895315523193962966354937814685717028203243024340711398258459866108597040498309253532903462069611233283663828622536875682270763569239124118559164101470126022529755993038876943001003350187862467218488836637018229137760851913051980692771057265809305372567690907439732276312170514596476496762108892367386651769999560646284816062331831454580217746470191949445724282276745603270456496460796841443496643526625070488267921289188897785615595522902151658683503910300621722233203208076790374156371093642718297034637949635905606412454837822728901447407912238378806730290158886130745365588024266751735313884892545491206648685083811635261268737435772653561531304075033508904359086807394101075740347931263974392571817224152140536512702037806086268652830968071345536701354704184342992221607582429918459510253079455114313258684449146683802899076106086434188652173350087199642719580546400253589353677740992607234062874337074037957640356454761815517763240402350611478950042199886009751142424578072720002284157095312424417844162230232897387770037403517794648804051572003070300809055861200830889777146631903236180916107436034196552212798147213471097037480677273597595306644519800279679259924303744511865471431753838663557234242357821497317736271300760958482137473659741750315516338883259127976616215183663925808019187336908879453142346162136424892095476822040571216827570051998897517436745005544942693940447615016007960635313509558880434579603830340563484216883372925455127301590524563437718939231985200985115896375646085597369420992687670049630322945806298206134704883382476184409965818103378203683863172673295492001387871190020963108374080755585251776765922162955746779729086011045309236817315634257082897767509030387861629590217190083757552439085596331809062824707064757379507409511010828382265326890647772247099708926179180662180313840502970650908320190955666844926810393163339400351020129585580032960437369939240146767148151488985270875595488631817330926985562784880767000292222393740876341549225663310118070996065392489330519847343116616555008344727225322458571544227675783101731842465793186385437817605426535710063973577058523022929578851872115827440783680654823318687266066206325108316177715376761141427764128778171675750194587565408374019455907065391135311681170000257142878407651413505425911345585633942770635168603044789445013456671798332098639372035602100715284920759470282152550445273869504199645097544931202080989069212741339833258420906724601303334562991663108035017220859365672534784336897947376696788189613690292249799306670847924645824591182055161648860612920601397174557816493527309363473125006646390901669794429709272131709513242393327598260151780349762032374989994683386831696786399099282983415169946493746109322306386811171479436494886786320981889193892547217936458804677938594757021692747842174558857615653442389257515183398620041656478365936276668942111287078056461147757159514839441913548165276798587041817229366358300528080756900931965302544324387728721114806069849545837347326534335576636225242317052795205241241799560475923578073830204765753921429948497493626359881661475886461298858430576731829512230529388172642733223277736211578082020608845593930979250461876546907019918380112631395199941734013820347679798216796514116789671727640597461555894854170917205007351576682095895732160200892611710735805850453249047604904982358254067248828108972615660614759568198107448226375293292796536866128282009576811459406408400147498204812400329839997398274700642483810193457625643958930958153083353038888051209247557427448413036272556033444113113838937884731254523241806142024577275325741708933357342128877938221162941029174223198060637325386691496504707597079950275707455872598773766726603297731419282051641266945870069837752080678911431679117465375869473592741338673552536877577207257080723970880814391067011642179884327291156706558765420444403375840960623833394406046043315377030037671720131433678602394856135158808199814769373319437242794068680326156017313607118980864603844321859807779557151463306113633744886635508026806825825971279758157346918343052059955607650207460039460992634814575556259692264938248056429795585149051274160780350257762599465375793468907952486805597542081899080668136923601485701198396695535042201571359103233971252105731097598638885684605147537521865400337127745960450505089933771986580932808459600535418038375135648690463551359147891837952945214143326787582303611105485815249276692616719671477433926759885344532358365908512943773247159150723711182292045088727888043701592763612123987231506135587278171422496956165263891238241007053438322329263565517536861750804821208154795724504984980583490889584611680317912162954778854958227836166463409048334213038114118986255585553562871928494173078534910154523934092376653497708750703675593459419251417064812587864215918897406853056107900083951205273779078839625608092738203926386423554246003919914540082416632587158258641147876874558685796564176384299767528231445532777554361122975462368153124388856935506671214722469115298330231023907255647184249686875768445036309368864868614488693591796796191441827639718453917091713284192045526727576221876210889395292415489228060359289367687543308158168051966969920596253242987206139270561926257209672955946943425845021702518817965992265104052756779064214449903238837248170254056363588752946893734821861401085571301927595895721617008087234130609108887915052459856057591821009938748431320344821051662730621496006606480460111766649221687682378210326198862456143574819964349860303006899829232166566582851794136687497761116145434491356001244059429729061494402035912328575566975062774087735457977050863692933252299089163477533680231449597725199614422887499625189291687581764071130174021444393808591977841001062205597182270119786694594165198133324115826798549120702410087257948939166897731045259089602534887478126745298547012565007799885792802565204922773904235198247497677212752462507681157664273441865432741757038502896629310419923679032393692369384612807387090986968279222901608422986025147786533995346045088543702712227388206785317783541008906310733796635123182833238960754788697302961405781063960695837555668232106685725254723523193929178897153455022945947423661782213213813309344410621572528917483743334029577810857064873815543789394731559575393520770439473753232499023330015003506453981175283953979939059462209678565630691421288776880309889741980588583549578782503359597554158757993278149854422088900158994475147218196692103379961270518260085779830770589075158320942699235457802817109451827442750001793703508458312996115813093179430782027293050166073857811549894465796303325260781801539110707672460605105290952868071648695157400180019901645107669933581317795487677626143353114033598012425060614328252000519181948487284321394577621889313255358403586868195203223340776771396906930702284449158928631642521732280530365905428469856584528697220815033334902062063582981454725266613431146885825678848351911480736828015190804585076311958644819655179761481606753907938501391622339188021330228883914416924568918764966166049036863076261872020793565686319158604209029793455403569474107323068534118939461155457771969843534169639172420254198380566227165404653658586531676297576000871677884692778260095390373702124022341226221932546080626323969982725719533114642838762840363583267340912141793090239851750612044482918206451527679593922152242627914935693593106885678086975816649300499683414751334910005117380573566424999234951310610242794753174556367268723023713429838274632295872136856485369495365755871058844675820152167900999253484849954223906335018459252120347017427116118302826985608005551066109372045732371409523122155513264523994404056785738213806434443563670437398665287398024317418122375388299230263041177635222555562240292148239552870111158999688136122106968947480015724984006236887805602311287552020253733615209232289276083976754873333550005304334095634698922890788200128140909675548437815456991878168095158736802806017310392438912109824460286037123322560495742785908733640835867518657590369290094805285452760465532666810660662261825042185739532412707621896165187235836862942812866513747180740763704913880170048957716124039628260754201350097715714094051256937210773531262733518821406030721138742163128387381164729673254305376989836025329723524356247193491111770682880314685147927986010912477274997147628660612194414371681131418994952580519572041227171278594300693298742000459690337903835283631250420715389864695212423312132541619058491227030468869526127022584593463319920093179129404625630254780805893023569534773272883476633768922527204594114424318433331304111117263726691836898242321049184250630676800210814275461509535977164989936956284150811016888639556958739986685341488378531954483566176885235203668703998770710508477762330958366103469624729609398110064946390212259710009766746482467595866668604496152344725067360475087855875332185627592025782936291908942954273999415973981611947609066357899371122421179434809590676720043244832388874279646846622896856530960190349537754230902500277062246002292310035240211571525949568407605226461366434446804688171188879453591041401919552692464729174757916546974276419416803656321403578676471437293873377495165135316738335244222214341943473536619467287996480354287489284380885713489197675551997741109016332804665794157373869269412357193589044272830887697620275411252615640515762790010264418294500973704999669134133031334244498531727931905375885614865531458878215930262428214890982881059941572351343146301417391994540302330904654202829214995775516645726739866122588966472826394596082105361592329643090009517971815852432617469002695619089932943181567995486079579569799720122048416916439047197763396184232690166156080998908643058089891163764955419864748730703747287230995351884186785864866033972843962019163091629843419328307683865597152993898801226297173922888933468069016546449068594201232476068127818500957465765664199190263018072059616775120273822304846317550751214081929089985217201975394731566541240319043490460626216471311378998249950592443857937637222537943943441855432011523538988600203655651466196997490556145015470605466837849464001655799297427904301421604051884116018181367166500283808428440675746069132224844104379668004642127967838542583239847058818119069682000314940730841146510285596811947405489919897084891793970461493019848861932074337712265481596269444695981541038883517794510217619806932601568348204662576989202807514422508503122776498025327842945186482075094899626139293975218544935057217158370337273252588696171499072577396822833716591557383471098748980512278378618346416551092128985583198515506944160962672856702368530765533724250387967806393596312925921895655974405956171965762071692871738776489902348028238700914728931460087614705659935335816459611503842601188312608220602389650717709308009304485216071846517189842811736806780448546739909335601017659955401515399958515906618285345126850703835897703937779025896090931143938532372099815147722644322806978132066621450223408359598150873292397442764286168735640129216277297338297657071564524763182689639770115350665105870612042086342666384135066186021605679749380026130161139926580140438072113159547829526002486203425049972823867670731831037605099393108915735525394174486131356062730055478355030029460320494144510504400399194263406582376480949012952538190830635658118607480958103359275994346091779774096543024755783678637925730810115338970865846862123109117433030870177296028819936239248891112528122339223121588804042331670623704988966308020383424409597311361318978210141870746260718513376893626060967193760741530603203135069571893778300745073104332299540444849997541233832533802679112239172317696942622517759724960587873283494707173294529768732414991486320205630782883763042519113662709758324974547563289926281172311949283096408771683701545657803844111161007893433259624577862145215183934573662899219392105411494147338192155748532025847061917929344649664081402424061702466996122069657994210439449117177376561250122942476135863661599696530650390711303869322397939865173895759491323870206023890796846984082834733378957754397742813283424857406061025614188544158712920754845216843355743576134617968327322728315090083434984290710486877882212996913087863532232710848645927424740223077434423738402472181828111456173015076039171873435976788069304858522772854125269022128547760982313367703550387748455138582832115604309011993552220824915847691489985068378193876176834579042116416458622627453056375210552749786597120682436369554661106278625557213261546565611878878513893844115413027741283949388542840224756690913187346168196957837794103162658733576810864589942771450919473856032325063483602172571771724870357500768862794827589793787292970298449671736515952507396240813021335018473630585660823858037048003357810903549153719422801850692778377297053227877626917091355151502761876663481914805909007401463105152926669250816025981159834421456302994526417825258664618460862669809449064279363139341607614775196430284114222483071600754057071172252121357407720385006294506131977332412733283139111748211888194951126101967808797446534367303736547999197896526709913087606990042672912986881038575897662698803033591237459312474897344208373402468243443843051258848919114226831485621445198562114739872650858946262829040159029085436782451712383498419983992999192152460973921907872849245697406878485158508163371371758046514268763488964909491351212940196710579905471909759280894418423436669319963078101927111833959342115153749725385562353773727866219869164070719261767149889472456880423430351523401145722361518370600696573789066903458495631938483937007245655729614327140938838681250705126658386878622906718396966053948647773853211334826520141484916548072632357241327843192510154885966060670532489874186055499006250675284197414233799070026078908629340808950317173440514522831802232188403116368307751334134043027447436881380414002042001911086767833428058737170086288004276983440353142958329111456595481716261860595050016223997496726364534897882167750759522894929169981301596851909533691933472349050146054978331367465362354391480176344753384566994885518466301643722000826405228132101339308369374014002454541250971444949284351465696930726585900544068949938616950207487592714007892030157077150182189922657840216954992817502275820304456151732270378546040614968300535312941009016201730596520949625202984152800816506345930147139637576125831389866727432915338806821049621262878029365808656007756608158763372325489576475137924676893519603729548436170834361097053849941231952455389028778421787452682753806132410143367310067731002269010759480284827148187873422859830352171153238058000683236486919104471849315057800215430851815073397497091331200664463937158940831698021694298892329550985290989765127337634983422126188283636041398011950589989025252167230714914844273146365272359858742986426740558275074709712587028451079212360233260540763518184525680250344582908331447497340300010566696125151171000520531955628284811241220367509801631697351273826880665931305116240280725948837879305718818645616072115050384203906546572163130799360683519852689224149404130655148465170267689487973114724822923692128350423141537059625171638388603899356464052358519233043511141104263170384426762067979250890994544242766955752545132556427960354170327729161431781362707932423984801067981400809242062050658333545736022442804844485252952569683679125536256485985307388586571874844949795412261329197212128109639924905397538161931594379359317648822572340975169395492227019946130785367668239098916901968017447461292059143588381776387542761378001295873768018903604074728996423313961653797561130769559823805533928506483377967066970860454342721545736777275589379903514132399633038219791693254969401481754368016560315712893783521489421060450503411202167680198792056294933123028640666841786823247781324073210260618877963008109530433791036317487188741044034283016634345886805949558536841891752208397704628675944119505650640847875202249107942210608963123292558632972421504050023073194668557849454709724698602173090953438537085534315881217888634856713079742916796678573871896597969228777576872289590864886605855491194275920101132687331423945862037347934117017258178985238038037218935272800646377093607780919433530014409924711894151061205406055068056210291113854293068492934832418330089544319693671725906423640979980412042711420228561472722695567906213218846487107993477893619911907079589410409254858714934654510940647113932342616809293945390983338435849412679143735795140219512783428519013159483454837023958720374017481439060964225372964809285806168219818352687464082031238670734251700201234237375068066949972324907062709978669258996191203464822750252046223986696786051893688513166547509542637978689382191755194003776873508949005302763497808975355089950606675631345937860461949843583857527617569981578534518995773187114719373463538472679096876967110815542353937228077912348938999490025779715605393755594845077029730985119918610967715663219854328807171960700289384985174274319452820503400235702827856567439153871992715254083450619215699508388858738577986970102924518955598717448134039996347333016310176827635614203357081912591795969219038663738510461606310696027446341031060608407364000062818798389655597725525708101731445802495373410136937897922401107040830552369089521428170432478557525575621628894032096433825515228091606912611420763747279998886554009154093042434923808973354863981035193035010432112106256015246428689303368349976476088370956963636808891739978971037580311390215468712447551714933077021410522725196457663028468864307766991546484919264737414419308779729755611813540683946296717548799525494920155607335058299664940357232686775474624135000722750325563904939494165164599308309093829162075232061027995878718798470271679437929441896584547764113454324085442831028062745128949960019957343921321735636033601715003821854360478779511486699868142237549549927112211248813578893352434978866363106726391291705591328978022881902540576249628907822138572733697274182809796624770474939301237812686434392798857084231362486112853942599506565809448346181744681632026356430805892669522346359148566306594860472377094391563569422456265383505797077669140800648202069897513668736308086942186295606207874918613419720087399823249461529125983976708282514670953735186989523067596857895201765416711541690559092954560984845609575764257932557344367285212440879841203480703660092159859998563447074810387163852398316785762826720462458338995698748018848089339675476098983451386179913283085822949505356649450464314535243138702270053649492290828960662590761001610469255022053147460170633700252359504012788514720816123518117193719735835291616378680394643736539992774498036904900566990022038731006739066916362808629715473070144497942192289328560109152753973653021033970143084616812575451824558639717679859168349201592583774084229311734422905906022531361241558133880796570468709873850871148972147250122059980048849635631721827471266935193516999410891859802307079304311818938127754859538590842413560808175316189263794689635308458635948313952634469702396124307173285415126037919614711600004891770934638080714753997635533933097364476013904397130368761007224760941194209972495297054899876463485195570421533495572931237843170691108069027622819251853468185775652399524889467199982006238835166548766095145194206974492494430376739323002491612827180825882465833491825319399766979874001200485825162634773300889479509488167683765766216180795675347217765501729640389373111485965535017975418470584951894791461829420801035488528265131181568128925145129654113985627653911072799038594595891595870777601625696303953690053035616014784567135091166182031976589448167231804093723403106395448845161751172744285023622942719994261872475102746941180749031651401592430541418023901394664982086343430797622562262992805632070858077085165180861832663437653548386589299173090243466330801854719241690551988758489161896414637222323977753300434475610769339907568550902861130141344417600077466016285621429214875955360323874196938374794210289964519001977293794836400501970135187264286568459116304870962085643222989988235147438789308762005283541124481976107533887220200644308024197894066048236970170333580703333474803649281567509846418836786085265494650983852675918401291622969062686327276569835447552146208469715554789361560144726143946127864023442157817395728443114546650810248792633608064533813598314995753138626267214801800143509858210704152398424092931785321815369845307704491790371156956797399557428785246346304632815124055183620636231229875464563453192491599046072210326693398391424450096681055363139445733788805973065237230243446502620873311083285440065440287122031647348746688812074829843467697469817667109953710499809822593104319656660889658086454255477145795137229920379578884788403485923682631110304404971203517388594940325696155475959147460322697683057317331278391583570681095822817341725014757134059326030165084145559485835975634498972133230723308678965271023051551822177937087199445845402349734026244931533420971672039200491424670909496610054101105215074284773814816639153920389506505621188367324276861028040139452435593725220129357082577350245674898118300605992464373525651947784343202314681146185452785559709804157689999459531870578292275075233558155243253581041571073848979901940773605073870617469249702391317190719230481426772367437086582174027456643458782113454218099245565112798336212695677904176838758231949626416196440447154325797968888648389961399574338041501609724683181682045160533204148729808867000866207359342676841566004788966261256418598623090444373648725631483355893685313225628465271733685446940405863262667053766508193123019511694727269766943729200277464182499250129206896710193760980684521722899666269015670308610263347999030965401837586574292968587922976241250882514785044300118155213175152374216363378657403098835571381346337930255483904951054019938018913673578254822802255485972053246656778680754318028482560189436755210006278844420166427850949221018557559945256573927529873656223617176131311802325363698338397643948320861973530601380357202357676415709535562664219783575304474246861288011911312880860622089131595733461063890519909954562704902764908135456969817813273948095298849763132312334506515645105366251527359149080044100567239908977271999020132062787847979974066362415961428798818088373254162324426045095243464922328594133683716124586212196096329931922537238917352316625279905669875879832055697501609391276626054961206768337683660754230850490523814223151980219478998577462421892817065425887059521160968802464482989380337559659608791239200332312513085571792704901338111034791457588334735952586513088272312323283745114158660439176654954712488229571658142932665714812767253420349463774710128576256321143988987075245055238736037321905336602690917637719877550190067625884920108638251872611365408620021448708003010044302593133532716776311971772215024969067724572782475107308136687321879657180145444088803653480062161317362635066852083003162842783951052584572237427760959318150322166217896205853849578649687949923162894227644988205907402501021083871378282359651058653791432538639635224208358479828254919318188225974468178250458735237804401371520709504084493002967084519754109466231664732284186817754683746794278725029271552539231756562155041233360765272402053212804519035890816595775268902281624836923416196825023645551639220994919225997638083519847626520755946097904022106358512795122775701898555793201071331512843461878471841253974867325296056037265405794052939239427009743509527224825726621281636419767176208330732551365679115394943944354402264723251887683074947401196325404719650108360482499068548269573838408389931510326931440553468656265777354151044805217631722771212750034521150260958118555633417745323595808020483734262117538278634176331701609850312063250791296662181453355055008474134261113479665739900659488232192147355759031346310794222265119125911663997173649202691110684210391675216910795446234886594008651053157796472212049896532765507521957106326512460030863742903233176586665350576015096980319116615636298036974381393613881291172184649747271753131461334702538624853344862913066392621856259525691355283888561419181072724096185856012428883270205173432709407319531439862050369282369193594039669403360401690594724135530459489428123995779342383753812907720580958476253629113389978922010309675709270619377489451169640280339490509675870173083956080796747385641040701233223713600766968744618838399884720349799772509440991629902847119334466177326289719782520563176973641761266847956627369484831307692422923179456296951367702176180588084634276490431743361646889941366195071129114652728840678381527183576377155830167356048427941533271809437006086604420812058945299543649493365128868816260567720121501567920980523086183596251028508713116673206285957447378614921515744176281642036158349402497466519997061087532450495775969410784877564543146963962705490017068450442474665003031215194900293453592644610250640418605493784633162253984910608587206564228304221757514587981858468220673030637021256565243381365476057465009222090163874952743429020397786881663411035226650474357817200662916666448817172578896880785152325397476251934597984275565040850998752626843112615951118261546877355806397725535717645066424871264736333419432656535626770834546005057583720256113783517822121577792368022771445637672439124675434474837703898120328067156222079110976118109644321108600063757091635264821832062191512671497613359031780630916582410140399216314765259235895147856688353288288424737676237742080642164919321885102460003567247928171124224004963426497903783966408100173642167745553184595847150260077000220593087941105028611433122022721785130170438719364825014312269561245069675565556429727318581804727383816862476133820555705157852276199273127758959146925215175192690007248682167275453046986454617685075960248053208317308394085198163883125223595374231634287914432625345598928668007773367197564890027781285693620116782610358916602147764988567250634487772277051035399645441953229653297444311674892297953856432138193364670510447836872588049827068279822824871720521890504524410714732300050930901731528204575291770937893649277684182448013840839933537732132827122333033609206774992067676962962920084895120399409414951825081745565847753269851605455730555691121464390626395390379736125460898941024027274378374226420292938457782247646697293052627136249456054563775644492424322657667991259093269682178593768615153757716021830185930244262464109964951842173235296319862519525579501446194680146228106439691731955628867313243008600471763387536962290631852777497235184011584235452755043447522444133842997655904265834970459643592667474578238267723221124365079162748691936430870912480044748681493832823812089728179233139834038627646401061520112893013306730720992344871967093282928059148061508470816121884516846146232502447576927978503180690283305739987836306468593118186652155902613004584844773522195312118407171957129754631041045974053374199060078415494565530260763811137128210805496451878154047408011309519201213776945935412511135743373485913421124421374685440404672604753892376371256814700176248743010755525145124638429047307169307641149552323346000846597504078370178628977320953970546318155663596838367314702483093182833423819761908619499206787210798539372705748928487420233857736119622819630769581790339814492442145571546540676836278990351197191000606334124046860158972086671410159806380676376220009229744873293137697143263197603902876218003205794051838387474418222405603109595039558220197288714793808666678039907463455259607871571899745715917138190256289745649552166527807935989340910582633221917548532450643917875752538336555327308946728749212484595856553545243289275411668353238842867577627570018347611618362383213101688462909246108132115835536495860330416266291968687008900049120409294299417513189920212089520726780289297470316491743949734456416752359933465402987481173754242752849178195088116864736631874462880601458284738983967078363825045317767098857977646056658013186396861698036344647664594597685443857192874115151396912845249630180347378570695667963979552525856031252840806878846452626385657719604311031613775581560106922803493377808063221029738269125285733558293505121572276750637186479821482939139786629024830007597545308857194742822336979680430420058745360805191859443610861280928283644088724193379879194084406950199199601949616460402193171189206880777125847392996716589283740345209040857742859129862343747497209149119682051012195174982436362248030281841444002846260229593305872480628803565621296668574152493283474678868464191440773716203911613033368512496602567692016161530082670213422576317950265314601440234511142920118640131985018418323589846688868319688887187637229225248263662054309507119783879545634073810551694316942919226464533108427303059899245008899928106262432140817125358190929671022442124601650976486519313455627496763808563998721655644101815271027445435361072497540071070479280635323454864010909179731241164557573461274329523152455050134520213367793046367224780968361990489270464414818670748132969244003003045206949235892298927112360481423889847566187187882628123012819306118822969486889992590231883020491375384723858413485086059422353612653779516080499388995478554021364604749185893128910400636052263271480542799156910973876941056432006598451109100992574868280596806999274505748328151481339016628320752443157547292742025562890372431084729098582131143654801237000522454064241421849130465408387859878273067522405150575807478754962984986577506355597955362667887405558739292962674584520955761873471809259139280966904922516379601847644956939299421058571677334926371302587279145149035351346217593246503125353447045664752410306875382353955802370879306222335487604143811357657516715631730809322314175455953460858004708771369419306620723060508624465467759306558560354603300943246920944735467602358441707615346307798788691899537925738069253173428817175193893870709803128248913880262840484660747814548361178027116229770152282554009702563464983416827041218830740297751897872073038857937571182381580670711835905726219972551995263315263330520183392258369366402675273036464607087904381273956804648234339859429217988940041798774749560896318428843194063241788959605792626032650055901637783898491100854477741359774240372442960901476825864378399881423351003539189505883970166816522923030624125049811167682429334079599485249382219221743399135356934039201487245644492653977698859544184695651692108510239831095759920757636972675571464784710866835670658234170107376340451946149875511110214028800617886177665169647706466459885777754285073700863729245566091887023192877140385307313883547432162427984249119001909974596712602753481497891884238490396968243984658697717429460929122689383664412808108588711406030518741266913502875195931479687453853287263225361290254848133706874332112146832260909095829758191087033777331246981590111492138935478980448481447333797780286194829951336338611585291266517928431898714927647308749087602498275954898133676968562635396891334544061276331580074135371823070199865055267702442360733314259278306972401593003186786140070269718219708687930649802274202221889497298940759132243925731260841506204076599221668267641975479667894127602890717221256931958954100180617981018385723939803354489822002058097139212959591124520683207758708609457362507326371210224916636038849026599561727835845268616841025388897932070439894110222277093075973410949376407330608275632858249982278708715507166812045258834357257096340633227557614057671526152784133779743941244397013196252360630437831011307360842323435474161563059073087811256916316002017424850177402477217519511994909615526044033361179688825994555770226180769270014077382499586764700751750546897175967665440322523693957812548832725733633063010525779589026228261347762870096886872923829871384620042899322606689337494012150755077867021977265299574557866543255615073162268323311386675690116789968822507380051494539604826912894923249885779176570748804936557967993333028549555435076318150465176375460322554011598861759596577185133290569988722402872498493421622391130261865556752218537717257953675211667161968746617504595246177936289320181601312169374793944913526681731752428167424493788725449352523193303127142844590967446995218952672093884869817742255118014230663519820734538072413679094112838439505762459449416030624861727814291544001020839463071214459507513129747937704289188955509870428720023873491918693917819296318654614116634267621969768881216123343070471745849874672160257874509225220049457598663772057308699319401126894681553115454761542397634081931781605372680424327492158228006547998862824192482004163244816503447860444284968688833657367341012820836621328157728437293017135699682836480960014001858430774768021997926144222025912006399145425397256090118272193776430815326105744152750119617616995236036135842958171766154222423707088001468805753793883137803435142049077709914318679157672933458949585190226259152746094814522711721199424481198998478086283950369098729097034416218694388268570113936050622848359747841740750749675361823414263114713373968351303343414809712093056159043134727175728689197159973238213151468349986429562192957935298750642276487418509130813696930393764632021333093689918598035936092547584194862403778507212969624395332422093926603597772966682914679972312025062353530258127704710584670046844650251564566461502134067301281119250020716985011306043328252238037456661369619907361003206015114332341388554159845349830568954383606128594202230915913902307764967853697786374538725931923670420499178061271029307319170728803610578402312321462784563655303922534755525466343757327700266235332101981584341326750703693840470604929826118712526520264785196473359354353014741641239783388483212656911139424405069720572173028604827197945156776768762447624032703302512229103417159773510287454835632208953576469338087984542794643033962572079044241719163502358000388220071646804117839967210079322157257043453436372238440392759026514828725551912800490310928223092607581396832033906528066985324768173336519138327882186995030596433379990843487806155522828994280043144242628337348340803906026607300073118955964201606252367373415264064404632225681129172534065918938078410940785221843179344750963696152977552453146880849618043737242500587371804522335392479792886074526162684567893886551162474580712679575112288465193520575651057756279260833688181323238066010909691436438295942011034187561083222913128931134561354906526370021547002750619123528978988102461771876526561214613203129431840392408286314742639228288802601411470934777604597080135301878372335913964889541551964383874313470893259691125532258564751103505496799248857279649208332150779606323314024774376636061178601514329384262620955441739296570374427321601716087428482733649430214175042094577430446796835843893405531276330924023621824881915199145834807702762369965211258474369245924182308025096047336895571550071354260107611056957089727506833237325120340452916865678400485172119826892070324311337458077699779919770778636264261881609750861563684068035527300067603154491798617696772200878032144000537257012741200662540242125256328249535833754686847830043173596350340445486268124454603472443061661264707728796008333849349232983654510367227176965444568043039859344899662971892292908822685066585194026053006873415244286862743610341359493795632863212253454206929490349871053248439822297130179060345999724876962720494919564341711610578989932374329740953360074911013305114870631729704886838947965402762377312591694759113760373280010167108917724328997813310238935476380228467463246359686269453879099893882935284016716312489416699603082164057553091473619086991957661299773917792986490069996518800830523910838706532717085724898914952435278994054705516797246264023004385385536734696900205747014337323696570528596145972861055090610786369754394906594648791694210220086200798547415418980428044777716902316818430678063062297247853735320360907971710481088144043415185838304735582732282690445053330681348280952490484996805412470112936380157098982778256704460508779816452149467511318487214154358035182405622243966609153073879269686184750798698514624407355418191795858262281154342368652930424730462214481481929377996140979208607422143688617628163346607987166667367113154615242315607370063747793919954780302024798183993091161963431120562190095555208499733005722334464276099982740099051067107644698631485403188243780660900325156210800279977299804645873737936588413271297849097593269916864996671198672910470610890988356585362874507386903456465051447513305555236602916616712206445290978505415313896575724549510982943307364277229284020863702767359704095227004627466852535168343263482952387756360432993784622579134151627608877873625835909238501097095491139781149154596520985339090832104288191482391091238905312535832913597314445412247698410366997778762471286829578157436881496620308888858413322943317479908740106878420593272682877116162837970253581686207995314740017935779365894149371043314453357044456919650103110433897581037515466208080566761590998797501483743656031799915808673589861949354695904362108098742986779749912795089155346593255641109143816769044922476658483112465461155869652703015227591873365997972184630002566650948313754586736022156049351930808326141766550110257647176754719771515931054801678314915405809301836850086834822861553441110387862813174324457428229766587835271394601174052831066132721633126389844396272511416532160339043393052614628259674484951145723563296142261351217381966985517163937627992231420613902365276369781367805337966322911253768260148805132484204767116636136931578729555600490097342231792934640822056998666605297008181552765977506269801513802778089780857954841486683610035377551633899779606901695904247150847180253330419440444883977571336529176289565549719855112968243111033299517432924167183985931957017170125254825385268209925146886383499965840659438649021729704680191886425533780586732560446516967774607864845000273433570526158889456202436370326597280258785006318370511443628253470087709935376205767445154423192505944251314835962701730189168569202576659085580179626449590763044206156338245234564350422965565587971361985281075404332963400648192967791379028280930345545053373115223570812930377651827338328224642825282431701075991086180168006575363976187890991210125736387805079250718389097099303780039602504071474055111307356587905567474696651399096199587771285812624334241807616741659780019685163361788667630487865436154364025837386324200089381027457633634344007135677835859499064995081309876168395190922745694747132982063196925659627802320181669834539032810305024015878050133435242353372273471120536982947025800285632152157067405976356298923878789311701883665088964757772831746736490458422711260598520834671911132692202369501019790267675244248621933162460291528171454996445684484464777711514665086999523349237886639161350845092816616865517331184516542527837600297649465804583258710788711485125922403418967697542957746351736371137638816815639641082067340515771918992703530667569085595952134795476932274963561531026368366145318410738576780031494447438211286156734773345916745337673161852859495676678746239611010180218248924274878817123163430864456072053407057468577870308401394363558737179810187065055374836447369007700251450505346592646699588886410510125778759593193562508566864604006949973691590996927951469421473431442097226170770478886706165950144469106040187016694189180190615561175068352099153080168536379880960955218316379247955160299920220929904887690223905527895185283210625949472450835032102689719147003851586639292638019069953938748914403467881874448370090625985405206526578921033252275845694250723732999858080315358795865562760190479239958358228605793757401735657661798094926459766774530572251568216952746499767029782455526614532457537080238413062172647014011271834860119741767559697619300275268229663486498299629426698894637380421530622313422767182003216193456996850238566354026261336406566199713942666991298318875222045033276177033382207707432477472733019440616403311245237822544942774769725437979441930656403998276966807191453644007996958593274607244711513131963541161496293698867266703808973477074080553728073023545152053168167336628729231133679061855177639991242481389506524605869047086859485575965830158898169370318448790651468755272662653587712651387125632699106933663667184195290556443039325074749669874210984434010998082075988234580304739441958552584817913114105735929651226967582528902598901019758096429121937986448053217473482537981552984032555369108158522235528469464057791079742849126486608105864572224699976189036583736682871392445231190722996062808305988813279813087151605534534657659440747661873173598083899400910244072705367443213489060284047976072118712749027993358985090038956256456642067309018307372786584923038168354418513606268780223052894662403612083517857933116558774874832826441384943402161911353871566467805786961955408298388587758008667741236945404624101520885039086849938075838230945677151977676893092288318547224234608745586006378413418811028825506844916632525497035235018924698039186869268411278502115798897249227638401586571821906415824511877220964149176274097770501182896703690475423573668050712559920719824410903109291644024507415456813275628494828827700135199506747957139623394162144220457608416635593988292825433796345079409672286016265454052630376776426415624029816816007884571301184367664592540507622584910767591157942197401502581643275408489540194176860910986539334678615676770350351362433805369180452334473358999490989620384888506308967384663226411549634529408224156301551328097524103324515333112105478302010901704486182504781402425269942415621324223395292564175469723625920047302242339487269329474064937590121765972036928397567494627798693604662314848143048374216845343801528012287699276781644568479402509227504827586470842904233949314926551819378626516119801721265279954415442154314999221294715132338959072332698537797958268893027768449263621963432310043074348121086527777664834304758708810782420091854773877008228848023423971507395461672147957327053920797691370740657856193098251240769174012144713081594297103314957194164266186609983920262971998945196668271706107765867720474362753311608034094529932747609489732102676954113636292199127394681216098711775142470338030938120411626298120166407856915389474027269367532127340243145528707577176338033386526166183704532662822721675745346892417872241330696249162786108815821997345043161170904281785763885674249536943512824559971844955399049974057301997852239642405612188593252084142011144954305974484182049373914270174583639389343182023474407502190883227963000045925017290841779265906347566480379919656718848234936730815240441029155187421196316530929445694032348174580241028590709625868880101109788865224086507504786054894815427386420791632021003366142900357610446653538105784848401549291752415152039642046677980910693315175988349699875015504306650761498396941456033472433686559152096295272750471786393966571358917860932983534427646182870512601474362230176174230342971702388053782396883188225404483521678099261431916758968701612529953463288212847844164301823250971633543453316347574012108279961711776450860106593130831145902897981029826835498203979557601151906407890573386803839333022970925585885130104864397080746368008710158372594551621447234830326758225634630065822774228987676507307056442645986136963281454306468598098873401483639832996861885021394801293300243951793009871698315686860904401579620991987592448513403857547608337881152162295771903944555423227452656124739683037531459788991550023073121123608300537018727726628360331280654379629308675823839142879873210820991357211354764093934168676201688370375006552229858045088506116532259321853702600862551800889857961769072079236914951648025173001889992549504682607385096169735623989116663211827412830599638911642225821283512224645872120200393900926949653502952077203538462771532412882713917721557352338498700491983583438788045081795827056592112519353110372076145111944821323947548389086496286646711463446087112289956868452886074944928059331964431139284450474749228972267539014111496745386107584120038724667375309100342114109829869796972828552452379919776832109378556262611428390704104285407345792572027274110093889856480500494718111900933806367224523260029319176307280496871196066424281561591611138821619638313299912180826986492053109559354900426135225843452230668449321929878818399796828564906008478540644406716967029938049472390390741938462199937107372138255952701291608650596430210900743209922176898787939570727019767659037548550658094436783080380610127194538186976735249558900167944068999539146052146495349436978784715725433126887906054490919311555051644705262724536701358379785126172706959113842216717258807418332990566740340454974722139257218821701038307063839973414559839157880826496109577154111768708523594757776376810005298509475585962388611383504102236550664911866787321927674743689037837487905861865276644289086270530120358478739533869708476682040136779895055046292884555123037064842049047616823072076098296728440641834737855543930050110578676867943687068725677131812796641654975089534658907015972894406521189801076516180969218431067899673517910318761397455218182736457321906300105113619027917542515754642247818370176345085060017062201007928682550256771138336084771632910586127029258436806533530424333922495020741294105784481207930425335405326032804831483925581232646132033588644393850462836473583795095941222388950917476749112714460858528779129458727999125651906014118064044077934580700831642930426967705892211752443936427225884528619447071684366763431417813119226461516734883434627092055155811082147688594424588733520383234466241128318922846626714478883609185465156180517496607979467558872415436752721074877993958370090851675656125234619792294748705413137256370301219023772844324866823556354447873419249419240031536478501427009946517245330154580655917152880195774822562653520238133831347456048849375729951090039024616685787744907130563258122113599060640523712723034853251749725822287768172498988967995319379250029050885132683669137358531047429476730315464456305516418267452961103632366887689250143084388422121841784469182297518110044215180012369850092519702040366699312641117783082569193333374001986052390546885721054157574151697114468511710950073775695872619622468875269457188078570238558962390561787663267160362984017139386737964341544865781351631021822698341371315700750823442079003311180355830996115937740921150779498224466635471540760104759969435847748377236136717070409801893532238090456625310687317836454885544948622650109611514292347091943049070742058673135776596464130387933312653945461863115638852507344098156643218428186315315003310973444884519933671836574586101456669275794811155718606455577243888243337695975217074205117620124133576318163504301327262469898612093835988383796584732754295033749650944440565903046142236000536107076453392287646705018372564627265603836309597320807327197753019417489332422456588620804439738260903486280802828783735159203867776627530188075487487883219521699551962375441464012524584861157267114924445335047875890012089837685160553424194173518201873153079415792734667434438924704346416102652844233055626636755064872316580509471993459496196228686273761822185142731195082470411626992941337663990976334463078860266492969516874640227952881763011789939770320584556306798958133753760241969933407454875065564906562562740020810699145018060272501154487535252900769629483883891411070073364455169018637377629704854990656186371259465196707271698594063106030062992240684813908530037533229756611155592870307742892988042202833232275667384050170449032995860376740173330869572879512172663299987438246177832913677488801603351777980451994073164416491631562506811952446080563447947254269320148360239425541261179917216831353023942397460184244057366583978460260247088812264712781503338419366816683140043691374832634676659477427820734342687541628149837799112980191913067443855637413807835326243263231773900891610289840683494959315236877785333545090644037746552693511799967690826206130189590670550032286588645706705010189828321987913022289357663210844974454829112324410121270524809809524535115989553107554075095688307431157491539989145458581864151118427559561660502037581922574033476929449417273723218636903392120036354861781980013532657800955303128815026798337076452319703002383441563671808159968707887337165115506872414498756885980881899528738988454560228956886303500345833299326649420825928301912111450644080431966445808269411198380680214741373676582355728649441507981568436230032523714719034854905771484420482351247555044158011238118185615654322962767164114355864730729489929280985895237780370632817733541803802015481196052403659777416252558226124223237319792504856210771458693098257481495533467869706993785804772417546944022474160861574276000064458122453120016769615522257371085587909677776110670594693707944440481024335546837410357113163914958181201918835326785156084447029750877587321866605654127558836944822096739478687602203622886614387439318760997897184888692167759840356891939304884608773712962322867052825357120164632979984852466533203037843674938088998785898231623105167328404648143717935899667355541086659678091996947885818172943944524902488408030087353581626258070192129953418591835446383753596149909822949961497238589404316334419961212532541922833740752702827662180397038311419198797353042419671793893313310738363580979633538666957535404390195765037459795694728800147523729014531644263120905824552168580876934867440049034871332743639709092304565594115640396051223957884756480064046349200874871983962775199955952659919230662795201585515549399346772133744867371379822895683785752253579706800268500856756608511293340309018858576891640214568338051230500878540035158104462733278555605480808111208661222449215640947239611615336658636065714691547130277907358865619912288615966171730503639185236299835131956289586024133900190507745193006594342913450913702503368335285437494027927492335399258976184650574934311322798227285287963215248585892707197592464480087486537979072782346087844224419950227346092008487304171604551764202885762714126553299073740704368652584087446092530007959271146751575265698396296729197266199319438973772307644143682902617711255523340500964166424394282961205240910864171717057060596063396593185130629604787329573177418446831010883292276007092014859549036205846817823627979295023790508145814651829755590890306533942389806536886446532775473634539162255319270552720891096579504247707184512821646898266333661132794824178699764021537553094750632563841960556423109864559285471980139613294999054176338223075194572993836127802118138590590050653335702162972298572946698391526809764041581574448541569779435740729782685100201536194017967863635141657120192969530661146155817182886951714365926209146227594048227994618421434198647770842684853198526889745476649563326164423222611888394361998176762991380062742072559899284613921414169876924335738247859521200108607964559355226960652439468469629945650952255003220727991073443380257710274144201132459529558869929106025702694188471921093227229124591487330419320368455350793712250956272576529757947452361820985258194751995684835326919996261311898769729918220784364793732536645032659079898721327077092247948486420844088890677747068717864106791256461579985699789998336279320351895822403578727331968055373561471521991437983480274557200480037481790958689606400201192064519411580260353710007413747819242686209215668904233350359614012131849917315081624862139953225803620755965811493735203201960756934020952732767642836026947100842358391344281023323019463682585396070567306822617373907926847075667705627162226185238032052877129781796375621169881770140665037579668189614865467751438360486313822219875727288881741511223364942161577640447323545809978564176681928854866351083572015838354796908136590991066380934068185196587440242009023647451458182292053692425527634905519065526057897017535266919659792588620121162646595273237536393948937959635312601447264330098469658739264993880745502819677511547693695179698852536848158837997870198099728226587119036013487645167365451789443901949264599573145067170913153083446322002907824086065059847929298825272092064009807533594388476070073697745597289688910805007703107488923761875156118568118441287773013423921822273310863503520353236593919981964721354050081833928889015483708481786028225536755859882239798904423158853708466041843281252402154662453628982690206657658665379759161485690258350594421998370163639537977585256937465014707790423608431881336791408708639468988660402416483722041762483830230266012344754634795388668972961556946885848946208092726884439834460932391189631144303688363900656267517006737555406602279258811149734327613156058299642833063710266238661565577429593280592273702315187512258296032931517677734863035295761236433765642117079999670295570536796381589542395330072504807019875610029928216319933360530804097844982820664182662447780732593419660665128192520926924130792715082276243415610708378458220656012164898013697075063303946914009699572000459042937731716787123848944431404170182572497600422604889466368137833791286846832214314647528758219167850850315780875115221930070360775364589992885489701160650733384387846380105551684811116666835803840792805197792618559518415622365060298237383015161087848057894944571053932353869675015041609173233255311158664484980867968368598640760444050995096220915936515671458380147971558117501993153927262819266271709245708449193370258973783992766101307584255019818643416844357937433522074822691830460573469411782575620885028443366919642981709563641133025624718918656698500833188885185794534298055466372913568745862907461807260994761362815676263088878513276773142163385075091824847575792587961446333100356815250060141958213518700346233502845143131880361264337859099790628181212036821638512529309654213154279778802825055424999681286553685608835320812402870229404956633272543074681068627991680953388196075276254218557548072416853095573607586505113496195616904386219751247504132709971172192818696184320950950165903957510431319779637432918189878668607464274977888149149486089243839009326332095177197797279147494512613369171319169313913571596162517369748653014522708172260779243328740337369231224509615774959173552252274436245592796378384769138049935940428719214476469897001610542454180631071977110105778382229812877854665223089696191977074625005772586899609122075875722307379206158397208093678903114403652152569092577228019983705567067349807514253948075732464116455021432307461010117086322105109568640974100298062572876871099535450173341870489097760300015247834201580008600617570524618003640307271706843264365640344985949605649336050881100778798138811514520861513940575571688440546421071344343197797001767086531919642592474405099536047196917063225498209154624862866544030667189410452702551065307993116757170108502021631957476732738971040493069563116692403309807933999404764018425525103468145224006014634748010294171253262779426257630104451731515382455336112883721676610333281428744779365932992197290286135329808247339981834267459281887492940250004258366229866133676707911591399684316835381125122294094711104364805089802153172936408988435392965487959664798985218341234165396761563704167954071616857552982535965028495331234130945971162808110519793634649296616983805261720639976137518794519512568864026202527383548720636193105301133369170964934916123191353017415767682830111786955965418799713790176796407113368164310695465761704617162170062009747266545671046766276118947353022938220566539164812134210186348692647772664040095966852879310192672613517286846599230957157581893709753618480212864634654947146750047601368072696596841675785211658184540753489645582780668797159081487446492015202934900629592458938140188862469400074786070822384994702549728161208168348657692992209548691708844493869943205795838643208811095847215698384210016468764219896515442131064093704647874646790374240767457363295455554197997896203795005314614314300848005810110339605831393449789941037469835929028272078184328119015460174319068427189143176767086834455338904941732854728371221669052902366095143384773720763098150249156166495317448844830691031965120050440007655901396719207028203562528046414962574952825045604046682467420080708428667491655409816737969960344229299283923388463534433548013702815558279013782505733820058621751976862964032070085784721322729118690707307501032001830327509897363361232574925588158012778418385471394672815074958279261434711903451046419188620080001512292599339371530844526336875706858749710081089722848212658343573987640915713872103844323638881122591066921017434226713814792005199541189976906501099449566693396495044670417075470632631241266041419075586979350160146716580439768861377393274701416578854419481138829083029322346699389697775552478468865915168857913627535159668336050412555452444466427153224647411748887403551216700275328309827701598421195931024627494502933222249572789297116294078512806993297263017066816395666359962664835830074725505456813558197739966937357144260461572746840782201262682998845966867997806918831507031150199559119837345344634123191440274722559787636605602698728873112902251226706476644814213455526067506597856020015785214009208798908950136513425214930779366541340695400940585850893066497437865157100908955706776648566944359947029048630447461531872009005971903948083294539008840121875822211454741270681464188206689220438713673693634416955104892723895890535384274845373305716571554502608558633870909682557606002960646850727985299842074534352973460928846964795072629728421008630008227144076238630001959270254356250768060911137411236743796469475396939824409017726148825706434399085099563237413073686664436041294008091645352334541273620683784035428173890299610624026090181944000679256497163496795304200276732055939528084826574444703017643049547961731537952831030594906677046921402462150481777593791513991239154268719805566741176955603226009376682207246430567765986701900219547912871184662649656765316419049641490403620798280269086819465275114826146298394351414541645372190926765677370941636692194938143818491238239088667715324221445198979347933457040109170916457748586321392317608722368434936341781641774799757363772152512623568568655746236727540035071546456337971079710073937800961354656572819617154304945101078581313563066107032913941222005246204107808370337978956556505426407540945019693331797307268401989865243259954411407199111776429279732325238982052553488597710087508526083256458080964684396883309602596479846045811962748385935332358737870808436245976123287468714825850514226823964682784941234902847310586060144164450186323716515594173957629880521654118292391107549110978615199262978486511592991684128571039735726067299440132296200645116647943455889879846119540394587400381511295707727267562551167496443044188182781138714049929059512783343624531100529841182761432188069435615137817920256465276867352516940658795967031305685117951706345543471712315028734206185944303061641360519923390125055764023738632030349207387967198071924257802250333255754808222808758184820171029583704076969129804630571649946285147915754998527532038914787821752811201453076365961251945748321824685378494767854715757754967456953983431699966931064675136335888681126441543105248466524976577406703377260127155748734938153022957293471866604042420720677530829544024434525017586866338469482662597863659429732908470286337474671849931777654570699570894881680186022822390955490603564188075554611092908839967349889442445901889585315408560267553688117968569843154082196062820148202575145872006311600246881853413424824951004914428950941043242575872092757933074250833647743622474648350725526552374417286397741374661570773350004926712583422977967688701212844094207222052086189646247876182574901527404146837274625666771358472030762851636092146887342509406083349377112749374232106758612341380419251589930978700128766518773029941763643002235894203572184518287669704605921481987762612469092639230253102956331881990829690325878873256120043979463298877773298010736103437927604936142769351468874495286850687930712495604801225906579839612648657909867698640774521863772231034492992549538698000807048060789134617097957507275499773376696579452432476522457305324304256678100810662738270682779751033846242234655929652691392081875914791927420884125550408595579398691118391765204675867212562840827306612505241901448149729293182333527087994845942608552167383756638963541563814630874723925815200032299081437885744179386742035200493993680115085777322419964828432768284623910656636150808101896466575232898483935335395798911330095997956315040073796294833580899857966703295640291792113672564603606418880983344883432738278532621709058658630237967548095400914096615315040782799122535478890232212222963104783940095644416345454608026318685988659203675249106624490684250214881998083947729369062758667042656968530656841943031996569672695082860392986306910974573338941427238712023229315651536268408162553043329907222942742468152473911479252390079963972836587624582439198290884359893329743428295860132654239615014831297527974472918013962940333676706196921681394304073847478924561695800954399747022297160162988107671704483859574387876402831006250501446756824795490402377310204832147471012818047748596179276731116575589896702332401957006176299681173795492259818968345033580518233311184260751610769600132050678850014764494983471551885056384696812602521480185813474209126124403578025679227002769996091337935780492670259318012735528664688666913814236852492478648854015661169057917008007534750254636630632304863346051637866957426743723350409734105006535970345179131491310905275136391314271694914721257559848824037032189701594191675930146382075574338091087408867164738173325667164939629948225759283576708125442790017312201437571777550153100829057728100251527399876700006487679214590481623262819500578743213713700816557438779702626968378585146285327316437371377837474713029934500438594293618206979105518037473965080940538565853372729387131188082501108643292172858825533939133234818422021958973142560443331464447575397170429680860950865340092813792103346445811421873163627189862019479454665762661455420273046547038779404058433895872461143490365581734591345300578922839655337451271326430433811234304915064720500478720831733931573566994897543850440982680427632096495529962689050859136590487886432110138625637544388747026853703860109900348569748002585745405680738432168354741159846699810818021514281728089031856370914927658322426334782971990716514895119843388274962622346343128957346508064475897413510822389712680365954263826476480961836894751817887224339560728993928337482109144892112236914102001715010341202574277204262428179643256968719442012235101286279779368927802206579862334057862404098783875201684675648176922293159905015933477790699514858060968924802830247947712291477102733900861052051975352621545412221203914621907155892251301939537323178204114935372332102982361123756251158415450848240096238020708132014766456740255770481213971962099567391403710378309667290030420301740965700020302386941505998431876934725849216664479064461203411125609721205945622681157800702670542718575392102266659620347756861616675582049675867966396107546857316096870074017237858697188511957098544466064478605569873317300004893641562000639346543635755450321896221746993866709167521924420822798227342076316698497736568488158058034134994367900950582413663483407569741422144269047428140355509158686806718967086631613768689203873770861208750754069461895656981351672116035611807323490403385664659120822575637183876419669728533899659697427684222109769433365693632055412274515514715430378047165452542644114391252202981820913348314590865369645105144667433422474992606295393050092995566726810738613253610512129955437414151476595833747808454528786470028363882957867181672291622271728021706769419993709253062148059735991019646155184743706793498821559129765925270406955676094370212216125327669294069438170418720299124049723109983481317405482274959928946090561207290335069484333047018035515804103322372925367992116617952278794293594252148308651285958686186665341917812529322741474031020556880569787574802483087865743774960027844747754946787104680449607365285125157893331825534286384060661437389972620881384026925232381694220504270233479676047007982510247206697478471203198790153517789038258588583833846739992286328678973900700527948528859661364590848523926592027534056637134132759076639459467715519398331379681294945062713567547622120702421744090245498503870058644978562984610643871481201532138433971099243130539118997604949845085023047377265114060772611232694085080099263422469655109997184086198130626783202918465570541325754450105720960988645619233637246646459023054349034292604678069100395896162856739409846563315989495301350682545173533748913477691259169758373053639122267606212566683421102907815278289100326295264133983411414204883936620836610642694912945759656080226614180539316530683591301408260293675141542577995805122913899504237043228495214492404764726391075721692208592041936703214014871090692943373290728119142734473054507954801286272123947865865269195609451426900383948829564241849116851508947993350247191288590681174805859200165617264317048854198628575883716356193070477028156679149741126773824068201148600208180146731874069950357967669780955686392875369695639456819299398357770430589668554498393403651661168877112150918684949302870480785142830703011109803172077708514539940295191571170743919994277973677646464768385980715004554762462411599062833117814838474048551029782053083749686136204997768798030438881937164952822541848316516389545299895443685322256331646479994120926329911412713820850915964550282640026809529225092497898549104214890113834817003891510372891656216056030486448409976504477060422089789540247757466406969922336279073333446321609905102692414331073702701650750041422143491836839018830633467884111704076968667839729167719560527276055167661014031189656778742695842127496765670836744672041807364069016773618151426414351970762025367106946712317224376730415647130044039970930293381169895699579268028474527776763385382037790307174518098600238284440513763705669906908694685165952250788563888938896824315655490581023179969742348157478899631816154922230503895565911816187075460479250724142871745215978596136792714578873493878354208961861405191109970324087738814977045707918416953939159735562990327468096869342374886088110894912494029403367046575248265185074854932618996146598552881929809238040936478771163218372504083684929365565690952853719472619964041486196002484143107550167447358530586146375554972454864345821024410492553470773129326138610759499287375548509928234941822214737046403079752606340493410552804583152608757950393189368224800802918865112345506507297759839831116165407273775181290163907148151782661115820345174746239455934027171952453494345227047309102637267281848819065055190191638250854484650817126096293024269713358093707280577833138173911380014240563317221952376196545597562841587668958872477561703743075359049058329959723623086675015204662951701983622407097184955511470554630189788059155906491064084998690351800272726359316110086665779883990418282419257878504808291271851544456438579711428390687902925086395720814736433600593838594354462402147741899724467226750174523610820798993508186401544740789935610237646753697782172617409197491253034048357121868927571314037912142989323238595120848083100717880982219844092076575137026037775581211350923058949657564437400592420311279426806643826729729068655080409561351169778227105989597501875620578860970008361008029846100523423928750430573102806489133430156790945161613522764640844510256660748108927079993640091798248362493873633271587283774673510836366547069478708208594127072140900978096926741994695896894258726280308781873646755352493921167228370613878775285035280558340849562443812293015108526569489492757295987842603328585810152207530387559573602338502974916167152720259309944775903509522701317473647958311583503540262660700772264556454739093988454439854369613789860968328718048107670267145006228293174253923496846074707966620926073056825616358760483325581964443638091288944336080774217522075887324311895529083316598138376129917888362143968578666479955960552741830504025487848265877107408767783262940444335022364803366293769332047684107728321320256459725867441302511528803691063941791597011011964654857338720733724287239768948813764907413867847945361261317515844273718578623718423885693741726658996666959930459299116699942774254934894810007711608412407592623673761130545905454059206952346991424986875529374328104723463024055453163410481802949879496647516402749177228364403292593463032211907340117641508815184721622418684058415400637929215495161107307988437788078479693973045655982351742327771702729366361129253359808502483951077899366494169186647238011546887922207606098057147605014224822447353552344544776774789575534118870383973243995512989047440977028316678196372018609862803284122017964041055271704004072937473001743385072459936473514643113951423205563128928440360789966476347996949500886675850889216823025748768868137558181452356056299639514929884859258871910208374283289700497100987234344190741331453001820256674036260264984387391452342577111118422762925071595588492161413944583898370958035354241885923009980573850500374658716601988997079431194051185703796032153653983509127326481512189671484237394072248681204711413860723104138569290111568914039010290886650172445863533534388956212267649857856796086079510590507277193395703550411069869922123710767199737961526994383989646498094812671902110539010969193314459628539116807724847106915361610211450031274890472407205298071819540314261132399440042890395629102096883920270186357093822684378611235781115785230735692222895903940395107706221364330434580919834262221726155346541076150306475239349381602866224194814026905830056311667092508630647627015053075742807675277630661699673062245622414343655507668511878666039280208536926903032929239697323594497655128802542395738887057887069449375176078736007665202426813039647063118590431635262963561680883731571065772249017506951936641113156420991936910406454103455602581435691699244743433394550907419962322637304082705420164792361668727130630999771003459649603197669307884209473496982445245916493197330426577742403239629281744219738165404175658420646769120169063005644361972779569987253241982708182141113351206878541520990817493887492792798859161487514000190970038876152180171827039402366648354168458188689947669595575594095128695190073045740482629629890691875736987462078358059036960807971842084414342892494012057093286733211039291780850663711426285522706740459487024787935039983401403105478237860024190110488727797019117104848819480376821210819693513862230595127479188452148353756391878263662698848660474338903253026689981227606529836301650031413358946357641397592050273245409756072483254754410168691929428934951048714016112753677713608462774734965861209030374542947977431777957571842901689132095640398080268401097960836550415370863089612678868236974468778163679773808898125523516595090026274351335774925968278626867763029023364374497905135400974616515790837243492538468930706540195345035387919555860506978996869607157861571501946791230734662875851423381808486801045637008440312115386751113069597524023237506150557957435856941439222099696057533413793833571857967718939334661559768425457193465152267178638268089146545063930250997429606601233378745200008123039412638830530046456978652352252156618118727044569368480000828005699650361910852174442350840297589733275235315155890941653809088909738397886635634598508876625890342415883173927510745367844269623021803619298647111570815783127717611140591169286265726073139595417677809871441304388538216676442908243700849069964907596280058048015231408561963023060029445770586726797213182212712134554981111824383078145221146503419435344604293878699648073589647677580008442811659001592431724394482069990570485820367520645609335841505791996129756676762181615479754148724454652436820009012815331100870597776017116082834190831055808540602874730912618998188552100419692458746131887404147828185864677838872106521365717346759004142008368324813310710210984601797107081067027906496611474784706403119836475379060693453950312876423361000760011263656024928085961896912900142178766757895466320438798254814424379208402153089215010859348818632334241734407437822228487276583097559989350460869206092952850196781023495052561121337222129100420578654120091901242752001317443177740081633547329881145029427814787117179132732408465672894683011734450221660249499237183617801993021691278066967425240511532364873006773043749971810669322453482056024120759486923601988824662445060825448101713821286866299598103392982635009424208686469122131413491407161139658964323800714523599124832585753095663688482256847369424509505496778198431065496510080556615793531142245237898737676066509110447222990581511676599412204881484672852134978873421604747070976036139258981600126757640219499776813319968415644047061530637084888991839091787630170410417654624071726256077277636057106318362862063495632636189882621767725272414664648972245706657164378635323064297225230179568016213122828217439497935035929373579333006163113719622783331143318760080692053049167987410223561951525362228296535106490949316848820900860508677286309414463776497861363283662128503136496993428729270022629001901098030083693003725397895929818426387709422122370001388003112807899629791633186509085326115998001250927490486366997843842208144016740131835578989781091402181804746091575394161761181888737621723041161212707695947819612451707166709623470103799263587491180634784073654631142305781827956234559823661305024083273422187986370135531131362814622970957475499872346250266241821618583954731521322790747024196708448683001659201564418903255430384025563854419427680254866899875752160863788905325599807049791670665049240046523024672750279347581048881409863674706771911438150883564448348703960159285007212586835773965371130530006394764398231872371709677280479202033471324541972458618830928563080888662105306510024611738374618820763496799048620844941974786183591552835140889101483346716292355286163736185890808926635932305264988104082677450022239058215555081798383737439862387245678538585188140717000822786749069614326435927485917781684633652119751203707254292986529795915160616198912258957067266318490469348440058629530619019496431416493852372176255618856794496498841419559003074622393512801953012167026479230317333227614591398877769302263974271292409599322585382161888926541383631137479236810878817214586893440711423145920041608428704986706066845152275082121280092303348388995575050399985253686001447818540458630125860542459090092810088445208381976441407635988727240312749240983786466036207197774847059337440027654627447101714759475580259991086961830533209745908276084216213984845345861718817757484339305975750453723763880663967547874288181973486801359689705194644654115343370511475497929997334411303907042146589802837183891614541555134455085229604414016749856727885459391854043707391354546449583646832654771494375364425610924815230544295258732218434237806303912866817761170307281174037318133783480491242860550087189351104792163100619807359869709962956669690951437476907313018277717283238977939960589979474324107562736382121749271872917606098814108003131203716456396895760604531376250603614389550152328020756628701231568861117003708710134749209912515520932264321383909643390146857851425511465271850130328081704608606499682074213750300638980980991072201326228066153088692240026967150387072857160347019247282252338233944089292667991249143002809176110828509204814213081087319296705371215272307841756322851977771505065092298056330407995924488196960496403418412398584643493561313449362138343642658853466016638194847900940326782303321896697670382461489383696106934269160293910731495772476256873718430975038271568024875401758888474312307470632648498462662856597877450950416285402937506291143382844912756294780578196971913224857035773409387822712286564787421485979100903384033199009415299287054130301914555336268019213830197920526258253209273900662226596761329784258607341219953187110264178081307831526654652845736544929779815298144959751389090387913224672423218412326205016772661210165588741948658000061357747376979233252218343872976905718914990488679047447535140754152132661904913346219984476330249693788435788954926087235484727957874469491172657122762027848443148717699050437161441992822258013079521249223558312308591118639736918251746422026048442131115904598087015342377388286025041926566101008364935355859314135824891813586648134241817710829934077916689122938738552631353540593783445415295908056038886232822297417974881122378341296077915768101858603275439416312619894232677105027796672020345347195514792012283431573163240951096364908672382859841871916246293591787558336472547034613355659925927908334512603236185600471923871272774431854916833198511651343783023361891478693510245130957323610623272582428455229589474796708047464758349584997784342349738002017778856156699924756680795267216840777483887684221542639139400002851006194309805896825251384565564219944021762626826669230071707810105105889510461220302427763192862863726905494173982321162687254719292618870157999769737305199745876834985467884226789679460223788098184930264142927451879877106619507999230543641069343043398653118620012899123137560208893165189364271881695593591100043493502006065570881740848587151916242948801522899803201964292486798553941674236746438288432546997349556186611269727336279788058951340808450364186371938822479080858378052346629722112598984420245102190063355577604238089418645444878446188895530714835297482414863340336980994518231644221933402496537807277953993327053114763215691840926244631721940236874045935659164450740209409190289448479062486359669217889083328896241971843111524282259290943916567404258981991262026831355381490723417519605583002706380397233317164995438766374868550348996967680746612870102880945387248688812811321819737167379470898312834449807629305361977147884169889579810014714279010835829558782078861494128439442269759955942058664949106944143731620937443123001299727651671332023754681409089639855874808051838197187465605261377661341197553715966698749376601288358969919257693584756344590893348244923132275117630287412982372085741839634389208084147486321186997862869216674707667209584585245948260930200397763884917029387168696495366762651253965476751656002883984705232034455367341395353807211772723856831314097805066039128000376692174198026070456867977610570960322944955623934778101385621452171208265351385566375565162919835011699169364351141315172445753319105678544640099982303220275638313341218935209757023270019087586069265609324275649832758595543510406153989173580869138116000556428954509898875094197659274041944545379995661495232270533130939091426389922556521864376504669387158734627866513361734929166354790840802466933917877204800979445292005064404533278018767359214786934100866677620301564154735172926515949117482099463383957397919420044629603043800239878108542472458280109584466116341130923136797831008213283184141744774607997573320855031793189665143275514314333021563167621644342666811741668606181375754673314403279673938895333471706308517244440904714694811604707228954342222480296212233857243470594491398693217316067349278810444078347884529843751197893201543333693429804408795047551290533148945520270541323104839835622815746000516743846183662526877929973694894910379233721932474400837162938811448919940321514511721469117055338684158673638486679185163861420981787780957809390647078815518179016279519709043838496097358115442298010549966758522281747936056447643503256329966680014549897317973951013433137475529247735202981452129065650506190538988525710496696150498712018121091891034163781138393153481302550417103116795549785289083437718883976769814460522561433690524282836888699053760881734204147631220079145090088203285457679808997369069155319172500626611736544142914009007864035501490916079113187912608607081190940912833419297790665516137396425390187051922071241306783162645914603553257824942868725277880883608928266360994605847768157220535647716883521732535631918200222096228081772394953900793473921212023771677171328770856567399134171595255599667102116968830725592272510962055455918410836183128340784502368443945179667781672690485939415569305207614236199020633955775101809451499989139144484807398243608907083937511557299270818690263512791431197195655753747808819883455012058529309479026426548826443378362187575028575266956269570168706555605506695406223502472197755395819023427208463811290199788806011807594291947106998246268084231068056522710912800333402488668109299937455662618271939036703826098369609919799677587360402757200271643692747478030417977514931964039332491184609390000961994004158211138421374683226033915152849750673795686031974479050943759511646905100826336854369185561553749276514419031145954930757081419217921829574462908224572812835703286702048113742611059853592097113877576802909757905206232210875877122057776281129132353124127960360174944054883151363884571603619722180167684298216101067534224462023298359318492434095549208475809774592871288866064968482889675253714819854371818937820907027749155255021776060763052482418378326011816112698252257954213377739197588233980376970213926818611928665912418725614495480554173090559588762957813900994316307698168318013894975937494334346470413515228381236139920480542931778095623086021300533742145499097205270327457324058768368778365344749894211900870554964584294655974265895157097597404003245977185900105601494780377979291489222281537209095056862964195382000835021598159400478734549253344303106381009346301886550117312415676002652110479140491117745577481653720614570142137122304818871449333180247081888052923471728246264919260989217759466265007778643014635629837407894112579690193497528133937434966424508108443787886937867251863286462904366495272258456380682980958618755526007616422551478236517016425624501370648683133319841785073441989296559790197920773003216078184642738397166122930223633299054988827681291889043329146915242123524456978511339011102598941909315251441905125789705769298822404943775656568375734325468919433790945269639997531530944599033909884546476194623279455706282880184167199811469686600916770869985368545764074705982069360457422612069664961610575901756844726291251316045618781379566864384025982324155911281715121677703985293489063627353853030922624302690928206597022119396900378925731484760918225638171878200496518043037580173730906928560304462229191873428991817255025786896828022652152441119135196220469648656265891052236622047049952478365583893974832902472090080124247250859309121931038741657226849798976836797692938155674310276122569543561668611481586010301996891880230518969055895339521542233544825774517926791537846286861621831580489705783192595492527782650596407573464180373896812429991834290856542986162079637295457511448389562149147679834308453836078519184948647379540457060287664833745450768994381763370069516053021327222849287131746783707445150757737667013955512959886289422636823984210746231904075396354083132578655749924827543647990208261506022938770290586165973081110956064321079954592406215797984187591129659002609516829854842564058325618066928990032512048930291051383257495857193270749043056479647317604382899852030361620820494700020345435660745105999900985330543910472519737686471096679224255494004950057715193925294597651815571028378071766456948825046775665064354876496695478653178332782740674839175393804868691957490028280532202070222361165652912344497488644759099738897501433169863064818315482858693841696787191968113492697379879046488503220640618581987344790300216149661997281284293757762565245458266645648630532460448613027316414186429022032353139399264293441658431949812268444669358261195254554318383006405248558763065573865597575910306647786179600927073995034657680403419187693948821457796237806443608845603851537469745802600395071146886210304226282515278088368097823630341078437832894592780764936123537754436206511452679034819784327097867605043248120522844913177068476717586037183436709533857872794959012910307044585124996104817791497694865470469624403361779887520449559461158621548427668090103099236147802230122288380679755583373537694620555406309704350139043979892036326289277308085056265288551490709927640425304196193919496946579348590001500654070915851899911030684672524990489538422075465499347840509271355075506830651551728393329986422209272547062018084634178022158979939999667610957701728591560879867430453299849220956256513322557430836837492826093023750596389951360555045167469267103077079019654665700014101592410057838274009655587073716715540448053864437067274219881634228228120161510824500345539720705107389410843759102654718478680238773812915312547930610671067832170096121293289217390644319264415895675111374810390310634512607667990601025385042020460964693291830119721793149776781211083505443515257277119377172427045370980417671671861153687173170563397717184701550000757353282182553893966167521027731346174980816572048986053777182688894026905197164301291562288763615829697860345570377511108612616333485334455045754661050851632942193096029254693314881793608741580888068255267489664623255633943076085880436672686511617995177099331194557993168387258229439853003968610249822905426706598780644889638688352416284643852799716739005381755431669229931449684805984170605032759820602560685276358483043604627302514181635140576227733148333919168733884550303492450893116205325890166885850253388531029250747722255671465222369737573817590858918019216223889944017684230286226576263962324965386243537288710374483822453357162044174557323348945626318887939532595125992812253898228259697338516131854056150964532857731202736537416396549182559812079170688641232391954681981821977161378725083828213144630092774136553491153295793120555809104377272640427342853644300178668977287413061321440664719711118032163386163943403156226974970931878331780095946995488416030766152638666148377644735359428972934249769963376843065512739045753282672504974110819264693770084023193968252966930402360059246005279510045514580468432766696595258128765486229668366834383379252116521534458691408009106684409940239254206214422612841829897096021368676617956969918239720259831652307555243930031316859934035498072687708834170952240399379088527207147087993169303764555351315245108240256597855378082215760014636588782686894623708651013935621758934302620864964189356567479838117125690497925974021230328159638171210675613725002124093194646960395208268144371537213519158187303219268768779837338631798899286027488143309753516986658103461830029301965281690791640810591128571175994134144950903620582802640145240965686054539746291792251886830345750727247048656808300386506082984040242329333681212059850806968310120120787137891865452390667906746911841633552878479089404261402067685902980334362972871542837291533804618515045030486045485551407578953029555933382050852283448038696576532656131803022846436971699892369594578901009598688263952271992652968003932560717356169095978408806963635671570240252761214156583129736045597795040431685923509368538920468325934778900784899950518880262474847863330144726523888914435035209209883399685552486344551288529789788185876076330804274361159147579148940385661448606358104352011644528328064135006504697576869747840081220463774959388412258302043321810953314168244525579240871718788980611241989898733583792281370692997122897703134409393201621166318901497800674926159571358202273903838936498964895155829233125080387544855057589051824357149727783083348359028278258706861681505147347486926725679398432717172874288079441851839903049529818392997884846584800216777652741970678767090970097410952066956878113573432800174123233948588168694353739488421123960903173423564805372604230232827450993682738299257154858135491884275996793306961523968644467404835625317750546467717728691809964314874756497232928821548500603451476831118784191462581256736201441758367470060836946515529818153638292617939177267119773176471693329345697037227406581149917870736810770760252640159722261316588571161874306792363542488761366639484418240842750931147469902387178497722918427749984848222370360340406151923688948027661991646437814815105636479420789339699292529350618199869036157526624213749611419754685923559608614896400709479332211052887669528649056469678333891229132016635564437530198940478928717737936837649822308088802349091423125327311138086089605393141611996117821647401752906980898014479445188907363728026897521076595833867942132689419164079167694854471073348938973159267950133281144550622128426215939162010802692699752099074791228952225503003856899136182008580587922417854879794988857875486562924146333606640555146668406493220281987237978717417577013120423022035853349377146107540816281961328009454144600608234278259670166478043408284878206957737683073830821596227858269417248198218456622644495973922127018792667823151962081280332216950953059500399775453797021492365012581775388631572047036226526789327098690384302543732287590448091336610535293512645361711967656038602408039901912920824136908815489433510283462147247616487150463477091549727393410191440283640968565446713171531943619307968854916845139073808417983429744744503290817831765391959153657930607770392040311939087141288800273786485940919906093464201375575574366725451135734332678356911617676166944560322730626473120393472746976246103494627525057388697054205024299440725259266321705750010683683205904651853907790243328581956371780972863327038248627381844976540978986653976276665843798266700893860427940899642504428429390666725247180030789948869023449356847169543315349350186330327767240464432777196025178046254025232199775346470735647766522404957016648632428700041669721517380475143676215395793883255440361898776834574475355169815742850023992199446541431301574716503150654702529623591228411517254220523364167367611698235097773146162258873437729574809587040045479671388862166093094423461829808269216109191822470229469773984140873597072191373191597663439370802999064167484430866342062614989437095151324543521963661555763540696162983240790776073224687848214859887388299400222788471393928994754233659454766927694226600436183962298599543657761264533865483123515174762101237759960471843555667896817839659365499967622466834663992244053580417295402014079873297236763035139872641974246312936945033322907027286904733640328428193141017783152422634303428599225775704917312976039887972294474074905339399592339084316108493295931977989181168327482771148655217398780856995236936250722267698529687687855158314704319538848887137865413857710699867535610078079215571961380458426666494395533386786040622785121317155245147676097765798737022979921314853615945476749417016764008826804242914695141412106324980167936814665542816133086243279356072214301651100331577207701193839275918072880863537276664676459950301822744723504756052399804810418121628313327937067160612783080097599966726341994488270894281441148886928617535067504185282003452418939263525357805625458867945634498388676709340254816573392540502309507174514982914360803991953736790898989705477243253641697699448547316474315563496415582680236367771029958960709732139472480818410023130826374002134982468415374196641829657500158837630501173582170834626020306204500219152796534446192910796403957759629741171500737228030492824439240967805238189650791165710625388361737939526414892702221937656747847724635258025936064147333685031626204576115027673934785050870099739484872958953216961718719785916177815410687575303140459872399069619219420266052409204146159935890605555156828751943749919843384735748419395272972704891253543336193342507240481047024586493029887264774795848186674912333743065745141830204184760995474329222193084619751258305926732175329326010963224771557891664853986751370071274724158156849822254351469675872112339983478735523932706284552489969821406913062142905303259930499663565975088935825982395635538605220139014545579706026188204333231300931695501525067574196322980127656046982713337661330511740984665737941756238066900541051315901219170875235312531718640270825373733271773536297638749329995368594447379939285826970030813220082628826538934043330431886291704963427004060607950402044114884805276401276682327579042211078150004417046254049893274516465748507342790757787112809403559938334908243990936964811889389402784270467190969338761259445448667673496201110429243568857204642180648744913354177454578024420761360739917499972579136714444989758592743966237531572145965225597467618378035104262618397294329117349378688400158147687441294128080711595014104289471668178411717737313467709629204092180822834038222897969262459307219401143179291166977522860573172900135250943570438273390068881825501185428264277914273112262059847093551248347064790102391777737304394430703731400006475162251016727650565796285945995341438722823150498302195972186074169247079153163368992121836734381697615025244034462851793885955826084589527274637725859875809338108736351374596185205950280098876715268700948790647171153231714289154338522791987338913869940951252751330360172739779624485020032176423015050299123214892494725038301749961480372128808070552714928246816285783544165409159230109039834560838829678667479116830937330465532528170680910241327044709712315294703549706085491381548855155512734869511151271535417397604663428760835344418141273542592443116634820303270573331132210058864350398451780760547282827479173076820696232645747027217282447683913384856780524514540638728507752055163959149473052262146546739185574458095795908313756814942556487179159332419946150866695885797634231406512919140824249053261798702752217697068530756222887987908337952365608996766619122547758261457699028936419278913364794631410814436702418903209238581568358418857701642769800916970745435845278846692966178055173744480478331908934146421534479360548115782644734761400133784799189423164923332743285345590898709439965886748559164423595575592738272869715059678889029763962770894458158365483927560308107003381008067534796213240008173225689884884165103440736978739259551020501530045145913496027225172171842800046296641050860523561622354002679037063950973940385177724963134667611530630134922562229259048251990166461117963026829510285240647848786719571654971690369310503540741802320009230768625265738388730685705068960522170101401626549021134044727919487449536922546834729207931864552248140979577753125220387300882201059870295798541396451491331649522569997823220040588890426355076820952125393179990222896273119538487654758732568673765466840744212754911497603913695321617558680345372614725233832645442440153425739195519100339928238849558267793247698701155287143491320289711269619390988347031717232135393064931101999945358456595044785544415974411713077897254799701175526922304498297591523473378638533629723551140355763628750507360527010145543637348682348387171195004942043887172981049241774214229554618016423869979181993010736150829773625523238723459201853137115648407270681960316243856928884982772878404414116697104145606934523352480532668962620184572501046404867283198321571671135960833982472452317955905727205871838489264156395625125311658865337187603403869615288002516179991347729072312546622608084913603450562513405894427212922308190358980333996851569979121033581767062613160506115056322115383876169043464424165515367918018773097181848375046948753396569244099544445326479354430121472060670596703141406911030717177350282358812110228588024516753670871937179397502572010053973711750986249174374868343735782603498725265154539291308782306984517964885007771401575877210729829259015541616391471428822979444631190958331905591708014513523854371941829671606909191287402291938592982905848305114007544471064737057939656560062323701145838922331353293205587250137816281788758619460105119762264602810578075530730894739012892091696669286518880761530192452391150788925830943245715549831988775764629254090810600330515650090193285118291799172605041347738234881220393037373998271812149344306650605342449596881213494833089789723873299688360322701645753857957484156230954522118605364756158456050668313818748838233883230310068218191376416305004118404943443031865540576636240117953327352269158898158490968172891713833379119260109484452633324891651834546675975683075071147823755354765984809762905735700520821260255958054767028104206907459750618720308543453789086703337652133697982711227551526566164562371131179725625374799876200745371108827068247749274593651440884273448907231331750557324383146956961498327063707764957915613274819391926246967622356289954993761817532328893481934693774035301593435245804798876299253265284918105110112583541454974426216750937510800756627778126909239303304945404429424779859666098500937271583553328652358850704687879756621642555287659023121614464536674188967580698413972253715073057971303702640316151520010516353310338345545916432333932176796798801837833170625846104359246752276048475721443255451708778953518902607116688857150644123374866844877495350946913206153594213007742982917214209430415207094488738845448049566594812928506303822061976464024771364926953855588899641221546953300279138969315115596261807641714888809494829911761208929910080855700150210149746497972087351296151504171901795336668280877175048982891176175363246386453980726015044537359145668139032234218353104996148521229323042073944019741853142968015787855453583139036764210972172607823563974234916490587427546215188383219027874241243118319083755554813384317361603458289484916265190224279379333079274176401485097836976478929049335558952302088314238306863651990919110240212858251021125789942029072920364025655499262718989071403074833763003372699408256160905443439952916758552150270647781674467910158515148424682774126512839132342623742010912225669913663424571204035996170944774919311867926784785416797795915316912211355677843728769175311025658093048473777972974150556824997069261071797828082891972962463405256064819183068889692132183425317383507502770282595088094706531501719554407880800752912446871315486618308179081089442687654620952820814294888978548046844856899893412560192413484139900329755312524644352129804915164296676120353453580384552993161659218234658441259045395777534297557101972569394661141136952936469510528137074260861380055503274113415336352702170808141397483193528869889233719446543433722770018236526947483072145018168924530464162134166738179492292731821351337499444786238809825414733883103621696163667556195092792370423040203604790267083185200954589789715908565343439716838105882425765043597343760457575036821782499108340123594426464070852189894310350910566999330889075994388801102063308105121425179093357695953725618506438195142635781852612861470959573935131845442847601013525478445556692229063282851067861795984856115589706009472044813399615417383505661852830161488702255800168257130773573207305814419892419974817250858869334337699876385170941956313780619268871198256485330177743336896175678630410491147641684284145873129415084226112948014701777919648744274814414115967407000069532488046951420278499385687667935192952085110011572480480029064589918868220500033507795525989653625207384391943182576386478708368530332488799571444859562242261651395104190080678963635341453636557765148916108353266577402937638739005942689809127446212853988125728020483217465647756571267241568494248770090869174238662189874174303133703494141271948664981994609509683288487649256034208609765127662478707343560564418435027448322740943953089306227312513726771174077027686525927743080075825844614802367718218895566394511663280085332617478173202335029918488223733529905225718073465486824089689210846174619353824423014846167097075177015285173775245604613536333142662205673136290952571912621554461310653903802280523498009906156835787107889792426517238854226139052656557272579056168811814105234788053022321915202150521317126016955306358911368732750730198481195211814753907838382784109859838124737815276574439691044766012706278665554501198858484493777311208650456291525780684269189564492936289965598205974876042844876786182225269570431339029691474681361567976544384152773045662338405302763390125483239047794009687094854429633305218582431718029934321082576441889020697893180271620840775712612921559147881839800192552075167912277451125374946360777376199182366025984377673461420779460586627673471009815857777995694598389509772156866754145772253236961382881533996791213680864586599844628925499222516580923757355604371391121108922116939927030453041994817935186753447382386585746487064866925210738047234042415521692084651445644192240221252817886838743548790820348774006688002755392736852357962412114532233170648751553196744411562085038048634703643223047824035023983717543791060576519255803898623365356344062359156251813922677180835207258880687487690825628269261256253123646525454426004616261885732567618795363415305666721002466481008303134437938906669406541677598172436327254366269966542442339337518752456475978736248454857418357559867382037940764426163753128896187517777610764396062289191131264429991122295813136624456034419673938463448480959345136650882671349418630222034724900736488848362552376299020686231291914943682074679795519245153848263345022648841302552626695188461038549201652092821238607225200083442510005286646193993712825680407157849360190395488095852851660752852007735225555941236288166765467380654851362553764704198775280440653151850181996468810106876901493835654369155320806664317487902429255426414747194011960562179595166651180061134588367552317963662799904496828247484725926496615187241960801567486904958370273601709196859694466291273951802472278877331314142675138648646249414271551623908251683747234324895095691133923733296644846310395221696729856512029697258360845234841569845384562749708951428957014520509471338505379881091982994795595789122447312455354831320119466955103621301725303235765586902491040610843484888737496331310678180267965789592535698542288466272604949910470656524517253811968996134251701575033526938621404136952946962045635881421397155677112849189675419160203622641622722219002245757475007479903309319911728549541743536047846193924813484536578275695132878087770198371380022277911752542044323932294123522555182395506663752327326477022564763263430432939091323451422769592400413219678268799837970041486436044149842145313136695803584283738843761616824872250779590240554768542649162258050128504726812266666578983597174821885137880526609630169996878709160316404564906334458711676662832585296646841823897084918853719946441639840523591322319531718636583033436062748774619393913021252013249479459317178248026311553858827910222024315273064180411513192889971115838313280659568362768500901802306144549507076162014400688275071298384733131707616465908360128415855248258390584642459204834118370653587055044028936879029286364079595306550049893522380100748986438090595400770394344708469537276471432850732387879477522231998051833667844978799980392233643112641699457026457851284448229049763892558351915635731071344795590831850525051032987359684646571390241969797455231232934744420928928396958524723933175529622624773871472510681972839130890265434339082457755826098612930338812767821790403667238445562835679278410334331467738891879347762546053803072613182201543601881610202261120412306491771692218916304722632652399620935228117616088734827800435880780542892176575757623739857130584874682158658048144407787521680605733144603282394417708945986179179078447102241175102381681820109514248253667807087449715292589333228449583703549231002165451627842687676503416575669024357994041680230605910653759716309453542805755690225896070310397132133359246455876987645571112894467532413469627194208884163955295437498372776599466514192866910281910283438840183175373228728870260124004535908764667452126845498399145020000501985899006411973782950828741438700956793173637140563467020645529023413277537513122847597489828970721246478638449934936763283387460897299972852368900143404413504779023155854493579225477518238839703503464054669812421292360923583566026453914753717066725868758164700976246479375542643644215843086442484972221483659075290580226447266890245301927724486357238143809678203301783314274471222251893075391677132615567561649485462497893865876759714364594629825608895316414026286832144510743294020004707470571102894746715202029766890934509433752661733175389829672123304897841501411170291346325721637550316687121444265413343355471606199345320558163992608669971613192854505025414558372109194058927310278681653570948857346329393296025810139490233601254626878218987519230820619410496841768618784377283001096795408582967427228745754467371335601817144732959851935714723983985657802923996508281819852022635715458454361549111305871935544861797307651591647784966162494597621586977634145576066221914878151003460167295320926869567687787563909542997788678413606163858045028123140594661659449856017097041141056517669479587143567366478147125007473278371751803398842897717235596823652028444884430192266531950804469504079364056530250762940652328908058060813871141346380756771005565329347922142667696699504963735274354355104231668883181124836879903775178132414124686796734604955169688190010797322679437636005193352191526985422143498233582285072631490184791289947990514103176283071790387314178904164742442846864385641228461915729788055805716983940118599662951004488578967064318456141382103282258686908567336640319203665775462862372385717151088593078062102343284971225776557030305865750840702170671224489008632523999813725832956552497912840208573589794142068930125630566530542702541020127783344719926936312768045254881104471328865444284022863157092698257678003758430354552783413272823148699426213723224524284772305468996510885095098321150855918229797035052024115042755135812531199413325406983545795000868758984709807019196032450694125601568429504715357170677888797629028590158022844714136877673759452154166111357054976515990562952220814182943812196471761436161700180822007636954625723828245190289247733158395668669847988863018810779239291945230240709253248462629341796948942575452481336734156377923119649728951813378097379568956573141821042049165571471800388379503679711485985772481030491681404058680607251257496641422664366336513510108566332181583519855436113044869427266684693381490580609605205957736186804810258015867477884721133923594859916233888581563928696476436747540146437473737046048558496764683095632445584196834147678414687647978620504727760895390498178287815165966124118785149123650149987574800100631126491667838355750388228696670748486632404753633534549669396083338257928571653519521889345927596762756089936181953696878690523676625072341417544670937224180275623555090234980923908687127485387955645176013826552800982470167234344719975319361809111340297980096609773141897218240400477708589921841077803636947172293558787852735463184028553113996097748610447071018258063037793289645553911626542730374050337946388116631581536545836471781130894942656316973456803485255442794641334108770268634963307095847512002096188255974881062631679689515706309927530617937270770263195161046729790925659901067952836737406079217283300839794712956944725532099465200517972648877613642579881666781183932482624619835067991712535064868457811707079096837250086723850318959905461763233810222769683123179741729770047534828047952939258122931119621908579034903146249462267759057601199706186648830110513506831061880171614231598791845784657187864077382564646344160755992420572651960429773216370541795993160933744011553385472602002118431083404680436184086610542473019902086291807233461596212989059765506605980460957105497166573241123977801376910830433946525162549875978228395696297959461856779695100309641127593574740508098736118158322232687136181329620521068639623254462889254044163207394147459871786000890134163635115952083850874344280182353060650940097737542033010246757608816231868173447578157521205383074128576128429629337898068200670068575632685656301864200312562164637814076890872468104510776907096081892614150646581929162533443991258293345097692405128807112925085248504190271643542492751130253449491916266132467019886858251976543141569376374367090091280042297562546641955624965570149428644099784802528760315266869264729341021305513721699746941581990932182467243717067648627972774916524989825523793133442266470753103410760598924869902854125196506649701816743871814735750838644549212027938964503299858446008038583341473403936287839063958661839402392597946963996660906115541269599343492910721948994377916541087383514282188337585181701158617054704994719169988459733110376339953483052267112037046575732164712637598510523388872349716290106746710055562724145080168361113092032708123294405771290832816300575344386411934125295496062334236716463427465636906588844463526095787584073728332823564415548941998037699407652280574736223547285299974272879889680021623950828354193960217761960526307429565640303871118114593607012838999437400726397212741774185385575114156391633181371001871901647256741317896542599326828523250393092807159947266774090180712747961617820000220960897592800711268349168152360238032655589478136216128015404314710056942004520836929991744710526454461042499679081597171747481374031094310409714091773283868917191059097577368226786810687112739434426039094374192516966682615409374492200076308236889049641279636548051397031785649403667700976746124787932358291414647420463935469511516337707154209503312719898007998958902574398542456615364145205823307251246966559203322058961550447973284174824398983437958654497525689465205565209380762326956235466874571029658951899483196817256945876369733913727299888980028946787610472431005070661432555855805707486363742367200461213560211610198391443896431602210104458898677483866629785955708770909837931368187421638780709648667203752019877217859706077384045240685996122587454277148736868988711442995936625099957260572552803712438838965068896576091951058081218091388762448387357150039353416010881088192138873875249734913075834775851364385269609490945893654377885471171448962109985139003202141223305339548073019325314488665679032022447611545214578983274279051722111284399920953981575407830762047990436716012549208352159604573153385993982002056360329120578981310286870839499377440785106066335058358850879717762963826688846757992011984137422678549798560511873188205628874220832183177314636601041493195192399114041979849882988052073398016882967433994828693619716316311390897031694369464818802248401340576838255605110183705362849353183683614538107760907014698317365500152819290794337145969078289120326019162338112550320480814018626422678904255629104445456450795128939682634927731917956172323527847818839156559806207991921869199754625712051220902303020707321585031047152433767154862847448371409461681965533467406313919686261781945405955151695486003221946657811288823949749330238160917846089701418896785488491596398959799485554855198279976901114621344034593058584515685688992935011920539202221914652211827395065233655882758494167527465521018943255217407750114360287800632725013069373101884955017921735024024618551936253150872283288138417048291329717561720213839698237416631660917737303191487358870684269022777787255426427350532905464510610908672014788658071030248934599461304994278695968378651591886532418282926192329139641547520668652394984082596848381221408892259822221565590035429772365756969050613721104136991858054397732236720898340616055628532820986735939334618770098321293414401842558510556309597631502507793904341147697233921310520465446354828216167992740562951462224902118491374650177843416989625401875132189006201713994179767978927765118833074518446620235172824475548050652485461396853781455598276650725801155862227059335781529423132742761125119609147703913928419457175722690178065468277165508197876324715509795935961150014829161802654572884346435255173635018378272810157232313094920607557023267640464456219729363609131630863444802141213658583016066596585786243792258073928215247789395937300454307954773823989905445210315706396896665576290718864855299292031072002047565392235776558576077051830815182394887659844187453112552510184912059005082853396400486786143731810298442045844198116902084673971699753436777610334780140955623201930614733504388565759617573804953415152343469448435922690175665298313745744561716159891868300722042064688961345492682166262458367962164301619144026785041154213814987651492926241484145005070748227045527751782198466959601389903792288662122753045716309874045022723211834273837042151435869653222001595694481618220240700735820603038300719730203988451209065886477972909837215524589801431406403129933511412082641908820079573247860277564353141364639331383620351661186956148389773950914103732493368200504937749069806731784448025823075755318243040386129587021180309743010747286663414844629302831934992340547913093381572813009976903598634742110003062798970489874018723328124111916360666752701258787580135632390783183193887576057812790450813712849020115943651365800886250789129610438724707135082247457349095021301598574145644467056214999559542064060963623764417852865878937314630679250276727843267344390055118038490109556264258831098036648147540017210815012509985086916897504285046844295491463202758750322696632604845665225498927085968355391237028248081558301509771949734851040996801521097589961605549972488216365780547905188761404905062449122312676532491476127567782235980218460838599503731748111499024723066868182674743635808239136451195859843164639637060019463406456635661608708282501962848098519057803589464928919342893180510494394434820367139170950479267174600923526265869755831250182424206977536509012167712133974964859363208747495063426632537453693074507360417617661456368809349273803350531095283091710827418547871138576531514350358787857676064417928667971149852239295354532474674693081782422967486982373608433557590279801966244906444008997202010725621896771990085719045583487105033987006522844722130093806523221839571621461302379810329629883427283364531170128556926306288296802566505938614486849742674227446136101693257647255225253344923774317022261344322694314082939371104535554627914893625410645188234641282825379475995846322674972400199569559291051237986967857525513203973502551979325866991764993833688468028656711160036259903235430898657507509255194228354260779497129861640192534832037625001431925785450746948990175943115894792728336112790762160277941020951718969983628429622644255630063537137142556261287596191556176088511240010020719286917737982860594668949431721994052075157057715038235197369748134756105239723868881925931481464255872430556752474264322703271088977381171639955125562208620798488569713142208735455300024661898799172066105909580783499781851938303772088888436637095432256276867844105337666512971902879275669516650785368665122007206922012942831453267047812336673917507160931729244967142922214473727419786139914324768570246727953852106374124166506386198703851122753683062438144048861636948642920058756485549295705457301514786636913342159047401631078167790689849756344578093769264682401057277740580442953489828351120074302424202943010007280414775297279674535438178742254091427170833427884752418153788353069987366458013374555296223726161116522437231101512989784372953819929662475972092990441336431677135191383092098323496287058375611167108982392401965390263452034753733865633506083127604162582079729967205228695150629480211540641827903483735325259930207192223370474409730665809079385170283494726201512473392471425136958253618709261334317691536260295010098848936383853725450033324496347312400627945143157882853928695638307265977125747235414230936760663779299644533003459598449163296388097918534550817051257631587108399674117736061243355887602013141275958395693849282414692980708064287676885728144974786640722782383153960349609612315990057473367188348598900050260724224446664990279196450769171268947261997415999377982234353160835677912801815067302686970163255903847919327286182269540637756363016234735899064578038772250999809374399033483732396086755032131331522115069863560234975540715230398630563869153985290107812867463636422062489821879847825613914485015737672472456888451285799061764566290502817922420678412930100005017095862948123984946695401939533911157142873259871940453159141949812025929502032830564534755308669675135407606006312438238705915520015783990591483702417109317553815633638321728874476881955923763380112929990223853476635036865165565414207727862730873427065008346735387558862508181767308739804912845891941842445091350963067994771358291741161296833002383193450337390657916536919165065471876991626298735905123523145995826631099390267252716653164176169558579126574770010508411219872995106971543681435241367704587293414095225925077025357758641907533986160274609720072901527707192401664650200958584252836725299939086762865157049037947715737069219024430279674360605389878142057796531585079980074241720752245926620868655864137006690347016901931161561917889705798597269121798815833874090655151467169818038721353893554473627164376190748840740091071689313817615973639623058818440225172203757829655888928256678035350323013429385017512247629660697066392024694614595527143233363308375184638305625589231055807458976264240522848234916701933742575762612438327903262766147588341858107534822567350843156487861648388483230720266237667845277964885091184138929031871443352513092755018348610122327316392873464466674024031748472597058885080423752605351608014843834260340082202590550840029444641697674819169277258483469332757231191393914565625732885543180068507561480450837491553973800787975928383746041114732459739945564551772770273732535073384923424961967271014175416313055675566162886862760205162156725991855116852419888740001348198454718824134602777459608064841711075234395345503031232854690214379883700244899057903727991278201523579442013404036131206382854778592934413707224544187156739140490451843761737142887398511329564627439289275652110354773603753718025824943498497064929187901398501223157162779747957187008351204852500797828420300230005761167365602713598146066183603707709774468463137936768021809814804225317307787797895442367451834067783830300732519130198303596452292970507285146518932977015909895262980032064213258012700662344729400805356807845054699846147442212285716158374713579454870734257836701660410801184455689678185621461529212955373294591149515186495386461808267559893404704545349291555250360413237586297234790766150279502988935037277912965261445410223765067684779977950252113105986636183632440304503155753515834252421991159715239794040495529709898050592690106515886251524438152853698036723607742909264424239401881902215307766455959927169615578275138313913838983530154534171645280973820968889397165067570661554728894156669941824453904243516213636992629928808403316649620737581018079119981686977051882955550300360773681054383010513155998574157440878272396417606319631981536043904052646632255296024294850135427073291397834239870477565617730426470851615152678356458716611549697963074668008306023303070716554039769234434351029730426210248188397916581369839165123474363914342074595124523935540680593747701549562162854789726840325944357775295599179980141397000734507329778989069202257201886340741440838787487607941628334154280566746189801405508460337226507111782616080484376127676769247734302489613036996266819764465135283064957291593797910573850991986283109484962376296649831250106242170423069752628312469717344326626542042814079555974099126988677250528665183961706020820671040674312238878230808720218944626703148905427877822426860239747569996412516325887487571228055314787883917215887580530810059527080014814780020718505912863740099909165360003175212980960667321654269420832500701404972644181388336372991775158244404796085397376883503344486012748844975210003210749472356508535404296746280324542037257139120687725863938904214591926756981126117812721950248512036812066151588224499199891688578788170271831989851263790205787097477246103388174866225190275718885714936398549394826144051872198081437285628894721786250922123489494786346596441695972092465987188342581826823103653272848834713534607352668074166920270002659279072799922094753698884672446058529479207257671791458411363308493789793566652762619354933847018173489334935608626923081332098998572778011702648554907056580273923759536959202811510123766422114345739964886172304840979733610973918861244854409568758148043817147646041203647393187688101964086960314530496834927006873457079971950810209638420232301141813294077857500111181772334752411236326042352484643851536765813408481333260842246085470911496950405962112952663259055624925182524494741748914945757324348440581711440643648278078276233953700809160819767570342709150072126349571492234163908605085474329057800559300344858349865652630289177834011016105295744078034807993748285870115899773710324294117914897797541310208423394361180034036723560464052984169597106662408519110226784937205586343782502068701355099380969087813794661521565078146814167793871612459967266228744982994888994548994996898557269750233845595873355317769384934371194489644775855772549720549648148334654659769400506855909398580336573352203059438435909616867651437682533615749620320463679666484413239922971405338260671243295045161433390959273353174409294193847297417656057870668531070647905296689189161682485199158086961552294031444787309690528983935663352355781752318573871724040220743570687722924018450822915683868626501711354026819672195636046159678557311467670221298671894286364263973209395865296751649246646137020923147809605817574767548670930345593937097076794347222156153884653316654356478913429459316211694779781571319014255088986955167043973843635521739659779342307431903614392462864423787507064066064273626317653765798709080984769996287910570885644933912933066878009146751632507276668216198269729179537405696488774438932232304754504944597217279363615101127682887097731264694255381674552340204345670075886981066271553158180911709350408370912291206885443281190625176822065285753588833642802850365213209652604301276687271891195988088108225642687139056543307706659444605352985354506525804799227804566403162576747801701208913011805120215986202956463934496400379419527853122005704036230326151899575652814505181638545545592288491516634643443400301825372127713307868943227872550475190950816416314979667086991821809567182561060939938577434637535275413810584901297071593584740337595172654026564980313646989302397339677576982775713016688472531428208373321571305074082890236914210398619939185115030923384220357573288153273348011658002983822815328392522373600455625777398149439660957051993454694226756126380947857189104775735999649450514616305770705691090234194570506801006533788998053496279223789845628558872234467745513272840262116780580718109089981288760617623784200421783799431695844365041012295071388441766846740853208717668326877404024665338048465022571554269464570118124365760222230016327900833521612221321032592250126780628981469298004834892341774577107999995797685471893348416567127345677023676456004114838750224178457084668929587251455367620607963141457211735031517742087557859323939132791803460383744560889569421928822905565145268787689895983894484851568192780447846680757121871368557247077056528061352785967132019290223595136499801617883724724359707417091908599435464844261955527516899185182478960245971099668972430027200263183455265625152765481984003121005889627688773285752425400904400720469117215606815541001054868886962220597285487020246887878123969396260574359081947793477000583476892879387184517902685613609989898524450420624091565133192251985703120963254526251708300921367968003721183327596235490808896296872223597929138145727965822080033759802426924136260213872039923454950592336481062882607759776351165790322000054228397502163737699096604518237969188517565462880151147273796022230324297408738364750986307889687185599664666223742658991830361899263412728827536874335284604038776043661922053185227696293159595382855295385124709735307046702279212958593043015970600499732931903696904301556336144891704701919111599492779368464665272656304581516583107710723723072794522471486714679772905165420795170779276875651467978987190888787210459935969165048184206749281595773291110755348643360998173301312258960573951619191956859636193189220208387894138202014750475880288273218458466120857405880157726255430838933120454201305298512413765487656387040430983018520596857264235812652270488091850784968088653388943518558346485791593631249747713882574533916530906484914093169132648745102918655542670224227760894230054039271105630859317063350592543713822700673741023099061327283043311389584780625975794043497563355255077982907053439916726624638016575570830024320446805255260597270475091919849062732488628743628700279766389730763681289597151488141295529155225156771556291091621772689611452059853738042714237036974377159477519840251480642945466431797173281827561747568742427751846228218651157590694408392051936267797057752935668855123028617826595438208931722041767096822334402313519188462509833433622205715174121009510457277664896481855443113841523218073335722358860374106781179660217645213759400899006922544400408349285565371863978344071132292949289614664490229754099589067102632693598525208411606798750621939525004169878461736408815473296259120185956153999318440799389955109566757919887645958684048774482974036524449688659862277808353145085069217883522069469663483559673960646520623852495222826056328499749428644090518914397782041453037152396311870323201571382608895263566925812595887341679341111276935927680581079555805072830300386646040400342416379301019748049118981910232292771698093146382683943239320538936881540025277215535744021492337079255285805470675817853939227379655354857551372357202841638954054302016283688738915626001299363261127671468755455011290391262890351126758997748985872629751187220349230017666544470284242967298745728399355686889718139517911431014474521700421881984211756755870984598610198851546365564579127294512648431898204787963545012889907159262875706914761861780312799237798340307563177970436526362827049441124384885033383382728059195272206519177635099470472683376908116911694628948852299500874390755873501064414678328936942943311267480815860772005378680815151200699674496675242622334640161915937207601529085967246681887461098478209235292802642943082312062627887534430492103294365467788724192174786425316548329232732156740719685783877078085356583242060242262249832387827847124598242441100292365410613514437130960740302520359597514299100087375096852986420086389828866962297958077510816963164626567787061163379074706120745350444824558986108737567967636079125848801201683775867653138805292884967386502548642381282237249582254623664170036104948512521112388900396836786276107057181053789790060043036688832259952546261408218524026911795219143375380910140607751878856684096739307811473653549872367608163997475807790609111015804238737536380411161749968615791343029211446057287159872829060062105316670069230453064139589647863926564737295307312326984249711806189144913532925741620801808193897762406747704432057440893401650012777072521605366735282730877706903936670016568143082464299360753145637015911943366465553295182773836483227020035354878198088575638285609642430588929810997055593251451586476072488298708528955311942261482713751431273114546253958009477163000796511246252726296336257549358107813306133014643783344246212581845643294716249411474573471774300831645244051360218088411377352869707097750407906333552612138581022768801883100088985186523666208298581680836036809935289310365041184220925708875948200123006355567791498221031329300258837896432558106912683224780073468851487362991843510649759297360867695539781502197451235628368969133251765220428050096537382501329733179505202888373365456844627357879992988396332400100910381765547498957569408687366022382263729657030530570256823943185615537266647665697443293245168673818334027421505241550140922524874421875604273339246092584643703388239766454001241307434371654858738023697757104299776308570508132596946208314941079853942731180530597002254473957271955253184161302594448104908699659633358945485753457203403614454581118435191895795884729515904784075590095783982603585410555135157386182364361743941071287082364167263448339086940462441133064759965385502463716685801859329128580934017437909955716398438160939286359962691210599112315599435151159965427121038014826489523578876495706550779849965837797739041234182081935950971481698272646149559428271091555069014677226053886765072002063401606365577267160616399563688651009873301576976436875534425755611357703275736343883168970433890080790470849698198544440190362014209532469176348161501247166327000780666353379555317606972241110139749045581114227303151433616160536207216089263811212336676532932573521864365796870157076455894155791803970464923626146074738284975827907887959530090000246799052020414343650053047422520872899056935577013501683518776799608556071331167256756345768095270470113438927634143607444410423269834821552042654394478399689737708862986395172043767332380859454965474835397846110086435246027044480386768377396610081871858532346489565404654820209347861418805781126421713458475061916707749716545633677009785997478110921469163932936445087671695591805965167069008610308511049987736730429232051340611443589262124667902178382159820479992743956543334211076231717443166489502346138700766677823241318257339909595771303387411950951789890637185240533895153340840795798495298479342683692717161157630620158094461692266630747514132787062619712548630977418730006171071179806277155986158165345076763779880021581831499668833625871521159777797292730487119870332804645180324926489669064664175259467594550083986052408535385973689244024728266950826068476181964267549016217055863146693655483403246584748428225673108344926834890682466971239945266615698719365095028598065945121455633965309500884302059975346726708325008610327540869202985765840812390685704774334077071026403439325311311722990392241568973029825572816058748340849450757014328966034416097163399343610275134354291441207292018526454574429528716257129451311083552311031385778662825508931618193946564277044247543447208532336922490996711597507243123240122174552101329551888220813308732049448128403671999307637179379137371044692158385708109458191569533918996051554525716563682566132781934484645114720155451667438943933444072745395836963860746632597154128998540833677908796952277881966484121109173443007973147650543001234569011542564498637489350411065456196529745515191260839664314314310273017588960202488080190413636361639539212399022788609210283035765868655000359122711228369926644897890732540526118741965820949016516252959246083615460813916154837627561879304139073482088503078817318143038095506487599271463710767371000718229285580971745403039899872505008509662896383798512329502767535549964046677250445697053711969564608928366225281527840082415794677016701163241054871749623582063018165662069199250551134519712939708432719011145802690409387801133349033484869140203026475464050478245973139191803302288152388154389200463028605471759597701575463647994487252176930881343076763412561381934774798447947539340714210611105254133982408236232313171913795976207582062846371723352350848147401588104399587554571576176238786959196661812134409390492310311063754009820739776835752789832796994170751598524123784691727010093513109977557429562780651676840097598928290877281737091461085363647187584600042580307068054259625936324008785055426672897172704459174119952815455494179433188290722645305895893913586333402767554641015984868315704750171744720817567572123159208436367307910951969139893155187395608976531694851346652020357455293823546958716623244131415627191986769311667978028378514192190572565650278500635882298892539389725425337162849336263630946615571454149003563168676254278683619757902192756244648890711127512564193365022002764843083679361915555839145280265563285711534976558127867939722323775018109034255165863759247618330852024966503834570505211514005585060339156062946593103732209267460649351005999337600697876831987321298717081479972394188644057469805504152352846051493273068869887429210189154580509601550604562363415931380985264195390066908324413642000067652144812104764305528301268581268578237946770165455493386024886442913013367320242515055168277172722177098158330554133069699789408482736589046595943475641109979679330141093473073201556323616840497206230509417199977677017208470124270630478124646375870712337051410995890051165497339094121757918291488253896870929710986564064762376188564344240513287179061444313624085845340549699528443751557652894602300748375678573905682557475554624973635587166705836301500813520089772132590968250761059818583488198911131835505499286590065974529654664624174650743719805730598823595708627109650243763487397486443535664211195316896029559130334522225363681202373265468341045201943222539346732697494857441496501408272081306230098279056908522966417092221877858203374582839733961813423785959427929161961460308156375849208438812828622940763395697728272254634234749354350478983826566794345226514791231687539680890461975149094220239642618850669321216150388937339647708036863325490385643285079987699987585181285738587679746093278366522297255618788162473898209744399950978206382489454849894644961219947869052011312881611315828914168980866292015627652432557975920570798834419883632901558077691889734949369236251238000511964163022824315672755939331279060987589781545470650470060716027546129161228363309068377444681731475196620303766504322143799548566384868619589831485472133937345013555165621772923258906141571041596606696065148255861681855719552103528156998075519436301617279610429916432499609157608611246194477943528251904450915833970710923921767256622346470362727069924655769343281396709243891171192917920364980407512010211533680465669882265991064010408489670201747691447248870390867918589863547374438921673503683806116451738309462749567495516447889189096054537433991570733987603385898635625924402962307045486061289219491076582014609439055012051285977852346209858300553209693067469594726180761997721804664150400224304414827626601053484172288871521219706698399925885604824018247804361624053609616534858817571245581321921800306153614438596378346676910403160482119522639154564235605515049505323742435169232784249005945401550578218308511260972861067282379872703401989730707677604002937918914983542412260691819864958686582057155178059316566556029383655277918750507315779305720148962272949541404318680244587280876480927026042363653577496812128040708167496876404140150468120124182068974036853633581165174594595709628415874176752099695438757723626080705348020688224628476972397363551127460752393351634571008704468408524949559845747951371870347827175163717278562939178040267562068031734016789115407441897719465427094210420255497351194668076417779303580381180174279047139095792931195358938368334629585398904929768023267412972924058408014061386441904062099201872751650809287690085457488094028330902804264238442782679060644417146955813964881642192116954082703433164036052919981450542370933440646779089759286319133104318378254053507382182317170123466448259659814795372969248110420342093544276441647660207391616173191375029607822938982601816945869873185711139303732964145863853376597122443191187944139135265336749210612943487626610645943984279394475830654837080476964821424040546117199713146468674325359342819086249673338111009764830698685747822164815431078560160481220998134503688550012709594620044680302871904703949307575759835378629852446549914899369981765852058015157370859574184830804493322036738187672665912905427322238832132864139284872776765278162518934448798524088967915864486260349216224220096641590676869723752590954868953342458525382643490964304158377685077211466324491161722388479928462924633539161112881997955879112170246489206973697072600664424951755487036305588869418991142460609627931286901266599208246763219659237542965226656374604021277453329168616898346807719189999537143025104472618022414255966990854386409720986720898124488260188142844998883601654536437180637046540459936807437706145709096630266172928151646007670532128675350777800341209552817512294946893804913872012200006788663185454776715686650907552265748297408955652640655833973549704090108938679790358277071234802488701039918164051666938120387815541413371533315159177671393066301300099005234325392067100431705889350433483246917613603651095228340420860175922787815856248046329919000390537613775916289837368372205402191523106737120923676292328546127452266227312603685986954645445547146900677209738724175914616162924651284019136844481329442488371860062675184757169391725042393851604475412412192868620909550503156237902333836467112444654995747036145316944927657105901130806008355104801226949762018305738384568601074279276609514830860886898450939536479845903541300258913245639487345827571396834601626110906360397854448397433416391079032209270425413272879436847543507504314209802595443029252211464556727128753121686415676812091507736679547040995007170576760619794004351328657004804051966694581315748754812146997139365319312754101958143181572641660901346587724323773526391040149939691280586869425343702839690346670238491224339941775181010694617910584367563385130275370611728353814686237829788792070536639425762149151214076183813464835621657530237582910741201460974072340347027402205416974791782384368252311634153032727067269705414329095438740641483801581821589023283653225148522525376701446945353659972262977305272284248027621614062413798326864422676788017398195159529829141441671047472254341362273489624658869210670191153883588300789474887906406646788437120249710099285811968356214932023800062942687822883432023801174850102563427265448637851319646127552275385600493677887385044385629491332101946547650814623207167461708151600189357294126132594764823266593060827270934268923468228041708298841771339448916543418347240816333297550976606301175285421638657192541945002119296162810548660104797332370742576926466640272461861552630182851341512220330669703452723259623682565163706051367159254684162382970113304455142109289309010306955377288274444241701964050618355516046414235732567073724321331783682318577522311392879587327630871403477567656177531724116034203267462982752925620053303512121650805128681341094304632745200408334482728431398467286429796823976269558575070602476952563359746272679634072449659810582221637040929144341801044221773437172997219167020440329306978309744892165244220770717534103191726723242862441225753341822194575480715147553806330833820837097301910349239581573832616417636425331621284695206403091956308062696070345831332536546773943748023232222459211899816123274414689650648955340584437633844433038623820787470613261928548787818463307261862203763993525372278773062670894843531830670034788040990900590010578918964911440046914972287138047518441322740152967271635916770895833362016008447292294739600672385008714209702862783652063174301459485527690046033260765427760619095616711000567563058863559956815932181623271510104631816299252251480172312030673016460516909006718071766951386435965004006275890207106023482715810906857054118912921719335325209448486267977650399322811845584625248751353095237227310006644804836972771335298732347421257236651222260814609468416461519942279616908048295278060537141133078353718187209509635081913467151628847995091265626261364652477798931686939261716960853265229449675380438443540693627296112505688477061370532773852271198377891744781227744721213782091410241134173259401381722290349749674985965477558995245656787510235815270421071939531175614307282597201719422569649443782239156765807104486386601712604911819338984097092521199402838981962017383057615523389493365756836749254124581285910204171816820766749824419012025504399281140806340475204773793468032204954682378853048564077529829493091010029416513960834471023678828805369331779324179364243233832631172281259156804416418821724345868989809589454807999818778121388311064106987362044289254513041371356934157400237041396448957530758502995267698431040056004994288568060652153329997991920510181221058979922981521583524402974803732659389217056280129897033344996523184156553075615827311344417890257187041212736329687959215897223528861540504282919486897204779701140834387346664740100189534826136141540594076751604763718831745572987535372777800786594500764457286212569008226843865128734322960152821963298167184626129914232703832304719152520097463477795537278628869751152288511082668053599200097910636694348973018407888572698938707495855903318027840926666264658911311900135741058691027379160459223585934178307658858039619684199051273073803930050679963619547977635558018695722243664734975774295751795981247911858411658232035940161596862478801119611070273058361039898628091742954882854103228987607619541091099640381335500104891571271652750948557092290216527535166715681228642076833432876152146756641851938284313580495992987355838423207828560921681217271795457079966087393871891395420113194166320921771111460929236084810490972076394119547632602494769972120940845684970536167603048087989008959619024754973716374673711944801798137856483771099647118965061176219419050360787375830185431525297495056750384583221537201710456757276175498400784064459929953980739872805274035852462992006769514728213256139329129485326348828316736100221050951042846333989578532924383664077935853866684375696712727244117288366966457920826990253652986379751211839698826261899798831278531871962608283133590164823073555586987532212135717852635118134811189278257696976570385283670798901809192103013418600216567597896085375196001619015018537280232455837655816556805993396853585525977434449898722376327566020870968874791933461707071514086361431722123308001020005242217484087984993139330839517077048552488451006163488738318207675977844973742063136486444405532122371404072441681665723776938712840815721247024100287125907455178601565414790756548795890534842035621519368813218820513912364029010842022346438749856157583820257613788536870636417573335922092231751873105024765540112029327486780609239127208938812992799661612245600254123027289934665267884383422364637761490855435376361573608040049574926381139378159105683459232254805181466994754779407087196627405978317641444058062780923674780377005233931690656433157628915199593901710916078228346571456908284547914144607314244297048799994478240112462443956724775134874993287778828882455823326635218029363104426431770609309653654860005257419225398323072976995240455433885866985216850708173953768632733789060392987958039758740690272862890048489258359837104274153151129442897672766086417899484687285047368790004425007802459050634360109991017391526828637086862598909348556434144377237955438125934943252283928519644216038364466141041319866077815824113150412175990081014476865041701690184449184982502767922447693049825661932874338481423912445998914433609396474174942553201734288707570808724612521430869512365651762999225362237184077267066469142561513825262805111562240741499792237276402769313565485683613972760311471458830418881264657862167196376274583603099053901879035628291254939066517567711324874459493230916863118489171582595346202360450105632671164533159672319336085316793482056705859031119743066693307908179642951348595947189760579801229214765498859817450460090002793860161144014442556680704311281501056716645117284560853841120672453021414078570682436409872967076045818157981048849903376332323805173806860908876970781407301200218940461414625675861674573434333014104973892750093677749805767682539863837301018412513965775812315258181748250342450265339193309037639225757591036297606253159285163607025324337686929923917714337761582705180322043286746111137432050706243975892971901415630379968632979558814865472485912243688823950139651675092721862720026993469500623801782924259162106626874796958610677843811449198816074329452212753123583882203118031234660466428147000299474909331671502604431855878302531053241868526672577617519606437800015175747715221013248021343914398523974188295403918938517412988476632300663840146488095701231298490794678542154307481952030176183602187541705451627931507302136972347742113888349236147685004974413115665006434561004517212797061368937535984783235722499863702608040799135686483428394711650679540485852644837774099194417199465919555213886006357663247719333937897850520891814863155625989682014027241751229821131464518201180362228923242671510342477047464207935660111921248283926280002104694144484037715276811737223304820641348889362036339833668822783904708684898924211291988245787556277261349191721098371435574927346211922410688514876751926676108916290829701918638407722870198088089892204783761170303870507796048776316485795656001681328216533388332528656858387972281622510535362134300128638352337216300408990023581545775951262783133266289593340896674565542430424745119317420423401092733937442288942913561161389271304894848074327944998779244868041855139358187360479128868752295712185391937812463881781489936749672131465088481438490144855788826563695781404502664233329740937912912982495523245168817979291029319236631732673285149339250497601685735922649206465388721297651874219239755690726691260050119453737440990087142900905142469078410466110646292842830801363008396434836491685138501780091122342381779523835528334437371796750448258862372330540930031026848453075069292803782548933058040370424588526589684144880212445608944395496343352438741072181090196763953427707389265326661505121304937104895249724886653547111383329916525470905185606327372888352185335833132223416260654908368825827842908792582993456367872948643643071652846487957705023914004282729654419174110369381186730455666267552210733148063664309003908803179676266247719639232284114226920474877360043101893258597519970203495335066292959110582196003109433163492260091584466218578466376281828482386647390778310917418804443046182745838883684111307625411347699431300244787444397175657670126820997357872910147300830595433588072706094714355789009817785765462577107290510578497956930778687708584846126127095673306364741106823049642492773965920572353720508095196442157029637397483079899003448504148087864209157081461970297958704873986585226941649672594090398904823551663697671485887838523912207926379921576821253532361904131840453187492809260143692962316564921974859263250904209852643924438967707814785440505084245678690011845501735415846460720047426836453516236793322156209176845350416415992769045576911494639541511632244670740330899192305147288950762324927736301305842625765062731581364334518266650723101257187734878595309183989324061756554056055838375080114869642648274647205617523127547552112676318987997547182227198577885876711417187280412626987106894776540364708761990063007958421810057841845658956068877923144043037122329047815892286393118163811632052393675515634202611308206088551937192471642832286793585926065834329726484218833736623500361132455812967514327400124836683053621812183694783101494212247257377164877976509921620740660492520601227291767195085249478475362605886123063441322850531854463175664811522634643462054581052611714804093701680941744978366893450227727959908928769021611261466562344926206575945495295710824988178141543512179089439770597408295605909678626246632806416589722478019606176480800532679378202819700059441784383455473840382045664178480032991502651752881842579793435518950985062067722857303937042184845614088085795339744293652536009994088895427832326281628300110942536127893388222963255920574644609799221096520377765071718436933538625388423582982358300694109292281982122072414942241134557376894026155281384295615775926104708337725114273614984149512884432828107577211590836338725567138175924238618686386659456250778716311337466369607929130644382738864370074622411481587297864357638847177236082327191880773974498619540332479601130358101600104903913095934803304691010329455878554352872371174584771631850965488658760042793987510471094807531537101485689998735371344389311346892867311176138837820197521627426467016734040030088049820507131945088920967901912030806846496382639344617814445515308859252006540180169060858932627625992971696887510811594101034226349969090860451672119937946456728270459038835669931951206688804040439401644305691199160004642322218109391141478469540448052660756077790072887173032338068924780908605778651733983059326329579905212228119785958152221785049190927424084663904065068626209870411708039808126630765917774072404354378914480665587781450407554658729837417694342246355555598955747952703579887694655538174850514094197818161966416823496753805533609870190746494898885961819760569520578823687751539245296579505799148075330660604627576636364639241500892583107462407597684396378499643628352987082828154308342138963332052781546317306027988845591259768226999841628876014355021541594783037816819279362003257673557384780381297672873158412825458000058852473933538295229504403658873637576829569611458001569248801021772513737478443276752764313417228385596840448602841332802336048306739246956749476575384472479889627006373757169269935981654972581975388999071723205538062883944390985150684117649731970980153319476056233678291729491525190708974934034528944539265815852417222363549809920392595530992678236091128964886542589626608140095043984835297068470067733863582420420682294744390443563613370518892886049203440142481959930444602793039535831605737585839464595413619373056155093809634578013338914692313878534723728773893291542452733142651724555197141430640871638623281046744983467256153902682226235707698374725101662377384372551132144445006634683905770112386065519081418748880353142234589740147753838693276233556931413080084153033123504411613715357526778342027986899409895278798277394514785841209860530957751143577984811951537516480017157912304869005209426826550223431312899443341690837375668533223620304658874718531804496614293147557534944111300561246280017791151353850429739102264125425461790322184154407507471730745115203271491574518041770927974849044449148864927022800043677175995312623206838959681703618299333245238869942165881554947216569255153881223103358120963990772436117203729371857990132981536418171852065651338481093447844443792155973274579384348405994508438556452018610301953086682935870163082936929381292097513523115356373497054334508790444025113303062382930765977281822405740987673093163225780877878163670787854702546120523034879988331012860064662155051216018280914661366379429921637614818088472551505135836875080229003068950001267408553625753344606763966585986025988131354612926013291379397330008225505658930896362440613353738165407756842057477307674322115771677089370255872845457256460429771227780487423165566790939397005710844643357346959120795072962924817755590833499067777930987716050777524981498951634783710462463341139287411534842030807683214525704314055807217259052355439241004595286919161128284225025267149031272355507123762612504898573823726102713544826902869374779794795370409390054724023936383130119237260135794143593287185742137857723493476728120916776833474806313139443535553729542262727693487284538568471776875381941514367107286509749990483715534235661767473541646924760075486132591690084762528757433608752245796662790466525035866732786572152644970160997691953233567092685432846431845180005565503900705876885018956178620122578968443528756888342044149828099659876312426275013157213414513456269141455499913550630619754972350109727254281380720135288700858695193230270694518980285308219192150124825370354117414337833297070385817538135997824065039535273455989856922875696669406534429793898224640513659662786621265866819064531618928424231780823899834135394876345443245261367520065754994733456583147193946057528146288341263592529021584049486355476564599066035430320015571645137273213036730700868745332352253396624887287926771391557279788365126132542343725612506332066813117791795946872485816663565382050021397014250854667814556495892961335172910157828029913827526375458620020820228688025609337340563918789660909791011587821940036782740812931332959954522718626470478651661046621801022195923279071783545544093008669451805690089727684143160015340803418067298512831117937115218822215744208185603114297188772852659903747489053193108283682530405835638074967562998384900987179476816624640895644217285873917261545896632025697499417118911404969408900467538741625691232795880454167382080323658257702717981902426736734549515744630958890430032251348588642136486116799931930551019703193813592941180052254634229775519133949754955531554905414053812257458010517643149215470581884081308555809423121239165075098413772105863072940171534723816616087595383377946167436415915338581282420817203847772870066566567861982175635430584238491198813977307758562462810086525458333876823764071705088893897347466650128991061518240031164648513495297618936293331251731859447763450291784480962978001570712797497696632180197449180674528859359204380888020367786145609970413072291182088072914864727762626000190032434662311389391212173732161157740346994269528816732511702913586320372396603232269790344817169482468219909900849744019933233509453295515364759825048358929394667260198022982784064699554561523599685630079607952892979803328211442292922041936041840073784058849999668681040622287117618253961032856299420596598112109520205792359982630177886244520858952550073396388924541879844099330253255995601021608376850233775435468166643770284002336730107924740915546882116949974834840042649732676283219116460434085172882545371867917867157857381864628854695780178196354027851976821924487923774300497114880847508852243013923197757054252278621345219224202023273424887421579808583776476497736090961863210237280230158213814487049030700674932079389903547812252171765313301463328713452958703378118428209743805476941537822945693776483686653640016530532200671812396933641333709466254459207047841628853770681793557374974032574861864217543811638913732935825176995364931554433683772110595551795235185496439932172738370329636965611684314547710834085073557606395844279467125206682063021128574529745068808667143058901058482865572288355026721372687458954123651089404813509037102893220951998275624489160024877087636373942194265415910825566743465167081803565801081927798469558525137799439805584576268754552529090255579594351723028511253909305614512613064349794792905431878665960019306075303652182561415784598618395514010834845678989174733661760244160167912048503938785803734223200026919145127640381685287157613690003488787221705646769596641153368910517846242130947427229207849533585555063304749961584868672439149121737498969263749485638204943046760811865705680040812232989296744228257430144477571259909812732320551270241333836951754576100217471772273985312997810008254089190931412797570406164778341826604502720519956810152549060629923460832605066652024104114178081599672652919322524088281188030790676743196351902520438162862858940734151068849086056217346424785596131649706174440747287750535537857706193833156639025321152316513058544583263880255571539249976757516422057594306528168034176542848361530426506762767267180598252080005648362428846743175034729800369641759830734901459407763024955869637368939480765302013730325730577631795084898443050371961151206387925905004436375396383773549891063263036002917819603933000571155815828791182945322151711921628830280280945653902222447814024703154379433536112995389369534532363858377600151648906964767638826442934379595828808066192306071859045161424937658927457835304650755798589641236994516771465327663118438391924514748460176308547199314051954006741717451052876690786877854297639481786867679178030243356236467616561646611013485221749274199673046986644632973149454542766706005019738576195939826143943214048872657154917653044202670386977701215267771544651209972979933562313610873210296774473802435290168250500125911946519665053889331021810803885744768564932933840383528378895262967505673224823520133031683613131810095734742380324676222352593579338703517760609866799405470424104231551902158214548547252629310030540849908375911405646541028969847094187223878952217112787788367556110563670219082993496574127189440471033426726514404231084231940838307088537281828716090784540463191206022912094887427320710526266843723081976357172430571811951122259519726105576666134086539012419186002160429956099738272326369490764215674485107078563384805315330030579382000468303761549073233133405951879133014861141211101821087362213141681727197783214078649041582173075166674550790601927319165188136958264147315560494587449320257077146832364907088066372232279695630654487659219745799091980671402932600297818185521615442144307721603390482873718532739092171941832253633853159445770512806626286565521029980427829950640203967516390459085400330641165092902448242817593010487983202840070592116628920324433441153352926072297575772648762110977954332010828119336610869704941913599123631409614887829955564204759665770142062541953150627489076041084908190271720287342177645185249013640234988815869814944583206145238718220634828892020955935859837433704335774256237374925920704415857625539468872469518441992952419225247703379791114800488832202863135998311580952146256017057591085585950258918336293746637498785442022933284400459647091166622652936843412713155070506659953347652548797110369916814893387724564487515357062827633859357215452956998187347908356488233958032450356582970970707484232214809598961421663439712151605637519083465427278077578809681228154504605293470491947062784288864608192301337715140318550407703590224207166152674439530411444571024515105773502031726064278480603793292505351496438297415035152963881566849089020083877463634918223733396970583637464216139744201551046937628294820178256992756306369105352347142351389469134296422658925407930893386228108326742300140134112095051516439690380154258059273457074381771362940742367590447075068330528142356054462486158270656816720545492018938015345285285231372633351601328584936876331236611320324218375912877077577298122759025862860170928744205823474655513485800873456554848284794097303413666795418818409048644471290381094889199542007316381667939348912565865144670517503486807689254441545119682589217875554979512509513173462512909624276787335751184597137437155360529078722538280600561239056460642082345125302102422949604745149460717674653249136750507447392281539440519992493182547543920098421006724053103004173227469106519821128798560641155793865841120288100198038876866064037545658901576747137824446819665737587981998488984996819566004374066933142003250139036342577227865764507525593330913751932163417192860503220123132907598730535299654186612936244857422025847377760401077451507977565027917157393713339425634364700001868714091477387407137072203596083215650302644222042024850675841610515465276123362916152240480598612998905418942050904613675693676887622413076188933545937390247426599517963646935759363838769944333708297874617116430978887890329527080550374273936282659017328465588417414745057056724908900606974101292520226489570930458961096256417715375232614814191018656407013421327034304853503456466709778571726237768572797169329809682673276998804289726696018146260111698982096978293516682862391187695353949746991897489993510665472938492207792359984699926613496364065685730582106126146376754480252652135273224899330841447240175505530922965144017882151398317155842894188834604444941743822534290558394181399786475897237112785345480770555640167310277453646772141227891651736378270846839072913726703801204070811316336323263255196892937070110827223488629762748273928050406528076015735019715346386663270908627697405809660438516480788823451876554313895295989787403394104647251971988734650706589962207597903340193491566099454090824799216499072943921150914687907640273401932273513757403273377598812713906106454692110855427419900286420917883833341226095859251813605984572940356462946078669850123703044916807895973114939366713596536230876146223630416100648763909158143200043343816538822219577468301296067147104671058837959466419682397415353919692509719685548077802175062562260315640489574415100863102909049605133779378585539270959105662503694773215443974114897940078643549558536397789736131100766238796408533972836503095187225184967796901358579815017059071622365847577477647055396730001366655748173920939697504026137699398698671855198911416324643414090906807157667557920484880276672583684943086223839636079983373524443363781115353877742195305399838507738047121648996097053272951368488087943398936421924737167071857545704005466200857712025287655435777986368314845702702800543558469345417362521673657570182765798394327323187816463362229681921121646417327789962810919229853973745545580287395167643157227578267163896166737409147389072196562052617408401664665174322090306355785094884625481717227512279280041126708811628278320141117286755977323343182429442046688564357737423002327264301363977743576900216856431356145116524787814444896743442172376373281235705819484352606437275248019604758957936162594013199986186769257701139300060284788929521640523782092076971200151603583206530243782064092326091283883722473767563729483271056981260517534837428648253433071957910587092559011048143663426604001444884353157194108759575277843807845314548491787110624407779424351204240263175828127063965604716333998316585315048967841859502822735226954051917323784934374324946386785053688746642266978105465931892935402728244681354027563634230551347928074100539680329419752966699916516622771794543992331588323638251693060100762765808113236135552253814045104381755063425968641955382055388304281233061430719569206715925819598133073733821576549027856366201220935240148161536955623212240250892351264837980825339815211303634313536125562651386305261590925177366151749852139343404750622166035733760033456063774080722348232620436078860189476262793046111007843374758081208154826396344372034711645882929717354317624797253781646454028180414842775352660118855408441952761594812187749340368837214440880795151515041577739337364254579154448658455463711012167391377048954793596462564009512604711267384385768624261884821311631245681366562987708536378737019179642664261710922588012292098892367649330695442894060877126155880913313104137146951369999151624188952507360288122476029317338671915056685554180522755276396893991080486319802329441352596659767623400478878822630699386829124069874958766923979340126119575745274393919470592136513005963143372786913758694808890890978043654004777627925376326994411753550414744570623656205562333232529697286026752054983495457012688965025657793252893039612676302631582369000545580436105688884199666550188722897250482985958878341064021677378649840029725214331075366553021372725382939473992859020207241889610005212998369471389660241210762446221857810811188780362170303853324920399785733567751099184703056171897674219025623824127114574496252029072141556431860849371039634355640483019310496824452548367803621907518175227007186151465566955435155328325304296667395666382021343942785690767255018325637432208414918546440071469497871306594769447796699715641807546978796671201370359891459591042179906844259109971162705097191850636865953798826864799602231153297090043335312052616593888435847107488697299635157110204271521936126225742021116241500124748315658880949016917956902470339540244610129918509511100819800546553246834333379901675822219238793352616423009429164935139438948302732012485455329032145435284113055278929903391118405175501202158117448075985009427758616291573406726808353761534154817848778260766559576033347472938549249912836119350913854496304037038057192916125040259988868532195485565159621597381769575715934251602950765578829976219104885622081339806335939569251362653686694559411026563998012444702940502827600720529302552972288351102191937416457640990113282812586122847697667798585672257407592489444602426398516520256991053437131617670629515984383279444929816104022247550342498872883447416669489251269362778656521378917371891895713198645430741950446294658885404065085519644006324067047973340986215202405371046243440612240857156762965057586958258085568530637899344147092417129200189263250823217516402843727148674971436076050378124403964689606923546008842220252566052756712743070737040594003444496343619828428977493669498021222741766525622823551223460077942661506141466021057055143877865916011260968112541360328442969457440665815062558841622139015671250421343299361862382425015705833471896576047094724000507608252285252048043590412020217713809286002943681511267897165291831865744018374592593911462604935159520671156424336937586383391086092614361282215806631305318950839624679258393328563049042566247474280568987254474702389181996784026117411071322903975071934629461497806698834807423978977211862692449234908208164462068960752447924182524160193433445533661926250225961088163085474710763246420850037944690757054990430722014751912243837189535588241763873557092254649870235443600362374994553573712497773152226991907000010045036028618037920472449188472714248850497254992957989409582198981454318154721494710774900205511613857065714563863493226999412626140678918750328243245441731444566280518450859374711165166076990398294978152987883439318595475528265757041974807635390717196651058909295851747022281644399706173470422144679310144094949550028270734660738306331821168456807010366725470412758639690773863499162696503283057873114658243611369256576052908934583849930065367380780617053266111983237349981917585503485488281591134020404786467094109876441181626524996139632396515439085740185883586825952036206018442995904965523692680430737437190534096576218287352355296978395945158033715055271170008284746153917277651000498686450925098416123744875447257618987007060291717000144113118499439047325005042306757992585992474617848203354213237929109707149237953293588755085965212406297919296467703268202599467896068202107091202637407767299427867064218908778264606033793287754675266431901301514351856420007755101621559786725542610023193812433796697967765571688181888646455311974909877544822935805566912310391503161730850773490622346130937270479532615980610092810236459524021259219901120592911922765344772338024461926213866747595561832296852637368949810798909517174427723833992131230900136705987718108987101900753372012400922294409228753061667618417476446511086687231500067839515408574288186548013023152485075517986017435941697903693969852365354740341698748682774495110356464504028626744955468224418908769724040434038374610641466118862041715220075459743092721855044856394981575061058711944993579161246222230714537171664157026881327712044505863919148115751351524043054736456336554755336693960017726077673216921016908232213269158755412605344663549767835012705508019942388040365616647644425691513192574273123035181755289563074424166154165720373497229282305109339562395376834730948736327725912023179580334535372334229536854535382784493539545225743883760500120939857636015510014469330115687405182894187263124339568646491966056232321380546280643647789518637226315064693405373804573924335551930085212815096969075979285242373827225946429532341501409715480290357872457585864512488190619923956706549813669450892783852608864439240150834671147756173725468541241679945068659840823196180345721717884720924072537754723926544616476886115226114611035231394654853766163753227405829496453147195437306517099929834173768618861808864981267804520832286839765035508024811685177704219919158478397214120864190961393011017957970958485953147752496063590595150936220546168002528376851893462252521796715132489651324837547551885427947448875644523693006230354903778304365262078947148447599550898130515789989929320261641182219878810140916822150966265711692777050188338573739995735584006439840818854863096080044617770638496678721769633316891396304216511200284234218249140330319193060802591343024086376479631980143119810731375657965572271843225837136962263758164924549020106001257994991014671100895635626478546428273980028730695034616529554432755519484576958280212671862706395341314034488586107880686734851020709965783757037809962534358533110139025971786230308883006106451210510172653731501612592051232998079429916470520960849826287799400028266959600718522095277747674777577091932325977497420771080064977184803338632622376785116937521494025255930348658499189517644860143038791224901437821786151260050518644800414267804262848123500210631375187333597451091606816482606862700234197349991386002436116012500845730105167104925534893530604354216760672281710948722986438324363156253623157841553559066453981488296514830466489794448485113923312666390799045021084162508940305889184981617673415575238232777057372480509274884965802077404530954918691511879899238371694750161718046046200413783652547567847429999390362257275798430533585786849823210947942405996513220285899760922341850912908245536625465111062766384262682057354116133000943980644706636072464564090897309772834893424565489678017258280911714833185812518481414510101269834300846167154900557138278558782267189879069999599066532132051586000017663323990266373965824560619202643777825738279514847837575472219895440558909574854471956332564597567388544915945406808529425225923868114791645332471433490250984651195789788293409659015118429243206837039947870788703843105833354048772954982387781489470013085135212803838344440209710617212885152516840349375427949564732675866846253328347776243815979688440262484707466213566376346426415023134960814149529648760937481967019480412120738613246128826608196394595497055992253583649751023019760422109343037939727038753473628727971075613741401769266028852691984163159385111656702022997742045417610456491403727507570900437435594331638973459815145440298051499570345839669297183407036143235623252635676908641069408485728081813485106369889607367736402784748058544363246762726224959513425364997716529971200037622010806054723749958155888668703986546702285644758344259016542636499196992467257954103889017946522478349480131663614318646211866320135781026481787014940763162184216507927420492690534056588960002914319057831455781492804309641789686707072316212891150839558087820199049065820225261609880263147624286989229371339518448340273650877723332399501028963997308297007190890288059014316361224305980002685821164504518600049001827960281921034742215982428617067826116931462641963410426098140526685003537153523307066557279258152716733474960735085066038754079084746359720826109218961477174643427754545070922772704207267902996306501039118064321310631118651108000958525443590087067452618204890754935578646859644259712704318467016975245787596849026482716101559881824745745640068298985694144543829720321112259454509771380238341503285469882835663570983974477039532434273256223450639978599771123773471563911882851445048577442390770557843047561848042156361266739874984620330856235063953550051225449568148337834306249694712459710711403594903938216176402461006481391330635764202910328424897160330287339185734992254111547200426572255613864317220159056141106924053754767654866656529148983101410712635324770955195829601998225564448544190678871722745501820015636031207810609449868360012240484057174991194756825094165705838711156624078635037179812127767186464437783885778099318215706099115353707815664705281370507127891411619574969718870214224351138664727990403315611382640144425935253957704300637397647786295751599663612323885924031396335950614863469595921371522805827768278888314927932225088704955041501709654369061049467720479071081075751700368232401489162943366693713316048795055622261596594816757645670170048019294142896737272747791060539387337228026015381145410995024387049087556698851886769412216667790615365043771957650781301825889675286392777200485925329597589626723430994739395251098167150421399157084980875313589340397015188942278860591193118834340488700241447675931078053070526000212084776046477432754858484933339376291553513003744327410057358527818665980869105337951345646730563160799924796810226414704327355233388967012117859792021780699671922910846798097885229724317975940803524571114014647527890917441004636017170247449974817670424662414196006339854019780254399483300487824953636442916104214266453746705307905753593758790516677148037666061178892395533446855098647304933676658426621779668621405479254651946391984646301507142129948947256234702218355483749814038659991110624019104162975466014795744302041673946426277763951142541903503455034198722719933865148928788745292454576581857681786580086007886313420507943398337575973694337737696117947153344733076150270745175952192489439887049022175349741104374556457435710288214594329537446505368618802758574079589491520424523827404475575269849639819582959003910087164539690403848083741597647452900561560407932823174986375938291536678077033444779112711822942041041008830958940648043025524250092148690013782959969010363536826652276893663031635233888920542847512626535588249792719997423690778243958624379408806122051228700857542671024167515004591564156297015914643222847436137808770289799324543741323713356930941565138114541659182284604332255673048819106236284886497424924398946182010852258651648474370414155728165839181247247070071226583059948778168172522978779397747333648017694769142756406670017776221535839012790175986201368412301628041829523593620778008977400252062556159685074938753637132775071830022142244302975030783733872018554135797157058429828479144122144076708759910186835897312325687599252482599314922993449853379677103219558809620021805828995744933857799527423222908070626865498215886425919708563811342646702804172218828801918076068101109884320880701175270881586464777395946077788863499896733493852138593421673190728761371975172397155979470003019976209283724055520353018258812030198833606420172857642503989849328788542238881220050817165936118683627766375106406496718031249814446352928230840774306368873402822904356294887219141852632851090598724977684755861131770383149036670092835732480064537110035155406316513978582033162777670926158793206402463289971966653688839248038016933144425389868713963318078589068153292310700774832249907882318795993336709245236568377837564118112732683857711196003253947790291342717240441417670433547979868119999938313424063373002294008513139424175293546005723995863144216333056287371020083960225625816673402323134758117356705952637993395427218918230435054409231524670027463571814069648772993194458398077186472339173364542345221535448359420826992302300964896535516547582808599232996617356483684420720885605274191263378985932752873421393361651359168682810141032010366215612640857877553020703565247365828499736651822295892918819654569489421223184741424503097128142992099155807994375433866441709217703007295800577422367573065384798091872798061030253995789013156395728534076241986108807090247008039552926730648111334370866978913481588750408585307117736150942875697389875280692125741088631169905449576879891991616480112004312131949480391861297217989080887189629430265728938209940756474820564589144272169499918038581503479820268795350584475284198472940617895815613161266782025462121332598828961076260821041653248250141688959166233450677427048406077503401228834570317291568358932064535567882698872063402434681992146158688786709092679007176987255755346360463033536926790676943231878969365445232531537167332650798356924606528159839676886460085023834227093110844454787719830170097162056262514074476435013783859516439156981278071927883686296654166587577287677826914090412310905908719695165880816576733396763282802093588807510583605651039703826254068769204495175461537222817476106693864497161530536996010381375891774847968292093647012338851927183288608063651436487290834777486265310045813285753271631800790210379043000892832577342801432266700261874879536595061209444370050686403636340744183935998969412313367110370468292810066113649634745917893288781705214171265541801977841281639198154088235170590944054919835100317224648995992671279210204579988079399786730526970371364705521304198496714578202380718125203363366148702959618737771784902717735341518470537136226196146897120908657945568297462646902943821828758289900451876055808945825097705727075123543244304726972910242643738912691415272786197344307906658703541674427188822367552543285986303678779025308557609102059961521719364210305494807287494428314466054561236160995982040296123293089211514299360949352006482969533929948867829472147135367394161966263030166775887509140412728560197826378341427174326222287161365992671770387724811316835555210446871265944352088024350589857175913265413505847426205624989233245252093128057185412288445611823130363141760680896282907694204310788292864933209977200664837713331315835866170433564947195564053912692209261466079622088552163963121215156264872641181610363753225896610718645080205725108309762003733724757597046918677072495676818424249528626866445340283341354622312345157754129715262910290123131583186534485673494892522316088203382650495910590025986239435545581921206578783358458480036763024481051733610637072253539741588198840202225239200681403649086062215555301932915741178352989483504656253128648652299455561868384899086182111111399242832425506488202779278326748521657942230233884458221572422634853694070239499365600987068404923344143822316940311889762001345418023279950569263533791553936015837296223366420325860080960135904862010045958413170408808751329939326038301251722944345610382446728320031097585849561346570139792390005335354256648354672189620879174048288733587565958811342488494083258143094722141858904925722020955197763286114503148673351684642059360853496096653854675263986814107776957897719588780905202750296135659616367397742571486967122092037350391656548381423902875989294698187308685425045922833136129264098931282432502765420336466456922836258642700635682153716036299736475188350726228530720044277691381976375307715853073417221316562168635689872187197537796942298237128720235523856838871656242567131920086921200277225649171661965987973964335552907772388019274518452675758661148354575358156240725973628651785352588667828086052603630975770539155882078744137285643110008325370875989504348068248551245234947527328631764733746162509879240771886443395253792976284032394982536035757133327805578633078609937403678870642988350511557230057521033459550378876632668916841483065336657683663514867743376973847640575835681111164804511079153872871665770589766993786532835879508019929298611773295444175073944526029527354041113044728170167894288337381281884141338393129582190654858819723656878707656890043029901286851609400250971649935667369003914859559554344754519595091095656026178470656726941241691338504964915433412378992313097018777571395252202590084027975624288862581391088085370147251215281647273881789059534801874305887978309510180905557525268050456479161261077408867297397268157120787756784075363279660745612755454528563120184444362193256388731479797283148556734580255344193012566980806593997723357738710583862514570658166289565987680539304069983402968669872266427470246516299795023216693044214704916536872748611723012156568614478954697364786733367694537066762132754023033049822474280087990679294604123089345640120160985330024989026904158970476719137754946225186841664470527526097603959814400862250984162923588227746139442201311456939400121658894840689187647262582236075881310260901651687540154223642981243283902273820591952594467243379332401575701654451973387866528912639768465669613534098603071307339228799449442328397472335794704956677402150172202357075928163284285092706411852335712978218347131158812412373472463885159776997864278950510861382258677858480007238589251640318561432842504282588478475508631063724403560078515557942172063567042025991918140710309924049900687274690607928944856889019630726451667468284017688938021640272297732556061051904577415920866459715151835158708789382935250320876090503764308107885654079769760069235265966304366878632000527321714691874643501117728722487446030281934003143422028116391460329578882397233847784340029366349561880984114345560762176133265824518173362700986046202255852025863756321030413603963706747012356442592753084673602597912895669877459610443248729738585975480944151636161494301476477776399864572744717648024041071111970394683414158069267556144223163887792437284067196935878213242170126183073985517265538963900614947009433874878836426198857225824342025540879735165689872210824126680225834994391628892455185125476655442872425671850063875059486175194502388142944300272862331383797076513768919672997726847320163358359324654185168171567204021338508367944260176569800390222720461877276324751496744076472178713322221405079164844875327616318934305108676132804974369625518617137507520688851508004500225000634206530537827223588597013586620703834793296403037541284405623000912268321335628195388866710543071516205982876978952583914964734561478057479094627573573085351898754183172704794472197545692767498571692376979024056061869388852419448641524464959954228903852112199695206947355809710836261334308603787133729212768189886492195966465722619347625410599040927611543578204891351531234940080505601168084277012958274635417848339972989496742305512976144320355234080075372212278544569096819509596555282275245474462609680773770433491159725383776938442904696752413813894392263653228949631777110373166655698676527954241185410293794513911926117285478688893943113981905661979848114903830101942215815298845466805577974153286506496294472213256140898327911993560127872084364072128440681681011351836761590619829454028568110979662356747859959685827130027035009574149697538483570036996957958843033994298185739349926236157930571694765487110378666027281806927835682558943761013654920292093157088499794977929074480369893914109514702955331559321403356091537931554345442381854430383298670163661100050028555865610237044897976408527957072141309522885747478261820976973509024584604692664998919626021854573187977603570004638557093053575571164131289290389505846030118714980195396435321625648629950728170290672939283921325915947830628003784631445300420065678723934343489442926911963544825988886293563081396695039339749167933422132440287167671276353462538927172769888721947192233236327532298371482349852681141746045306690699038552809525226804794682643553683324335985393424307140824140940913640767343426497840903407637750057002568677385343767277532614278781918782383691968702494972286227906494415513447027272035366865573284798515001574516461209256400986588039432683363735353716859695091747519681565787500252087559678579541169326601824920581551992337221169207372823712853684253564181577108103386495467862069511674557521877503248940308173966414217886481131720704699104492199953482253275083001260446412148317828365786701613499336643604104564713692319023639877273510582427353682836895705875312405009824366181367241447465652384504464792263214483415578237593321263487007688124057446758744458086855054614753560780652565261876467066024961361567160812650900080696402424601292329800188879696087008993906637215094304098529903946227861427698831754955767700905860094111474215216389326280520003328145691804472620885957375997107260326620421440921809976544144936927249397372813069029193616217632579832365693857495904846250141383746292989019988996695424907733089591181014364521931860417362436825449320583783638761282413704463469025087762698159661228448912365671970367759470644631220009552706405080879741375265166038783624103589129425909568103778738092587787474785990243142121704927414445908600620693588565009410196024680093366206329684041424227528700748296165760215811801352356364531455719266878977306348746652506557937537876943325437024957645723156561852177814223667669457995243312981663938450797891442360831538465159835590388369652057817464131370983795839944628797480951789104309000744486295119241339852747155220814156960518352850376742267392572390770978534913415054862723853298337053175074664908045842477325517866657090366647090140273527289388388576328886446995279220086421889404759914571483327158035012796313748649795804026466986429695308457400468136891257286367604235124800580680780655315251614415176593550309479858410796154263216981170914287643956242734778623717023526223902240119526571751739875110967696419155378260500548364340019791500829130098302603544119434312643579756409930119155660275873511241378140685841654320207125977806132182928230737426499868424372011933279973286925703503061609087960033632726166693325906431841293161991593572338673564516683430533857330159405297465736869556541775031840391188612148711043315190466298515682838451135677501685316732264182703872907006899935272360353155339685379475067689067270838489564973317923153914006047547923930085086195192003214417469712099842016491197660651201803141440844767258347911812786788226217453560881386645160552266607736995185179727601466823561544859059596539556488243774232102653471948554070116654912517469767099582733947431942347454568121592182809704170338898209823055741085173736651220289211657310048533418547142706494482715312616926134808988250841927793602644567619992203827528916255123395846940355369019892392191165175122082571556713491502942599727000387893766630040007839838490501471563587424782955867293936768303165670030067876610617775121625430028329871848439122603560332649817617272663595416116627914388798450238641502441848337648901462530185051263916986588013414973788940177200833287270799691547562163398650177161877331111570835425938945709728604159576228059568048884160394425987643565935627155550266834580536583423120327424076706748324418323900648855724201019011909794026798347962341576476279420572253489038040411766990205900238872434953939374192123881819759702621634350468364050204916287273533693982329457323598693301517935212799285881001360313718758407647992512095399164169816350217973825095402462621165361651334056033569886765183270513175470273218710135933142469693266541338760318680694386389660398006266649684422993121382225769234805262720330178120934986693497718941357136859374384505238969421382380589795034030787694380988840651325981368125704940713758824993950656175164496798603279605589719718786621841262864405679682194516178222174041823615401689873049744153532689616753368040902076223200908019674387825592422994461885954067950412608196899262145331636665208013151039535368304055452150816338807270266313694858038541880074745635791721574692949316281851823592938045265382656974366453366194224965917479528783714834413900995507526897173788817562991184399251919871816928316310999677255223781250916756719844237578738237545505932696126018502000623100790482597395269829835527491636465556410158280070588743109639603926561379310253164295410473060078402847257265220408363816004696724901360093397136950785764246946098049547126728880743149367317415637690687910734842116147021160697205183151634466301043015877799087382488488992677076561523064381041656220443869845844943534565304912812321250212257892501023763962663388283441534139418380951837377783930090969176575805954073153689234742550679716094436475695088682643237260855579386041689024342230122277441641412039452219810090275766635657896460111054721608269443002352142632597041967607165860562758338828082636623781237118673294679575767784371016320875386812349785228359680782195606877664211416369196099495755687672141887586155902400059877298477378187241227240244376302984793639356876690895374966173023654273281393537792984678193952788457159515335070734531327627095655178541121830397488109433607309330631253576212700437084919279909426550870362355640356725748482610319659898943372591580692061814325117693065510273105353488017100183317460869909363054186882785419903418415483515336668875769133604664553886115659586142483098439314736195998417941171105211984816662933270685161042707667875043116715193632741893795002903599637274924860476811732934882343108176393965498637584014108133679281075873431979906102164764690497146833395961928034430124431376710928520182853795145226318940794401368784780294889300046014961331750167923579101611618551556086943439658057100235917050867585636225176797351301357366864990361298636291103194191937283559865993454721313293468591395947583667915767658695108995519865811666637189445937736852113002715796840188283131323283070098343724848436665305974635032520071833073187594398053348186300328662142442693058571653029948840679604630540422924913254346587614446783949652299899461324271989200866571671084096175024033873402690470713321501305708837887303709259495628311052673691171746289981626385803575836757393414599036968210402793517572842390442687069704571065686164524559501864642207473990237592807821704613785834330039073353520388315168930603695962681884854771254292024001444734547741838807882688088022154749010742370032886013552581723512185578078704023415580689913753757587045521400501642650398126204836147566687504449017661099105595539093475370760992474129148494170350140563996961332927516974967376565524791683956361955307061369183590070838645607378237573531404930013337699982238882032897510223253561787676509448946121062921491411985732691929843847183314225263805675722406257819206267677368595927512792724543369397438448903349925041724124487275102287383123363946009356503296187581138940651953073437262114304828821967427000755200357275977582914922815563999366513364957863730299194973736709134529627022298934534374686146813343928190741328372162694848349997223570496245458678781311312753930188713522899020169680225937280525485249492994322562856939032618038940539969428492791750656848211936764342218493736148338007431574528640770968765760695574247798245759097717309611888032846539571662096927142839848447744928860130257238839321799877563502085522799641363301157756346897591103903400452710127527352057742927186668259572301215503185029034385024766867834435819412541776373149368084440864216509642137107744709567369222795779332516838740251846027485109856076049957203025101743307526346082079983622616350778644183962785185891750360935687442966493233632885599682296630029468851599844305114110854813462212239179700746987611706005578085377737282617929818778345466195166105635779475371825580744367390628886758577545701403414232022425948466279172167283861474237676608674093037807967316468338502005718441812408930650544483822353027771210883234010175474164585013820700255952987715161324611354191005599855062873517233310956082492908142608875684837829797275666901781329576118840457178898682001142335161876408436818617812271950767157161043252241707324039758329229263055928439504427001835772898792542393333145375584002781367710010576101206660006573391887119336570503846306443924185010969517848568067095273680426022670488022212433588766999521895901686490928981923462663802524784906909879287047060969611345280830170895847558597868071476799192811818701964765294189428134334649791664786830780469817082309374653310121824156406502441368187772791316973756589525571657931616062016613599320749650612472725369662396934026895059849911967048633290183732883514169865440738395655063420542030861556826096439542673104242907305694409449631450667836251976430484229195122042903981523333349772012055786424794764917015143061067545243116576761407491562747822295005657764997492630591540463756895116708602783498900735223034688279580340456848728012276654681264876747007430513012060587559781758062441950682676499518363267758432833679030457913226224660656165227749791055031461832097981797566717731610116554845205666020665472810167643724294848562410585039330430468734840448157687183188457834865729257039531945709088653253819413740388557338086096394381344927450040290242404024913260934506630090594043579931927515907861138183786625453297870905407563520616364688052482713390038426377521876806298076741549572233350293900164480991435780472726631157600526681367168926998785229450046688428135760019983518914238992242899080924866188580824121000073014797884038638971944410054831717332029935390998834490640577878321650032952711986819777085873261353968902301757230889032640189927068567304163142310941042036411482953268128920221292555436904163770490053558204819351895945764665088333837430934740555572102619628078842573894288583849968473233603754025811143397129887640940735466063060664012261259976119297898013508633212593337762407078811850184737317153072253046816432459366849704368336605970723184294252303465704133721109870569685092686456211676223265623876882943056321647804635724704019171149127442004417602104046654647309799375735953168374452140700532136209849311105029042534861122269630095821809282548453291239809588227687810068911038943577555051342421929201056325078068894271779560234964618667611535561255573776571523084012796740077357400569536557345010809544999618405765836456393998512749575157319280104157463246086975180452744788818221420784674386400195104665190454302602210858823999546806997602428288084400526424098735342493086624494442582018457383733537593491040260036895405957154899432432626372686533940770748393101676785440072778808177054002923265572512834173803384918201932077636092645145927078844047765541337259945836766096338069671627934560912574631082685803065421281138430658934361005264195098475541343636729222334432637799475688538325244752760656624971803368629776076649892298816286364931517298509896013012236066361177331653550776427042799433060687907140603339877231213968007673585779692000709506570390994630561783723833417186754052605870901470251409583403863744900414744306954137332019775166148565459939410064222029492768913215520987386693654739403435429205221627188838182904749913393735253243944258417487357736235098299780524137157548205273049460895147061548271739994717410558877369215442933390310562203315044206124608942408888491104865921556752344818716763055118276283948098561278193977852293620029082598390139235748047051066099921992513108681417426176879866270850755232567969828757183484459933028672174225814991448271146347235189633030668273801725334808393941468618418087471936638626901166984391127161491363626864775943912265602335371765512641763447091695832878355153189687034482863772803181510270906477221174627406567309838983246468830153357988157139310286449118039925271575176759812238736832793124254280052400472315144848668047485838745082156399839100091903804420773560829735712883303252211721117394186183533729001557438969731970661042832253737835985330612590276026371403732814513504951436594555221796416455317913162226012933676319329672016270060731134067524783686028477648710758584528665988665039192380351734053738543452877066764148089678298568187231229378056734465766585027043258248062143196458628110665094146938373488356128425631839949950140684060831592987535575706080179807247056080510016741922646446849847299725214951788269206460826461133519940160090447030306321029626002244618468565839850330221291475875277855019657071089597057998403588409948917908829158841462090071359443146543817372231101852405946877234593855209786566801890935296889951699027917220691726472958126005179150018847371877681281523543231165020464516261418393021576184675984550892079189174899780658389676602810882077024800243657450535161705814992071956509314303753419377850138246491217889276530008511519907643238642445148823257622993133725202867339904493486718722962112746915880391304128797010935132999349174223206953000838447277804027935862547684483066799091834161412737986235299897086432577539910108048638921453976302817212110526077995926604147956479495395009374522525172482082442941752456158989136658200902817813028463144094392740728506054226644610222740945296818788149410483131807290873897140207464250293989277768024933374926689677272458009219008844634155265416541678095706857477638388469799563189202454509972491080091931129583485797045238403367584306023092252958796815678574506328628610209022676051519355272964747154675265567124195765003369160314431068636816499878516447058726046218663636072006998612320121922053358555135704938148255745158693754662031956018407546587023729459423524912542742271821363570672693340722912608751963648955454793799570090298024329357798324123055307118769740683356199466731088440831886583592033792221066591787240672322537773619699232220709287538025346127769455469742941180669212891376916824210928381063615087242932794351231980897526995151050050787239295247649458037176380756653289331536398609910024106776748509757018234505369396247089471898127146689891245303898825687950204330862523382240715612216025145513076530955353509539748309678488308122386676998945448567826312500837341274810301828436160202213457067795365478599467457197046779742387097372396914258152237733935368687334346383930768397058811724404262327629233452210103793394230653968786093194114610706532636263004612591189512821803023449559177110167847072171721845087756406409755651572758882952741626560055384641410897863281366363967820853363929257123852487518953007467171872250365970260064877545511734927883548521095934723769398193620863727899669348035338222173324083769314530516528295710272277521774820896507816409828769662216779440521476879484594098473426781004997467970309170722166478511341247635926770481219984112520984826726447834526485258436233622927589640940667707803137038738220254919169136065407522766961822461444498706639666062520718134634131596384509944649032159345039832967676336457463677842466450578619535657006151319856778480238062422420824595285438941716398898401673120677163022110188860654781427192496586213551895434877820637918540435044686780784423952177194329676681923743962591762366820346278991577657483433257327656390854956820009153502004919871938653988547692496404581794263261444272546863057553019827376392990221706405448567326752840445298242116420494749994527671647711814720559399891098158034742416705095279542625213588157705943245026987074376706152339108568533593158833466368339124143184972700869560642785109980796188641965860886672175028833338899158556019005986648572058723514395762108741903204350687961590366522858021814446736930638121945440412514396118008245919266687021498132517589918868751030101201665358208476124145388234648873061268556315924211546773642226802496896803993990551287379103374412373574027851278100488356965418297094682357815273127884801525403118045272620121941537653630443175587758580743824546206410966002440042045948321977316261474258723520062042295631336970376652616456414837231145754006296402910592530456959752526603901518780532780540831547400500959193688634926729060166037875032570288410131935460457605375121787812573965551252477506252346748555076991773049984199223377761219824738084119083437374071576271318910225928317530055310805689886830430206362788859182257335924183620219275191301511456632189862855124854628621356757685331696779971095475407702531903483253263758304740941464268536839166633812226286212037773816904791952010991385612745146650610906073725735678317399537444622990420833797742177719660344376012055385470622469088593410109777608178973721548380688720713720537740343488979578734772464709115148234338002685828054816085727623029707587834947104992268315473025974902973851108708894031808252356000003492055737435600580595433803204678099148769333767271850600367232777097105821181828483199410398618914463348113057101069306395890321381574933019641056991573303093092905550270975508206868134506567333230014615173034735990136681993767433228870681391744657482171313205423824852823990718812756223839020064287493417489255720474063391969975727027179503488445562170271073931585202085078283347715570737189539956147751749854394931968677267739585176595870995817043389590778294636026815088739293506375230455868366095292698552931303865156794749473596705730523880551952792524985926758995284558999843873897197968996817481631053318169227383367599986581817556557805695526872950308005359012479226208443611448150584324917493972866095657936591976004692369046152605486534003925750498651588601007105150296255992159151987454224419145278749041665556489478718253373898634541866860220445955016667097983317942943770443427418429452613205686591699684887127441192987554323244114347195705918756280524180538761285305400417142094915771580335625798424728788518470218346917365858252185560419670912335833540607549355688988269534583133851403742245994333104982201681888449180977867460993797705736460963094959019038129848149278908626262418112220546903214426997683179786923316008044685961032870634511624122725029329254045610991344625250396263967310242473677779829794363453463399229074955081246536798090758287473522464807011508750656936681320969455252918860263379621044047786207258946226226490289322403612552957106488342109075541824749959158704256312482967986827008952850009359960791886678185836204664398824995270324902741873282409520876367201365793555718990325962867411378370512024490034050425543321452494699680843092485839474222280089093488546329010736322658607370756772844862273754288474983350275880995215330874476675645508949939743602483580058233177470853712183296538514440481022766168471940460785251074447364259394526744716323707690561088709403528835305829334720922753134103714122720016413657797361186453047473766153623145711684830551408621604201144320025864268122858884231203910669022497076747669371741673515440739610480632849440376537857695500111948357442093139237852908743747333038001144284898754228917251880979363088829709991577762186728534971765967371355323919736918396341422801500369537247936403462900865099272152198925428253702310970450238373751322920574584471257261535188197796782121455455753314561168900338855422973228185272429721533189163328814863679302337634617068417799279686052371753488742664310058795277070622799276945140269328583788894023400937376371770850915584071133270461065533259843947755102086015831142814317676206225248501800631823889931334544664691819664994202691020278755758195480083082731149635858648587993441169917372502151304118319855190300673877501057628914036987121811259628096772684449175725964057034220231124525073277735998797678874925470220402284367453806570108992408231702060232725622669289681599774314023159895297391848621284166529270568067008436686432496354935505424835651592994657515272731013659613314893415548934931089972143574941863929150299490621980677906708097651293815885016787264937933051342883521126535145504389618614503360778467442411788573797946214409232664016045623239021545985175474873039314497321862385016774272219438299488306669456831735376213396654104446675769936861023629921281572462741634055788970064414009137784022943739443520681302505677002919802416657090023541879890167813241794863720436701913404608716313774384872826417764440022447402714781185886943906655464699743685023786813132074028590698232100664886379016644235143044190190332734973629061340246328566939985621947030580311982412156142469446227421051222951016430116757277011162256880092942468827186079103821659010137539899156768424415733124427502227316089193722175487546468751192111403655033828220661707158279628936001076185529327854517971303267720252401872018182249849786291667627711934241006379721560645935127802893463312045273086349071693860004842564326266831810644004318328752672897641290039098550927569687745597854454268920624985995625905736614860082808234910981211634358193172362384132905574131689012406256660328361410700034451946213576831515623378111252503969406808470736853186795303901465963326917156225507785459767830783943947626403585486664029462852336707723581719586156002814351562558239819448611974888487932010958633967948825387462159677924054059842204797087229729957309303412604214888554231912753407099494126406818741509071260571993463818689493315805779128704653628710059074683135878998769816042512992243241467563914962931033706221763882597127173130285401535735489069127055582225120350819345042080867939268523422708087879297772480914486806048398909621862005087977820339815990423513404513820258877545282070446143940471552960262851152660712238761619009027190833157568645583164514745749931979263268661263999615946389461127946976178882720857301239910615159977272272419655266739057772963393914193325615626715512582922686123350797714209910904468379847601421818731540804725616507952543127787674425740635234566706057714309416337952164859579237098016820729223906394765913296084721288014404699460717065136924844188385795108226342366942281799198673007689717541885650464127520695393632147281441469632288049255681375298898589651643457165058422020005567502366795265957005131339607170750835527931725369653783451690953409626108686354807488934816665912580726874382299294373951502439192140035890526668166810274675697734075865508215599317160082808176855175017715578081035100363600149204610836137877132760606639464654038143011402542353440052899599429517252623037007004070454415652431069513862737212335465716207586664747445600526936490017900910500130444975464277016849816400463007616477353653835590120109496326862632015598702291716561576432080482962887469788019404156712219349286026260615774400738699259928890775497049005632851276912162604589104474168297910559844108766658955927023532514638927552556301917521762131400932442633017478977840105697357444735734958173473084899345358012703912012207634164739258388898926297263137433170674237401358108176040915657460100333145334226998956927709202007018524585548415974198327981557671480118383246252272821812281984486629578928447414863131496269727071455524484587563192091607044551725960813614159927808646475403201639041416017531959548699556905964588618135111639690916822334395282397161123063486201227318681496690507441496769372449878137997967211668585441034808385641037545095789183401009493452869726057943071994939207456324819008193525479796906274026372352636759117779122813257541439407128382074581908245021874741380745630852626299599708586091250092662544679507859876894980439086485399745161376617501373533926741022090128909611905057963481483519550540328228013610138212363102315069785788850878123658220587165185339356770303028188769294682022564297714403289865296689568290537401172610366906270710218253735592667524764638608371930999547837164280956771003541137970488631732690253869960628251537913298014851137793635624804739657049280530367007684328094872422514655559333270282857528151179332083020796235159240417366232439928178004313276786848027958759060202636562107951049249266715179593070618191745573232748260321620780405533786277033288026168434604692818546278571128523926025968260668268589939484475435316993271855717265555607306039568415713822608775152408287986958874722200632100278331469370762625318539434743977887201429511326841396257437527360673954960453417851453140815671201151574342692331712857638600195215103612923495355695414642744970086695899051727281291393495497177411022196363137068601725383521634780837125986428953856922757818403309671550225801838852013358821425060692609663840528572976554865421200873694427174765279245215543163190254885243440810129200644035216631598346528925363111163849022395547233614947939712810875806445163105941304534545495345727444176453820282983360457026215882416843372385623576232583676606673169483124730402041467945939316640497222892235632434152614930248777780889132678611962747028388863446527997361857552712730619232984057673755720011619846165267268570348488159816031480543502089864941140251340962666976116045319598390668636438446834275991849655348145094321500301665871945116427656063079327762477322199517093016116182265943996743601617182872171825267296877455920609904589113247771497382829385279625733497665258284816311944615333295627174581604564901884510248292606683723883575678631996586333262377510215268250581055997312147156547810719801361330806153327469002729309413838029024192185937255908155538246461383683419216705282395373171618250874043009880666542513594184092426316390280267469633327284543136388833437523484188222742982716339572311412575688341922479941077934598328554533017206247087668775881526104550417905452864871019388219838820219501645012200436303992495035222104760016838583091018528582427013092751499807679841580779639652935843616181310249129231087607261931063733625470647022742706270217488473117711049198551095893373784562613415779017508023722604832144258129911546719179129777226973571611254406676026263628662344231532967421352826719600421162147084297184503275699866061883711971830125990684002561194882949159225606231408689552766071443360871281771000175678037372647871122334009022411527063338337957539956333471615725043632101377663920146207723376857203807589193530338269661103261592031288875265806967240809425204408414923792427033813844243212078303876455729964311312151691682963838440333924508730276262256403292223654468374873369666901097287929619266132442748975872288405898472077197025944376113187448611845886824883399495924076050013323391196997079067334184905826907309925137618627821367000843608638367903626914111449488311643860135451580678830931367474926835103913431403394428580254365188162060660629670104120456561874706025136039306245823500133773648105068630849467477922810917765984685150886205639094662734562240847364868114668425301122747963655565697607274416785169724694821978996646189304127295239961435383976555399544912973363555847578729229683098872911687995718149090781621407616012051936167662878886166780558559722363560105565460982909955385694408137305331143825858498727088605612006677989978740267126649719067506415000720874096391134571519042139092516951854777120156422953694356233311629447579984777718838819340981129275975700458706996170629468688751935812710002486735329924003245280173833413569962734818411841179661689822457493592603521009176925461417760184657993515647398496451744618581251951617569620379146903092158764646083328699915278041218451983413518004254580735718275898714428605942415163336941608339954642211135971035215371266582693775747310999579305946688660164709359454657939502086875370764946246590498191713079301829729569942709293661940653307489701592714949090538745589767357157249129421136962368336964414654492907939755217752318045779573457004798264267049476895066254077854006131559575911591232663841231120675129953022303773849922472740983638551679074116787059493606838194972385942953166407399726500909800542257102536942798339680573729955986401698809615287980330091909517064493131894452641838190316543146254781745641437536874940175130110141466240869571282087854920804252716947719867823415132272028071763407110771106908866833325486045670338908317686169418114158677843177584977683592983517829827571854693832924689402362872233691534605125105951127930425061934626723578544545963664439570345278493556412245912520146567985663517489180185140159964935716597230639989715915618492362761458346883831448071581284884605288826740097696553656405114790978066633119232488930741313195681432704628055899084926023217508063920779012527815937356906088107310962113248014109113618241628685861328461764625288306069795294691628824806181206808192530897242964358616251018787887848940086093421347078809073136408946493741122574132800064733094205627199752855232390078858383085813227162852172449982637438738340931207629063779601470663197866223623735944715281249456229911396088616386403566193339280853087814658192223947296029891773998245078402175245640099546108261487354435988464839246314738610418081551957708298419844528508742817565803022069651907723098955779820750875929097988840079897457144245285096515495443715968484735122772453021982732644912551157602758289843149370633877690972118671013534099595743621960086325088144175920291191040558432678859278048138905783894007092908225999225325781284423398281038276253905100507847459675573655492200079987132802718745976530477252684480438758108740915162601664182326951357199836825392519239610068140437543203327505365505671220229646007931823980995505005209064876939551918494660808509654762414102855368470038401220980524222615755860475201007147423105114782960609252345534342420978499340640499736071264529829023587529791945354352940235720741851449266718758078677291850240594138887322704213843530796285900025330013552993093655596411750893886479492048962628489206014709023270670898824327597396714736287304546530940551244054286856595793959871109947110244290468920641392999573896410482444857299137719134979604062279995914450911418074621078677256501513520938099027800264291631773810500010339390234183007397526085055559183162774660597839067895773879891836613640358765832791603990900461936520308112599999055918793618738657477193135387873185762925729229730363532770102233002546612950178630800536212014652270945001250121479005173839443363470533914837675789782635850131609927962504176788099158869352816865543242451955393858288113065888909868563116766959346147346468161838925016067247110675615449053428259825875733301402611410320378276704895791361788079517604737202789442242661496046812135981387337886256531713225198439515289175048119390450208407400418676831145519943929654065759256326365527474368282472091988465046801015378213396791461521041749074618756648608025139761152728094812661300163557200613571545078029388176461859074062184896165124085046628856939537829878048277790414339686240753141233800030458172341530251508985768215343145346996017872482703586339806927009038864736225203864555765117552694717481072544352909570105634006550261646345492550777423484218901825809323860774708529174624240730032378303481415719147732843560532124005482254827541323167934568719725822505957760117802949651282602590941372777810693274539579232680192692659551108512467347833037448743324688469987794325880409127385095721969997483699830474349025978507170360072433651815969171360932927841682163394307498527530440158651433832261885648773227074425050274993503339198709877019445298915677183127697036758445081013502156267178016844799868663823865906158182568123092706528200512384602913171748674057395587039579825411979030198486948349785608970608321741293978839445033518066530022379010527080707867894893159125443330586478709986215068457139301120293509117274597782523858770719940683783518357002975633543198648843167394251852723030212899673101617684272024212353422585413104089066000125499571066978078511596094053211957730701013720885172791595761254300782874850423176178015853256332732272923157829883707262003589825018853988721781238125934578216349329721953482054814347561719736302733975114971363808467321541032953804718374007777096880796071096118788240046878980011533003681073156719406095137845835710513439690692675449117260896521653569999077356163885042961247537944411634407371536713840814756190151868957373256268032211131870333578330431068620672082935148733263809587043228118486631275079703615478201464160521810032757200226459162579297825471545536343752843766835523702575357843407699875006599871968561158072024130922924577356704377924245525907276277554944310219021776592791246376427702486297228663692226796411956653730345238574223005009624563124276245793488991623996080163103027399259191426539761779708595845139876491515747941536028277881532610921271642127354930362634366359687289097338024631455591764058672476576531384757018679543028540062981645415237714824265535191284783834719836271461735905715609001254856599191550104461611903867685267747487320603208447700353043890451454127597059709650269251612454393404116893597841580134040152281756233613172737932798535789476892000190207169659720112559934209744567317746410828669333553441431575286042062284894015506641351678399527500650821411532738834150027776611268360154910116114472808608958261509956012107891848265464645148082727464266728613873235855433034677392056522267779303288271917848396813520966982656202478666464770453900632359985561918575992844727044655014808402743825920980224718418387764216454741332437825161754596917539554945497912853553813084705848059703758060221034860302263487185541183591293177147092588973741790568849735922896382679801267887308869567399093744337316335710026954802773918709600536627292831258501684286975302913023482754746401055247648682354202027507001600843231907001915443692993363543816819082834694932214600924748397088569412024530077167071958175348880611842693873406089406715324253689957949056483284548019038566134673041231056118962029993466623128283747543346095524344822836027166066839794711551637576962128824468694077001712531652514277590102305746333503832556590307832648063312786854867928894132189072971406164523197770115941595109104834767741640936663041067217830957660279138480061913535056460787158393577566518703102901460009368769223547996348819138693174230051356568331588650410070053563890666156580771114538665091057997162538202081258316340974136448846586346659926139824949330218751661515468714888185839039754696964651787455885468891178497554711186432718300531860831060856468726390676087361245330587307890101932951513671039122418638191817006693350132757429061116654535106249455063359136644717980273340254866228216575077919509044749918985278923432738799639567322756104041957836806859406669116686085188516279749812399463866192840051050679944262619609307959927983587004152040824927166491287867543919098229557283254313933191915034810442175270525147682108942201834329123923115063132271080109339989759314609077854050794512204787874641319354232977811338346380921755616383236389732252799291981647028601095403689876417105937344934035920213165567376808314023540397035408967523626692971771056392948717271178622008449591195105983612620768806652572872421722977229438893984324330995877338596801280488449972541020265104394685087596661146411554885572952704687067061605081327357521710428207838954211553139467440639232656098421416170201797432945366659715502808606109118945368407530171538833817009681676872679132285924106626661281189562022138244243763790806546671915980545202158730337395906067256147199763331962389430103828617357029249408776805386394402374776994451644127914734812471005397668426723378176045954193051093929643024660179591308030375530091859236175056997506521732890280013919534177332399170810847395710038802167387291678548675731861318637067473127249551786035706414827436164841464562572667668390685527767783258400849365113664291587217045160667997718441458166071990409087773890733223689487307707707719157094580322385963614460564016580683826669109338724782042678244018672937283180031023875465635053365366182228084771992455665393935835150415563490172501200746848273438433292020872934676498344018584246447097073119400528495586303669086160728009009054930317475294245955215526368085521706370535247612448298660748321671917160284453293504074939590825962998837257127395560260398671065144418982946373071561464779708635233380149059146926737878541454578812453072417527885428852175269813482843782199486824679334084576707543874941935873299731439778977329461952675361955359648306340803606787611433676698550633800078800886911495535628359464050479218026598172000869779623085917835133731452400448950348751848569289821261591311417954257543856809703731370017170383309477845585222786426873657851714701719823232667031727860844742929801197161445915761373390048314346918681985020547923712294631036111841606709501902645697451977990277893918445614282674581145943992019937732322284546964785828688959357610303090520501394511539526811732633262938491072530797345830670666518351252121704722993181735849859813687251162443614582618069821676543665123201193314844208905707988422230012368659675589957526438075533166762082325186888787205067563673354778761200091694996577669531533430869612382395782052632394046701344130577954466519182212627821798415228195719210465774599553674059782707471286610811101061956350402581670067203941128327244398547120699944500838969907086096054901275704781421800523753859783908769641646416132345915211006368578660354860127596500412341653064707988693232694730375263882226121145587988613790479033056408668768953211126582292981071423577868724689142849667202339702642379790763123155941859432014358636816776890402159032565828754288444282685586189329807676386621978594510639360664129361073344254141075798213664208142536107808725310052971921443170158627136857111438101671916017101257870502137749946422263112168505959171141225284830242562059690051575779027688692255614080552383690783786623262106028299510914126244628810748721959934706962927298245698824372557262316170747859155430181199900086976450363391034691482198744620564634928619920336299509758744236487640434925322877514157635772561791631965804038247681979708898173152936423773709150780124164491483474222401152661868166895538189461773130323451544091588643785584342956406069709339202857548195705450310190022437651210317466164316718204128146513674610922409693561851461386379479832675900861229329457244535981184812749106572280828023305895019377195679660852242883403740166528946591595787910871088003262290917601914170761166691017114940683364057699479375536791501160827868887849629546731181545110023288437486793809782839900449814071410429477904281028162784204049824471849865020818804062288076286122090729909144363935384081485376620993771476812574349442839152742584034425038303094616101853795071346922695018137717483412031924379201161731208736931007975194304325957685479434771559790618660370503234844639633467731139569889539383935050094497660686276161136732198088825647002611709588608525849680053947459921908618706984146049889537967817347245481499528361272142156557724239017449418940163376118712236379227039491041598296006611754745415056520920491485147773025485788645638623474395172595081841881738063714008344013592631947825993650260922592570345445156351199817224837029697967159051875070829687330822101734513515316793837320122315322078188712393737855435236197279700864918475860378782088139601219751524753639392206376489150299981185269183508023251174188071490920206256032667492655429417309515313961179127340115546724978208964392533497592329651940633618471507248771469158621065975983053540977021174324183769368124068064469846089341873247725809813318883456289397008489662461591365728438154431188304931203082312588294281607884282283001985954577825620248450750484952678552011439040559111957484942215554855935602752344199331079494587090155858661853326674396138368135944416829677558799820725088876600087625751894620531290499485153664214281155011595416912832772516048006695323521149013476836628884366693799146911784614629467137347764957049500484193428230705872988308158801485393972772746533045905455956605535449552932237806790538351902986133207333724491516052052609738921234458004984567446463516831575375554335523747636202648613347937786942341275160844875663106678036947640976124821344471790343584154552269310147419200804362664629595997531872065296575862350106382352508166485595352573561136023425968507960367746974932572827474539202622531057274748595163994114236843054976281725170865929806959996308417300824001626729712667104072953577481352521510613626572797507357162440872151285156845759678251977793567645340719473422786376816584777992496434219662881415853438550393638699340613993034158845282512434241655623969450183406186652885378184809392325345981287864916881762301918014531575247039267122030838252065386095898671270706664283709490160764924530692881942294949772176627966670503041563795762966643509967956707584016266019201048054117788653563660367939814239596272841940137080316336887087061619489119967008414120500182950862210734176474660884428518004081100010076959922424998201812404506825439059965163166566167682604274190341695406089176624051669781752329646327958323317630710891943455048045535212493297216818586905959790544632966811234121475718190181279683291667931123011990887406925583157590457735172397699767628822055098396419693627953364212229736502997380328811905384166637072579725592937790777291292936737301084093210185128841274113809625554435150713537193475112831660379989660922095062311387148803385086954798974558265143738035819152701725827727001543697760939140651042309536644854477901653230420498972967010310400469929240675776740119450547096860948361277357122298067978673003070602990764756334752522546256466333784959250632765991745975549429997449324254856292735748277927535211146914378857591515041567423647127325215291073585025413971473279131818055901606563153135912514375736053568697054154775463193556821966288319599209867428118535210093637060409536972733054990286482247685849670577313351333678452483851825613113908336043815466425506915771760500166689639716169792509064009449840663743562786489351609080128685711179834559675004323814707980515432611713826783731966812778831097050957101156645601019891892806504016192798354303357441611804910738409539325101923473148700502571865495171367180388227785266056102317419321133189872894973592610508141032770499894941050012931193109556941896420599053148168574008886867495038707956572523632483064860370370888217621664188786289448131409058339115372605884461490141138686284051954261790995329877370806923919449771021031971911790123252874101586430528722231096927807925794461583983975268858880616412615426973176239355968402553654819398621551996166412489103479760461439104901526383916616458767346298418332027142072712139792493828739789265222121801752322315472162045909372871848075046526854882962125066939198694929705832720310445673642164734010856484269956213437096710343996571423710974422373321872949052969547480192972857719270845314156443920183131836341348735995953887302725399714579261986036511382455404642873441387626949905841939056991177044738244243945513889205101158185601237450590252810707816528769951067049366858608015576930659771744985480873501237743560601376167648032316479522529474048486743449794649278912747701616591038635834827397840549173251144334130715454723760684233680189143782428087101605161901681383983314933352166948799498776889276722212653516285257159217484182252676275295030552201509476175822539142245045323502163641753541843674816904417969126023588778301506135126849833299040014700570324599890604112201112636261605015113243615854997327513565591274850345370287667103419034546731755560440508672373465866084609609623915609734583281355448516087308686750867495649026448800768867479327732249993079936665366367176035002704274264517812606236348469511353823378779582907321957552358554679339043237821336223776434833612030835303956498909275688272143870459680617962551873749143998282969958625251317888267806830776471985055163378866345529482980735075825534066701869729450203254819759472003154625287137125380494497408816642086687236118621897990716458341110363286770779017527418754342278534836188691920756074535363984656086661633416958682796338421725603630889671590105694913956767120778633399277895309337259972739687627538985006654867214881368650414148059653753291720714607641717916646961645625028848190642262461833084761936438273774063452128732966163643232337532854475774036102133864960631154424120126169340963116981486448931416712630457752185004331006613314010264753635973448296699593743494587526013658684324061700396614737888065247265862896584276795238723478047730471603724219907484031689493136153136499591512537405813197125644451172573184718351209826206066600411806691370066232723638949261975224091602416940586041120016055237832703356033566160496474793247428931973054899115259162881392224853176983773939651694541162099628084413252985396455730583686452476492292601993353879265995203580895743719026570241821512859908635420068050461927391036803298817613805714657114906439315200434806198754768427883369146563491275589963231398344975662966597592848319287560168928003936039176028077232779287307510183308756240859441043752309876290641524203056660103348515627084442454546981909392180743803266063874953205972278342174176283299710538066687691648351958750410416220985087734866957167603874262587634299064536661901937348952208351693331816202726602753824057971521004269078298585320600152272071317470736741449562980238941886399478829338375236951177910504265672093877801958440806880980537955701405250819714131452062490227177067451124092514907665804500627899575319644676020571624179019066492683487880552310130410492347473132695704169876285984911060889069484765050076136784831507162533055507077022215688961617040564228181136472057643038296586055219314266262021038850490858386171920205646768981413951374854849307789758597078707167722578080128250502288444920526654218103992238757793667530525892015290679711490728974146189363968448902296622168356240339675540524911006064499335642652857798472914106848498811893743991179729203456843685040158186602499691273736562449325676869891163532735978837958316075260808285817740385223333072763926950171988077414775183685460607413025643122386420053082650772631347875234672831437080386027000164053784124879601556621718189425724424440358521304838182103805296719195309801927944753171389571875027651392219204091952285021134143881031194783588891257980270198490895943042483535458456088933473707159637276690978494283778242459546275232285978984154380851620143791950792796545116426514696299464756234924319020541662718779638928300015943053122018180895076316913650548722804368728527708306347143923382558031019165337705488947588695969272392062594931528568540085527232211253936532148843235233205311470355547651172079369171833331754522173273240031607022853435780464083383202273860628601576860655514521415760395115947510416732173043407567557245952568869757923777217429259695974399265037837268501249456605989622988161842174853575644779498223891178001236447996434558605713294464019564526191919398082241065986881675800982166461162380875599635790845243870202550628895666082563403430049561723941563357743483869102971664231696800884138895968459636918132628831888675683140966776662286854762394417699944172894377199107751043955482675193739380802237587633810510700859781040213856784033293558002715255433191160366818038183615199107567382643829774924826924890471652288043766702336498356258754773950473812744897079047814174527049181775877712263678951817050973063975126084287972420352201878217037755623514564705375702177912843718920503643676441149261476309678199252033574281249886595513461278056652510240430918466274544168231139340982129550083535399058204997759186161287439350198621384193086759114937651518134044176428028551608938094352265959797129364983445328648192249569538165485932527345130935043671880269782548873965849315376373247184069988011793504762173199939323202601024841036409187579665117161650693094251497754310807096003209663903104708648228503764881189167786261441240765232188790263954564459106682138902393052028858231769111051926210927560761150256138475479451713863880632172193953412433475445378071280614674537120189076249208281428794112641348182076944795331319796630468109399942039253129969801478940304758090395616509632216415005377227130157273391299968908669580487421385271107818210699285926821895402494135116415291755124181654975337348212959247423984855287581393067435024658986220613653726921026373819193192442120245577038482036246053716406876046887847672260278540993246345612394284995362485758624932375086486085511769652795177975068302848512412140054053321354419419820275198000120854080531086783173373505853954900450984197946200891339400894400654070602951841081352298577667586996007845763208347260840633412967212986983896136691420368252071219206143192647062980285168522395069949902188015625940351309524170570236656958020920613178431039092345478533967751124013745742365582353275681786346040704337658087927932752277053004804481673199351762570563950357752780944365064479186577604389691717839875961102997092153288164909678900251650556660698641060667408613225667070421853534019471210952127241651283009814209603054448200858434099247213557357608386621143090586799041860773152731900340241512610655078711530675658202521608915247421355378045410474620902177297414983860496457651297140458677976172370959358518101982596058138714096335721141687653791210975989192185201965557083081133736611350556925413404527805524513398078402372115452531768640586040079583074812288318065346470580870532228526938762356558109642693360233689866183304498688494048321838878201243674086405028529948494114785224638551988821479806565517246544156326920759381183694435156218011566474039935497187569160234169680135016992757074363997738773455395381392470513691956971349668408448782395333409611340223690079847384807732923210463189435333903305342770331901150510597564208049905095476023999711822861480942054878892887249679580067473765651814277972815690762512535794159308133557799734331848348412079553878121960186224761046719395272357165313962797325195861239826349718102676400439390147197808118687310270419105992653950112165127994749020463581221985271418435321624586510545035370971504325629805827048084290499779123174378349608093097390612880235421450394748451483556566434773091630311007434386199718022032832988032088008984121599688188543299928506947922891119537011038996866625222550728545930503519293324451699982540407467686751089638520556387599449137199927736477543680281282826608016360358427705869244220685321350348712586581306737705808888724998232194938129727912937448615967309752596778820060627169189030531634086400337197576131074693463925846252440323491716126971122943497209646176151468877377837839964845447700585066355681505274209525240756995764232136848207974895851312339991796603533462659337394900043745938634620678061762809684954787181866239739637440251341590347522142007770553404598629924559434079326891899154726360104035230994797777692298102864807661292567805446717846149870527081535843803655116992318389202705802848706417766057859244123283118033319665235511641178044675731103372500897138936333465114980667924519691784222553127175052605418130633256408075828739200285736931954855218704357017431626592682829536898672182308687470051489359515830344118581612315514600825265752049056797944964880946822379821083903627897773514488879042024539578479407684521675103256635853932140086109658660838499084868137409865808577959523017793981284222378448676548008476659947756894615254012594286658717249295428595302754895968304486830709825418042629595715849244117446878117373825468112715497618173129893509887756779649465007489418994126220184053881942736518721234829524733519447275694218961107636048595391499085601020360931500272990635356142915152516044630779683660640455508704071975019288976334333359316159897971244648708565384015236270677133470501542523888898389353522330578829507542344296380926151189671366026034937230155989895859009200371246615391821619817534368448832390302592895722358506465694943338738165551229811314469649405209764198839998781267354001542660420347657641237204777226961782344701779942571948211238150106341691579487746069581118572023957582323164048202113898290063711905842526693163779818267737562775371160125353966687031380077423187521480696425110212424073643700571166604276313963814840764843980245046287119207068664063105805256063590605232003958374859049096351967340991338083888968513297069862311153753002679656108494271984703915352060767732838289738128898254191736089103255518929020302903539187970706063395592328632869910708974525032252845520237212012803579691374066842484724521057007930061846922938394164627362240245339238391042021920669945899547019923213293376130351362297579030826792984126183546634547858853980386894572863449898185863649622231620422772041038195083251471020850017989726985951441715552971393880561794060074413515978943017557892215404487842396445910320995973990426480854167580586532118895235686414756763464988046251405351381015977418531520005177202098813772817351445417777157502753037054745142193234248844493279557734855843405941377914006259656600821824027692772139982215206564639631166359452602829579679443814311635391903798153776405024658430729475242622306105805340251146211918129190659250625732954848489254956824406947984460412910495876316802724466126166701755419242269768594831708275994703824757307389235164229122126666279641980666691076105710844055787826464493197145376855583679159498110018246953385622308325535903102609556037902438760391046096584792256005234631253154715492090445895200520843539986610928261052545141056009650723799483989535257071219396015764557774202337318542454208959836008314980796444022838292272934577922370170957729691405422006300288390039847179856847353609552103148039904501650524966879923844447175903830374581598861650408600474629814888124057122837523588678604269120083365577589962480154718455168161343071857244933699146753544820632322049294351071756012458980026113583130647408595793763922539981203448783497831184700690305522396349851575038664079166298444943199994419041299807751304354322104841234880228000057121391501438164063306622651610856302405694611898869561164455367320790905388632069862338436368927369381555897355908280397215180383605534241564211989643483184398838669666715921770992748832160667325564058984524855699214221533688460924605448842431201362665052752930350321798752591136619707478548102286197757999842939161762603647811922796058073870667560709518178129604897749515278990835896897638063978708233725017049516194757027110274581066161827210235995202991663125250447124523419755602023347384797499721583072998168102036465115391637745666075161090838831553145481413856135410200288047355567212317107799170142189440646396182810417267764943194282013885105513365446845970472612690750957069626709458405342849488543575165794438699820129224302100123037695294936603692362241849477111062744961138510531076212249713122488285826637685944391487651598981055795667196506786879266700958259879800444476024283696938468074868648357635435848420153119942849594436006357037083954079614704744429558092427271597519196912298659944245400198256908745615800033720785796268329528910205140999642358827102091269118781808595540353171440557016485013341142650694081189279797747976754484168317327939613002858423158451541280798324908552931891356868771591607018828163924959746358872210682090223185296272369796025387551023996978823331761548210487533931272921432418152385346876845942671811017726181903062565564839888174139327360191061582008351205162949088797058399339341725695009013193614500556167469941972642678607426048965941004419300872833987567666641885189498758109822146599161843010111016458821034212806765911780797069183133911600008707502652913052215373107070795414951738885195327516154184772383537237573311323735822645209458764901300043295758728692067381062604177043222339567308415734196338029715391131957827313372080907585824483328408186089663941179005626254218383825892891692692887150084108435896930415397032391003630467347940472932004937769566258632471809950287846502536822500774505344409917361743918078113231267324952079564760587047824672953927938190767381605182368201050918185934940461390443502424565867974688431313350887936441051290640084512003806457288869941680129650815372208484595289117044087875548623512136362250975455221414272158839944019165594139983855040109562063130479535379105625686323849811919512962987618482662794169347080094317173932924796356987108004130884161182210274746176530729055831002134224743487693618412771794085862132978434374149526599905902541480079232076768267616486078784505171596482288793675182389263702524090776777156716215221484596582223308128756520077144148923638001276706906762969030637608937746633804559428727053223386385737623592398457268498306828860108339723867895227987691866007034857507684826675630877724093913839771729706979946469221561130434446440465555266991261435632073376694114860867439250275660094532881173905666693346016693538787102991338335619077803528518030655012672894338378133599223566685935811492138973255499760770540286356906268406622598629280737007627870180519358890845015752584325786439814704282874103793787637959892829852489205855084898823213280706313611168711665246775740284783862965608227771106897108858218290119587520662129344463115197722164849549870412588356576728069779866622675125144069640473681472099099244835040701041903039144760369859507259061655177047289037881263329040405330820084899318503017338024570208665748203854415703801390375855306726306018886119038028049765613055905500477864303989720147961402654155276487878038188700486501470950715916498151935554725870651250283888975864161794850849613083050654582210273555573722859655541745436826446592268754016849184283792893176452795947333369749375498781324731516166050883788576477374298243497403630002279822858738050501615154914006163413972548700718966256500956725295162401179057528748970148457896356126102043265290678923876773037370435524957792017094918468939912429367891646881010524709436505811581020951755773641131508129498148948879319607770637540177565090111081721393472634141279938461718583043572956755377034788365487847618514458840890379581169761754013266361330282995655714483101318572704628328993613854005956733194776053445341461671938625597579774594602719622435246796873012420479681405548915886463886893104923944718376793439180094462672598826510291819547775849603730899524133465238655625921570681612017150369394588583767190319031899567581561646087687081586301988416863808957505506246351778987083256329486810948296516623085049983064029840306375396916084128143038371380926952440030528538273840747572338468130161250704788411486979784167331705750600953807169919460239899811258562476096849622732990658993630095192126499193533976751129516099129707333612505808747754948724105009019235400744207529398002851347833448904396548362404580842559463681559895413202840621549700108075861683698507299931022177785878233041558140737360160946539697560017400756721778973517969953262218364813805246220529268810421396309118851751185557309399896197023965205808795716223359369749985243333548236816648495941044167774492931895204512363562391246621060910420708845247875209616997626676254240148349826971627566648768432967890767273725570384690423401114463286279012772575537096274089771930187154020696655707509357679267341877818070316397031324969893718883360027880339895401891326018465856702716996000668551387588226868762066471699124462381265256219062470112282663763359130787436775400780437396841074401942248769633317513733222154482477479940625379110345055593403578324259286138966761209617176629481203161874751264655965681517375589408224843027231863597651358972438156206072009665476525107395207207721915299237781280352283611157795467195923179113015670502943624476453591151681103924597139345868207308943713154151645702552319903360515579894860108148735759471766444635557587204059852021273682672200590503471066095211250924603153309652755820670134593063857997135507254897920212034246608529552872282158163906229073045389119123948696834630029840641707682805703046242412792685955595215168618694481212798433377391515972509517902658857953397316204883662593442676768208215542280298893664254549290330338765594656265584121860774529271879432417419885567856356890269342160214322692081638223719076889631096805410199195770305290952932561022987883220709591829043238830976734112415855725580285238590952193151809197908181848228587110799731485494351651340182838569165613516808905991605400962307179562207869007694204110324549237427764796847483148953296897438689716173655688662719589022057242565342317214652803220395100152767317734483239224579536652799401923619062040952011157932122573954303530384950826363234801977398031631205387207937127427831388633556568946510881293836539170502127652754135029097074256761399709442526769665857440462555882176432601026191519890895277853021912238958444549661647878656383531925113285999231651772985168930811246105126447781647860260105196930327464793557068884240890166391534504175608083392385056728110329075308558345419360709977197944139816399411339447032623025920298511070082186679419275808370228205872311708460873196957752974171498989274128132547814152667713681984862730589089728470328752093814921602150337765977589430755505881909136660729060537713207959240356702745833917730413482034463041520539964831843570652950013514101287286961129895485869220008171696520762833961937765078428341613374777125119826336229610252861849924452518605363608483390598943317601703885696415007837869407116409966316689401529381369682841903077039763657006562242718132278182970735681183821676756401452807457339057678917818684875404045124930711210526661253791487680751936210814221328053225423473902373782380377587986840722909612426212826704643773604618706058525915220359132524181934630757709548758361604675533544740858841383033319891496910979213423804479098137285118760155582833358635025518394043085378164144352205757065446157985650907464252965191170658808448477661629868799744988213942744749965842183298636042447596754391198300089155284336066139991722853023438385592422928846515035183104838921538749496748999194643093217757651533287652184103197965592300097466476839462706992331348130561083756710820941539326479267286585931032430635569376753729267199752596629606419796703371617374201541393800031824273786211957302867257528768377469632494029750647088510848486500326290118459443197466259174217864209406221610584202823768733777707023810845941644577927189955454586352091363050326651330959650131742612278586145397042568119385411271198521047813391533766520649672705594064496687430091489635170593368670536750718076610055243578335521423025384259684519288142762884603410077907621656096818085463842681716467536144511596959674807897617995482551715289181460862771173940526942829504940232715922132719994706263906001850432839830589986331679113597436786880275461285732345049295977965645057985779737370187494795776770852801117092259517916939711562895558977036488196869407369687113696504284819223795823882587144870721100298850750887570061213287702952557561473046037211088565441556492956192118196571994961092846606753024762935059716245603437528228011193491057704570322089806081222477171795613439999753978902790994905054084196934697252612711789291077033089144848674383682849750400603999294383919236088462977747106220195377454498295218138505221158036680292159408984690108684785270312924104561714542510643638999415912395337523599596522626580570766549090284767215592733827998404550112128162154046688347426554629729424896127785339567632317612066689396946020659927194881496506740847389031914712057755420491444289760876918949191388108851352345254335723981102668906361456590819302115701717594164670848432288249699758934320265098125565451995883874098804128294272019437099588621914467434373570231406162536930404554544928120319705672425917571344371469485060778636783975137016140297381521788235529241316566055922602401841767445881568260670294049807834507753477439269074009949810008034520478241067332971569174546569830798581128510659741749776133106599160101427449490986063517364181642316088926282306732702703969599658058911920866791304893057731667707175582733842366878265546078744924998445589805960445714049414686255036349934555264304702502456115504836781354986802280630538515809990304498987325800122616431526495838837630153180458191275696792048708251131709679442956879506663018507615000422610163602857087625204643846433433855427401552733347433183098647388293256183246708859127373166905587505529882496380471055755994004664964547529928160266763312438598725022596328735471053624612318458467503260487308427863750034578129761329792267987495077580261572596692070125984516143596594832099601424043266532053876453200280063528113546860795388298909477793260505381630032660556420306702847466394919562309524344744439525837756083666674071404877962031291482983701998610691494536976820754375411324549861033665414191633175524871559752364496889447550482639472711031337877394772399852320247384611447656335597366826618712316224309571575385488931751390108720278223538091002243716521534402451759715492980033483633401400490703273960352881393369433393955783253483709497321453583279440471140274890380946335035155950030380640213656348863690579136954694405172799538987101559152652670968182337113251013669781154639352542747634934188594177896182128745301469764301655095825562885954938130002875981015603868925759049991958524549934742216446489894338770389868231982797011769385781176482344264805643773892830451296266791464113330585896996710434950246791194140845700410155894149519044183972825309316657250321630098334944111201611210557563173335965695457396113613179249662891138156959940189349751698381767867446587550676278781504428626981443000777755496985178252482088007294377459699836939874731455907708444191402326116079650682669430644336276595037506323912920096911711400688165198237325250050679320232218592519074088832401027529638029018192765777326263402277162289156625327979373620851164461966775059805457593804708142639594202668961709976756761771220347605237743774904905949296705290989358212370090868562988852425547097737325241975730981482694234939136996857943286292280635159170049646691889143621018642213975911081123955767216869816737642914640533055000588865345779087301179538035031032941787486699231977079915247219475781429847916242000747453435698087095048919452401265936657012671399605823030392978068638197795386535037532389464795075651545061468174728813394032585029279050106082334231038389631153734135908493010010359578480653306284952267301195907012891326677922841123265137912297749611284916935142115688877361381809356983436982671966180038080668093313646037469849942172236967881722239984723539378469021878520038294941637819351130221881985182664838982644155694530957757844997954855461123565554226379879673124535323592502389953543252977721020436716030499054612744670938714257738400311799588559894325878954493181474137450630651421732298949209214716599140431197921599180950481041699927425695996135577239472679197811299942830833677657897715478000252476822432082327737572837056208125499225203923594451580548463095084016670631408536960218704673682987683771425336601377007516758900417924999817571182027528091375968051956329519140632961615314101326763747029959881117538241447528385060428813396641956395199194017181425905852976568225931933084695273624169960144164501495249660700532820265433447068771937913125226781745797615151289798034594733799606609517684752814349452068029558635357045799986990559992107786256934714916722907499458897534633192068024955829926108980031943249840508713825938386630695226611299125318508017082413756076556757542904956920702382134253562205823416184097537622870129936840571742991499338611886843363196460570477811546978592348728839033245561463339748477621887325346836991098150979208102624693414932548106631033522133344697084224586293874020297586286700865004166839690009978072864787562650560788225673709200721266388974495328379536613731106364306491534313388921434111281175175840665251374600420901587877738386590600752444024058580314203528834349034248990365896733029057162484181447378968740193258674708495513917228402487291696315488913039430228420063042982933896695154144063337924508675165774493895467954654267386715778139639060220688549416748788043113814665660709776409365350263783008234857946990262024720456795101339089311498493165112596428996856578589148886343634122863899848456611145998265204387969745694795147956869512975856206650321876859501134505586417404717195545788204348309414915824171362571668283768033155216830362745432183028436197757948484393177393961068096795363588989136882298334723714541918380726013326333656052809209866034486875578032260078401599148135821553086488283393598768968053905319805952150604922623848507546023974412250096695868187422987923745482706617153278198544648831226012947598700727758175508974092451149773593704488093821836216692749082476778526959813095674688193888474839096118346532135280973725248550083036366719137668173908617599664492368477246676422182974644840795913560833543616224633872939573939242975404005796899755106715640202090687429560963606214371440490595628435992725196664543171977198076407473904371489238203861764505175013355422165081116652072134742170053682146645322140889802107955427440764418907805855520822628473015050161510600513086021330740523938652322808124390454357007006830925750216814946335358797698120800976763712173871400625303895863063533398524113915918928041800747167383362790586399373576395376351993317931437236425531479196767414521704736265666431914649704757614428581530599101117618532789059297636598249996598781016296073968098507980308773455753858550595122333296336158945239523519723096719575490610294420799398042891724047722067492959332783934077634456759173178498943847300174552091050356791204323598246891884276104665405052927323848844559862573975608764961549807631969309885357797513143873046885124394368764472950766474496483091744477023887695787921679952820396636662357742168533686917122361343164123093954806053247396603715520773098947062085600075514707028113736923903931401068071056702587522893316022429339351857432754928115184283051979554828801859683596304530947414281677922470088755360455102332508104230135527537937336131855520423553592547116378535797378762910332315406431042194325904462374982365883799065305190864030339481566753620356508237215328970496749809241492069395953472746167934710773953909812674011014661562591547334428890903793393080155939619484530918493918596808870315334688538225439679239815892038397772861563275833224043745558310024410776196622033816248979855527020533242092924622242056680699533353607629797268055952616307902896281923388653488027872057315388813793688342605746933931124948774987699736509142884635135322960698509456719115678070850468923152224033612946376037612727631682452423370881065540321041436012712559359657004956755230113798141996096093944697423863228746361486708598701023596943989559307800394693196269931840800429907466475532468750893722599004801930730017594348327728848380938302181441320177844219560256230641380752914303238603811963339948826035127763812760462889896146748363409459361221481889813697838792660946722339443120897528637590274535726982908291908905776513032377163392992424240134282548484904334399535838380250054794274565664434457147080351609658309847203442160709562086732779746019936227770911271511638709916857388451802157219094137567523209648026924829416532822446254916716904018419531065092992161032893408958580735546138218011295868649168686027289949975464865100011580188933993571382606284952683057862455253481420538156165739731238600744532574889139381728056447225738715652909257044893353021595666974994414045340839880100643859944190149534539882377035722165123922581593537835101007592165067562503753169167911000294785168513144134514400765252234083583846041667032444918817619349586806562437701518483546231092177886347509837691470761141753338439895271609886932838246419526846153739768701542679822978526233924594216739566491863925087747502164499971916150748096887326153341112042404167381215021044376301229049267626391576192213703653964252870663444003833633269644423978917964159087394831466941794788861293945669488913401911121182545177152955308600447648088642854942689723414039871350688370307018331369920334203617548831268544059406480621819664850020622414051577137480772876853834547496646972468836646440765495484265537574364524434806567491437788299081312307634079007270732338176651091806064242470780556756219633525095438560008688732659873093058503861282004333671148671322843214520989842587626857846530963803796572380202328403781032989233357677041272530716316841561546529810197381946355609421926826220801321261850316838682937600341371849373551189494759064150561521191912213350104045627485228961830205481312599042773770758548381738787221461118066189711812530655328682647762386958752625543249220665574573435183882854337912197027637196503107970090434015728752152881816507784726541437624083973653391194036450674004892352874012810562954498506926877630272442701938170730383162605019581308434185208514927578495644274855714648604318441075140252297457988108553268561128130602094701977937525938931109534607606957752951462438840421049222973566073958669533902028071275513135297289999970982193625538153318009693358987103979245769945390988674634165547008266380391187217596599832333260482242883200236996360483379015064749671319626263523646601393104843784254914558655369030883680163165184243457485597757021312129237931430496923299398493261833688740177389751511350091155769360719330943544166487564932540561230603653296904312549234819901409484186498601118822778602882576694959564538766189071554723574114604835739953133463858963422042899450454104145609052542895713166853031736201541164014729155859607602181223966189670616426507740264851159494894709258783512720471846924438467187211986454196099201747078055070059854415840017119833075256466914495534682155848471469565216959407085731908588114400476697732576741043462415560006363507159983754180321164278788738235475316239187537425683480125139876545107141488387566184955740399948549872102454337657534706335145646099297238130407192214659281618918588860765411054750535151204843662350233734947744995938872673312197807068010815352934227689582610652327242290551663654068213743738084498624124643919194309243678154410182611092785492450809954461321015462250013694193967675252463851201109284069872434067776912179129832812260903765047041935897695400651368573947083601103957915464764861951225890120779651590230677552736795257095213231077661188075998190411564610775108710238234255890480121933890012045277424517413339308074426465674757797083607139295540370721677237920697663625015122458040604831027076859557992553401781247640622598769213497947956273922382395312779300384996210535751367690111516283802651979830424855078707226204398446116468146244226733820951544739372066936009066006804202821939801274824779586174589972190104635767780118038465595965296957467249715493997849317224400572300016257869383123808076367133348591440110091048797895590853642179324765271782457478396180439137770003975448016997909451790484029164688099323457840476959624679801720437043916610849139486269904904573648943915939041934865017380379645218120988926489489385455434055983374037645658166735065811973588162393350639678535891989079694109801209845552090097554081537216672947531914598634122320628734467400906755933720312037848665142610216858019966359145992492288073720854968253417773225806831645242480532343431612653296416280480395127325583630514084041247195571473873258415159083187071428859873312023929274004314869882566737627438367487581757411152502115476511807983250692788029977566955627726043383832801884076727082033358284950714967206526719540150699659448062454249143866478108024732165251374341083908283831340422829835675670929900549214102456642726766315248539537246057433852809155291575889534070881753282122018900185197097291304616450495897183497356580207584560818835785130617958122910197810950450346749250893342482744013944462527747352077238358419800499371840288867014154265060660020152924825496973711570589582621173457480371001296273924515839621509711543021444435085097494307176041682333723913753477690768700001067411222598966394369180392852772614816497395038331691273980703802019595462193812360911583088387306237223685205847131680472965122536057208959041270452137977696844245703617577389099766689627296636412789435919244661411537639015173422325757429014920332740761426909896315213906759449293947714364098850883026993622014113344529361642905081642937127328046997436539078625187257573614751415081470308284734874101264621765873219774297029956163433542209029699268079440766886786275384224629854600504491052306754744560148522455295285118740841486698255042576289864572005321916544313242724950024877541114622363690018517508244284208964872573099293749529864828707719819544676930126488465275487427277469560029993182541960581046958939396618925765702510270145468363950435765949826293606147877973240036504680899634329659638470576601854082006966501990779772612429094798646268566962934590358864954217344596944460662150071750661432197081716297277294864064530459676678930598492100051053910704507647128124287168836136270156914585739011093288318684827765982806002778681070902230074564043937913838752952081009210993716224333592441244827522695926780202726353168748603074253110185985403347582288974596742281741643723438684968169085414070365079456981862616479646093690367955237190222551084483384806868696084088724641485628532478507868793862697120304366372005651549876340941472945377000058288972994028944027447087234812526546739556680819278767975276220780124277326837934599447506850750089139968298498704980514211822119322216814813937518311216318857527745376822599320079515514725402190115700484244908470020400820902355790300478433061763259727130529893022689968240131730332669954176045617800292321010249488935400972145603370842202959333670067320338686898023130285241372821007905518137532538505395304712371306311134531225214536673614197732473210191925601205128302302592159070850024776659022478773344726032939713151081297427193988959207997217934869052309481379827931042103495406993453095482497420703571685009707467948981662715289560258943467475611212289473042696893923211585743622579547225439203633107176879208034530587003336280055446504719676565420736913156607860876464777905895794602220210870021328555232055178382070271719891889448529866001086656955775681327152919705599970378925531572652946837006249499904118362851962665921708219038992396871347187307142236046408929510332759708832348905080375258311007481456027233482238983361332313712305667496684503859755013957245266288547658077689771715802685714498685479164756801006460591511146326292228949150827083712980816834967595679788690189297473998204137496178032982505726052840554988506864272228949408216596312501938942300496519558413062256864463367830293825238187218368682060335982599444903097056937446568909568606120429022401352854286188675452031626320027783448657717025572629627693050700531432337375570086042019686406761635827657530765653747609849263939681470856482928568611675846117836226616291536752126953246378745874205795029726475853024197984196188510949400589701361327983277642462817812729596344949128330262796007416264246996703529568757071914051102862849400293496293872139356760885135855185619684205675957649304615983902999790467644145284365160514763530267245769794200387876380549312734732051899626395969878156286509367870248225511220708272025172029595425694381070980592756227806787572685722421672098993448242032827441839558751098472813932134282313686793193743376363748630746019526141877171557252886374306189422759934278907943820256143557123958216119698840010032548084101810226499656551038843850849267406695883386803387500561122808040402170689660880647043693792840477063686363170236862996506256211751878931798033014173610817815279443149145786449168387190096607813848768035933726557071789408813444183343183289940109153901121911241021956764530682861673019880492500946173352477205083960284767595264581358557545879541857150612927196695788176004532322928128642701819354593770802178233081465691321836056761499009061205054166375888742356271164349562084122921909126250158532631336366814512490507631886116652838899722246497302894894453372397302722401573662969830007823535416811366190420766242260974867156575143024917642216644865693426827928316753159098663284760387870589073511654092578728455402175762344692666074498255649036654968719075466032975568228663391252684968410568570220763591952072208827413045648762617636448275769495875265130240886658069071487526808694025303269899967670225024005484930171137253751696700455625505062502173773576320883470073472577620086332936911298045692978817050782550939520338543462587288242038660831693109380718222947686142326535869121752386780741489209052049689616106319941521526615022254671517230574770814753655259535230736628316267918431653350360819213842860653438311017572533513020161108885140123500759632547894687140241017240889098675388071760980275657275933472181293247797195672120218011779628749640893180936143475845828631580524905767414922440234758574283262597151840568132133486178094026859648299358857237518350494737433772763411433651920211141301339477591186969453973569686804417775961775245113496459943867166150222289323827284472891634495434711461108205145736875369308152867804097841318763013153729588274713260967301684188860224701998770055700871116584104340697221395818330384156332075305046397857135586978763064264332538136050035936353508050343085533124408586612311083027269477590518181783852423770514710344356139593744510066820971078527801661389408035470720500337819277292330335097541169547166117777080921331698958847255207177849202358380843567665518582171680775801673697319727571302526688059483917988268392318714548682340325254970608782964523697005838835775360246535189025241558073847614031822468316777182980331374575988472787783397523121183074582479183449833413093247676560211216700533571300191508570445123723079414661499869094935814349911544681337378728244843068208960105925273150481683391605311833005183732956015379723251354194853091508102632777826054338628278515530921900369688161244439372690488812309171018740439823550197285985554768434892207646655643820754347113285645245538587414945212715585564458539413179350258932623172163753876999169819566151838689706660785966004259691142401027957052259474545906923784013148346610549223699367885144824615479545476038818948922911368190057311646666140513539838549166114632920361825026834753179664029008713177050157137773692194850178692809071860417951550642299834275548660103438269561245085815479836317651794067737716293291584000687393524359266927596608676596005292124008811180733094874342022608903341545769313994264182381737983190837236609496506796534596641681775426442491204019539151281400208439482685428097570690034750875668386214862367281941571942125977690837513841884839019885508769655383910197913606904830335769342209764615995989911546877299379493532847133517709421877133658533697298183785112524077462016587183433282730328817647921468692159797300314109407142412201643085828112691301311479950184093576537078371122656741786897609216716527780124137174497576459248067571500012738470294863440399358947441711513159623566754618725699125154956064182296439088562245907609957997521014872130506695081146452879516387562231433369650640958080209422097639599394905893993660182942457926804899141110628575559884561636890648103101132828924812141428706613388493740074606881542393544312240479762621747379632944960226157162023052471327661732721844620491935637123569684370743898388567199128125948122469799546190445206812645929731922025006550921604701307268459777969355439247948005945388572062187879968753552438424191739478586920588003176306764254818937501658669223983900563352930024077320601861182177831660334435959773164413261500251393396767711484016240457917525357568789327304747104514113870206444753623906650697877378108342257154564884264012366382101121337118128814873896323160239431631332614770545584497144714948979517246787815379592048921789252430411849206036588897010026063724507736425205361095378862083205441937834892867053688658253527264077045095205750150373363644907803067356896859834000920459579147034633674197151094896927925552776625654841918059193066580270505249133440222641008759399531978440266467510216339094351297455411367936964891425644283781511501903001067303800699049865101412136456933688912073695385164242835305056648510239537203531131913612315446898811991405845915622867513561111694046813139428853786971652456204708511549519228549933237837957003573121027635040608047923188936530658236159418019822395429367368245953026921216375562403876515903801854382497881293921330203234455500475426770728222039011839336173434866852537500934330199336215969053921686698965673122342424728187336786742331128302641699076051661072428079972621532264019613352602053575276626326048139637584764776559334698553831918021063185971408727674225912260644862889969163709877443122388897683646618805818570730789627415785091867070789950588084387542645988131868161724437645902480480495555727495408730471197192878700764080566727185376424334253663212219268475002759655543959332464884239668328729025784583322031078356473850893071487793367680277854490128314623084632360810281113114773318347492743341950143830972507299327336257151121254671268512825331250692848826495119146593942979930106865462612563959444232299817203918552184104391633878806520206125409871570804184157394501099019662665828335253241740003483161797692158883070615845739061936520371981000386958592210204651813311744878879659883435113434483844191080953871519562342130614005937565590282119190725774553929541125923326124402646168687736308233013310813614014948118086527025443479310866636991248370047553263057749830091365779095596883358907090838253691273970369037999518443193296495962684391716846451099486158576822332682331745376471780779395001155809630134205025719684686782819440164214582236410320934547469996881608373875827902725548357924006178967012341188825141182543661382420760807788973083598906673121300409630097136196327368872144293873618428184536801907415867599450673924270159380675420133945367362054226041912410854787101421618877081677557144853334343211756713991841900006394877257012605538526202263238058656892640606388970039711225753171700073890100227704505149588663783256054482371766543780841810075171065492746700834403420125845063764397660746494242337107127240804842330019227585287737693008719567577957999567810001699567596293658593969554463824097981149803746806130575398608722896385415677281089057888487555837130257078188877918921731811277824189254813074620668235824767717264464904092276368625922814526311855744743952724489026784364460808031632849106780544007429984595348811830218517257398363499253595463693144551104421352884685097995163941085857213481992650549496273662451674233742123668809295263535159667144117588726616284220743930792047786333158645642037587417063057929448044947217476710273565788529888220851352187420855173020282518541259686495791919978304025562644337384517658629995922485043820278483661991959565490241608153555907623006192257824052257141393256796693020511350858982417914448224753721932753284657456427099674041776325427977796065325348729024847509255249808478832539295651657772912183159991815701662499510854453645000853332002376389614877064860498233745968879534781454785587366031589230473247456564882971177003535705193331054201412088983029666945525079684987091874205157358027842446324457450533796274231835208770550738327027757897052604241771274514086317273712754987757567096085633373939670613877367943427994930663628842750561781882024199560679670410641745033349055245276408111178689018445020044102446452060282707532358353213870924983906999755685277569763155519785128949126677053619171296310319812890993721694919432766835977113817444199846963774134109503822949571092566328166164290123917459961678960147084093458686610360922085170858895133418424808668365910312669462027778217909909696082582165033320025756379848183226200437230143273337910535942459500533606422795303113507185216866215874513151908183022241615860518154086608420654231033138979447952383366171568194637054528464986022080007530383544959050157482516933475033589925114129815138219079655490127547025612648017327971059286430171441102071876962592804951893624783050503534514085667178826760204586868691765368526693423068893051274582315984860679371682748723950306250567955155513120324162232360641822768518483232404900977185117619848652160106540233734024751653982281965327651550865357273211801435979486862367059570409435257901844646967843020725875677043738368825089124850051333652753748599778168130498278101534376565953444806489589067900702225212393360539989637715892187367835309061115898796243868933086499586939141298154414373905868242073341231480355769501779978387662916376152810749665000336765932682123790869547791930883341468217710117751890960133058364611028031268192127455282036945342799967939233416529592674683197526507548746028495475080395936502078458230632942751772243478726545650290772647075443862448950520962553897291072225996204549360275933574836670377656549700304131493533001085918987303724443724585600017979541821887326776707282682867283657439957776843998794635249875869974209470498619932957376847416448482138238180307902544111748975756985761854070797204348801166071011918577050547602079366057016165943128939580443630421740523257687455998911912877111471039439849964991398545181690120353583171900394862590839970363476063551777657807637011339159886538978145532004322056485262802886741056253860379058221448938124981037740882846184940150920583220614078671367177749163651135962353634744129684827543880566852668823260310943773745518843877136733044838829361768320339823472643080653303861837295948623573060497173392547820787683806770751032096521894155368958512075032022058545812692788092734065578750536792222878743272408276924003488752904585855456137267499380688063379260649842610209290419729634952432027555585109139854575205890125571208164016378255771690051363477242152236582850274613834077468522597986299380466916766249415243135482882886036540504710281384042340314464702121395452512057676957954994136614768343630566416298003882924131740616692160204270262611547838647173411665455422260350754617102088595004933795047754853393601642030979638047228470665559100123188879820078445140529382586065443183359804326800248147178989698074554166929350006214466541297989079376676499445384327126093836248696807135881989199842854028079409104837383176128302705342923717219727611591519387283626582651697258945827810170745682841213243327721405255281392964428735625614854259526106588374150403472688186793053023744265729896442943142623105079777691321278657946448337272677721139615979475667777325551224968675677529521126403127212606699569934442402695286578414882980848878294696424330028928670469772369425964330344146897052947651903587810801924706325779710874679081733323180318916719104201110300426151806276228396946653968169679822587271928636300458081628479273583454933157490523480422820780511771299897414029212996209559849433773254647440220270390649580303538842238854608596297336129506516651820759765108641113273070908696517103458922078357704465062627662537848567436554807083360989487496896807225399088302462647373829196593378658257099592645583320737453325096295491211818357649333937064292434591733863461634239814872441685741881256215020110550368722643435455384936732067854459930458825689822802547746805567255800495844461479348401457835976956431289294804404756280104465368976582892317961860008638482393430823899076665120112084643983439255072815643781943170255579340418549116183041578091071811290216584808919438628499347236322424189489642556789554139971279165843666528851056910188566750273713521881519317843243919685221674398831710946146430189541453109364858817098599132121523818750157001826412481673089497324177304601392694509021871380611865734505829350706748201384790873909267330112756882377523361275653955422759641038074728458485412490410697090880619415680208841958503058724903863235911901539543128176157675327214899536378981723598358646225307402906939686266897552220150510672234141774541032723035396394076306693443455995368180003874477385550656405379519221509334919886585650806756863193554214241802124748130993789154178696990213303455496033599432748202663895857605190160087791441533616430146380427237687396493719831094357160701140640321667530183619125419937734763960907807441355909028994716371032065267913873208781028071613841837620020596285039043638346292396695865828265775338290560693478869527925127017759896128917786762236923608379615023623810065945339773974672292707977435240112560399337884476269701430270562447002512944040222807684446348895196719434175939060045425741647633382481932978312530794751313664592441058495219878118803215351882702588106791035302723571234317531035678254775332808825211271559375367082132284281560003120609296535523558491032085311282279622198368560374110422285964942383856598611460867231097763934737200376826955687388166876394859499429551192783085407731155402873442665503532380091876221644469634262560123126198048000363750199587457951496280121002913833000898529928293069962285501749906273167019995886110131003771279984646584458722756584552549817669847028681000878091486686843042443240932084966178758670696916336105184585965991534804252952019786488877288390298075824178835592144273417249571724371756929090672401830733892668669072378701004083873161177366033288691774673639489610819090343987990969798605628544361148963363016919535782079382532198753210285038358108523433988616801516552970137912337238883352967498084552632340140436263813363130124690309612887454569711870082794757310920387612137044155128265088026479337822355131845876280098862625719257287283616603922302118689607117855798274422861792341677363794008702746921411835867097558931174996012487895227001524929185445119313034947433825078038183119068298242212745712013544776319712385681853428509930527183524622868277037679503466831228239377569030159528166172485494868868680348988171128934488634660230980312067827894180972103199868511498296069276418364056595331251607859332051321952081378965242021133679076138510236233146527158662867767320272462830113346399097459727620760892241933230661847202700104835689151310512382433783281927628549945151411102714608890477894812796687307107609289936222273266149234629153557294649406090560989448221210963228061458228157044059096960078271094069059265211842597830080241088656881856608392156554401235185303877741216192944424256205654655855756334984022562728559667529729873420437511204117293103768459358625774059187126127189597920015688132508163908899526465629959858054798601751131728342616102956884755705753914851289788989436286224031693754025320226568592630196535313380232117350180323864708057258609770753167310890204994082732978098635621090973957510746596105167140596627567128369928336278078393318998474257369943432947561217914465604284934994107939680819790749157636438653401864701060074046372892033461767165341289520382796793567702480824190370232391852485138416024716056991338679735058785799844316356500200330730442705444714831138991458565774877439528470985004355422739767232522099404932115392958891696839913961722139263901012612506559191436812186137690621723357628704777371092584977885080816203971627217389061325764607103952582355512164617431644004355266710484288909401463308892861714315526104321317972530250521823297034326958299127356527375040209632064690986508696211845238360295993526260922104106758202808595107231774476545657630217282843835783963340868379564647801779855025655556663710253791955812933667215830574435732643309686371198555711134880716549427339919201313971323034189476261259449777863614229428346130766043824961071254432712227888161494036690749461552625426487096896614796494137655416380789042955077338125549879168847773057802181275948472623385353353778220962843441973364803551623438400509985153704575963900603135309516535523633106123186459756493479762383128720873419507635981046324767381425025567830950610755500262832984888674784846186157809307670013788440115905450961218501111102035883909313463138313108341233423006120263018206569503202425457958889612589462243208039549348313988020744680607247222690270285179012413959629529382946240478136513118384566263360150649589127671414111251081723855128635107794389961386945060543170312380868530961840988745916430756346031905852835419564889614529073790598468821794784874496744087631605202152388814756139754431200556135566643756712955405589481404807126051094552060622487797818292003116069312829986635552341562546118168887685911769151866429284460620309161545357563336107751170536307088941858294308169185960983087419851705169465325212404080057928783229188432675559000086301640495459569011712742766511859744406981175026964494053771612667982107635435134913632590724315198424911656554856155308670698258596073808810936668309212724807217454340685322682080181797488933311296385960575130363894275649092318752113569859182130756573867056069622380626085683637293300078263752198645048427703712718466970969043196989074502304995588030892558106083898827964403763689044984391958941244655518815379315302443969126609463897330092766415751648541584129362022251675053578297879323375077945078356350193625174536669381586059522107087918519653559696360423669793398529738118864767784800036885620293920165300056003137338348610995354045572905815501622157423468003135895296442080839077411115051789534853818410120510326790461354034277356414368963538045707686226038387879748870649553273393088288862853498981810717372618597668483231858140679564846993987382107710894338369434564646088909576757898277667155702777378742855524853045906416682526399788550009589828941464468400417924283189052845475350160403591177894481979722470205991793768022222160144595693227922906780740158228497096777659692822419382827933479710337905390837092787181806962760785541801705651102283081723752851433724066608452264237505440073144010902639083540561777320068600649219610714142499941787018989391956675387732476606655235346719836283227473371094382535899903712736994710209525244105423708660918496416565941416235405374063399214011459100024768772984623599594755380325739197388163337690849698969146935748588485975662640092934693388132055300485643470491211033276204302477171866535429595934018987820269662244502424075632238448903243063688490343047954762116158649236180612280086321500729319904153185781140815433670972874373423532777536820995808387095983085183794413982186714096057981657122905446254776470354626552349823447046963790705557608837331297692188054890316726509087292819957226832388222361708128273663027063312550685825412936590681855126231311330563570244477091704370833831073018897461463615132598742386816771721410222958928755383710530153986343069983125343181400895205068143944567527317738776528768423953601027561271681308282736459402999633243442478004057488535355680084923554142453462889762317706555531433104489877040762376817455949720491894868478182909486110913308538811564259073550318502117527261106221502191321177716471006373901742785025027338773454422190099036913716463806392593630759679080166111041976167301878229513902393849344935659231426305347921434328808985697679866816961616071093609157143549915632518947742122401279117732884162730760271037293290433223952641504744807424822771549462048972910180723657472684432996346403729629845845066517596025420798586709206070935120672884342507719415584641423935405525744261466262987163505422887259355388925791217235877334366661498210800376831638034490731426272513786584718843366230526110215245131804509874386670472436242825441172361515372786956824772586690423588653089453787390484479737736481349241159391222444458477816852065914949532440132154265840324275425012269204937557964760681664723693358001031435005706867118836006505950572744715944276538648810281023442724724673081381208472692591604537768444292755119115659536698853486262643059414573275376411092642482894199211045874993869634037934590850672808540810463952002193205604373390505862254374823587662701446497935439775235260988472924833279732039810221041744671278287025943436493237322107437384863057739159905209177825530218216759630088831326979740568769101977051322590625539164945967577012873676134347588386823825299683828620446062692387206171236280666175659932347558573217091776334749411935763310972726411599133256958297178330922736740659652310396232685506450175275050757980792853908223729054742214650303702606519324403553169168723712598424353240954745213200417410739241297909523587652638470192741935638798774732326757821578519489287155596651909996368762241803457084792480673591346391671878122991620175394152148364956806562652391411313385240825294396294813934241006922140646402273081650469329450485725700912053525213172317401327287288590439411616714866134931641440724363104219295756640290913682978384251275283965337110792774711119234561482628683503152634710915181112767290660839333208813659389233486381081276078355145011356008776791755719521214672340678198257393378194754330775702734126817489012602303835520027222585021951253676791598382558127063451241109866125707536923175161522896082190822871971471798607018855134139527222165841315734449129155894810219288485380164186777779405375918094839633653345042661678684816136456095667110684070952486055788450081780617625958865072542378451301121459163386937782013750628416697204379349964977680251914216910645448025024347065050423062036341536112359153932066683044050513507683646042961713905386212837640236345542305869071874794726239572804226026160907695844073387187746135039874067503732565738106474687058931945095414146157465267604164927337824624895235127837693281185970484835211587394856350093865377696117265135457826648648422507014477376302724938528823247275831764478538002921215136456527909508025269482419987260518252214928089805726375282961124387085774346993711575721749983701654244368873024126143899177694993763997136734469771913578399397599942608908231339752119308583361955573202260007016567773828106971812671521068483478308588090528287357115259207762460530250244138427493759143351160120934669463149364468269118758736785208631595246438383490811912010140169199895197279000307294853883260768583335261085790987899578236210356170395514760340707556501996754188713129905277188842071430037655129532467740432520254415402737379833134098028754283405468005996394403354873059066247354072389986896526673657310591644988648538740225776324677562673397374507250243661334919051855816750573315071919284265918304841116952514549256565017125934191423233513131018519279476439637553008252644879058940477187821896075623226757238180032870692205305125460761717111362401730189149328317893027922637897876221845783712742415172802588971629368206026054629621761942345154464265257421167349517600091603196350335713365795912784743989811276159085654816530008416627360912505571512534085930968131229369720252067197775337171082321667004389185492629854024150657565899486467255370578019702181298896982071073269947094384081780293622204828483113375203296329605769175374816362244915133812270374235525526379458769787914337708229021236546486827118699259955836581711400688577765154630892825199643625938372866013882121139244877642584909588022387276893714220669643366578772901583848387455330924058226211419581359213691415033707705906641824782840912108515600675205048533435215956337310730046703885439676954933299062048384624323084737754627390705637611863881648772761420460474673801264717343489862230347958235150910761023364331094423782315149593311438529995920428231033563449334681250827516349722527791785245386334875016828481290837146819199167441128307996103142465272366370961970563353453262158835440843516608797637059107438125528090029158497144028786830269691404738611067813489722724288224128474578473149062412758557467877653708326735188663819372398726815635052883758846881854793432240792701211289980538555376026827911019407560204413951540675369587846710057548136215430348468922571604644683056270822455238190407863570228492735098892942143950791257457908541405354696180508423033740763463930421894438654104520050244488651916461447606753558051257781663833786328441136953146756607116146676568672609735336045478802806094972143473318071965909444129064409678137445923889801310854759696021249638508919833572958779504296070948006669751289023630429976680752668390435480410623285547562560352711884134319966519834956125356588455172699928015933771961729273647302075350397320189143047920098112577890109066950745812380635389185758617936557660068545792930768263116756036398663211464520227247003223510704765566931071735251825720052317600264397470121369211239450897841339850345144454736060596460183492176293537760603237530107041679901212557123548903186184163189460642372545736663159083896232399235811282446682436911465180570832750406685877621026973648268241462900575711149913866333435105578423000557852172428668639139124044267111709657188330157292108193021500660002659510395443397487091147659804598851729268040394363137645154203707188544588007312556892156687226316891882667645111486962706936468417090509405312780838898584096335872396981969354388734713996597812677088547288318451450455256948610068575797221317953214833802184670510382298110100741878564918351728554484412677084170046377716810571216128806463394293249358477223663588713011298770192692672216653504441236554843665765276637781164526036958472416762132260822401775628719337833443440941065598316290420491109345431142463345801105399966872548560328270424798117260925607506959040720965671994482508456579233601471301488143249270367791602280937946829789767121407272191853696250948650302568438817218816661281990503209313894034123628837121139496207799451282584361590918982121261255233179928682155951659316678418055815279280601392880396370265529077773316815706345601472658837310168903256079292074768594958561822867084814765309976491000988990818931751131039218537696426283412247995463864426173275519400491815352840432615308473680466920083567389468689181286855271294251334965436742852821850472052333351484315060659927886790773157489290856116087358831242605379999348605800399445451384943754792965852212119849667686566966079746050595437954929007578129660227050328304614332644262864506064325602353854504023738275599515781938065712472899661845098080130223394373565571539950373744072134345880688737193832942341584438053182011166691250660243424068376451108229025865109362632985815011897470398706808008061741364950695829936232028900750105518804867301214573715613236231344512066836702254938931403142527840403750735534655654668385165790784303138269064653658902232448055304386889906344463243176917422515723271972575571535789677194091780124694998222961321594170926414995413226097268579467976162737165951065575793390974008066608623017583174314557074919232785184035895123185223067754747522691495583106565166583312448457262481188471801844471478491642147771688624429827199538398229133100851406545023728495297543588640941140418809817674822747002422788201021682698406240619646542463059541822622752158359401890387746419117258956710735480183923457289316677452527486108003894162564465694233117507787986640692626085869630555323125547192182852285628556301905180850374541947556431220973327283846861473446010478062169693564967054086191773393210609286468534888787969950191269132743177521155794678848285400282427251158671865108593610647181817443570856096657810422496546890010832873726703119635267229750968154062814383349337031814080209237424126857626174621564415144001045539702115828506647948310468642214293634314224621575243107307557978618937073556015159314392765350685861564857224182859999591094551818922289133311051288628348903414509464730850033839416585936536625897373359734881945711891044911275677019884405962129879013395696314921866409716330067180332140428031157912689573314257836250291455184706417346021170935903603212104475477195962145952925290899686918120725278608557955463596035853454793500947934422417128027178593573487681342010803786818427228876822046581788634088551389102041320544127634943170834480289461194783846577943053943070877767282154357775541640420017691941353483246242591293163826266946997481089698490941642725278023228543168514436193820569613470376510463269481897334520761511606341150750931804028921359156977377015693826661160012518298629298500651774574733146570097464379134006303416239729247859829800605435986768987898972015640357141265210220446853849871253112831803657003657299159131441915388347935062781255002310226349378341646693263456626527217202945948433371071980621501575195245193666078031989230466200221130665345520628242806487523344275587735029337118208455664488837283335324576989361307407470449047105295520670253174934158384385506954350797212334280524628597914465634547928700267001498901351062459039194942391367114091977783972593112502475044563002942410900891197799168232440093889513523071316487805850953346539243635954112535190749817676126516740749232760605638188618206453849654118400350325462524755406935497021464890224946633911905004849738238622479732174657936140077824891115450967868760480776785338096953230499922455996239050147842025899380661334882362183884391460511681447477764079611489103206008645318801149681391926617862003236359742478616082945494932586651997590639832200283264701804758964447101444723395244432921819945069857546979224718209535273983507284204081486513212117961077584149903643614867739931444687739108147924245037254565387973990031766725816381364323348971783864680950661662172702367473323171677470539066996528999525642934835286155921518272999564173688838285883718683356377466020965534143097554615882617552632003845358990269206488908535648194130617140995243293356121296542051953739048035287654912925891415075194487652337393862795497766662776673650442307314274057186623353656194603307921305835404964779885534342755802935939446091501208405415021823423923782079140092827087816931063080247810363882791292652277867198701385833522075795239364015530013299191043674815874326819579935267030654110563998855181255216949012875363981006565318722341250292966657939540039415337223737560517995737162304389430249456798558186450160652543848554649926635707346442900346875889404042419723140191244442047256605693032144381746714190279952628899254151857207317719502722711490321396235021917188354813819881478075048471281287159834105507114884868467979928903796423041101892787835158082334401943655032077603860603001775561200797799997767054459065631471501527294384733983757781869220920033751681221831174268617375057644314519566902627531011600497544376588452624844247363326269589612641481470270569423755054033366156375020586785292281840819127442739821796627071229063272370885404664426536521101040211286369607700634979009033197112810297225441176416095725403622573977777025855222864213565624166625432681906711822406601828100168099732855266262360720321512797281357409782480032359627893304804880210717885398083466115462748533892971769917677016825231479261170121470217225964837273279943802014602700234426052016566986848814922222684537291180185575935088372960663231215584331787840400928481724860176005237681424517193705962806672500068796262840655641429131746533185370362381171312637656124293039251420602786376276472651770961946361781837861640515737467840002979791384420577759803581279966446753212218522917997608706920839933912861736065537538400066692849874282829743363708580865929720712554792768260814066341128038519873314444886251315804857105544846115370813203874070667058198083126770665677030600960040484476984122182209123986429475931357431795575425714079952315799383741767021473899732599474720384745544302474887919508885358251327821102065842522529825150327740305973899432016817967696117471393195108348564810676706959879167553522107501248045916523947709535320769107793734653232475707250640185577418318291195202315312420724608786212903458333178216115374531117720602230042061462753271523314823999491359906230497849342241501206080882793699383881086548621479790090130625716408573928610805605950361908970034236415542092283877297836337145521069456779326086072932950166110552595034541979915944071774129434166899665423608244943074884631370917821607051831218480031824471272736103056319871729735561302998413201519928236622651753076322501251105172139409424460184014045389083979588642633733881114800904324181289309101203650689251798934347241559419671303015183157408638665188965716355066522787738091623733901371157982099202814510619997946463474480219743089724042406983105804620285250285673276267563381863630249663196969381130358064150725201245482261389395955709396440197911032554452590676246956742634314484004437598246855912410154009856324895681720132141171045406023150293529474684657462900267041401505336516664391254113880429512243205499651123075696257348361777633968823013235975200304826979421821453482401648988310418486538063054820406703152675394310543416009207083979944914685563456638800315632115976890947833004941587765391298263133162179046490984619993225053623201463846603266162102843386777629437536657543670528724036665974231456710269418744396115342898943251394704363572084163471156255156885580223692603501027862574747285958853007285718845267277968931117671857258752237396833305450161231445756810397905042388312533114911726432989197637746031809239376154538250917809291827917367226185281680231800021205535232829828994635197375060173330131911916265545982371904997566161670462589188582995305868186352540724418297551636069351291690838129382802874580908800229783222811971213691775700038276073316832987425813851395528891169395918610147973135583579613264338990923345594366699878972642767351425444221465990547191007830184984552802975340524881876078569681863231537572536829305595035962755748857391051364924320743419129289729671359121014639324049345327107628819331904820978461888981178719068899380127160020067513903643164072600495804279259661467313191675878141471584517433723354062375984181639639270937779246897743629627902231139696527644924919773507477996082933064121448445803701070731119695234914249137439429145321060672502317250039481117629256235364781921468737537547133464117337118292765908848141823397158903969300861215243819905028647088485991602034066664691349948575272547817367918413265174435384346826015335297325557118066666600022878165863199020516954590963690523088543132378406405536387549309398760000202362941333914711919001799367366025185210715703702633094580076035428152978538870922588261863016692118269463217385026681363344609188243041195197789451113707563376222551036387341381990508787902325182099181688448776041078236218110927169270380453206867553367905981392722033777697022515801313003877070847825390215991837852120564497984669733086692277802435372622406272837345972145325282228147875294697555222191127070324092667326793621886308858771951734675874672336175863372478528218939494174681388769866715209785442946525856470102209042212214427438526579915859283406311931126762775647129655491045835500746255999556287407656320593686108712649304070679534994449944295755002648942012869689491961911128139943396291602257445004348872203689269213823543870396616961279211250362305003191336755402651320576719947691406383294665529390901345500689173619654366922352421221413271884714386985594945392584452973826379588475428617708769288864930006155758298705353207588868187003401093482132389726429394985079848659729981351606423739460496416552226212673812134810004375094172226597450362275022770648467609958156323895071017959280034247647097527697472233756970713443773229792991519403003263512254520243110343387182239301197922919642102909337198401684284244737698504971011543792794392005182376180693628087128846462748982790566883026912924075405849408329472078469484853269753494255483782904159130984570845412389667573722272021627904589408653419984725124203637089652998430533253414134566211853102673219940319226332804265250340135613333597660643902547089189821781937650967406427586838912698088571203929091403236244917835424769356003280437743055805037483324762436161487592551493967594615814669397368332694909758922131082654428121738879874338649846473291547101310226455698132679643023319339069732071364728774311814366180862213727233386863461330149767935514239940626072356955533078621448319275486208394753322948409544609260208225351468514394766759449133723253375135344626302230701716361999138984575605463989906106635366045810353884133759187429627706693386335043035352695651274510396701743314488882106979259795364735482436549131267767195029709955869213844971957591608998130026472788394734263892278696753175568616723818054987614066148991807777031950688593323558191705922690030180757478422416290445018174745013604850004795667532525960132853273251324540334197710105119953251555968606658172420182052119760167264269033056817370886394474050192957656964807067495730987440011252831066643282859239849784688436821303725712145916955673552108764760027241984790051317699630859508692335917866922092248692465267300687688136313268323498928352098341065833228620286786576214596672335873938459040698032247544588405170927108115654018551430152732034019226541680641298538636270187862349357334731050023042583352834586442935168362312265085865832944484504785968992423811820925081111617342473587853318821563063767232448163479597320792861643663701764330206602588940806092000351607291819049675427880017470326132534949348964404067960940823576981864079290116584438207123293543519640813081088492949977348388162501373052958991447867143147041334932015251657821302345344135110574522877578448261918382310746756244019499526722468984504828465767331022071450963337099015054380114649102693807068885013212712050919218360946078530410374656236562162004047899588443961854129241456689693548469703736077298802469723676743919688998096338652867836376161918212912529965216599154802205458326386516102389600282358361473119318944714916038768792597983521765868499971480605756034803340941838975830091334351076207928307491168898645671075550128487595836939080112403883952136389604687902947571012786531952440488418727120944193437007783167781950707614233083235935008527613516140492251500588386995232838555455323555214083254360553411312758550024720071660528302217245983105364536345625032133333512812294917929071998939575801115619354152052399657793085053732043914028444255080898699440646766281470225456669471670525298872485191420882712620737988346677996177022490190466233350040516283043184901448215294929948683882632831945688434263000780516058987517550037705268298698977942388641812977575139505962578518037106334537071610815334832650878503474017830517195130124758595793542828974216208707517848705952685392632495556790507282043628630618715687797405921769225166906762103136423540638144609248239064677806201155779888284210896408337739367838395468104454492545953568540123726165300010198326081328030086110542565162009661352617862108072793359624416826009603041179948702081859016194928962516912063843593293840522522026103447518734984509323369910574251744784618178672304444676694320192598865169768327230599743944618551044676472941277425036112593104482437740968683311561505885038806145159033603902690399975236119732117092318088669111506515664033830406885842824631210079511315121963621227272917153633510434667165554882104200828075054080735373200282055575066432052876231589010379904157800100382717870391027930858040616765426291174490385997373842765634455861783372065810751029634372217845821503226065906837204509139635457464833136744718410323336028094362409251085457123143325992174223675954807594477064202922241193605924440377705470568865299721699753949944330693039676454926682638211037012467334705570653457693778485846602185643753317552380716115443895937267814213205970887489210609246568406353604912285296335144545421124748867988499680784507757421700743166759772838293341590405095010673338881571087137761167718553235617666230278275632988825083860091357770479249213169002398996602661864557072034187943368776260536452414464750858908916216333518217947464287776672409776596208821044230083265673811300435053881118349850463354631382951001486814677614044210516216260382378087768873689539606068608699523074563592307020040998897924586462993844657147626035079633064109569030406176731374673988142137670590847088691642287672583816815176283784430069869463584172052400165790231557674533462800518043099017703408468197073392711027604349107923315028335614152116163578854867188332970022339010702095309552044886906102813049797111248925395907023582077895400187230693103196215810796441240027235866123950678392269477771897440366200028296871056042773832320520210349821743036230025512485485258940631652937595763898538198879109833546678128557990608982733283784673805425954410655306910231411010376802359665123552044109293611933598580381166003651490605022027394489201827893384201283503604091232486437028056090671520364630530091672407100847778862322222718035172079358521426724668935167996711984014176062008938403319310196948851531821128784257965389523796583548758550984434598665241639046921234914849029645586915281097298610851137378004805551662888427963275332608271602787815151030288940557389862672633454635180276334888616425625531066822177372910451167273832853786643433015273724914635183013569717849304119024269076778452097642302539238175750409451159966538083328117679740668404125221177985400197673608784476083423669110577637105160157576918297860635984263938139743881327389751555091236325939365748122764131063455131381108450820005368158054882558137286644258574341660680014160570757488975677145772397190668539810435324970885834287148878576755367424049755088646397285382349438130910812908929620031869070649008801789209978613467020849101554360492555489894288220289563043782993982110040541165397358784502479399792963190565207672839972218810140202859100737692324709519885827438304920726481260889913178113770694679300456001275376873639340771835357519851703943804302796499560428435517064159102417674172198465431571296229000896474714841222703278578481147791935663471814356801936442890995399978204002143096294709646610770229123509583530125647609962827917373663844804080642375314466019153544669065388548665723329740866732975571146074669555644051462951384361647790624201930033842244750597498994981504353626063047507543616705106834113538857616767688370650350455819114878596665975365867172673119076515302319624430533980374302751595244566085983506549224012112628876382780542971872809138141097828709823389860692527911793457267441504920325732661519001499267936555537048910181371150937876381419154955252680589277208309453924327654795328995550305104904164401763660161417832628814230988087116789068396790626006912663584430080639571181973524401790811917745319648267552747659736491041046181929546356228641143283899083883449679500179260373524085482303680346920793642538306012196960769461026281566290040121438291376100894016803277313370480026114026197489456007698221139358391532497381002090814217166184703967781542290567725067553000288452148361170340455139029521319979391325004236851582964029375380853068020118946902687948431973828775339025946236235647954121261623156851366698400594163022971143856657670299548384381897490728397166288623600779095450102814718584368503912878985170104536173733208305016111298503472761878349979845795133430592748701614425252771114816892880878187014049478357848199996707686775268075400799058045660186940043278895087771798880490678678229880756124815762681664453626973647648917324739617386390407591899040064120140969109449934309213885376877547886943385975726439825440579611269601043927734180155726891931907783311634260936776105481159367194754174571866164274792155291191642970167229286081685476932006933901988418177918426732328402465691397153243389279864122960126070760248823058102732544534247448131114290261274552737790874611692018523349717160238206765690573988380609538739944416475009802647661420894203135130508397997837954774494573465957083712291478619342048146099209151593667197315808288120876167978032338696359719584906494606426824167065300537933049922079501978962437182734431310383973725788650537971942549557315646724336748396084280172012970317040566732581552847688145385388311478825038722257635124640707960791291784215411345234293247136121943666819495993312081356811259346033082089044677977624040525370164222273842964473411722360299165127213707335470345922939973477245510915730385004383444253775998975207038530222086890135275860185622088919069791186242888411574078304537675634046582154244275571870893343937944083929753301958616636436837742139202366453619225527484350671246403005220937403364410769428329665724171906692746873725971636590038374991023755838906309605593162459248363018713233367620081229667532022154621333366615566774038834127972044700958526941684915390374380756093625923527329174151884555079837301667030676644732549459654147855259911460346918163056838717541780234759727008714981575682083282967239208695896364245045647751772039768240824477847133593936709990950112363789271697320401212026291942048077418000519651862094462761544187355671120299257762773895665249083668695962286160987123510281635962238444778759856060482605161554064525914321405445241083057044811555091041593095931959268714909867390575019416704287792792646152817863543047764678607844057163227463124118985047822016819606075469034277751089201494302680222495658917998508103275344839006170725639531051058394872547479628444363361151379978609158801314831133596750201870171765312854201134826179004656500132353762945267036621805806570091040261247193451759525137151985909177646928015003894752514174457832074119188640265345293089393652774831163432674456068825896293384884331951752411935934172958746607145400057609895815672929378250726803436975595141506849959849997767605872076110034799556038727362962761687340959421866282895022051950358875855222015910922206818309776306292734281104458440953712238896080990860758710630439391822860234741643372081561873549381404679890795930848777660817823516909336697349639142888098649516318814721883127713999956143352724597114494124217060822446529003258192225860471116991692471174560258150608737743564049682139567553955267642979903083146550550101555312121058572407972808322366761016990957889380283363902335594822439739326629825401333772455010064433838784930238045836485888924429549167099800670248057530625928965389354007444457284177589837255183615110164048188764904916930364518659042623737897936224263607411444246784495395000762781808336950970591421582901947830833238104090658073877263293164298614591755758864075132491455493442321396155610243664521734421527261685889517158442911805044774271312861021918899085978170420050427352493510416947313092815422115341576891103608856091229932501776974775098792549071844037628527015738648700609893236037774445053749997323435222928658014796153952621108954590773069575065941852424601032958152124537467921423805533614797695489259985695093696965182461868815686459000294189403310565379869235821336332855630570071202681309258974524655071475105896445933218062296041633338230613662020410150094997868090744295918653696175891520596767451932541237884793619887927340978116352278341452883375781929105965968089479500110278502351705710517832265193767401309006323537997502640882487891311240161776704038108211948998723368191857474275586072220926590937703131177414062422916721807105792415385621855994662400533579566510537916572620152473756462974338451542873502758089157371298793188089933289725758887762509140313111913562201853869423765199367900084247264521199719058267977725736137126428339809453369503760482758996916357508815625583201425659808923252440015801479789629007953935453019273813514188786203676187449414316376474188779175976143992151491786234701815387489116089409557622498137609070015129373552411315959436809636056625891768325637227377654464804203150087307839278629884720378597156980556808075588830946379103653909711295806055600308964077889581598648837101930859138605512715532165529512024222474704887166001395015352982595616309185721965923694046058179549279891575954958722638437527266397864514825106842300055053567225324627935058945259657020591790078554134457587011326099356612184925845651489374007495954224728596350272326967723815263875827285031867274032488041023558429835546452649021191421225593736410565856890325448396684027648421286457118560949970642193157770444813793945721837299776548353364349878432324469786916735380586937217806560156540080691319532700859512231394286905461937815058062380397902272649971978350069246863961368882536190759517926676691710798047313557538794154506462178135202031229502260437477174079535030520664365855759840982473345828047670624450677171253777923557091998984339872326058184057186326114412916791927469672649564859696740121736835970766728531548509357285311251470382727637415922458892302596171359047836272836051810762830603738322833503515870644315667184782724906045300977517360412840279775270122373801509851514031562581080992654010857966001365447140442911084868184494711799240518602507569160759507171640281872176442266485622790934300256652613439574847740577593203237532838007441671326521690408638806433135915755259097043066665473986474504033423122992394824111814778418018960201383469763045966772366439327209974838846984666495291530501010821994885261831004243202132068910834919174800915363287058153872682325389848141727092700058958975909809200794136834393776120558422628890531666597027731048139599878247945876077651980228067469225785972191553916288585272769597635479928823579558910188710165887010729705414499861021955147366572835470301424121848150844960304407429510862739751471050513764587389066513128864827298971636689652864677877131186825117155546474553597380591193453489186638662652326359286294686590888040901278509504623946242301046346716042187171615073669404037206981790869177748096908975170309665700194836644762964418366306966143884133594558267512677539342241802935414346344127408608539935282549607858121018066781531937509410402886975746210531035312380112344101113104568616850508205629445264322907108405005942367564054890426631552470048315400343359030834282681693788932587704459345666829245674997330439594604004055044390178958339491407128992419549043998967172143959635168195795273107226708662345282556398964306675850997030028673531657391217342546322127092402664475012895985460789682172862591158207077259469980910424511310506453375490367198420036922143033868197820361252800609180141951300014471523896478225337658134575459950360028247762151435607692906357934989076901307765088830181083211793771896370991380070164336687777901863721308534877735982132958956735136349112422528511801152690783275366312356417401838055733211822982025363004592526442519693342758046562314606319807090599754296906797774012994686893535856225748501752657428467875845133396184889223616586036344008014813978757405983251699860860027378993956937617617344416273361121273784591612763289275816330457040806026665383878229021968834726274095216806429753631437312156382540840715477831522249196569756046060071323954317450994599043165232139749630924844031033520061753542477309331670789552320895305090120916692634993298412725357628153994266141938794256590352793581538791596315224210958832272839821081718333343789213640258738775060525326239647105166410887540103578920062622110346076668861309844009673411264933543564123374328658979807116552006489963620931397413302788885885057892707136052376524581065869182967194743546471483786976901989658667103676108060037195958081810782307265443190329205178482171142792583355022725136575673247912736360797844178357779978481217656806447978453864594190861286564294988376233418634484672744930931155559106377873584336229049746195935037725378253985839640180636501402890775767663913483824665719168989402526543351923119694193072289715460401991253880437483648507097871829629408972764569104330396736847440379206057309023342814201249565950604761962756387017497721866913753064076298123634052516483167364765640366233912683542895004245789225364764544052959281136764636081020512349902857199682623517788748226555954742119423586100792784624438211696748916068935142560758753098925095664850269016734161175802940818251075799023723204818584522605489350503485484911206700853587248193435130414441716046469388256153633505433015557269748912102724949071054704500458090437858562991302101277809102955534929704522129721558788340287489209002440325256413673003702930114101025132534881892084079762039942286272380906543199926571520729670894444624077249357741988582482790338510980043665054156959628780439596869467801797489899136950792835931852616741443113093983290926538077773591686666730188974838274192931479140224660189771022404011679862374792543693779169342524146366680931565542553977689323929116108018028620411681067552698273356944296591210897287712826535701102353546563967692141229293096802592807242694670973360750528105903879562384168550095172045867601869554740886747557011713333223442532100167967878354540952885987046851031847444165037802463050716922477013392741229021770928657899682583775978902640608967532114013798185519259138760347132601621978665983353036918153765597056611212376960372909636186767327404081052358494461648054264124230554102596443816017912342693791557481940382648599166978453320011667931347311418151397137396961472092281700914267154139250253103102487065105054449615738418794685816046499464486423232705324407742069855924690926142762430834174423482266047574150518125457021446477048245558090092502120148473352598292074481455753832521270012687393584991170429543264098148111551003972659923717998411167525921269170513630919863381725589657568446850960444769412056535151608541915059589079056061402781872133574325504802553158023838905500646305847842244206734519522852773117143327745768670467887259307957114990677267027340886494951345383383803942826523003166353982597613686602922168618601867475503047064192872339432680343331012344905074469382180112290628581876275358591336624097719178722980224645442929434341206806045717034391730235826884055384553715955340631496863185078887027072388278009376848146050867435086516655262452499418286015038335718338008148992903828254867076550505760255454010756150045789669947885741380743454200365187937075689612070032585414307809116854706970385237401666875202828573998981048016695836999900808232326301704151334693795060289265594144047303212874099592437394025154669777557237287855770902019141939009660060233961475628851414501492622049156817879215887976959263320858951772906882715797483029925187118074014321091649069223301871950791906784763451752593216192959598096610298885756092225837144775979812518928736715051513964671799575672439582356176296726614584455624080597936197231077496089841011088532358547173758380507141147014117347705921511292848576650839161445934650239681637438576916187430291013823532132080955435934927790482979377263892296705283831441089762888032800067404273032862326220362141038099512044665015257574703163647086009794521952435644668338356614090332248822914931461786172760909897230690607812076056176568449765094474163467433506935274245612249340855276270910279639655616081636503554619324374508630877083918952286227193507774834796239856078772412879846198067165284754984846834616836758754492621580995914396788365525432106670311956651341066368370620375297241755796358296138689580242314398839265012808646360918263253764964122078871768944648406124567589810580274734373511647096869563160684751318925047533263431882101750106550026196018585527087671878216568330090339265578399143640497980943196446483294342548773912807242971521695397583616463276429175104229200252399658135196911460553663342482808953144181939238103956528519497215020537828671407123314632815892060101519681657574991183821572644317269475553481593700665290253168643332598387200208604192624250073930470766407215329950045175234115122266675531542855811585137881812183570135769608754876333413696672149455102345933988806902400980167286644304798074937042442372316358717295623922602820410706826796868868471167190982214452943978482417921329676899285519864458576725216906734086035179214165714872295288981459753468879465297738153242942666905098105580041918903324211130321709168710632215188208374123057553886942345802996703290505347096112591032467860753953853574619793207940909646782361604873975017077606051648771447074989301024417898953693151751371368795341721868781382264122416006446733496326407428597103829225030410228975807705869016476552667126434798899604743000529449920257807636805075326807379932798080223308510471123018636148822673439236578594035978303200781265274862305901526257925897398989837327116045965886966389584503126495481084715117744661773741374773654594969586342737017799205709807471967168798853044597140568902603999791317103663446811700201812438844656011977552319632644624794324780754091083970311395978887540716222180261944187241761774020426683941184217773267957573649627883360952919633286188872821853871426460226692693695631369401615995668168441529978934601758299243724838490678483034485628426325981686090764028536655229581180142837258621000466778502879977793956277554963964194438830767608187454832847546199431371020263522886701151508082112422599034627395632401385882165121058166908637638387513479327690671048988580270051574729581974268354407475697016029447069915959432668304200857865713762815097428215076665798330325734075703404659162568494650950576794176084252793859357309308054777651571551091815086901707564263704266327733241671891365090683352464171363872563222450825229080170302895485952672990491720664427765070711579291789562699415624426610016173747019603169834639140168529838523547948686708512216186765245431637532717165005687214277515387614015769722796899355875360356443209415682018416190843939277357664257421224640333642332403583832837561046603075594917585483017474538579240454084452557240248599344011740670050134590172081837882018382477064610565620121715477854925967071624504577014141742747077576831027917274813916761619193256989470030188779799419427232909139665098402019661705255336945314834584094622037125130753694599794150823570323260232894793788354717232773201738637894473051978969346617386138172776176409541910389600715125380887614539561604949022922176644484128356096245908714786893681123872983152552952585496499345079352857368773732306028924582505920518579131061579576501177783112215842766975166047718135741111289871499610313646667198986732026124986957510115916579450674250949599999472880104334947858952379284447356938656557086676555918883828556117875994767172383380420192055590031777405280109244162839597930639166825603498121306371685621411270766736188272243615554658366623591660059030929827407256093674358612169938358912547824838318957108018013806938544713814317933952336916609944465165290104243615838757187232020695947770697113261626325521370643074055311321053407185124655826249656613861253132343345634080786292652819601046943354506164759927545934878280109132764977145365759248410453859259948783415167333162752694216432413257925286626309807529904967735808150672026401930439196674655491357555071293017256106620234836157287751130268761252728456822164835947247245139762060663105876708043435626755397124881290818133346024568904165899036231639868816646984114480709895580759701291763612766102849310123725173773022832585308152128588660673926198368777181055286807022524950348509301015751180142054223094718231447477128572219042752953872365203027468283524654469220907485404263839437779169234878270215348251568975292803735322634909118078427285420204811539843606593410090132089039878215756032863582079845027008574907189512848671215316363089330322332532260773412067637533419649910368651949766717133171627481642580065822285332637845717133231926060887521115962846306026393398296653584720126620024063534105233739369366892419398935118163042264061830163168855137103158169620332315012045133443131622809425875290932943704530984111186677390774763262996152909794272901852049475680115599529522351037683870830174690870927421377145718030229085892318106953676391309867651352911344721295373465756281244255980590598367165922142977775496257360073656821007853611089164438772842296921811290927228970987737071663066791808590459498508466186396083969707121084324762374431956698206564512513456495212932301902149644048444666504049562467108634460535376950707853009255624869300409709356713038826216883992772483481699728748607137443297361824561436353716670429030529423848240680151529684362295826746195129621527248446830512484318800717399663688891511057366871906516403466895228099501907283782471894062771545403656001460682024555392660708990930108646715170953871495467746322699514883682806969763948949323119283850135818356873718514438326398051802576206585888836636801882614286375185612224170991766995293765974535589235755652425077082250346276145259766088285913850147218508646888415981444607862386920934266636994837466589064273377877284941918401832256459654339540105674876823644676563200746449772641180355130663080474464355599205197137274812249799747397793326868778957135089084802631774676263405107943468295239052757157171887333197575260454894781226948378342882578182416298446318731133522107337545676289760504785182946189605667893111064318829370952334845651053330459969747519970213509222049167191304830118770873817110889775480737848046225516019692863375041200944302689874929649573239888352186486244444925135727500768158168612684847766268978707631872231256787982343862008046456102686342476756802138823187007276248141923542158780426243237618308764283856278573087118357200025052703545689701640246047351373559079155509986151073716774663745865203592311442100979573492143901102448480713253988090084051075838820261646243299917576347682154348230217036438871912650834680090597856130908082024072443592081133260424469194900336821542820128678037020629083722491246522089575800717601456565181729606182895722822359675434494669334339519919038072251963337661277969470895689992719575835268305127132658805674363211255075745699159183710127326855892578652024696295723209358761905955312674396311027383522682959960981738759915730140064378190090691635380064432794145194377590399861836177834859335682264794246131586302411529883369888818985508105130661749641827725892477945465562668235639676550154830883021817555760172931012325970944088648214229251953424805769355408813276918381538511951948141596783389860277725475889473659702913704329379244587129649072377587941731445505279838200739180344010337891967903578366579716186566318338923591004991612591155819677603765007809250542667736891406370062462743989677022662666926466906008289344314581794100271095994155608831174304401162183379315113510819444425618101978235845957663195363676768780395655600416569468363726212102225020219971342970733652388945228806615743532233598539375435916087769506741448775419255799165398975510482008640491646227593981675989314659893978405856690396568087067351806364404646354397617197450466392237985550697200141087198509812889670488420596572109570855164394867764438630700275808552111986980969229211222278790906887998901224543405314729136161450563893750987785844152562528074065993527665871329561925802565493182196081332474078500347612346968490666303864888501147532139519162863374081264941549490696512513776030489556069065493881420586127089349357728305126800927164547634011157920217937763705190048530789812183848557925471427216849266392244865117762029089363039820624092051989263732855173169425327235841631721842721352794056093981451754050812372612697924770587404820570153349973488846540412840391212369674025511963574271329257856864468763705884092388949797461215856856206349743058862848417429548892189818224961502079717627868962654375837813793416017987845350715039473309922210439878588978716112133873194933538829021586984315757851714670000560197738076008130924897781659790677481835828372157431628660360652089671495845369154263574093812762365191847064528562549787623051132675832802267921192774043509628661848976409293807376475973358760802774821710541215625232183417488266358732726423227865329781036995531197624520963514297891611039275040386227010982537215390917555076986533084473339985769679899426583932197162025509814348232084988809841313561017876454439113626562432554878000827332313193070984849674625163319602807192999897386705442459193655187578645543641870299212160130378817186511347780801888759806927789825699745667160639539840347658388357215481251727962687413174929015135277965770350826285773021774744879675455534503212368621418649015510099420275972897739595617461981873459863191458765277252449804584510188089003827717943763629384802143891010894952144564231813499747888380500201349654521600048084321876906967601275256443599821367088757938733271332061493871114539442334668104929100671863346186157057360879256841211960153477876824532707808154412888202595684102395743801218443790956548929374343607729090283819666278508087708418312849710156373852103864669357019636533508937204133195257070039695685817321872787760746775043144638794128539102469286435733819064073507368553027994350653778172077848827701561129227202214954072950961008432187614749863044128689084023931660885108238924398969524540320915322395190652779007836193930851847956152216924880616440227777654149967799706047930577035247067205097403607954216255970514032665202526174972884957490512965769901406817978778000156786796561777329062738519715238227912358719218981274694087102081960347889967354027084050074640380121798387627394347852623386242931470913894362215075060336051368984110963187798968644732176317363012095737792558824656425334079700619070814991954967763822026297184501468576501849682479279041357113667450239695659173310902108361529778912330869955633619710481036440489904987332575490432470216118263923595969783593008225963903064528256576622210593384980924639411301140362059877204192315416104040769389688840688932742851441431886596966375105289528326946718164754809381640140531871366623401847660195469847175241899570481089862066361115479694133968318698060507596690963756484731866246051961757603671063302699577752317371274311099219347715102681565921655557549854390372802876633839081500573304653484274787120292654595045424889458450221002138724162193399010308968629826885158102710204145411505192145134781557854280918632133010979510347396675323904632594084805525769193297199733755953977613320409753324515545543226545968164620356810146541015887690304078396108952801528706148012361677855442512655515816886837422088119049538917569760862388139269228712568199862070292469582656745285804187670445434842769404890410043128812494613224621989121843515909874276097947539275147945113289810076196874602914449388787655783633927550595791395915613319520624567188720320669678562142109637450146868118603512032546592611667762738359345609631339032743074869741609087554710350811506568697091887062856509958486637270567812490252301627879951269793009328416983937120687520844232548272256996549188441549244027058928812729108802112724292156977295278146666791305409898956890387922980155930728848476241438162374671370585663614990013428876047038685360493361160240833183936672332763457395511923605785292787382075807960567547503326835938200416175398763289177298370267746755207805139342667931070988155283471043436308019928296151814381190999972319970845258753265380920692403249114208730637545948411507505323544024048288321191614818113801247434318831182851027086768574868637778454217116207355186305173354343350404212540344779966713621693519121187607732527212954614396841191923039870098899844845665836539146439470093157906654065870578063493647303075462081396859826607168585641802103058708541725811530419156560509352597606345969301531026419852464084559987376773836053366451079220441357956262099630063139286678106865245204889014669992715575260586234687108777121559445416914587663377266913701082662443073042316892529183320120732023933862846197219018146574283457012802112037471327733669697956839802555608144886444616055052530833903536086668179307964260928438424897744637221195599264014291954358234014402607609055165947525667050011760694817809297173459200792048414341359010159649155672976429895749012516726489866671210166039633430833858721356850642545071540402221551816357194143881650392795182196287481887301669003321162202512972005164288911219822737875277835061275143613725589357626196017185143927949405149605040802312917485977143793964181396542357477090347217867772749107861483680893518370492357334312315265570166413504113237455879677517284189406443905183207029252230669303547198384547067627029489107189966427993126773375293527914443226192341577337888541065773990710279257234002258946871656093785503333545077121333095438281952513241442468730948570857984426078110275508045440214705972151132440312920025978772560269332839439840489993247973963183623760174183932601065071231811130420394635462386954685931960140824297093273522721261379461495645885320260051754523678605551771399107091079124710163123789481570738142400639448258784426715074357311233300611359411883551356526147357249009300593566529641594757594598310482326201003443264098006449006721968515168015073441434413490056734642536197773183731711328642305187401131228038522909071626622815944165873526805554597035360779679245020936969731012325629444669731784246111890462924759745639839760623597406563531832756909885024216053492606711702344438118039456332021895695372011822691873480546247226376566205852627598328103074444366234141530945578336008810216461011434523666735341484890311066777941401479957700629809338944537959294050577868621072133997878328467744899163450924396762244956045011476342043837551105474184477432484952152923531982846802856647477251526881015560841415233174309376805452215043400121349026285060219015197232615455646373776266321545444859132376732184841350693258734343346601960552994678557772722910905161257962557732459503913457910615535544888103596571770956907001500442379281350547378950778492352617821535854262559323919810172057040186213841651707897922898165780328894625987468221183699173139085075623052173991969701663646433761376028672699737628440425574561430733281236897912874909333922791318760226953608355017844438712481989814590792603968098331900881947443028995964186270065984803863869784196266277036941956516580932248331640203615397386188832398412396157416425867409099691384015094941590141069910470325105005666036918004709216938959814511810860132899824289962710598544771847620455546776600398907138874599646451296124669090792021303599488049614911726419256336015952486677774426242386592485527898185978271972172690658299289665989084704030108285281062545718826840988214024453767290050418999600984091450695462368050929573765518964649222413588804917556117126175551389371436155277710831877930281806249657009202766092658596622872784684481051429472167272298199988924499987183220913060287960217629653618983188924485859770278779967035693779954187927268780828954281173076567994991231071005212452057192702431596584974790958093308661995777720898769920453535901435664078821754857639135738081064538952055185672095687203934736112189916110152231431773664382473213667689720446011282397701972060035282463203372514781862506685324500042724741086287366893634702279571394310087172091347808504321567481124474741061719581918812200696547840097412654590802964798703083120029581982075172627410540624605151110635927788560380610448630637203744327586607998348055019752171731300385188623722372485067400547899782443271832761753592382649478716950996303089725302052056889705277610130670755780537963613855527364011372092850813380823599330517923891869912435746055316123938501598557465909013593034846924370903075582581835370419855892186044157113505339820561329496961630392817958569136702134931112585806562307773021732306367608011697248498727843426681356732605227722125441420249282618067238672288449571343946242710460406771040898775546204798398152070328430691702061908854836370598088989926155658850517285495801947428575388550715275264057172098086061902187906924507186268010057972302349355901319599240972810316518751998132564625053218952742655602483429311440078063000373016927798720075941904672600243884741986396455066681018641522515703084922409613839233277280806256088620775391697079659905469238893233643601430093669360108817890020942231251220685910225824341930232673904560501249330081331640781306391957034542787256877242065732487977356078229193204432521489030771064816527930868673810577862200899912215907752810397997127476212557109496639247221502349398806926822025950860396643273348733211465421935788231317388376452076711260221813235743922870428709348628808880844438011891377648971571891135212130808788664152658150134500872429272846027284828299262767013916893496115241858821108857116827629175538329857346609533204159781098709033782901630561622682916294317585016202763444840216101877556841703149210651394128187582592025161438023226571967964205488653453153665702707546726881842950164081754028074508144734878229887583342447025199337531896842632411935166538216578997711281723025900545291683505642965768756857872960796048503496996755172830577465357113941799935275643090874622893747824558093110071665700588337080927930034159208612654048446245417392531466178071601361401263578455305285782359479841807306257058413020946610405253028199589219729199443746851001693919054788947358137637901579144276458186218114975936516253655654509909820093133001557552276444587239969339617354492718906240014667978238704464180309751473260794549771579350333079528594694082676352521817344921161426890049044489864192401302729186115198577850960603962203365279752234396914810694317561607548644815166112825166607651149294865479658262635210973739785970198640076501419269568086896412898278375797248607416757988612579291361925441076193436575701540996943607598035797304767753677724695925879149623048619604387895981114366132371895460101466623190908963165566601395943379519203442874592065899689502068073601214230894939351617193797556422283348416174099370405964215722459847930162213562903281482331438058088798605190850054069156640489999072862637246737631888512094168419030628141517686757407759901310596090845625197766108354446305194013369448067473586479218549956900796656399491304014494904106936858098190794589107947636405052542790506814118688468193303301549250666421925172183711219035462006263288815218031800054909054219540171556985370987424099474251373855514971050347516935855582954424437102456934226905552853079995411117372605019275541759533180519039243735771676486719039408702110264781327178460815942048477424558194499951907293753682744200766181888489159293913005774597869367782677892690776878116849334303868582218933823800639910914314042057804007032373677734231079837998422024753646278292124760091520081253510428265779801040752353048915385465151058239812278937282466411221974519547523709496679839491485912077517432020864969343647564496941034282969716946803056787703850095997196731538994773417446796620118946985135020025644124707421374674510095997117518243071500917331886651931853613038043788424119586561923696396556146975721145058164957194246240537144193626730320084635979024717807374957399907106926403086961325213523037117140460387103121560549034638712431712455309288249575827690362912836869986168748639645809885519545500941807650898365777169305281694976191511785880148049968421252733654585703433000351959066747799423486116415408872166969386919333060361866646048564403891822205682401493158747681728012593820460560417480900103630451909557738627575937058932900975419839584588214838915691306999585523927372768241996938275345180373750914697152743365200274668145978458753904530469973963750281803780059240730850590123892044081967081025549818986379925260208137645744897176300968459416845257009005904199965104945892839661567006389357792502075820798450901191051351822235078980343683702094493707860853107708206835908732054095700199038927295838726707983188142660647476770131286455056141154345643947799675668223193170102449563234193516823085677049056530532651887872067552483257385970214437754216404896752580519394689326589144874259981039638820086347890580374984647093789442732993069360056331711710153428838300308026089845341307198943910062947188114467627501625084141046549656225694744800868200935385374609287632660944929743375661677198307347805296959173443920115895606798500874152638334158947729419040802697583346675390119059544594318950369213837619659121611550775488633265116035297508170477810541146166030950211805215617891253184587219895443175307437825580461540998481406491977857867651770321024739799479644905535446303107027207046715896466766228903742799463524812315282305845035842188433564065241843683550386966464449550484638024125323199630668397970540170052218884813128930455104794037977255814762511615210408939664630407288954702841381414325797985429597494124374012839282676648511901072397977269694779505034205783572273218986353020564994061499640003195354903052505191542091607543622476341497371086064979749159943526174742324929418287369065467917835329653498453360119716255269132675498555623062127878768998719740736103680536258960118215813643853784790814827737913114831132723205775287134977925620054408062352199864608235654946431826054648400450752741510259830772745886682103184610597689414245612833739276898303926507261416053924510617420483584697879522683821185077559169749398332673823667795064927548096195523403713640159720456569948996129696032584218723606245110802977627581365425127973921165362626764182248596896218078336639938441346423792549829577168682457723404175672854740109522272653453385430302791173293368798032320319059816735172590319374429965465365581385054543164918802433026374497382744939512812608292713299276540151543016477003017151574783436897193184913803272517642939013521062329043945694197676426322569559114126897711232811987906323809086398479227547399501191498014800277575387060133822514206438956011755695085845132126045888497943051481349821008803414701085538729012263315679946588385600796198317601135662851686619875245381391391975304849909093901484588212111657750634468469350379477903245219604196815127560878098898171596518930538445527896624212798727021253723822160341218190644045512150599724153094484792559724361928816873865839157294782968040377682696706931150073488561587894134937623974257642890809264049927759839250077337995329953133831063578882129430204945433645700095800862205395409647416345495626041118966385674809766364963339765224469903138189823371447053643549876511103697778191382245655693778628342804249433019697204375957777167047181606251007450533829521811281384635403327620086356879565245429240742991852799129720163240464848608536807406550143485781016229531099870889507917064519018654145262642225996138020242330708201634998872471268718760857796734523698589508006591113370659962015472572735222797082670869082847346036464341885007981231559861064039671255618877722093513087125385442048975032622297054331390671611929883212095389825324886442567697391083192380720984866426368009042595781829275442348625689345421318813544801929452985410876203608140722925529407984218818147047670468142098654587156812352757180775913361633573691675067896488632595266403788608082011151126448042060895521862955986515829075637066258611670780740707151873294850399122251083640758194684833079075205878809441125740785085368352375664479034540916123089643953527189076713989912773772023575483085397182023383083342555061986213302394901969216912307669412481845855623693079812925499121818895473115904640748418704531328370977085192013655088551480262187356054622081675579676271462435069926910352945120508983205039209327185002774015534831428521235022568980563566813647926346886558007269179783586206508390321510416119425630243303376136571392093932892363675761920471299588008873752450997597552341084185034451987690712875069781858639696590989973468935032652191385006830766562563428230616906016258444620536704786036010200810233817208053943853959796605661862420326338922465622220950348981552437522569164971460908566730529678774126625414358203329916242804613669535882605620864506650885134922993071628300764365633573817411050812264591778351918242735323207699459226304770816369957390631670433841585587170950689581742595409781319849294521314638520037295112290402797644877164411409851201458584437117144360427273163308285073879100048260079691384790991635015134328253786933614347317669891605976077821598675705193627641267716721363409764313996577731498511374277090202932856754754734584778655716678994074638517851482209842870953650369051520412637261987836855768787328339097704857849601289256123058189979559951912749867013290133687397171298257625773121445094194502454130714121265439054167917271544542271544185388097329729470772411488872199379960318434121874869553108058896126664366024969068994880724783042280836886912365089105840341240865703962568711272893141758819554599806646681557064633110947488341446975165412437684001007078899973242031800794740887028809671563720619832862571509200343334954354201388905462110783569856319164298928914785526564359130242235430294617623641925870710641131101280321445479413642377643113083903954762493587381826108385902395080720651391788662803670703443301757658073753511603059696778595399796667860871060230617621210701548366019673079777159841291054326500176914048332768000871005312219327965708564037659877413034244016214784046660312154365544197326175611474307750924600349624683453881581146625046420657157389576204188152950421271709813793326876557232757900697695327722856969885001380846159626531926851286777947982580719510498619498804518813799261826907729621961664870301684139100441576134230515981491656817016217805401425195697855313175202898350704560354563352231780519563426443045754687847590267569794069995300997361056436105499108549667725965106564590801861300480369619390491507390392914162592240895755320632917499972885693116097622937016863768847228374581574629683590230055206241041941483051368790049189650115130443148682849243237572325124880230724103131436783084398608536853488076223600655506488974578320124827469775242153418367644311913253435571306203175100342044931000320619534624805283144498574768851037473190085923397509262648407549130900939628151991411669171888149615586119823636646231569926864164160048627676988312122668435641103806115041924857180079124294642072574819610228054536724523687917971636772502974301359297070968928799581671314682619425869604330150646717934243256097065962211478915155464720218147162699733275225353525682765774535041696316707425760309863762525524621912039504996228153864225176039044444280025913725128268583727761747327813641716478068437297663403453020136797788342957583647355768636880391825958401288227397208489690420866682597349548219298260365702717286550433465978851840644249024714482334553203419770396432465213029036390245073295937731697171168312860806697567704181643880893046868690722943089966351477614283057392843941287507357500294807357581949382135339227291024799032235145814745085683263411943180720029882298805809002565465346876765126443580621110983718188572829394421170837960475325615021306967642803951992140566708971405841828646025616961669366319722540378585297066427152404979210878803929161786740268522944345236379659579012249777865562138067981865573679818560697979713201846585878024172872464750315468074615982004503368177332864007574101244217292256949995567749511413883325163841182791937937829716418145138215714705819004472003318296470130499678233611354210712227517390732066085923785879382129460343757302569476590601903271039921860857605750099989288686010320469533813815099543060235032114814835291822521613432333860117349338998325735264466271988738265083475269139169756942635428369408639879401185630135590416222455287188223637796321718651791704156545457140922731887861166859642395487643971156285665833392376644736149902568133244046350708332443034132398714611274139416773765121475962227766645655997519150548108627371718566020171642198006486921201659732004026668477917775379119972557187302760908307058924596111903894198956186165199903098961362706720983671950292490857185714623337720548408210855489611159888218577152127523938161778116377066396391107494854349709517710802807916628730871044246340782119244304753410776912620299213782802077657199322286477573046025711246507503303594040501851015538722281759806594848029244470641494977516270488230053456761279371334665773616049737064850396096559332310773758653524631915381151692974968804297984298832389463775827412317835129743913344253650869528660503122215218744984334198985516178575701469887471639967543417018055018673743942861458027967802947060372030207547167894387244015404952821745606576783002154952939833673349632126724844977536038188392507306241596718244919225521771302247490725879376146904844717508678607679976828241379041783768255816793445800248019806662244405209285332979238017825465425786161938239379874639380506350344372336003475781291869421167134501262765115000007986354075202793379500051818218810059539149307456366343509054070635906209305275746251761739544928816230864670109423169847582122090406223102765837015138877397959849551540904482586639084999171936322926351821235585774390792114768697495730108092337405236541576365923410896997918671569827967310468728898522201929303010002059234566049619981074497096184829619491046560735219805230458023972905327016416092557384779278088779338355895798070213539314906395737955871288892030767567804089624035976745664716794060190658305484228684416716621138786981646639059203898178127084108378701269139058463850875509657529148688266680944605396799703980987277930660436950594593737984346792416734900724044608202191185711181650195925957653629122749218907131931796901379114998080743701514953848763231448032589771219334575143349068428165112614921855622934717055645174243307327039226281414991462208761681517612276563366798008335355530041916959665738720086048820064562798191785156920009155523026244616082797677925880816647365420848234425896771206114609648146689822641902510939364289259989831111288637796170272854457127784820526489527413115377708705495874255788444826940542093202062654648451277212262864834712594424564359774357619761249624847277977937332727449838220642657110606397812879624600672532255723241889109430729096285831919307685447619002931571090376834141512135227726437777192535231412166958243108141961273504076074473965342055472256739004659611573041968311661195308761534984059000223944194201754084714008152873448075397207728244416183961648138099651593364205296067778575098027096787271046914621331192260306370687534383024153337300639041713110598134470014420655231381490747065851815598570523096049421355728301721130227735316942351558339705817915269916406745540089365363815767390131787949756268576704969546167126167668981778591899434322394642819278880228717879000079920990911152463781920487017730565270755976089273525306257636956917338480063256181916480680724830649367927903219482126964241948456018840321573069648052512050096886064701897120028652283619549866741650758596826439985964818223537093329226579257959704429589324113702257663574048430169527647011177242730603938123195592846282029021911085075410847935987805490839770979029604589440122998031433297144615395382610696058965504405323856720285767886676215947215661831872556587619714674382494385512768107113761138811910000508521529869231281548137259324913390554797079480602909186488341791991597084278497049285113248822924994980603275505569253470413409922961956999983370438324617851664724844757500529603891670914856125870800711265557128451836671069919746187305573971370766760987664606880849127763526133760838368457585069514576855612033641481848900095493752709862992340235357348158710424465477886377128977911236017764348121097448451785105353067042826575357494590936913434844320344581593998934410546377812447771249971460509614310505973190408817516984694902371355890067683052020634423474443018503911232862840726595922811002024162330168513294798122386074412797345415869691698246665454253424221050295091226633109923327662156246978274277365504662822624301838046493001913861708117799480419644324734647555848437352516252787118033673273029267810885078847076336180260079123010463203432125679446078489141081539273480483515031702647370309910180471975566591468746675955798698560657830034595740214847022779626689412942792003925689637906004440856929641061529242220772277405943769430375705195729336706732054762366942440586607960593341142558438156130650895741740039760935604813227455563729250172771958157860874514573156366536010019038375290637758569605114345021137201791489566301536798973715383555978965098364022222093588690279248216163929725829630144624158927819488246990356347765072831263654477470743646422955924468796554495229282890159144193977921046597166731824668522200408240765674885014378655812140223161031634214338072056766162413966601846233809906811541853631426195421539523696304187007924937577974273826403524779226633117351301475906712648414931977119099170370304991123770688396828840329716442166789343526831945246968289078040006123484001226533187080579371604728577340487127330732069159257684575487408021067024955964817900605054335238303664957603211766408085299950141856229903628262489601299591662039020349372862486302579749723804754204959415773455377021024279411323877025895846052085777028963088261009656024309137035532502974232857370040699593114606330052971218387724926340241365197041139760443446005671703807681944804282155317355675073967050557467207171235243804974779305468644745621543611528360097875284713820216742097209760212857785317131171370452724842673467412099532655676703246525087853784821048543351955464722283352046258030300823728546566543095922713581280740485095386005178492713334390721194828448747388293396951444552708609708973654390588458757519743108022492879580224770611372206549258715626751285515140330622431965995872415877592228047055138318849158132848906745026416315221807112941423948435887810214583025129738394962534579604271338422436180473438842555014185526174811627996865792905416226513664714479444777439912840218490012415571539911995596031262230230340208815936295843612053759483657619145094796937842544224149852827181752906975958820887124763080418328053175556519509592027351709327944954535645746359538457966983662070234903915477094311565309505637766937718009464926353294652009512805526919038234187514316712802029404989156059403577064273073430284232891421866292846103556263396963911045311060440586229912091886639058980574261912024112942769881706305814079569764904004039626994715793530977469959976494637821503955832158409645291773450083017159776124699086792853094354859110069163870375249071451669168585753272711567729269448797400622962278554059851477574546920985410579951776635647528880894899418136774382693155384333848880224692409312097385354958252706648944269138506010019910842471375776969597612571376879737499432805345020396887075510483144488067997633659694965738700330218939142614789721207975774245859048790398315910703756230414841656887551807895919708698412252008786701326386799979729863053625135581619868326591210068621634947166779887548088399479975138230152253279895885577175789453306612427159818700430950746589061806989543868909639710100090087720297825884074131153123098584373992023929215726812201105981133618162527791022732561175304276433826713983745630656400368018597338413513303264198210724244712004835109182998590486560517569978851978518578184350347353201992765001433647320555512373062327205976741490293741508312889514504488947278844161352774800069970769755781886741552809804444937572969545986500444237791235551078727534875919107448474598452205541705168064090387749525417945652465957513551970321306869855019794155759198632614608396933433043296276307473627161951122439306284906087264854429208857845205731660728867793061679842398619062338269604071221800617344799553140101453390045399192729816200876861419333014464663135324877342582462959135204539417741225188475132376161689964324780846474084902683037212797974990216858681328053523870314815918887122267653126603201469827672185523605614648904918143561239597331924847662753523290462090966524093873545111898477205825627961196084305131185023162157939216330528337726456112877728353070772103769710109289920576022112905450867556475958411807754438476142666114266413951254725870134113872317249488966201967025435289497826620380899862500355099170174170626701879918289592523497045822237795537439678736686309598494756013376789232377975460403415234922461795232303851696259553315058824235348594321046858830442913341769917899687834128615861386796373486699826055373553405521491801785828133544031622793070547795334440951889460460850377901402054799258635139743542577135067438384874720780956245416526091601622956843132305804452269342628757649846720411517380593485787597067121705512229223308837199446460985942509630108822334705121808969368783917305902780213747555167650805871734127500342113805643749084605864486159013601645997121898473895039368361622363246301001535112658493591347032895405257963449834647516771207282754938516658971955821635227919632659244344603458723864182033591753907378315698100399774894092307070996664897535290006443202976994668847963527649604795225775678447841136272545691148951043432248326551994250249630201568744553824494062204874574401617809331550283477695265708659257694297295138003864053327118457778282859375112954664077264456515910465690884826446080308538358357880877873039148311441798349344711586737252001706320448538473456175330812355298442737375477651013936329225135918161202434164449353295414699537653822780684172367592692584856925199178092223338147987277013922108989730388857805266471156736401408196053325179348569493703826158219348839935404369065237168205852767807978489454631169382139902289655458957328859594368569316824624928539425788051025314760642657379958575862293850136728221301900455898337567999424543648383906294030165109472494818775896324677181118727917149154343572149373011092793408201072256386680321676308785184616334579812568322585178178409321355453801308160681368758863649874605350252527486980035151162981132926423451609238419806277325671404664480000731404817689470696121950389608398375575056495799886190928714146038019261662725189940315015703908226168818147241390486685217866779554975204911012673713208109349301269088787461600179277302229408554398226735890129106535707615404124891707357800362291309966274000929762322659297435464968619552258341430634899369748804869750775112551851314581014876824628906519699401108838154047336087484270973936868309660577620957160401917839776221190905248574142767582387975285858271249602481557694960135048922289224193971138156964635951590387775646572446600037837338537195774189668273917870826925757135665398618118450580048216827120701491716038436902550776901704256356376702943998529732158618583179716325467205252716509711295077403478330324632449230909505523336895779516845648174717703593050710630276659520571397853366895032779186868663920850557134109532862496646386658884054604514547886692674569630784610869818717581319622728086555252052734403883280750261509164288831277576730730663389850526325980763282740407620233919600992009597003813912455654548363089065546870008265401175395631315043812381517203328386887033235772547329749349556186330477096756090764346482605668568527180317444151351026427932467461110564449897809246002136156491127390624104212208733958482977869293787320401686338481700427120170460084995729155284019360519272407992636890096179801788274127555035992535677600854577762434246522725216448170620235163277364823754885238927728447002032584774264771311867807801034753054824612173553886581383515869382502097241818333346606973904360465174070407502077232221181998812093419415578121586262055733222342472059104581282683844165487182549947551491050540393513712959700893863152530997641842845551918886292325397182005703612983526915006418737106293685994981200024257475529490428333194317783594167637687491434805536721977834306272416832583443972822521210704931740542124370277126254019082877713609608047925598700057491786237959072233972785618244773678120557742313687078598302173067185590191575138232363534643635015745227947668552167372106952949094522057277849143321368947929290798401777119312158702370420769459595371127579362021428930935006205189818167742147096793976118323295187544907626205676302084017883524332262629807922300446431342557685779886891607258333384016753670177673470437528610421487594562863361448877613551173461437861821582002489999222265502795933800121543278680782545838769390555159695641577969407730575139622490475521760291694977813879371639584039817210956624516323301543552266864486682973105590143440431070649650584020786298421125752148110446645726146062857170842795355125446043748455175983356571751420617059171046471105972125882382016080559712805201481430396298972583829053800065711790130115842368877714709911045079047220286955931110659022506682597992458053462392867358790675168744062945938611462343319736992973902178320031437368782916633905644605196540113595152329812249004450872775485291364047350089957284762181070906102641522545698523106188101803228128011834498340606692854671258108270218424637790839302304722710135185214611975276819953436046998688200176319663065530487781839189932190732371641136940009610149985626404532519633870174401547179042574579314813244730544202778049799437197879224460703335139971598155074495592134323418129673965805255751810368068871894589972279192040505320468362306294810483878744056575540322331820792917173292836386680280987452174068274931054072449328879950996978561320744190219159313092438217659638718603862671038897479698634284282165651275549318207411117890506610323028252310337824049013383727530431181976896417914229264917445128859838573035548704498637893659463559541918930961777740905047027593436970342686429531641714978648306888310441716975550609462184412288171703872894108949144654934533421137456253730235878146589413187943511956361229680464061111030615390083610346655161721133061983121925681730982157545540670061547803125137322176088952939202261466479264362041307742914681481997696673218279900318046768891125929634202782446486681882826833429313979313599084207340063906852657850151228393568200491688495688597451044665435604840038695359747603940232262032443885314122356345225270553000691430722071793821060625103856307857112917878671404183929552092469409085311949338945513480248436125590797796514451866772064523194232581638351808669588840698754248860008668044686263012530367303056170188836700827182679196038379666265662404402027384294351019052691918876053387700391929419117158771988071525334709225406352077457575802939053961530589801593799804267717946056676685712382885112602617835582608635932188207383493442597297842574712060313631982820514940817908967728950861670418477592705186856182592824760621805665572923703602037587293000799853211481305168744568565308239297792886272227108519259001266904016800626346605984685912444640809092944708134494747005028211793053951822309020691680286422452728388223993380022972556251423413134993163228421622458552057700223994186024908309628996490422144402345072468314972668089326123167533880122136452592027384190340458331816269419291384525126857104276819300724007065741579864563464389545250735865279773824831221664879021756324100307626065993264695266206750716038187858744432826732727770003466044814249544162031730046687824931216759327834072574450462856157907474158940246212024164930095041697295745789200727471730104944621125456136509944866060913102702720100964401962012465680532832662619572676394985909222280382814606561798507854894992442052490917266948585039746672125019952019379286863677744094350858396353259862806552656346521138442546721461256834804622871457461698932048716992059026019143925673213871249175056752983457661400111017837013653353364414304842840378868648956969796455586078891623947057054567021233829559189602266369713703703871844673457569511733279413104834709202300982550419662280651073250514933706194228736842863507151419819856911180347915091151866782029299936597984710175861259326310364567459958548613249368486597504892570280632837515085503631471282033758307644126210171142468341641532451472523429241231012399591615870487504379257420718109104311491709690842362525889102180234995592007839210344186038796386554577019820812271194071065696226492720175412631066207952769866355205226788477321711482203909277190049263710749072285707410292478436556835090404144714311970588085938458617413517345984270434030177574114896262452317236779128847576240636704298713374491402644865616101602865913428146333642798436807161878625223932979034574852403759763931042697375017378027790492562402113274379202127610552978232194799380368460253278113841984399431828121632088043482839300840430576832523757618578507648255347699295371900560247765610380441455527703119156782346294018801012412842571680898056716239117269549629605396429984967607965355719447665121155740208462609854066166829124728713389281144574010933429228329232683434454426217074637980449325054342621908442504811893552761189638405781437402812361839242571448346426949879943082949333654286628937294184063625852217648106079416963813414207110119919103900205488230451363120208129534378502526411233925774532720482111616855418372825170487984058584749452300915963509253357068037094662626757869541762644545035556095793119126730819530493167850005264031350336404763487182655927697262764986321312890677474257651080960491218633144328406794421414351092824065734870153335289435257966453523918920023308007114166358861845752730072269138898610596857803787219071002720590765263681606649862325202359338493292297424530937498982706291242342045798765996944089978428722715865947595597775071967346874614606620786241659826008376872051818574923426309053448335547053076458253958027678857584263189997277630097047261516267837327955472147553252152417359263450883346432745887298318459849800514222890811407349232964155381520915715912306363740238686392995550528613883520046738539890500504610400616244564019862542516224433685198284728972532242443302393094598388052101320338813664449761232071610465729761139236812017177328560946252648162039354493950921147599800386183259880962281261366409866656501185798134969989514558994536585164227771633437275372548532095750544334607912672328703389310905722740958684681467856384044019805498447543538846177366875351626769455407704235750329939846877985939735104265692306596421334522874126217159115419095689949365240105409525792227181821738748822603397351697845054384084229976103454504143538264769846364706578509804488707324561053317222124523493250685250585040967638626644186879187768914465255143654821806843648244015840153873460377492533351485365541838300018386135490151451755344607586527250853482241179516729053255416434266616579473528540964449926911355645110636963871638145684531297294495499324798239671192024304707105126794451055541267943641023918900886823589448141725593356045095200525574464136541852700766197502287977761849146276740498086398169747492218497461884502488076605535710491693854320634392819070736722314706102783367442840682060959156074369299911643518802803216690233241120300303532265517612660319518056456779526233915949684165156676698075704584787723134933980792077576300499221739472042191512709434483810031822027870174635379328422537758898866951329939038172007900132728077842279342699802379016618717381100538895428983340764448018091974897000999001793328571767842897786466629530132917437627354272938959441415234322577404694165735660206418356182861813688453343136712768501056957460586300530451647548839013301321187996682760150005037368975179715588410869276557776206167972096567666255438552114098812755405005114411968447429901284521350371165520531130002074720336185333973088227826308835471514156527900474248234172062856457269409769945980917941194898093113673139825822758444886925991854932823269607824365470084858808279976516033884386950176426151140680941492199897675284641645917348644266556624133606067164857585144341121850952773062878269993953379692870416944348365266837548878845446777714451463165830515210469003526685263539635789238264733611179948759944677585123414501092840163955101991769753084166731484173975467222455649107009657999006518809638463871968924957233482079768680260408156482435266158171618469220487045515898071222031648783252111756726797992743104258248591705139196698501015693452055927481160629253313659647686708777411871296823627657030849112638124212388751860892347935523832506706085440716052282347966742178509622108381868771404214955061385536737555100811510292116375786786773434877150709543721785375133264894412693265393868738989598686870880126212613848311141277921793944987509040211210512483302505437316572190220565537223092131864308599445115321294619655790479511992497581614716376269998696222690909648372559987641561909171275912229838780273664954052950851163319296057588053784016688130851431646171994059140239170017103169491116890614813861265923723996719599633803036833436500953669136949135405188155993756188589089876032778578790228009653035383394884729900551211503510192807322298394057682669725043968516267082611480994796275677894447402233731454610396246422042608279618812835418506394429095074006594818290996331893684507032612652672609169248017882883753198366435424042008293125556255032082160747943530842245945493759572935208706266305316155602837176107428839805295759697308705327905181197108235216657493681049560354455110687774148439551696830666367764398568960417468480415312780682332553674958520176528596893547082969838857113197448400975718258556676680595222221445947684048351129282758255332171410831608424789651451802777347251077307088817106272755753376400734452172231178722767893968976607255265049201869815839530835391655540918623540706341924739992243814314287670159125012774338943132829138970430455773974879926243234446087453374255402241989159636894878417199762467130107250978536838944663225871207572858017599240132904871859661611098305112888013567331010467806722166778578421872644231427046297571957480655021968360236720683730215794715004731230964825510264824367912498204591803467376935052404838681210465909547057236173803838499106612388508173776586692438844862629707092030130812712838337090023601463689432838910505701099525136867553063310705155741450694490910043447844598775377137092197164508049951649702954292385945271967378687118886041574038866125105268055937910475793621431783030404385896845517855064722737892235315164200027780460081902353639195775887591032264587273357155055111102180962962727198962346613955323750274071710879332127947055449070115071519484496952334678261947570339945061388532575436181700090353814624850593641869455571682525742532672003492927742751629193491701347951884393666841096577272517106882908401451687341825651814928317693245664030450009954372391504539783048288532895808656252368384462173645196280154304316681514097792237417274784295454791811200497483135894589882851996348142637620721537367031678588592573382993833504400100586348043721052524276735150960499599008363047522538328136856769404422683442194121395426430917967232000637484563450291134026265131987584000935940634342123036524410618050429915203069205857109210324356209082877950386814006618720899227048548215299342928557770025420722071677734752413528185941827127064576048054470242736301575019378248092414570632979526859387513409122936750709457555612061107576430840436728707710709112842090591194585217559550494040810521492665702469251169774841977851164161857449888438857437447454691041059752932898405893336025402590570674834358156283991552255262049248463910740629961183904443655197326531589661704074463202694933797273333322217769792284951326543794711413030326959798908793538344228014444388271773353927517735498400681916644412384177077687013259898666960678834081514079078838461617812065596685410775390667547713352090786862127378620417750910906154871284857267222311735775790352414807107225400505889171935934870911190319214643195683809012497975334450575836721195015503633705528438429316374917917146559348675112844614281402558317345372767053693858438991839142635721724170933798254988112231451302518388653704245568556493311933170872952726557344245068875771056688483124863738171524813291307860727959701997334888050734270313300086708985491895184847759140053942971910462424953979671328356963489287908445089665480938736740419106091908147194438802372039065854543313646154832685218679652498737760130731891321756503798653588795841186611149891050555089862957470563698024540242338380212461692918075764205048259989628815270756611165983706010486154682864081977234901412879898520825242466817724109377988243515518546262456313027935800453305948365529765003369192299123369627275630985094873485494032437155838723598714228487409985598307746732895378128243923082519487901042143593025937062091996170251867381585999683464644118330817604865400678551832034724241937620422882816828565571358713615825462839411087527925473202701941862460109227951066650404242256145132507560058221547985307282966524403452140320589279435688830807784982691614601898014689444162846617656739931658195132035624149219434652180024744633727010365522404222025239129725071215263583051892290802204600394186665374842601422446498333398721540441491544509213891175595281717684527928996270449450998310766686818156249959498919376572180007359230296347080177595142786314153732722842896274339137884855000397063027238056834948960951395800453144180635675194313007884927840359510335441886058376103039553485493360986219127178701114510493068306760925682270160819029421292389230047516276948864019010700286926371477111657702738736886067211343144101472532673057776270501152414147673148361556089945968573268655640645211722094984336726256033000786557490952656386765805467750543653260571898600060334035360206066589372615960354454265341822336137705294678251871606811826735107657841017974814965866795626696298465776851344354795572540204761137236441055591279767207216773432701775186084164902650481671674993874253977865743491252001325430590657774513594825399692625000849034966418460575553137343143599441785256864074237450775495284536176726137350114366568155954184912228400744867705433628899502418814293505591901895241229313012047228011085606091735893697252255755233756143691454374974879619398292476927555808360807487623670914978118524076910091064457092104070140787830794247782430618641725555184265576029625735708972197246193831363335533447642668821051193941029756285764227357119328099153245671992362565691037639431848473181619012409891962390375864743093498832301295127995734621828567505221981185816396782751953283202087883383985953756330059430905512728924847195328506615740664645946703664837497981064360268154502057693066741602727785488034273210326060528558252460569401945570463206062635039876675049087825619362990307793359069351228083658150958654022492647390254089931274350568616212878009323321190962446790193159972970691439758802984361370529776984402091254890779708745942384226874124515894632489445146402822599026217273548287501517791468953527555325093892253484531863316986197027960998001023979649460722466781924580067348604265765873186088438049014681927109510987141839881303720460694879513411871023980377571829767649086829765889913167907725797188588739149026415305667559163976483744791200505229708750736002263694813546739825841932957723980618616065926020171444788518408078670745796966870177368137582700976709490957923880775418265686638487576922231859451795481845899764974854909040688465884358337076831826554483971688374937087296876473083673274143617495903924116716235245515078942688607155529805356917384231363170430433249617561146185508102468380192372903003995286754371300471236265822018669592809308372422757878356606124371031264142066123782002869271889044594283964887944754184725962103129129640524933391372158824366647808380223704116666584263259472303365715416042419650701150281457241422498072539404996223313733244999906386644207550864531639139446991830437954264495669177656947066548121764663507035924614153287151182631829597498628218895895571759672497924119427639250577692547790485157080292490204891325984096018084877756517397938389515191735796526582969994192228533486319814220342690315584243276490608967985836646809422455406408887753653044696496848507493627082584158562434100925702243760870802606659829548720527928579034471630822435329941221651696300856021376011506085046785488316945197785186908035833103850679218369193561396057529887629004549420678955373011479635997276711854156085184581494321003450899937455733200472831421438756331710151815966998021238048769204676757422857477379538202358279942430912377794083011083830880444158071927642485935190177762782667439764375938478670432220503533403470951588120854450221605094808478573719999504900245930647917246890562569386122284391991827492534338256949842023891083910371232830790872057625876179371670808621984979554360108213558253606629924322989061374824183490995238159213134986660292387832810650725240190216824172546667643043033185778430280478163485203241648753804140237198666751680687595575403759140515899448335274894090484768754437412672519022120783672545648536585241676236466977247023322240148130015161488823156344761498492632120906030390834613367745068478773409657689537100015673249789140049109570131479868404964792108610097366137724473531513394396903449422585574229164446886150707573990487282596063533553810080079896957804814611359014896841893566013655807777575481118353228073407325348016906140411142624723745386128168906363146255892081771253502067008670727988423942106414977078873503474906073917902841270378184610268223657425620132901078832550782638366171040467472328129565513883879164399688662924402388194718710257516088047486536687991374887076813267705778442865885383482527163486211511209166394266697101067190231922294139566658844030488076077002174952293755727158525045830628273603716698581669692354180765576699456029161357186095403823609807365248402785123921109583794144358157691053129283818225065819988296464346715327568175014740330443206677851778793593884434955767495620128447945724050509052073435037555971227703068896488065292950651332591525426314118194165365299863807945563306892418737984091928400329197309187806159076291541685740683125527529656068942738236766258729605437099115734505602121018017448040598424309461515898782364843126175468612911961060129314808169066715403637038708309754678400431817769890786397667459472047563735712103162935652789171797771036682020425912589411585325432627310087778153982220495314510617973689974774492064616558871314831168721729212880115708309415293946843422948771134324372392325783534119610840148158835823861372301320595161295512281317743885544802201986201349804860652916325162726907926597674404096562672433625436550086663512481636674802900805740303398756680596992022537240477236711128115416121186311527361683084311864246623178269305858617677966059897432281666705912111399124725809159382915474000160314140043949333098935387529739223218191342067900419512965740785032921751591711009194436273627868710215685458420154218843847074910419035833749812728352328223868953643809225067335472095017309461093501079178341048114301097558441066166403069125924664974841111595726964960289430552645448325225749322084255542935799450437433494362201330292525095817923408975463953144440936739022128026011011771569678617471939518320821053565881407397772658585078994337746544635105983019471407100770861554223171667723396984214179165294093482250747428758928739293501484017563102786499749130860900257064076156878702698038531970247873789443410285742010081250624472616756350254004095355169826412976910639494250596640147942817903399719943057953880945718923847169829556760271369061040744898649365494118329980706206700520937627166722634255270314948723946630526509152062308865794961645791073484870404390260612420912093697566444356131577495843658825116808572874885353976992755810038441965230391616490543757349211249241042944048999788930697480939464493516131481634389881150424298878405114100954133762543635865171697517637453973800285000356477126700861645615163960765425734366792898058764536466850302742633973325563350234776742304050806119277922546309484483328190053028120908059153795517653095451386245581318517585084719464510270258412064639544065281940735009555113722504164800814468607013873179395804721398698143351385291512111304370932001918435497259064909040997933301364066936162045974796385579456758340680272639558222332934651624106332815608922408086561838263509194556707029733530741554111343660793367047663463560989185464398579620318676898908900633651782300086662658427878003222076719928755864290354763893146778411063915948187694546830232315951556554568757024171235333145133789255425778745887854558288582977038576783771453662051989977872827344960746332908557468240676967031467382505412364801906014068366596560698202479222977632335722387732096548228713343075263089738326810467157491541836056245672412916905258939352872076156423823404601014242817918791191396640243689129066328151711219782842800494517474480251600258305696280582016985786000316304431568763903182321168108712715030476060230882615795480127556353753020224776843983444244785736858530633378959455059779774298387304340947159779387032654679837149817290671969429282297662404119753906127368187406429408365382362034278274229274216235675642504625160665751046450435213003398436321106772822414343563122385604600062884877070604621859286228134372963466434618794666964690099106146511163575873957540866065298630041780372422917083067415975156589324268182174971933184876944484208779888104451718492228329536655434996093637026411868571777091080876411314742311594149933492089155889957308820131528196147457469381172446931903504657587768313008352324792611123340140035952950861970783952416478039262052629197491377856525708117142772127903052393630596328141416228645508834759783638916363018545409564723480243058457665898607131382165996455747001811691323336996639914953830937894115815552789416279918165922839874682316166388641700473476566010191398162770434015673533592799693203796033753282010105797384172274414918038728464862718197548455833700511115892024752073140598129927259075983396764623826308537030242901063837626514979068342016866465571823988911352436264583902565766487450082609180169973453564195767913227481826617568106938456384933909000902069047318761391002063151667134610135568357124918550395826648168366822961733947195860795654397328141549440778960220486517737659566145782298632174673174801420442227722164850079286303236781321841678908371539135502662600632198805474126094845194326089111357259298947639628199497142499257190104849819011383435292172231886941986398268628747420448539448230585957367732582347801089109092316969326508633955406786854924745618479680315253638867800941399521240665699120162010067066847305720366030317393871488726818113132862917596204150116692325980889292078454564709370243135249134380607155223973182101560027779997734763798253541329111896171582272664246025211642212531582109357075228171042798280628153566322590856459035739853196513413615911298438490410027778719690907975656359857153404250433568235243254516492630310485917311447115379876233997257927793692326232543992510257291246928752644137172998870811146686669389828855398488122116297827738459336405122273574767080769367670524407895893552439238368380781621646270325576755412348122532770046667763331133468575661903970940319485141757491328450033727070234075496341753637732085167125624313927659047595366771131547060519027463974832025760010635919345830774737762796003668594420170843559811459659577790009973601562883120625606711233681721692809218951025573581932226906984168550606857531336222952064833985947755194748397669970453759390210299087229954422821560828199673892863305142040006505606315902032149660987641024758986485609828602732602005677513915358440772725469611495895621502869140201237312145534128743930359809438870658600654266857299256465920127975122538199945748524375683453265664429909508754185607707341156641582901482402038369767837673345916779976540144057108632957394810219249502528890084039565543632990084657715931947038101130476685719808744052223510909286325331463005445606665481006699197313682462025201402309196862710552911925273797896635950651988401621125281950789806883854243732593381986422051664398044631560390818421358199210466397173674028908014448755556034735479206082190515974142589778367966651167848186779930444486338850616150440668156081327309733098050396731212802053257002407707850074236747324775775725189976767147189184742683502628607971977847649600744900432198243701021595711382113474459385277501250747153564996418549191237197509420975149829397811738740682752964895514851401668842824755730765040111188572216619280418388556073095507563996135236728236526426204790711746474726009477822086905660119905975442923249643513988080139338075954350059399899807966010265707981497590110633527223007825806586258679844486154870514024904221554418453655906898919495898791290630498089087726795224198119608702986161160383730344238644470656845175219155909239718745175104897052279781209051669007616306988801842268758361389249838526996506712610729207520829639397985405054456568925961283239980267095987433733275675563535688920932260670814326963660800288204274320271413941628952442972274780051712961304294957583079537810405262284937064518928124389844198034891899133757446667203240546138053671337703612201483168627080578053179923200938595718740096428698965553535660884888968492801785916076243018271228282773257865972642270406575125911213002228795144050434796389941220468836526380869060295081669877174354697950070829323826840502129539145481916617706882308600252021501288587713447402292353161683550763283465909927286405050163800112902748620502161654551503812914247117381668521091187212457394915496925512804975363519534944527630885977115447294220445605671457934050676324312793071355629609577610601144687208735343250887639430937194124639001506594730324622460769538559199741100608118040740514542436016591253309763876948452405607254894290863424853600415669764791315035687954059445903543522506220037977273181664775206227909706823564458665093190572062107763992024480743434326161531291184681120748668439109389028923494650118847931904193710761275596396422091512199155086962563038245026822275424824182594525517460519908561172633882382171181221306685108867000969105830135951830088988918480567693009111242474133118871248044849053588336378430116060940589662247232313197089473569057545992375632754374952356638586452108255094838113108025133882445789845393184353986260137405552807549984234473627271213751980329752191308806833406961622980446260091507473276610223823650584143695332862056259452208403529592772182498415909023596248785470922941384914454708572484485518109114423422820821046277574980314252740555288191588423833797318400897990698610088203066569686006519142712526269228240403505481160133642797341719276355646501658581203595848783952376376382327924426188430361923212962415300330498642643657836753306431926270047895364141102986817486245884215316893654292900851780577923209508323829975751521189241769099086160502741068858377461026797553285078519290077782233994629536976656003807332492044087576294660654987757664045499823707741355910196093755659016996387197149582564979183800762501718327330479011055130954643778606074440200438803333617984070377397309531203832237851792989658136403023586780826402414453304756001292088941351397444422363504681569121901382169982717332690278109180148725648591237242660958079734525074792345452473790640512259513957513299101370070660096006300685023632806653372949943713746825504869990851610093817902491155452527446910291707109600640293765729733145905343065501717548833633422130758298923579283494905569066038198996510115440482622577148710694293793258944181066164595273717195344391333379912983117435162366145311199600872564671783055917137542194108446216260115262130766499397813042311049980231671551926780994423279042779903498680706164588096863409517713423085937996382664369690866706714947716513005999601869392290390028508554937943291464346780202816451891830606221249973937998532609308634632363151691374850686884016750374115686145745701271461781377389367992337778701474586034189300501398716438075559666631658692461122067386531963127433246419123005572583311016293149830805953523400719652675608701404217551171973610259058638661879696010560511724369300201641655662347211555885377011785311988570332354878726080816818736296286311974977466884412056507353048958380192549959569069691020999988062328484984747940919052615760834389508875008551454523710693191531841794910550276877771781628977766568582143945444044207675130626407796779803986880732202743256606075135931908821490432081732475494990890911196211735333604783282819675284773275298472809453763912965847188463432706353806684129235961948513185528687300174186327217671118500834147516372911735830894102603724663656319854325034356716978118405231454563552747050629986451265922194070990708106425228412262280576937817727190566087897009245564320390003320636776809850493022072852826134222105257925247179143742549875689779360644271128967659126842902577578385374903908519985995938833503759018811742581572119353606752660066101652601166541291155512686802063433539859450732821360611244480938255852216768993142676336385089350872614806777843739432721371931675671867904824376845658453933615357076723046120803460422825791758747286389705208436377620293727863575311482418191817545970464784759766258379114389289450558168328688779931454655863605325398757469756332216283078552850114211575990727512744933297811963177456975157765362199766785129328059465356922166898828729650308650274359011051651111339895684361032956274116404562785185904247594025229143045106974221701870346459200870918129025449082364129564365408429295207637726583963148724691811680831471425196557007993282195154018626528196963055853712682838980284270216272189010794390395993335260899027664805238329187545462333759176292182927748290147482465539831698735897957274122149700392804369752477593429746339848868038419608905544526459752275515176100732553473129647614223098952490256756276795186011060579050264201703281375278333410878794774425824491433939320929791805996819502599793832004173839031678488413913514826797314289522334622516167174044996120631323188800436015417007992785689791051765809077717919772185266964438285585305342816186950125230022244879776156075468150148550990768352744919306889051402434139107392670027005977428152911474382492450232648606608063670332984369417485383180894757340506905848688334629487740093440359823906279791379606220299435544766476001017975562301848402712178498599717716280886401562114490706633511062943526502943886685461081275796097697231727590396987834189952203794418784147211255358344706008181285339163450000083171737785120362399897449292790580894408370112793992117568139961638503876664775103217469792352224705673991720903640933741460648413216675523499527176086883126026708190290968427379907297287489694361321399275352390991088109056338061341401416937808442736210812943243824986309932370446208884524654203029064848973116848808614465335385191203817725190212910907582692096748815630667229158100681023514304859640494396625256172030805360617822242472584881910390551647482104110721350118747805398914089413054456001622628913674360251234437229366762073243662148689467902235103288077043614054460522630038050224305979214521004701485827657756023184336223470708981659731833758139839930568860608020550052575333960129001778399231435723432486266754632430730734800703801256718538893740287144758664213606260597593703076383295390067466495450942009305220668631933551419163001005321970589469648984057460185881016491908370341591079282820830941384139206538274591126791466669585305515839406225949332077932882337471812451679577866678253583382975669430332944725783748511946060798532728089215038457995653362870598565553860942319220732407856616929723154694320796216858251585743209867967040558859504810351737082494213882493356952485088035433022060389297849641755641494692482587767498863867559849947439181800201274907754177950553462608453475960282476443852792271738863810381108437412794933134992988428215209210999118726023743588389564539460596602711813024185141838858946622935260308444802213345529992927179728569137040026583950904457229478813649269962747194081298044315778062279208799300355647704744122947338205918869725318680920467409431461866403528286614978707715372483507403468156933581191988083942606322589787560743692165068824226363751698301587198827796953130750068428387627394096959741086757097273096972688710932677082722685968436034247227275682654230441821643671306649703423581317792261049268605685365729863861156626117064530493795212246963840709021561024450597526494656006108523971992481291232178181360498613542691697158094844240594855667569514979569511519712485672962261138660732239232404525909498911919577136411615711141652954144113398010719741586601791998902563727325208826088637142340191669093714752098640513675611372254536146988528056091217771256893770446262535753017596703570254075208225862276194163596606024370659007103095332272701723200906019689682565347902000415675146541275294967312179697405059694537484180029836068173040603688771944828787844730044135249184366127375091796384297805592030478021185610076267614950219012382142541235901958778112183710041832746016792585905925759208445690960203071980589173367759443049273794921013405412391908446085695836563028241502048674714073625944575569722246853723129786888702952821505706475408284737928348869129321442530588387088773470757548867187525885074211867366842427494441610628279428321551802586125739350681349846861587908104588611676654213247234548730968243364809780389529349948110377935254183587156349249632555000977777211980644006496205421668320256375264810950432276593946437612036954308353972159278650340808290272251705785606185705178271014796414243053534178143258815270635244627026218427398791323027930856214383576861028419467341907851354021827076894573520024970428196824795937557300371969374334426352979551330534808652185369078867313950731568316230589224719842506708898070534237014803420611609316912463556791993361180287135273406778729122889583416468805758230312211187032826245211181210959788819339970305457528266104512589363858635109692657699551987363387167492098118722759874127572563539681916495506893090495064474747686525602207386859011124154705009670915071920614653130905318212879345767969566507058771694732204715832245944646774288275466856188671322122024418099043264185111419884389199078128014579837355836497803603409829230797635636868033135713700107184170442832914139111218390790463259669216374263608756375313042704217893750868413471471669713623603896357747373726508870170875425225014722123159836972362017125097589200228742112908152255194448102329963362885688925856382336098894830291351615346755220750301783582473768228080538591240267515453772067427494368502598623426975738147812991982998048248059288210809618587001431610438254744450546081218961238002457818841575258957201284111238982273071810120460734498456196591546628401711343740944172268596293375329785821518305097180052835872492267433471991920144705106523462561480689869994844574147840511959669992994866839033832766281879509747681793485801961508854179688055194459026917937180684523412203018605866879668965960005371493931941066038221636538258227281071157485254177391984800034738329222379032870703794122149920097415842794225601435938877878300486578890373100832137601192278310144118028036920383854382877967873767917645646731756142986836149453533677192379721481009460124076783751056993748532984434213369552990033390512944581049261360058241482417585711835898170712253522343954352372298515383771697498226479595617055306642007073205800785222437425652082819086651470426091395985688070022978207662995402269172814288667196738182782763000288003058103129636565575428289202442565676525432117051569143924357434847052583867628557911192652482854177150648172051524331901525386277042364400733547812088258016887386934332793513597970378258048471103376298501272305725875613004701960945708482136595790028977336689051062295819219306667638640932073624196406062650333998753510111769050584883366415259599985937356548746766492690314389550044964681728799047132598209017950521081526797020322580178964675598095589715656228771529899180154179060455608361219692390783533890250352371677512950369041364682405879533924806681909363239749614270071454041712765354017151707607712512930198126656293075079843617696437492412961952639515493497069043125815983648278346775772407369124908827023251012402947897793923095080677155481210255635280917991719295895844079056617338438714724747130800341693887505731450381347728816694144964101677576426362991494079614555979396430445767069882511958175982982694097640803301695385480567397808954615357405021453516329383761815231216659721121142420592069749224217275219356827292802530711632970324674784397363033408565054782435872512039988788658857713071875928546955663369201153710329281645767931286360925904596212419153955505381451853881047293471371680446005310202985911226840550735544794986204911080610375268675483618461097186434769489932936086879810405678558496931007167794095004254166974131668630253550855025478932354699822361517391134093884477538506396611797482261887916952191246474805213878535847406448623910881725460090080022091025498815301373129265069064511446382768715164513894395100612219422491790657872612873808465896065001627781894041378125463924706818433806513610587571174907254172054201773179438624572251748531485139815423308752664731440419526096442984807914156118182733852787883924754771023460620879690500618035486640684450236683125467283354300619967864983176292405219387353992337971731887585414667212092601655829214099127704857476698419275322020951508918122796491518053823382512959726383877213431283244418574000875656232717384967777276835732011755569037864586554597268913718637920342282691066763458012941881820327270073858470401582333397700451938324284569235158259060702344806457189124350089979382984971319815193649414990414506468240191861755948218605668590835527221717330778868842797112457780860543465196070390275790923627446132876223971653190092659922054623562126096429822519292490655075753661062596207442749879849905085061191707790486639530014174348710036517892435029668501487978303721688559172330509826651502528484566330515883477561557992086342796826770867383663141702233701300965755074871690585143627911613960160132825852249469368547851093565648528131209776789874001502323637294551363943068217686345703110339242922479771106183552328000525385981488677414475064996637178833209070952911547869444006874525892364563928635305444175633612877052374636502958191241005030126987960932632610710292390510986657655431089298903575704087690475709747502000037164955822570181901122281707618369415977468108403750683411499871484493488910437969291611543841775297132052669573817805365029252000081295788238154319828852702784455585177629421126604945834203992687907274519518865401342001356482846695191683016343310556664709298456262242608854182163788249013959127579675700516088114871614489651603861149102050351154530299641484300446549620825165607592092339237676491410236578726125679457190870590411406762274935232614535481501166489416353463120055702186477605428675843471850630250304693336751728813368669025706184741487070792581972713386069366378536836770570296628379065654357692010444776308447333569480886049672137701128197876410134797297680670008973404434963707544076569618040488596143497547015565272466862602801834180569830893325293402629985054627450401549846011519689560509160434118814485085077868083654053795659329804560650905759013475034978447674199878503664320643462616485114836297666088788345337029741536546665373857779733129080182842629437968911146818614095413643044176658872484786477027856523520873156038903368254181627918262450894419555947075855673234066445035235180559275683284790976059820214270185436410584148207336746230875372936677616507813152315474772662512748278878226419542684594337200008781779500893138959409332656349754815620634643301350579825074934325315245987774265690754258148843421906050081632288580358709524574728069796111748696501255435767324913183498909452045795508503017629772177460399775062734869753478621290402820592974732774927984025886499639877843805375426718525983366267739729067555887797568489542013646305860008941383242175810551415344859384837471975906834966061327456498776232829698705740082344054138737643038539305281399751588195495118788058394477673603150994192033741627476675651620489248459225888584304554269300180428369540495060439876353002092755072658987833051484079572458725237921554396447957253493994175698052036708767597743593193629207497566365710698842562520054798399378849482773821219956361439307293715450339698762830044275720976292736070578927971483630768120849921070795771926376545002341805967171115008814530339733066713007547493357159530934351628107649810728874238660796432733318109237932646383430180582005872089820222939052027062966061111246080256881470620445474130030182614869092310818414855565829467654196326651165446769356433918127117676550802400754153774148097768066671026865285993690952582632791492109246842804851821528997779504535288334938799248797343770744529676638462992009942842472166629281943532778519749129493703711602496404576792677139345933041068926702095878947256093818592549276633743207973814803992332719312786666978961085928117625728816478769311216762573955045405690513868376870872927440143298753288194880871228373529173958365061026482659340828977241361911661203418910456532964609126697140056679536306150759550897785777714848652553971520251960547526989238128428702536341992436935575436116284429552109727470271042901273549446552608001657142144704934890536165847559556159661808951204321761879482499920358610222028183506463121872717514216551461545376066537556818962777972840540618726723449959957663818813376042504096177415334204303515024544158320306781543532749256067035170838708830098124476713074827594488480913900162380071907451683496063836290716987809282772006297842495863157245796710478026450611008605935558793701855680387493039680141492952994183723510397867773205581951263289707068091853999045701916194182884785229953098508028544500072069811870425065904076191971448258016636337141428947917118200513191598505268149516896848327742157034893967575455140027356764466168179214184111707149313445002025785845667307792662699003013827496945745395683725618240434330850467828409107273682980200104377250717096678785177922699142170257880962276801440600092853885709729497438192719482189390024961860162159600783455588647686605440277841529281530215126014599051733921642177497347392111759808478377267760466824631842248382455233492942196787517848820876094763728075135833141883541810184726364998436744491295715653910142046142864499886672838131248616710644040735082058413830771176879696662318960282317593401635094486861296420633581725486905786979552413284907858729368082538758332435329331876666626988080230372894169546906663901001601758074496327705608667347059936192826023950023718623219711378119017047709269344394365991894967698348571723074321665946912667020659663736658931154062201639506630424663584288726108919259963025238535135607401012811614984062612680871466828991326673610765154620833997068755416411702654960711748038130701988852297669081613974611061721308118283851791149573586799180929302822371095801027166305388370466046890259153892080213992658054811026106215077991662531783258893086159045525034134980218483434255031220719782775822848267569365727263100770851302826213079329101369310917838561053484515633217013829633505571487297211738290686313165576764092252764383354129692874616808146325932474530882452875450809011406162725712959735142106518542033043464813395397010732226013393415578961922267901238075664485994235457971351959636232533879908126071790139178788084960708821284243462863666260593279123340127196336266852369730296594789067358164955056477075872288673930071498666963413218838663989876286469759450288711219074535651084700751472368127221557277886614553088030549782738309340998351675304327665559723680678090775824628651335696245926360565040504567914172504163635898133219392519036640689065231845140368089384023572941950708317904903604229415091986083171096682451386970442638195478472059071209544475201455282677828685715505821845515679047459518856615832180333982719938097156789985767464206390520105567959534146275554781403550734267842104571315703889582443094758780469358851081066221652285598657848201785248458075956012588229706285911979367149545974721236350452023056995351149764239517318700662734856260390261084458087672467901083126195513879315314251918824776387970612178669543458915372715032090897976689291790764859341074334982408063264864304247059181222631977856670577588912895400653968607414888290720357661296476906950324717716879536720115509055380757147802938192819209230953849370656428823339073074429768677717214396361625330438292594066615389568211791454471473576801218461889844009972814675535385324132252276991293587744692095042581525111523150628078453244310115382855357621494537321222637414713776221510139715977131548433409075136015859992731453577122257869696675034599547893913923525146926562759932729592061214013175167981733461050708416640626777106544677860483005710435764684787068451907583628707040270495443173613373530152981724985590914884919720401418924152918977128778798747197393626224265862429765048160587621923014174515565056711619607212043447300919910088252709404129560043245113252125962666098228886805295362989853040490098900116352254611708595492867567765393468422196125018557870064760856210165997401402643179166388276982734713716744937249556910053193857223763400019837633004557346483635036497546957944649020150003165950739440366869922682487441557324394213663277260219089000486586922013276495721948910358620905053260210900877899960346463861226497815955614238141970674146036982084563940482592743838951150438839710667762922875484787827921078433334520910040403785688446351276490854675796546158875702195296284765695522806572275044118326109370284985760120912879820815940257163669869902744854754479801996185170487250033879927112293992014428228898280513754183556392531235625724758052241387148749997708143665206567881427865033836435868468862901422753152694975920711979720935204682975777956609597401784658087839393021551495989081571444150138598117512446623939593251945387023215930618906208016640347900123265655329505586260924713788566016435655467146235316134784971775711875454048729014834876597563220173273890236442549720552667793358421343342423365989022974920382986659624596887572244019765858571130892486316193360853705871617964278300241590071133052935625831554877370019930236047711917037445238063720744201562010552817019832870577618730359312177415001782527218817587958090248322340783803750499617277621199581066428218918265218631895346609677163997533473204775438983900326588415985971739147306953130374608768121826252480515758005955793993651206208349888162294057530909234008854197806546067103776712909817389702253163901815297488474303927678150893510400072663252298886693294646379923795320299170086565977443405516052304641189910999635719873295267408626108196775733550418293486526662663686668792377956463718997917266461792363523584804967042614470554348202533542398059162913226484836799007517517427527568263848307209299752796460758301056784325455739497797752670103369534483977352186111269139236821139934940376103665205982756463005863361630870791610919158181790267024590740481159353259210873047959424727316965389720592249241885027992945248243278911764346158428115739170125548914783943918760376915106959316464022944405539272362139527126330036476618189181670092810793044611097872471514125718162720784297926074238942634358017561352667805522104450783006724652463914511904374847225866378774521721143690316006842975511716896359319516381674857952665408772403202648213765690989870537695620841543295135315127164535513782880175730967890971589862398885504974207901137279259342119898782828272119076637321387996540073441730288316377994300344877375573290629857867232420941969968224264588065993352330664437624129014123539776634909757891837013324030758886566117233072830848584494248184381905943974198964609234836327050741584587451488196515708070791969526140599148014280215647010424129558353378110179071455460611414279921670634132829474992443129167174259291575110371541940185786650164974329176088212494120398548385290053510339425681786568709569297785100527145425594765071575686412559579628289883858302436505681245522375145311804566407746910669949562870540243939797479131258631841313081160946563945738069785629978544225735061380868206766385075671038498066364000680631728904404303630542923316452411492042801686265471182868283397342077724281339599925940426506194376572889791908459953855181178920946030050918359265547483020182613764527351190217209060496395957105478731509785934903053478141049791985732671043482372519218323219930116065381340990229145881421840927184304210998406326271848180556062584729848233778086487312329269392765177208150507969483334708394801235088314505431857437649490064363975585151991729172856730697441817618295686793902607111995046057136476794697128467550191890992664081287239066681499993067211150025380867244467637430930694111228781082799853089142688233512426869158442310350959603489212693590074784439860334085604104190714372298749719809737334347896206706728602799032660315549058188404541406804752342486428884843101074971375522621077800611488252401711933436773563569152950576259478331158028921570714219216643184232564642919839839055024580171182191500319435697660129554873590429403638782929440305524267551506912704424153791354438837313446187118340067720975448900592517186981765871895463114241845421384612126903864315096824813660044590387711391119866585669446215986602419860158634443790182013761016108335657784003508798847013099732288769686891248133586416974924833132444444962079684652176549266201932676887862019522928274563989042465191707062585701203140132741955565134570352686294071877923563064932652937018235277041333637698991157856011292268022225825840571216420998688065512082882970268887171852381252321305075455063978339856127565818103426909658981477711411659150433716092903872352517151024712333871390968663550022224182450125415990142481126432349694626801906573374928005452494201639599198902650610101718491212262997211714866868273236988923823409278599043675465201119372924569546490655797384647508595362300644447220252605650975751153613964581333946600212983391681532537876213134632043351569306263965563883140702761911005558800337935278293906764188924137755774643143907300453695264397899219869277322249675260273191548554055511652846674355158609365715412055705550114068153401612377366811109641903618742657288176949920709505245182354606231801676192014385564866893837468983085952671674462291544379606953121736175415203035981182446425856217916240253227210559497928963485795222711394446735533052636902600607591766256269076359571900499972275019421113445319383994410168217740018128801819503781501186945068049549730772054485484057541316724784890698696716047304387265807685598599381575806324774384310489262274241004539164774312442789025807418185652496186191769842542447793257160344679180681986475554505346048194396273452702222713254840575587160414170101002182179176547982303776889348161220475718216032349121698168353954474566808840735973851311178971409602135779314610943386533782585418942171870540181722335860477675553993279836074987729119562805905337598752387516679136295426521540031628968075497374391441062438825630749383764937155735311128653852602975438525705896535828447381033120972200435714439732747701546192801625509465074236809453471564249387629717976896336616149055602556450726866029653886155758147426515771168801646366796261791689242014739001138402415500310357021943943019342680180243037374597738023653132930074523262030920206603649894671721325547688392159463017286402039880422710479012520216308095892557636771570203575651279672384247154512861213773457659554340768007001000570839013024806833046544345797623461829668036415270001837574733204251245135609500955669536950258474751756581835071427699905062465851454195927462567207359029325951799115007992584269979995956751817714746477300086383234923114063143902537359476778164299517859891955908137574019327318438170840949806784292203686440027971681169628285812146418715082051930548730122996643755987291222876461251195056327320585736776946737777539179168058756478832476163941785271733445253389767560181124301378249312930253100103926006576236698528557520930015853048022294506237997887760773624391617103951191840274271465490564866629416250254850396805247402976645672004256299149801501574382981542951434848028960595541548372715681743638831042348991540769076311890917241282395842302404318296195723779476759622473741541801867633634644483512917448883240915404655347077620011537834557543953365817547214639672519549456227506578525154317575849811213111581116931276353404109079348696559680592307469922080500759635893257712301424498752385281806906124399429916044750757476932548393009107303475452154004236534876399276527604859614049807845302649709792261449611413680179097315316542193879555435052042563140198855496156958563066463002166137072109163728274534529930973120769909254014311742841101183069140388847740273276359637670649458864941551604649186309103142292864082193399661364482620494002996394600522508715838195034336682159999269539906021042240021598686538765151875325686952789216691972468334571110134642740242260202701452056820458358442277294222103913689860440405021874348988372144385956325454312576790005156639066986898988108482969706989072314643471001896195450081601262328630309663288498535674507054930724823098147823474408966038495930887390960172865066349584369308373678448907773819698102126550438916264891492811497006088997498842825954716009103978469952078993148817684200554577276888919028931160025011901925435173460784393936583392724458371524137913880953651317630353723415759980809420062792502433263941347887441369460196890664353681525661001762028991289753385399113772033053850993375216495708408664578912231617449132487205059980516942380737539128792344388647196654715807693606792329582542255987449831951850891885276114673948970004692501405107853850683982187055165571932486990213150483486995990315765232805083665668043689679695397649943850739210372022493922221311511231342494298742989919265309407892299130334004391778033104211482814868202483339891428869394716793494120590411475631715236068788324952786481173252595680619045058772901735323567171506915969274788379498436042877260642861558749515943591953361735312129260575019824477990913021910996382766791031450429079675620054517379775679055566361581147367411646221513354198685597594765123903210436628028159099356444952970744011635418267734502270623575189449507135081228987181204784963909528303169724469034197487198611841913995383275039275973021827889798521771586323590772111430777487585515287531023619668896760223645751455473599685343268639828277751433292552460580950841007571973551337051171581308101191515825244359138950960580265531795405325230226985833180964717524187102570501953090753794175263346962086430078642387977188069985371264466659695791503656395821289961529301231912680971970322876316278823693617048441166485020167616230187207095375477532771211762471200735836173335880276615275744621138930904382695325103359815994418042161023064273003476276603303230872338660745275774676558944756872455244635998686582422591212884084000894293174187086950696935031235263866997720359653463125423364107020507126272418880874696022637816718806709162669359317048291585037695221594342076098858468980076046981712678269072023060920335383816173334119995115781998708838233408587920708816923911678905709998795234876370528713817251218325499950457996205732130676318486992428197093258292291873452813893666439347339172340520141832996892596689859337223954967953617091265866057578400545065045735840842613394567716233343579005480374050879402912364084375792285117461119120476842535483172824418527006607958750124598330220708397070773839919626015390810514839034439036408989453901989034964276752240690867978150347284112462806660435615521916945048127890263519462009951649686373041356946992111106099246862047652093437527500839761143823782597515358523755862163356960158566773739628697839800026435380247289207805558145911835017232583157029437095115260702005399311652541216108813976371529858881031480347453669098672153052384683084638337143432420453950073655432882516965762766011674562222857350432066202034502133367078190690951035470018699034381137630511613406776109549415290003113950598852852469146914872024969011738018529213266194066153044135605450598205406919241343480921019340851247612413133157914117912324930897115632589858040722359398561943203123081690726540985129499006281361314834523816216746273443426173372961826881444721026316246792673470924691747605704036214530564097424513449802081491309380108092134672823165191102342066745176778868906726216670341819160836015386312916623183642355422509496942549498512311171967792349478374412345586901078859115102992213501971264538638978359488072310771975296651747627884610145952061614559583055285972442125606647019323415087098138230518059463293757953416649415829551925825207977656752696946238621082573075851736588328452360643292509261850584052165846900320219211967469728144835442574875750033422733160671149450723239204499860984820181016800598731715957522213173752145371070316943523162717058084452152838452949929752279602700153234396854339207622260739788064869317337027149866510156809432952756806126075148856089230302554088743216156238906288788401761179196457522460440959864785153000800215754531419014289281037486348442624562983327811493208082282389619560784192972967861439113938853037173999604155558277971736959403363415417077834942188283649531352690475522997467440492846011416675065643651887988904979236719038753908943200033464148322349647429914776818690783625883859282472719467952635984506256070399968740032426772443969958362413533004146148687700084838419273460229620924791304583085314687455222504986574680245465645892661717325823916506126846288109635779526649540939053016330243154043372145292691455685550785751210747023499837070990252404303762807329294027731545557800062157136398775184609175201946251646648032901946436930957420875984454055311142853850733742644038404546002309049492901789733617899242190923027294963066251756633994067688092065671198153808768624803015538944152941868850512636829807428768773555243987105624358659927759820408331107645541888376331999527420268607833591490152770727551191394007517184951906727516040236234595910808006791478611587133768579589514270950718747527929826187279509209161674302997124565083201414786811395317234208070702846562108052993873450641169361702900282595986562540045272669906354318495881754254535411487368160096400973191790486396581455113340566305363746752981508156346810416753312283941793594553524310513377840203972394704515049712836922328398448771619311124390680440324492749450045886492171420582526437149962878621695982014678277619430901912236338301192523836830449591052856592037859440611408608956331869036278199684624074264298117518711185824151207066119984917510634664394822959628171378642165581219803837871202812113598721369529540278126464680011628540866052597543052869155735428363680675101194748512151866893759658624208513226107017373558577499067721859836738954428996136542890865547582674543143705414320979013963015649670825792114180359853474405002778505575813748665436592026209333810662714747957467799950233990782692974745691116474113898937369581448083126821286231046692998893763046900826491872159615165024356455199529421301353150289214569614879568826814144756949157444116508289278953422404418418641678598765233856536607576021290250638469443572230250156417151241409629352427009645889234257148097072871702966711883866275867391105026476190776740949260032796853723130178024304015317744084624609272683033591979980982325639881676130368322291366249805556976259216424760333226353033170117178672532067030289592620568856341308194339481844246183313667641031315807599956365123613717564498996889911992422943770098088702861260705503958280719022939712663751687065129034893133603735972032680318451835063928033380913931171995847734739971717610479975092516231917641654952508520262153321499564214695251601813613424018151887643304533047095889841799301015689765553940281198461665145845289348867315056537546357269676909576298599524064828322336867204105149915851062701048223857025315152395892520139446333948442276793957145976921868180921558474941867320890820456318531806635484436084843560745024758441533782107034213310705158251737122210863442725536381475343458692553150078343555362785030069407959685352703007190238241161053314378794936369718386697852390157660151892890960654009646682752755529064123594815902453400742926287739291483864666816391793544886270239953903252779208522687993403498164689940334440137794429803872309816799897481939326022974341479466636798163848878720007856877863232032337617118165065980313034755161311873361508280281011541870943613268999216263530949997170409349376304228178782012189332730089796156223013629292473217012738368471188243342020556497222003566336774920329605493806059444215067126961429866621652037934859859348324132310521873701771754131227115773329082282578400471967381015946396866957197423003118234320036223752130275906476284990323285225909889256849610756687885288698797662641059858467030805108235995137750932681306951403280777820226887580319592402515673335001725420878316573018400842776124011941663567091590879857193309042541742950807885380269195345003353469241279855611514169401988349157809272359688780072121217928902806370914249889712898966725136534042884688799914242951722855928236444356522238571724528871117868084452699552332632396139268932610609857702544936941148555360266950723617834509559587887457889338633771743193688343693349672725851583660620487066395227900641923941340986128484336217984260945445048979235649671344649467154534310668755066381550920918332941365959356438256123369862990435074641353805779289152982647111270029494708995634913393153776503874776178902548980995948732898009198410398509524917010754316769038701960316950113692663214262467062104049171748449202601260780694394155252601966591069073189558490479789312036165837965380453385825939558388143970343214703319136113986882548142151487930734020872321012336755250129140857156322362112166929788566778990563135517265997266438522240095372870299900358013293036245636856718911017418572341027611647606809603612277522337272573556763386132856860460036839225399046684407065040595683185707050714388231781030341737751148367547171476122515396565635842969370178011750471370259274556189373603735063876305836345612225205961259488417316525405845862626737760216698584424035705468366583243577205509375624544472844754060598995769830009502694320572989492923153146254639729070657637608908851702615783536759380063815302018840056604809894264069616468798338857084045669144881199651927206377382425704139853893212641700118826159240838847840864182129550885399842985426307773248530601870355283373671058000604109879755819366328671412388936894757155331164249775522831174673243721331791687617715968570011113373284669822731656680846910963046793457453618631330389131600499948999945645395359368786229950315728376036221450335901637335357001740286012510786986174382098100646038273991395959284508866811055733028049273611344780097602982074857449182422340793815977508422269476014227177869143560128749023918218898923864550697246032446629518387276780285829016814037903788001238543463244988932577405747048539225121228798223641105747758899631746188099868507564126545824033828048573085601278809220455272799112211903005264033284479727385021521405465567219959197605938813879268055114682350530309483376779906158316499657488728639977041295193578052317937759805088146828266482439685264432409470321179854821920964354968413496310632734258813759944073197061966829955987062068727840934691046657907008900068498614203907320380916754816300904247174902316096448785878642128169223345161486019265504082806453865758923883318927625548350683529685543741795436343716814059958656525222330022644747078464186406776867571356913486014155627816256521009878740430026898913492052983703423837909878201587055853760924412439215142149250911200759604477164998014770793799638286058603650032227791471568784681604125210700357443474410643605955766040744721471297347913512597919779509500079901791990546472869178809139094157612602186624332905872235697279138265875221866219623257997844501841504036203932097418184784966269120760469043569866381153310105386482164633906593877623235874738272508678829665977519022106343096373151597632524053894268310522908604294009005658305534139598632190069641141753976274032457814458454645317755822676365078537623696482270405585087853081142033848555934343353610560287567094346170027583630498303173891605320400449008908550032283549600496188179436735206832348380366087866480653402555079345915968448591187113006413840409437425090179455385912004693687595125030525415343268850162500847522260326901630310410410043651381174184666349597701815121268759876599529432267713843758146141509721632472022664723087011963855840215336111868867731413584337412955407312234129051074547238056851743734707993498925895030078647327126398647047023288945142437478569664680071143008258963779559784744841612262738067005364039602498119311534517514159256668465640512438269612054400682531139272144941600907251399548280693042319823743430810965656965534881480579248449634133341672648569003586251476419348651984719365148817496379177617397469141901397270333852491932997945635270573132054230027032559313184454584299869385379971371784952980828765116918645522764110591194831310979419607947705338066802659496555672779020571308278693423255693937653155362421208412182915157333823716967255741370743095439252942990492489946042930226323972254661524978942909625509094111394163515336757531705744613285098037882009503497545660411018186991340254351084531332323279358369274581781747653349411915533243856921671220192291200897775555419240324462718813841552805102048773770331599897938810697933990209881903650947636113895186907175149348756265089291758116464521093364354897036456296145021733711773913579970602252213598326791382760253179875297023471973819230637604183668684415138686121492711273559999111907535323313390331618885074361587879130208440756998854312234169161872547504668233907291437429856348303875582192964544521615017328878433318447008965918447527903419892006330739880148022950564950064370037780009203404543334897252556207220727816137595041725902449313610396339566380121338038105076329274387653368641498968280428095868061234883160894446518965395995187673878663468442039814448650400009243807677395606288427729936596149802059447250063969414154144706064406843171904915416650814091914364054996883681356560902154405239873684934181310875835328500554555229563208060103474507778077508885636139581424143064787707994080765152676614298062780539214709003707692499377806750075430775979675884714076519075637943944876876220358565652476382861033183126681240054901026193046579402652671526228792832146389946354112817404347787480698760604908600055115005490410716025259529133182835820170150457661612384762155035559292249188933482107968599355007587231288246203599132397885720530068430243939052944553759598576986921907726516240137028611770492100589889121854253264369716051435613743758487296881864794532801064530317646490376953444103652272369158224563712360456616046513666196956021612150948717662267168686753539649876807573143391142775814050441182673636146050188027674625825083999909851385973588080323840045559356593953142536489200256007055125783808738543201444252490787454889350086566564552615004235140849384967278897007602932921884120284738101686253705548361739018891421526904448781172762089025329175441578542259061046926330164252067468732329320677232335973306235796002837230592888039631591017706961297099472017635423141545177529916103934187798588667739342748267023260047176252328347473925665763245906949988978525833517958830149310562738766256484082953645728681155256957796427238308063909695750061751651641710590155082270751298023925097327278523021341967354187470567689334484746839075910669845685117556508031424172127911112720051174147543845252156667124580650475337637540379423305205507368782303699591164957311901118974751879853649511124053042055297458149972765683224965351629672663653779040071782118971866868588384725458341523778018862576212291666112979554053733809438407103375650968260766058828733943242986188345806735393462248505890987616411152954249578840848453194636026071504514830865971392267852855747959725617020430650679140118483872203956803339493408494588024240083362198002374731258102603755938264868379556322619015782855156261939410393229776637973789411237461160048575341685053860608390580108044084422746656872059944702714868829161100088732649525372551198074773731726594537474092142518475810631651228925925469712758596119230316333849038608674936443564866770089041938891328165143633806350688907602219273736758703569748400346881656557434195842804563431403216154732261553787158395236975227375307069951822701058864991422343998861013992742250308033986324444492847077473473588668665097622184858338450791197107526391156765774847128031103367559415511370671422816968306840306110481640685314421108699407889922065093796499938434178440161321844452225629722643462588891625801763587495725475582643442620725966932452515327253300164063723590394887421816129838824343100769704966698482486169474487896311449894719792311953663688829808849871655264567348661258703406150556488387365795995798676772435868241642489316042316636265798441908258799515384551802953587470152485438497680709404912494193262268301745866627255630629416322610488364257103488556793969300954161852123068186169157353610193889040720317223789710922425128781970798584846208293057501078257770723732662895303462033744179082696526866403992564062981180122661103454641489460682496162736762945172250437703436999713789146228831373139952097606571957190277646940640260290557521716550669387833038171917157682549965064714620808385807238094557814792358877561859221336373715732594995985291218294389563811434190999308535077443204501510749883323917829615848074761292951088844269587298559303802426310376990164477926542313910383420769398626244770158645658732129274206818017085295307610737075956689851751417924053432876533048062980889000514248005100304337896535741347868437772569286807974490754465145987753972347724944880962078456073891668986707197812890955123528799064450981185219004566097396775904317472757579588352710548493284540312112304706514120634074457676142683977643272601730063506107974664169674656497648380412038528402212491663232043000664158676933015335775301394261590290194114514633747627373750976603350187846500144630294371570046829188648580891576635883604173037643823546786077670498563562805944271246017290860750248418500827398853940744891967846775578805204191499065249324132885394454559572520936377998471962498981486951137016547426304995760321127356126090188917733803330670754237905487677844127651161419753668203259041267950810155164397097709234225972237507428695597797889777030378615879734835054524881990871524382615624607393836158391867150630617920570191097686093928342438408646274268813240186348674665919161979727734931400998788681694201330153450630221717723076384946798755414804695067278556160778826148170850596779619979987218228746950111628159754092786459911160080621082564638251617038731029903253264217106658504574129169650757020529096626926189286698376703752522386641031246776758016136087324893013232462496762408645012731954797219475997483216985445853229854581118815124398770265412479005533507800540106339923560201352592310766307754373007006830958109774075901149144374672857516190484989666244180301169514982682512248483330369935427994715669922814777121842557624247931296380497299523462116612239433980696040013282923513271074512531024188160999459019307332268364996347575168120261565326630690801469352377993028163730439789266427913367253019735182261805082211951691419367860011072203975563091460394827914050378649524389822526362327295547662362034227572136605491688732012285469135460959021812271703095577561487767217279278065763116107060271970267618345004256550097464229859846325628070575763428592529848233656240644556043364435468354233302206752735079566375977425058757875117322384255647929372237456376027384632853223965214118977941391251191223617599500389984768263611813233987409441099450295145371760583896609356414603778987400018630802892822265818543076613042237362078273042566775266143395460933972700101797117999826593886735206951852310121195659023626450840588467980789001282139042170095584451561003605060405871898986081556169675623231340845327651143853859927755237385245745887415434374603174027814831344660839712583819609453222219100391682476498535218501181385770472183857012098082356131072659671993892463905472207793892420798269651980269801162322447635949351212694890659983899605991724323669322643335772970298175792276000499790448911301821741259167845079519905520093769822957175021009853840954056359160728219818582355993746886650464925721568945062767388969219772882859979286742938854458597685892626625098723330743361623137908482555505055733498385947764470114226533571466775505049591851311440336989944901142242983521962945358142224241567422707142357420031468633755906966847226391259792286724610541210492077805289421187236511467203322010257440225116616200939145218689727190559431145240475945168451131218966900705839006407970513262123372782773390780308755629997395015499206145869201942733261679006496367454251162713925718862544177375192267930985135412747430453483331248053354735742870401237833957814405207678044898258336905979410337019361863934111211014769088350451378224710211278802249914246345393344680381443885691592867295205467642100347037088176235610998702576235309024713610529482094871189738118385862236364619276635822642812144276001420999334635869825477647198567967945241208221504461152891445535183026725868870733567969221778860429444926971863545951674368798799412630544301748260909091134686835308257758167471899674672788974180007830179607307543764665427197698482855423612376217319202607174456817804364298463990859217224128648810165836798683610658022695457729266038549859433997026502732712785364122859586019623975297202302835740456827023943969982302920125694743541168328070073734297174342948509672967268659347149512116902055053712892667905209025190954998754533842300230367985613200479741105378010934449916884835148968637417155602617299593572756811942973994495731957029165687059850043004804187802454758287821022915739492360111018060403272026979892541060027377095476143108816403073413294948483604248588089675316690269896851435611605881106347698689759576621321002603724642652827581000421066946344248968046649049203052246125617824064992433543005517952589671895386092742265103881615054688768465433351024412192476709499461886500511213093964510737916453114224510462192780699231780081657869711526294891393326952464787474295082545994064220589614123463432067509357255600800228286649272216163960478372209992636245605809694487639347212868812356046869974453408731009964087503655752897031180194424629328365421943354863239748711863639015395582646279168963483104405162736440572809147737535051427057916956409137628371324886477813141062800082570047474148488800996508158740233428746831908560102595794452978103884003235921604439627034959690764828211279478511328255262471321193513788045182901579714659819792967696214843373373095044535440346327224852743778891541146065503341738648835028388476552245451052344329906433771204005630594039442042984760292917628233511859820993794267216905444206253257055761885331757345711388322217902181890281349962598830798249882705491280288709643038335899659834141755794142287603064096203426894618251561866382793333261220353231588131486485210302105445859046093669214907443833791635354568872472727302366183150164042661780209538410106150295974361920897281794110040750040742166443435832027336057052439480145141771454800358388652252491040046218850379306946094573288045434226274476594056499455437274251789165726891468682639548847363525498062509570569200528415138478527701867650475293926242986620108904252706281128636127210700111818210409561839173965760538580881113399318856350730859109552432796797291247801127042981414545778639389958814051709161735022838919880857708900892435839634284998975730498682768049520838925185835002644550113966428821919620103645862371460266286639602513228867887317286610910217229728556496089265897589334850424567413182602150256176982459515384384620019942785676015372671222453846807694807058807797194566284285920089455655681638036702537309952043232385440866318803692832037760308203910585102549996380004986171153266194620286315939942980662212720932809794488664854813855920385999286308661469481896127322121230260341460120545257542842796042153249918865449394801216975517442317884850790115642957201383781375011393040960046422544371032006895169224894139564175173867325352225417628779941507317011304534056840265648926608960320339795228514193984046591184023756620447173560851882949273278737851187533234104125607893698046219600590758858022644329305467900807045927429798468401401544053824549470335256283111466448790481305404278350756107655397049595904169409133372715331886052316163858725071234285981643841916432881690600999074076794446262274289877945278537140805417609543908311565168455217757296317857101786407228894672309126191251059693213905482784111658534790051549770873898870268671383039765742125068111152239000318925284144213604246657194137027736121708642975819514062580469910558493719391957431792182323569309411882114325526174981400270751276379916707377988206678651812868295011633153780500716873920891830163603394295425910448030625366294025868783766261710593157257706363952752119723534206988523761894901310469818793155657433439594845682908692617489972369784436444653800997769446954334703588030521958199893559327630203193434609391924393977046322033713644247798273755777604698445654920011807484316204453130723753368612163918798681870536620847789773010592010009573903992355640231780353070071815656369222553166015971926690925101879658008964867310216166017869690239790406518057818529637363365523152716119011589021695722869661025316225657490267089751684351565608316315242656892019921897406500722870977581556345185378261216417819398937554849361919276800981960176371374598898414068487922367466200277959393911980377600857305372489972252520806110608663274892261398130290453794899347607761088724214792768089526568116817003526130510075828698376767223086245322419083655211190945509978466865575559456843572606609032694311301013773893150541278976818898654005650615820207040909771319982361335429201716546189284133494808371569390106538162839165363297609110184498458465735366112858731618091785566507356554038948256243207801043111583188503448377759582236434987825833376938632344118707286358561633481183088056771572518761073805042657902693872381402051512224116459921260963312172522440062108860343237044246056895159532856146862458421787983941577332248660168415596888680499919564317622566188197658636755557182014858094704732315662449546208556245168678660089289232799985866839538002705114212617736756043340944343667760406768963439063216418752571933585899060561864545740721778942116358306919659220851280335055245862624913338937979699851082809278263338880210148162553179974142027854036967198635829725549170635017018834764403860828582307309871767727046798536077378308822980338730532515787415369104671541298715465751911579357913945456694602040620674416906224954561649130930226487836136983740646786690314804871058979614808335602995502369921092984387508363848062273524125895078073620088134064561346854217279026394001353420566935207175630228404964510497358831486389064276405458372869220590693723259032333008371345151344882280166847319807232335481438515372443014522569977026417699927737886573600906544390987209780948066429247440604347672305429295639176430433410168396790664147905250836712267991410960716364160391670248405477397295515939100748380613632388109653626904312842284552936573000407399370546436496673145198745195510909169216488530948300463403518351928948285276102414545830054861563194376897060854602671044521243351067555581110310721494049291005345796320059822855858703865725029724498422945926780821829524757618675314740404535024281611493551693710553386671800159913505291890350438140406701441191037163747891623199323272394054241364198357109175092608752463631501236922276355597070865144505067255737558316238670406114080956221962983168440419935526965696701101732782068502543637923575196067018062581785445381150382056840581921686208826030108507982800424888772948203355112698538017377009478595703882723034750659580124851352135425272402507578634825547517488795000995874611144552420111230040916600233910868881333899721826447615581909019679744319016393788531679683408783066856930960466773518035499892118886824338729122621640657162232307391445601931414667150228491472040006536545188595700417840653226091075343722653446849434710413910187773811220173313929500482343148177854071561327817134405737492716846922867619360676641023015758858640943535227734139404327302324118323130760225447334485675466942472947191252251685657299297477538834896945952813799119436830235755773645702970849415106772743389218693576471909942441183364490014836065757757681204199897560870306405730131724284705046560285709360239577044284029844018959735954064732470368547676672236640689199698146837490144168384340795495449892636365184889414098943131992513188477233153972029496724074270805463437695241851263774905022877668375614235617641881994487167565454981549834019838358545679595296842375429163870624696458739018527622179572050658594347292542910663792928895850417714706950392848498823779557037020603247114980894872399387690039799795015183757960560682519675428996160401818002511119403184349460132198735001955901948747287271246312055418832271058847243183193351184489700250210137259110654778540887073473646881902438387404509002058056525895349313398746848156344239315365333224983798842186476986270647540795906767971827901724157747529528705122257451950731798034281201320019434185771804179256839823254880622088619795838589369374779231629218661672545120345166846699844270430463399805779940626805665279406388738250085084165180644874393377551332462591809811553898247619449487590309875483243662294918738861283695368337420703745754102796394689577525493551782516071228476018451687928853734954870282161725325157287462129618408992840374593503353034487924713753016805743648863872172265476996456028433423081708764870672139533866966396419809201837263229815803638295678822719175421818713079264984820667794900274076504085077505215487880971506563103580739758214656446931631441487011835715360775523620597470205820699922670265627987239575633537819886133719122675359423059714326139998101250854074582007676662267460811946365058970646913823777563999178102338372624277808501541056772086804183273569993994491796794826542568148632081264563682433443494674629238932308242053658085536875357876392389641145977603804286528318118765864234989236753546308095363914469889013371252544392980945079440980446126290960425391752298265399129743810734249501087701243423026922147294069533313944615117538299884012186617518008425684550937652188419876369622279935902644897262097083389819955344646071708738519189898724221433635323397989374132107049522757963581481870985887685624478209252020058417859340803402429991460378607060022135898324132075225794397290207946360439809909925570599748392980616239315937395197525500075215094415897011853372733883182134006305606652972871268391191172640819280640416539862663709401971073532468085805162560639113923463834757415525787710550410985855938081780648945767186155903153438615567927180084465483573806065777951522374806856373532024762927337615756021243367080549312819684619635727595052409026665275559443731599238447796166473504662320786647611406647779125113620508172240371030472866102154084631558188224390632963598627690908854639484382771726425895584966691831492491493100900435673023138692381561760991932325096607407861691327932442934958083434954662304998590711748622800850599784824938518647656922313444392845359652670687142097525259454009206912689161206505724130167705652325797825700951322253026026285417795019396268448619955493811808164626183682837526677198489838433103524281514596413222765905860559966299699725986998343949343740557324153017660470838625025641074022285400648897035086438653525234632872288988480472208838684300302056870677228700788811029927005312381510364936921006551336021697482372148984734303354993716669172130822734173400158990634570912254740882865216069083218900329938355958834923909288278568341981923712610313517149484859848281296284465967201380597492228358060150405272567359214120340236531501618761461727270708661046194647195601543025746021716263069378679919305516216398329679538183419147023727250498458106070622742448215019260226154118542002446957918710583684955481409742828968617770145116038314047689617082563158628153525296732854578176078775487035401457250767886254922291654012980525976051426397390222742918064704022692830959833141066754334324556421462555819462480007154527452646282958925004476815568940348821632459663097756920148111258537549189627194190807556520506685124578366958604988164288479127368681172658829838183562582206740129932489411410059370803973574966122124495657914857992647182546536307770049282899445862500689176351852245386824575519847472274037234450723361750358850676857055244806317090497492649401501168444125066296576699059590473316001404073155025921533694128217014058061544410374558443209118181733546303658297746725609269490952875157669282382722674949928083799480045644398850218853703690000371394572833053518950105683201213022885590919540526676347803210675636515824648867687164804014563628966412386979722406350556595607691791615997867113842779829104927424925674751715694471048765326153164362288440745941546716922544577359419714864705279019036957010892619649708997679337483822235157343175452631295050695187342378148424991497426308760059746337282566325846483694418071418855412965461863613834031287901068891504507418781963133433204746445133242838835488325346985270616848918308431238102117077737476437763182814927961869425970932100993091888093406469254713235208512108483221702627840339006951379822705950203522456861211092092128140104706207198035823523226687988360501898018581230217452806831717101291375060604711870160947725917537756141804914396870659770203310698173705474316717253815993596882082497126441934548827479542302091064906556913353745929661743153741342407786361317466407000459847868808133119547883430640158342168780454424014463029966014481880970899979861276980934090191966350256498823658639269220128906009031276129186729742857652219723336647162290263589858235249138839378674999245477644865580935633536497343673950626340260726414967115684258799934200075643724954759034657163829186248381841785901199591102396646969197389649575496539911539186450318945171887889978226985462415620317941760774647352370251994974528476867781945535581323851670767440477967758277639995978676590240312607601926712463977655567720389978084647376215516366775168184135253529148832246797791957764263358694574821175294378309794148014484792984107567979037876065301623207289050327474722095636608678260538576322740688223813145264807854964345517251336100048014978097903248103820748277741387521446217764002850467051596689609063970549724718020811355121654684867535848512224549354977978929300055429149943854389273431287246476976300415367156803528806299792552004608972928550271196641368858910950101707673887887344166583663346170184449666511456451677915310409274998091401589212855633870032199728450743446183527097581105440115411179779703031077827024706570410264583541274280850568312366080263459723582953570222091424849017063831616216617753937847942600792786857413472537701992206492429521905229901864877884453665238694671364116389347358012078459869465144745973594210251533748147958038486257857972131934940334764906001841105343265519615970909655391468573079183027790343093672629131333374332179136780418265369560925274263854092658924728639726892426154937976674706622419911630553591724264589574621747340344768991860791451471158298264382171417820591177143323481817966616723398395417650830893140558979919547228731892838692524699089178555698056489379926325818015999211966441468551078717870733835664396145065635435174011893531332248684563314349445739034475529650963400450061768687853160627268813768219041613989414959803387975823656705983158943324584973978635627371544086067092101992066335064375491219805388394436506004580108651973555130843751593549222394794643332218943451588487867597546289818557766538141875915390492755176946906658479230089039602039773850797406778012792253280341546105533406997891775970096396930903527942290798289389595490932671698786107682804651105975844975906985735377509328806127992234682422364225683369014270114409237319872583327531663310934857827886002743554174934878068160652998362591403081716914250067972059181582840768045650255802063980054448092008105937809233091836783151451630022730156627642597666765948283112254394013079841398497992727070998973589105698581257172952045234876449155995025062129820660079620653984028102516590523831689608626623104827488556920268661271097384733476849551625831454008831506858005049070422924623590081593661156187312976753717714684135392641527695177714574224754763245752619045290036260388210008398070470100784748573326342077191933953382332467404710050646252123272768441044463145471187838667668651792980800746368086287412226080642400153262278125861547189077402267216336391577430023554762421880291874442474157263501330773995022454822865984885115572718956849216223091680284441440547068849670939745615285877977417496165310965357616874630578300567143496507462979340263272280025665674792969417379141305034883034055395076774745520780188709757467229220754068757139702679756615848075703804108781908155124763426025694149685656135146296277256746481929462111173788495602321872576865458139920810211285673908531699124435233098019890901018459230260510873206094622586740005123615144576816246543131277744925851950394173684789426497838995393412781048125398577498683051832630120479193222716209840981424183895923954458543261278415552409840238067925138050770935704498874037016428720695488123345507239555596316417356051014790040226400647027041356481558784060427794569901437989142513754774437356948549159196543907462719599584652638699376245331280570324262932526921947271782236045630412584714969222864607252128793765079004617653221333256519087934767447932303541849583497222819700451787634433925237247395853885951878803662438148462606176200481688249419891692073531888247694348689442772067525196138857396981433062338354447620007767048098943649906817705505684691099184961322053101399673422675878812654038663105804747999525390202512258360182799841938511151854737426725573194487568731310119842675876555066406269156723507848403097524512054595034029312502785660515650308273310639083306142458203180817351519465237034310569274771323592030583464837452147036274556949806285913009704525932507776804913385098971836556894913725996498133672462659983085848404567207612190333100871613941248860888837368668174920410139752519297767302551528193987698443414809304948461359810666317784661228261338251808014437338012912358212772303463295894615070058704315665621983616178146659127831370769308972157437445105873287860219496954431858777535600528874140665021338555652606953496868095367039861587360499938556357185217496836204850973950307019257931838918640798475195087402740025603149522972107246209033950362845740310796056866219766166538543400673168601392322769931261434129412070444333096305782477986408667731631680832841850633518066497960314984891181225755480416519948368918036909506877136492985182950878086318874915989046481674533566094222728423575098456281777075319408832228528286013589983195270540774721238692302853096309741773986737622606050286779875466562518603283237654852325524486094741146638773534877255198021071875580699820919307109995558403163653648768665099835215094486434460988156268526342374580233291781484604054384958830363390563449299473732473746213068541772875191425913526147551706413072974102879640541504954346808262859451943666972706793954995819000695116920863618785852743097268386485610102458180600054726067895679136904636420471896994928673354180175076776941364735298215546029889648992986275056127355439094881604840589470684393961521945508927480415604888892880791639147533244732504326982434036930819998563241288599835307627747925353275720195142998243760455767180832864323228075885184219994000592841291431808536179784208193201365407757349695217778294012354431226745053456007367288159251139800666249797784209944629234832466051939671541244775572821597517268441575672410621917596331002649245357927776080935986416972322054448909500175658457338475664791108772136840931042377721595511396351211878931001010776648058515953813509103718841109489642152552089423670742453623544444268130716726855579601977924753347482021899557835398557689333531514859000299778378196348157807382004765857261516023625127816539497210945079712948995232122948454041187867082952121395108767835611318442008658908289139498780703728530932642347018635662439154617745100843446208780537580316082691775919949252286943869494771250509588088050998929436256635347299663847784170642730307323610277930274902027667077144309617832241824601972119107178353636538635555812123224953357021589153247343989336215770649499233495344607145830622513997662724094168002969813719667162629800045463792460347818474101346557979029868274207841503980838836156699947158674924657519851942560127390100666017329140025784405661188222898368037495601048927733983037646383056925325351511337590896125844989135573812054285435562258904275945645661233273081802696799964242769495321525655873776537484356723416900971353301552297941348553846306869050787007780455183171630442837143799875373820615161987060909802484240640581296168845429265362361166140859963384366636560150959614850475222600031439742853980048955111930115788982697578945922350079634164734178980229631960306784608737745586280614866074311561020771486235124471003177329755924415461299585814341764793743033113224382046056029722204818798918246407787274788426715550351112729836685503668827181208413542548315967356660911933076624078621708343617992639646220557856443255850431991521330690687893979937056539699031738524441262210939822471822365903805775858159273264860639867505426276778912971189027103211915914478811892771167773494343503100112810334969094673213329155600482258281007703385574229204868815534556611725795196952283099662560105007312218013514051301199705632894073282421368486423596236030234079724248822583744632904663607824660321952571782274439174887627446983837214420492430408548028199978781359372022010575912488193618056266693362079017118217736558533894715766192059698752473403287059377043211558879885142830638693050763654562393852346272335356123012996809121717652497135629217025352734967564266723187222495765100087367016720788908028075940974088067023158158905267416877835720874694555670841473937712429658549122890439414234258339448466834462075158415638910134627056389414128907949194892376223582690165723793434638049416863894495399047559511170098029802524821031277254492045342164643992364514702473823985865615012813273246416288204687657229038062820030940710684981128330184691677712195249260046393267055006633551140765552872059104490423365882207738612895670806455683906443663969212127605802791881067942536590254085892537258773293838317993240997652813907409615646602259793069964303221719821431810972773541730879463863293148183553237009637151174306137557190766469483581951096322791600090008365994674076885015003856596289344483067196951515138567332011575191564377497019154912317048667406152958537562276998278064464414562916871113700208000242627625148960361624001297184583662708015794819535185775508225530819940997838549455667045151722545113181424751131729302190869641198566676293549303305562929837667608996812322232421412237424923107691645191998698914098038734374998141480545807248583878248617406194513220474959192789011902039084331714020333558785234239063616147240784601200370560951532428667160992036593496539708016041575655969289982256165716179598306188926117902310176486695789363211744096013367712257727697108148581231936601192349409438968613493175379840479692722307525958917931127727545193798019936230315639862869000012166928624888586137691655354557923888298810185494628742304139580910952259505397883456694096159811330989367132586667539581245132115945983789722703525678038871880960293580371859289328514320055234379725815532795746359048899413519782549265913886291710787680366147046684254737640761209646413645592719907427931381083161658168899300826620375424548014693435500759354294421746654313237236488524897542733135140626078951752513782268841230209616653526278654378541265614212556444328363142509150708747163281382746667616016759563845623090383479105115263546928480508202582414640498426763835779555556847168313091465244409696785208956216230236385629931845438424776896952057047131605498975674076751307656651782136455256277159282834583222481574290660450631436748932409345093824670684630365209428972963307983648931895831111386806315234617177809579846617761575800628889237378644593687389518718291175471571025763826344447690003172857981387791617887448466382720494314331123825604929503270098537115098339125299028655429327595161737490065249243584919289871128689833322183205085891960028825914131310481610417119382275738931319327997347714008000337662395169991748904903853773973175039835638059358454727550682491194162912030991520866256364922033004432713716478950402808115324726424785346903488974426495772196229154025771425629147407311573042035466946029300578298992722736440878014366526666875481303975333411457366332731988384048020003283402053918960052442627193700945239323679177648028977811156969040754332212134179003219918604548220260846722659592304329599550034093944753318484238130517892286584848374980786916476791472405322105834806786513003991352547611272808321876411532592840711179696304465472803601476257544075863321131435092355645890466078105991929997943521187226948706970911359944913131838462659395998887002629667036397447535562820109015599048473258273936589698382866993086195415679303025635216662082832749078793152076243429351750515990778557774616284867225344737267775642511471543787162728641333744774373205344855383690511637848921004906816343109739055971529248339002366324433232071355998047665618518762514482466547962914237402070480112108529141347661496833748257236332771486166731652256235687613152179115872709743125537142433897416690923524811316338267089874156697028224899982641642001516586217613237881039943431593468501950782303572673612750900555877530064011585990953362155997692458813887737394572084679488494250031790212521079018028644796247031257473404529553554650033123212419564757823202758808144993905199008756587289134176772770439598736539482461628407670752382072343353344345570014479177679849228869422030075879954455428834595389795535264544102219900198309331567494427857368666624626510374783463011946303996867015953319314496779774374797279064298392006685195800887069013524198723238215398337670397927223102051360774392794317987307389590533653656353993387258034902576218119324907420627211231489405119326730367726592854657695208625484033975348102934655322947591456022400665393154561346631441288532639123842663983103469208065304292643912392063036939641373399853537197049270038023027499846486150427375262856711014714224577020512467654801487446953034529394514866487785387991887772628954442829463716547403385984636834603948928654496975693792140664822131939793596158170959318767054211649514818972763640529772905843411181871528128716246752662116015549099815593581246718453046288120455905661714658318261444468654191129027099566981702431033495896531781357885424699230582636333797608105005585426207979546930891025069287590264936494779293586246707839375320326090459490191779290197568111299859550377478334382092223623688377996256701855716792483235748222661986815159357276628816717523364617254555268992242378386006878496286068731522111051458203295814666828249807406777495450185885239412548013937313281450443261378251324466732404207606754154474450081988908504105323425277864425787646537041108047102952070933403668518093323921834911121765962761261319980045522004058190030966103198484745322915676141821067609382183903266905042274788184761951194627968314272534392195120691356198765095064264331567705585009905708820375019539308949624737651271956319264916994263028658775850285332409411875774443650940212357010730231269872214295483918470602010156264038508903257607902974010500677616601452455959305623551421482336521930840323819577119338538436671721396362799374065887305479148460801995530475313788327023089812925025333963465818922766617710321215140140156471282857696930896945489815830492702338290446623816718182195169339928413837576215555136367357445956564829113390110046187468186783609454826240379350594370992089244032216223528397824105112330740026121474153263925287251348321185162744397455654175210547657029821861177034642150829160004478048689584763477871634424295238974618039005527123747610636621516295364014065910561295240261966381332446320116228282204735563440803932931682802346688008942320608946334798724841415281751855108294158123981629445576941996812430834469954697791790575968364127379507127228813049311817577601161101829271393210959652313709969764224626745820280366451823209134475972986139036000306986383881567140984820069202709992729801652288144583755912405779368544779788418552680063508617034748126350578249394958721275705727621137307315615585773073720780484115524822117845387295245286019542749270057598265446423894456615516947470489463302889865502182481246738837454927202959661704695921846031537230374359468412973972393124269525600964737258390802417279398322225367204715625956733088669790490200082115423454833975162110302230278085169476052306938813561800895856406925653048525331553648169282389388719452262130477598986479741769178563609335116094859587909980761824467169657763720318461293186187942954946683936786364004815898599166299608487750063978111070512957758757801770489901454161401779095141764822596193652306587552355827194392280010929148486183204567447190976137887345732310753606367415771437400017405332761328461665306575949040749287043109244816161001098551726025172008345390824444611648723221382148131825080697319189732528006100635387182832404956591581140240361043628712999950536440916720920071225770963244859354568625934261500682708030350563895639125321573206214138870985278131083895395859970726083762820725833551916815055681060616013482401853809893007597168008359781147935114477408034627482120631011667116792238102061568963940896534364921757703840761231899852329397892992551497089816418715160968630220828861490136433557607675031403228894629912440531878267145728601311898632379104524016371151641994407047171170200915022115463493093622618381998216995820467536105495261955858519310307913264206055554977909830849121476537816236177937836153501092421362635816016082646527560192957747979790331241312093192330308444103338658127229464740256883170339066424715233328616141741653737600577948317883460669983830859096573891281893281711367338390806456713997690585700579102583352161450218618991642139452021556583707450446387896540952740784163879809487847621154963107327210891443769781846726595019555722132844469093594157412627516362346998920953162525945550414336913943699522206337187549591671316718994902282566550089428646691595610704165375177208257029769526688540741490931794095719652774686592273085909524344853790424688479861382176087202871058852624115212714996837179008891646087864855540572116408720521396599495087638923864079178877829391492402954584405342885699491989995544081106050828507140113239930791425351502635625176829538071390075188142564063329181417201303789710249150711455974028870022281679647612449118063411346462257393219818159776915447903590377203408508572751921711259148991829653016106755427931439407401161750420643396126829122347733217530661152972938615726877867043081921750533800490656588094511202281259179744358975075261494044808066749952250733996653664324914158662961880554396871111403335746152492290140282652598535524551149248677191092229293905362453112327362252725493392931040904165655524679526053914207906343605578433817243492962427063329301094199971438803735671899124712310099815619974148162634992657711549800005424982068552255140836237941775649154944914581102740355021306604738284763776210072090944321789763319970194170411228898873149316954701935172369301858450769967886370954995906045984705647840797015952453974391110326839704728414272317982473604458160354486155560656544060429079765100000113510594098326441687106662846921077527255339483767468086144245668980585106971044749786315444845488798883777633365601026424043796155249059783286672573961634306995259292310933145493307660179627612938716182278060806747851069676051413133326603626169126636096703687580651940400015010989754397706730465725126013502180391241878963015320678118121904432169010018619650092232973538037201783534786246580384063830338910530243535040861102385069257612474095010392418580541275957194443323765923820683876751100079287691565406924700665882605363920165177533412290426182391498005319761595893470741522426232532893716367778840270669747556951702415838963417816042031011255887963681176771600573663572082019125024183601710601180238930666620388269901347900690476136261610927017849873922244041929394244842707536355625364360606130361909911060322537045287762430059409296507394818007485390037563671102006855718747038468164077159091990478005228181460467015261724606333599780503965507216209759705827098737009111952584855547494126230882239191277448650229726862282656260115201647864034135244269013553114357145528803824697655289636006794077773538397980784346496349653124844456106489730581986599783138646142551925718971759296503069529323234963307020185799903640984015674479674113759448448126288451011262785336676037712632597004120698742673937500627966219723444063221166194501580287123140503971063570470480556399659255637823961745689186388527314837058325401085709839027087335506903053959818772755544129954840424411424935186853198669074333756777627349797655899314362697982988265019298230057699073621122926651862886370419803901387636567790055251133432036647468694048765609506438007592630218288892020117814258698079460206568049026006842111470716602327580835503486156720213700900629261037040478961082693061032773341879183792628250856751445275969977075281524373213175339651478664972745857477866359763712747335972375339815435068507078009161919470601236195851412041792279566432357690432483335435277513886088667308088042073072414874460952838777046689706657729597238402793317034602360143309557291665726017672752296780612312301869386910596459410227755837120725260720576568360583522296302801130672026694390246861830360178375655381754865537950549058051241201991028557297889666180184736750330413433368459210377400036756334913089044592926543518286351906510032270124084879734792102674039540571221484565181399111817581992679744695107340653407660856974589623215255492253367644716763353867526687816469070135944039299945202675122538246253795126460272007608750823414706895840274758952633929480117157750227914281006970500777134836875535775049315965416058558046010224815022384889503851181940121939231951426580098237847090410550405490627630338163206063540630251842159886769953528225538289218272996400028611776845989700255564639206615884467861156765961526685496984299165950797202858403530087887565144554864930201376232933861093929501903858900862850816670089853977577441106079998222176026410194105500862744218703141633920085682074540419732454865174242072681549033514707561700964610637050802921321982493867437427946230477082758653567935826536865239508247266253139846216450393734066014601949742426049390832905055983956571648257331481047057637930756260980036777702371687491833672886466681502903181161499008496087598830590077104853858267686893793746975819801079138267223984222848447014018683031583479203323595291749421461465901630277954918065151456722776968683819593636250552424662364621971521096010076907148582252216421249027113300042419746771599334805770051885119160535611910124546603606503168975409821336140298788327396925555591283559372662668120037678780606891617887697484702278032619012851587791792873133105177673348828837277615778402136547134786510880126490162367122854673947505963960288959496357544870429731828100662128305452417244781727328209884661358878578669440570318343188665888932736659353805555869401279267374062448504404974896502522305897443857708722958574328737588032911031336363547387827024664254290281751102286268676980870851819860356446724761233316793845075211687301012698088465700289158786551110091285325263622718753017045562616267256043172811316396243729568597971070628412821696886239374926952930690203823935539082265558469239547988104295875061533895774703361808614727864376506452213110742137000052308045450351238622422913447397892743028691721059080635729755003683518817235688753346268598945141119905565593258695468318856704670782670143846498401304604000915282549548425408860073432715517176691230506862641895496611808692629367896113893038968019460620192974083524106224018343920447896646819606395228403130552236619898767198365566060593872641995058110195349828883458231750482946817668218323781184697276658025382382218174092603460440513443492517174964739429176176308455879736474117923726979496699335490099789517420022238144282688359086663030504744462860383471901737830521161265746837395354517755243410151838451824726654046376188621239507171860659096827894500076514102703948266737061343318903929042452247800479106466584281376933584994576593743441533976008550459251544813244771126476238000467747975746825184129409816325130993052087313190327251030454668961434478392840877263175750850463183420403036175398598539911860488895861185555150407559799669163452766605252215017323003454896431290473429209321576105095431263082162727597460108330095740843794942896096563866853992678894819873607336704085696097778875132799429464610047586050107977440747050907098139566911167687562912669513051413581796187043888638938432467353895822404728700887817867799557700921690595503733892905188233845988131632273253997837795392143623504765332773852696709866959168590422774125035347822720200938435225041602227120508255593908040612586026368712963401600183725937350447239809973831521364581755520657691057558225663125600643391876191987259219320748091841022007228894438386960972365526341456964809527921268241123227811359434988222413728957380519481178331564975068916062710825935082809191344045399493939619146816526343589039071574373878276371328625243774080318740363874663653389292577681492457157774331686392676930763598608221046947089834887206452443469051904661204144142230253629365981923027198203548699937701034979193521177199863855375711214894793870721477001623138252052079098952333151588099474588586501809136960719520522836034852999705370450406539841337054820707584866647256826794154620218459810716517029093484407822629647717900077849178169849773843377257408653990277824803774274482506362685940708604863675842505310097902950260489529332226313939224801497994524269397199646486071541292101939307010328552429174129603758276309977641395787474740669704282278531710573134568338722896575787100102989082270149306825212469430475307017406345311178916839570202362967173995963298110312520728889274998614286673210609632944100722819786296459371195922907544638267059026302480689162112413930729859302180150489914982716193933093437621211186853188927290499310172805434473377532881515808144238084685870855307697074156066230443852239741158752067194541683589059852434484122366303274713236462790094781278576116225840126071644742752484859752756430582920207284856891311756568667350173914616980750468754367139965455090058811429836735896977726694535732290878508639531434670748154490362215040246727644182597048918602491459615229027585842318315012996166203978579556236978406015213511670503568794922642789825237153678758479860712215799880580116233040858270489963226176913315890752231214753656191326401910684860095323773525014661983815727093393968705901348055455441475308716415538821058287304547666329310906825327449790387896570386108862058982011364195704257936770411328725674163947739459993341920970996284737794175702704307820625299040140054874326306821464401390481576269952071337866151081842072017036914013707700010635185954479890494318142796206131104073474631160607235539577651579586448421181829652514625961899378646940103056734075998486250217172386059960861485855711823694383683630432195963959489627547067525350299200295928268578807881941586282546347283364038547736037370189051806576041579390304966914040238471741255765840190192673913494924410725973863670100519804888312804847765905954162058766370369084051366412870319825549773854271880592539154399294808124566315584698646944726779066573495750179472928546901076596452587753042377745361405492649100523337170336698669663626466125967125525570594762334113159748649345471170970110195224637507764071277734246066902849918934315244339515077105218904985360029863222010156785917251473241746639278732736546956429602809653009172660008348242011578804469397473370892639093493685723223561300079629674735220162347359675037681396756773748535767422874123143787140789533611390698790907077240961662041401890325340360051915275171558098215406197091183828370492809425989605249743950632708428506846537614393738027203588865048707373339137843551703079860622408283569644504311685950144373517524175201192286833080192081930100233901792474489490124629277746917990380991776204716728246969392305438386820536338641575419867993210887957153195877966590553205263888926410133834334088770641965253122032183731431133172434173539910377226553129325017649147593819284152758845011824174031411332713079023818322102530629827952410473166081150420781404117017097956862911838108346501285542134085262630152174559301186542482235654215502455985199553414158052869735855531544279747848461315448236143695429950762185757216871246175186119143439772905416235214144971256427285473183872773036429793385883186752159123171941035313035304812490078792648627293225702407081667783207150298112395302501742396332111632534388387750842988690474644748012261356932515472223662588566924049967937611461991846828839628546488035754187474251664015775193294201095261924037036388603681167241929161334058618429137980560511161766797289705406064696057008593580194506264795418660646466720000644736477041142417701507009993797596636342483888424216359000985517972162449126157732603496921978391164038488850916446053571378503736178653564987159171628794333804693543772217360471695957929850101436553758094703970960001851696405973823056450667738976609763643472506062301548973326707919891994415709459740702884429921761667845742222446264047411138612717162278048593845586448319370729112241667101927574939596312303049227854220995497726015683558003291236700509306551094995321695017130141872658246246286248711529209744376504154181320620544592249725577676010126924622562262757498428013640569368705485882038795501189645950488108800070711102599080261197709623671432861445260165629163030400951289163167594498155276276992076374056311643860802836433376594580253622634651120530507206390252168937434872548266577394804861721621091524999317845796511377891941341709421023456593351926025085507662918840493495989261862207916601806186234204915639480037168023602325808336895461984757916460215766887379120538720105143898109227560005018511089750047538386206099563899386024173988885201705675151263075361575088295256647958775989230792655433996936102822437187982100229919617200892934792943408485538674891030351193148892200970889444530962949211901975657304802779232009737979499889638559859274999697395019619795597680194370945352522379357145362767637750547271441567213787849773824346854602767783236213827988834576930459239865322392350560463299713138247702993169595816528565197394847017073146703376173725584083596544196898740577876211165834809373696957596616484233777312549179786002551984855470009375390080820698136777694172594409418629505824495634988134915046302265865640634007540742916035741052272335883123599156683473890035229911245630837818616464298303703183525829736335456707396891858757439794302270953544344817145847204167848881140464125807186664106188021171585563737737767844115261107853121359456631052492887529191428095535950252935239122423290242752436221820046769226692268926916821451550993804232174219307705817441041262225451074789896159442294028736776222747023320596842331013752061467415234612657408437469318362173909451818892211413729383880904653079890761043491091630742824237475669824574411863023129258240251148624387671024188591118760569145010063025876127721838601094506369614145798864615273253999286419066754321220969327664160803315611218891716566308837111909352541270007481154130104557000295637641253692398911514796116422402811477743918267519830245393058912748358044171453859973486668065747822751243011100941819134196155104819857020961813021759458390380925891134298636739389099640814248321026927985435178471504193941267422354228006137055970016990541025071825521629455474970817299961930510693168046610240538561570819518193637183080610667632438447390705233140446963354385739070961508311919481157981833720633413097219019928092412772705024172444340464851815407095951877976891489045865983898607635768846099419647122721384096250522769170583946263789686794217714263146033347880718988372525087091042669703260283832784101798282327272416856799514420469081400806421339238210807439666956999116514627043854815986359009037717449956346969020482116714177176097493540154684356086549766711324330462564775600418883852107085994868554392557575903197341869626636589682201422581486314276001114178107156537632978504939488587262025873757131999460449761571917336260369104936105689830298332558334614719611701953098878511049068911622425226690784547703304399572181378024278541728929522868450158014238465575892014693013457971182738070634940531197119975534720128764739223373671534131059415601337325814938882051657342062611195688886645456091681537591485773981405256920594443058835000285015392729244803771277139230000956467003445104766180142517819370156933027011138670891179520326155045903252791301703265326121007614203822461837234379475589304664614768523450925015881018928441084525417167387769752170657245977430666874307561146500171597432388526318009641630787763300590099334834840473494720992514363181984975306996530591171301713407567991298922372186409752398545116175535997076272719891022342093007158342696760176306827075269036612612605415794316970965761246595573086552172231071171416337615124540318477321796891501989584388084498280889343059620228270826756742950903938214936865418173257200810277665963987879897672833925945783508427570729428951261017400033966456857332029543338179594655065046179018115889585666252713282321991170270806814672458531532528605264827925733525169785970462554673309838483723767696404178173737329160877223424974322167693684606721771851443907349211547368297872781039038875787050055064201808439174814998876496272785166420631489310415439723654638533488192815044117981461201567547170901514871954112818968527833009028094424135609031356845738251042342493686997818212364342566908760641721563271451390503586200196984028472766145935348357536045524188440541619633737737667833774533246785652296114184825497189914629698338088968265817510290623398789417380560175688404703804453126905927289052125149843213825655920064840825834960408378432384576845819683102530093047122269986551894021702555708989850437610563019195347452211252353491110599042597892185801611183159530736098139716568093644362278882209071214100218740483083431411286300141857664119825912135323806805470789274535906795599744600432690254741857610879833911762320439951722375205821598948366885134279260425166169549433583253605253981348917319860739024670677203846967197362744561266535817101931658830156195408578302624844318016476701049278316643508113462427591024972117183042996027521279051720459341357177043667213389682026024527763260625174431888532772133225640047215348957530571059727877226173493734144134351817294415777558806494835280102189947814535623962699049121895284171414237098168100694220045117967430237857866888092725940530656616998835254244547030022378044228449085423764588656194959294992133885263949559189226318901565635723253931706264453075106482177516010496296510869451319728338980563531163060379328341959609806723391218948961087139934378096356196847158015658727373111571838066726130672768744218063874014480212847673573039825316617484465572671362188893608011768278368623371497538162099364680207003600752487542743180453925423097223325793615566593972836316184120755541223728248332081005797428385310171221487522917469499298789963427350623064243962142837307810065522598707912000725017747565101961033447934719389899923311146790983425192197263914378398684350030059406899990743119629400147266592923042629246724346615108574695026093740071097584098910432364116711009159791146805050867512027290914283100960550390200743310513013705598498214652180631949002153229986892544134312402173056123654139816552277032109406130575337890529173428317254582362039944661489433551470187516382850731341049630571443637963548453134341189961948796839833206791447258777384716815853812549288915808554441016274819353267054416542406298364313408701972536944694310280574361149020998593682773191588186638333357173984406542333667684502815659433932221833082225460541874402947453369832884453628118876675448654839605797910146639370319813740831322230077134205789636376656411694145851057291933337801618197568625036457623866229548203959263001177468710914879811928389478393802883444040245058700019289872369093302421067186036175187646360762183516654451306459814530261308422314838314096211754717865636376131128158135159514044848881296995732293762215018704614366112291223077172428304104014827369267846675367817722434945029669484663739223652306972849145619636351819285084512791696912693073707347882329542740427096469343279878796981278854337375452393833418442174525306800960790391968871334463797849396218653853417361750046224094479773521618133507226617336384085102094765535246507913404749975526731031974899614112541892117248406440065786294914578635541183646526945338083115069956036867413822767953597292798428143711253517490356824649252979832733373835207730764091867910712435659729179687244476911914652004911143857765172773699705270621166968496037116286750031316910278224595017227023799899847171816914770706385339174079929305259395213054714082937082109939249360934588911798524089972377909875889099570722301175130958725219595869328192511966819646106146098393508483104313513712392953519554769305795978622639481932782562853310496829973353406488903656770042824302144545261894919229492798306079952693362364551727583611538722775125051468762767646291246287672295973790568160604410062460540692853174518224224810691711141454089662393197133848954504865220120068441019975025968543568272113187080828583985392770605053830012544457754713488209051822732268276607461793760930453237051470237136263610233957251359195294835086386760968673160026378464871467643705597804172669552431256248710625743056943049723910164271634681635397979478204705928077124244903520705656242410103220737394741341279892011458336303104687851074077596597939278599980925750032194582061628110597653431796612366872745120853532514170671562239314562495791328972276989279587018474166207830541188743026329748029155337814000773511386655474793799096106423223723288803761594040883404486517987879749546256959164183004647899686008122399484624851894310528362445678374611847409284155906480916442433320419422507798668053380518427207899356764755259798228415184116618798910250018101064715554092034269794258513357886390584406370444584119095714549882406502148457726791368714921329602857160565206744438014370967494247028748520108723659590771855918548704216216460118646560296895231359479286930010878497071284201455195642354433200357873686515955744173281127544131638576446251191355316126785613508912694062242160104221657789634572867499121030135620175864491997315495613473048127023323436253556265438322751348472938117566702291811188215237074166707593257926765397411117416430651787083636426848413009918819928335035506510325312294237430308708061634643040345542272742394104036398637729596198673480711994949819503333089777007098924679997999645692763480498939760240332327318633091759401399097672416787050990620122489373839393351988157791753927948959219756039378538317897346914143865414871150317232174130048823316143954228975653458908458871656909402651544032425928794007362347323116306856372092261595131015195388542821085171283726568764668862050149860137117000989129326140632845341229786304117689896193937229243313067582083336363798284439015782953804857552974962999304083264767855132181316642521347164052619311306421480686769019320897222601061458832352832918958860663489482710347571088100433607685360747692334643791940008248928136651717058408523986176241670611940175337962343393488591109356907402679182252482200083550727663755517349680941871215980523729643431236066371524229136855153898322520644877004899793013462372092104870716542128837773960995688051704656257434417411763219617599825077286058390733092088011328054883448695899304248948306291792035759037438900531832078765724086465435552543354974907231174322513867331382544151577088544599397036550319774174982708651601651223372909020967100307307170415800744134316897540110883834649846361647995286786488419686324499910101362847598915185557678802914920636518118115481657492328963817952935290903323619028325533245270677698365019617067835629828580218774124587079161217608383152299867883028732971798987483372656522937237198476781519095967310585405759731744616677057412463104896036955895771595926931847135507540495917491571586345208741138785847116216586111528352803409047946729831187360791722358752505348327674824746690736977664332504756998621584369376183200128664088934662457921817842175823017699713855082898554594974350286205831460518537164546291998677621735332819119811040544062647985202001358922420853485610733227206512498152431097941919204099874350246392611459087818764734710990256162310069070815679059222139854766701387204377266096866719521646726514276894963660991341550358837726579875480941360550147481971831872690408554642162906257969308745781594405427712938232247578160002668793327349665309801974527062220823725611153210863690110619807664982342675198318191589765391154664546993527874628211455988083656192709018340541489498796661075822012473700804181473082718729922868865490460644823683566858345090595742753487815161788347214798107431336166445374390490343132801443666947568211297411450307343173184279590376430223930411698137799860941323629914290420418401713047611543550719645369610862390789394759500143033515859553235714421513866366548593526098889180550052971582805283319292844306680199329457380204871776569360607005525278857308607272243434612049006777388984437849654055655950459180845951549374229063075303947547986883804416774363404861573213873526317242292923192788734550347345663485868278322186203449355603906285028347343639812266003235983027808461970186182346742426599275711208269153978699556356586453073313986011290606287174533665674573503122949362462952588743940395516226762931868741549182628919868313501457385221773531429181611550143987593117968554851684302616967098062073987879199679861177782545561200556165126575113556652215189701423264492959151818008053978669509355334188074007769277409970632270648344634657527138232773202684899151784913206384389345280671127447978679011710339061576271795367371717446180094785765209159586647306635245773339660455389721827862934485904617630760599200322202937069101311620906761223689574668414018312254498105864316220556464027159840698398817461625210552533151625013258213296321793761573213491346090439480960178194837307851744063228958188902660155703160332327155269523683023691889721494280581678324207388066405614790900420031512764987830153443598088279973243630835873080226947012532435783914449757662151464069673485478862987244110987552523789857315653715007107325821610033559025265080284385442595172245786329191623514488090444331945127647213470277694976938762078168274237266088237770630446242878886466727176159293318336262001114348459128768961563422894531369919328834547960613325176078322099823009656722473834761381275864067775830564924003958672385356013666432096894659250679108262040662075750627955549482877870803466920775863609758368610056508182226444444931959869700206947068168190871726571673364629336009358966775184921378433639594224947886947216024674846476673653517896447020207764693069433807355070572871901007491995586046078722017293916411808136448018614629785871312311176254619199348207184745997640460657801248166493314392639883638862846310908696676572327898092388417748981693262025493316835664936028890995611207632886704908924763240591612551077821750123940405710242646239461785102815763948916219424848910567003627281786932593059083973529449344680367483150921283817372191443065776381187544724811922353911367194680110482900875941226107821628350584612889038046996219647365783650766256470799955102319468870489307209064683152969983933719773117675050141337546006891792100385958311495576037202556042459852781372862024067951612735782366076225653670710441571618579313125420420018406644209205900200189778022471492669662244651517350546009425532859375420578880032967352888989923316366629790487999048195413277962254563810610163527988148173807445686257011270824099839656567259774863561450940867433118649481820516759366354449500225536578330407957061078420804988618999531363058368531729629627183074197574616183481141532511542500001604075627397553746009479595590151301932591284392533087198867104036702356824012857400125741382048834530143825878142340090599169920171071788533588508417044221593471962905346349529453074140635970391450901918871571217621246540186234835311458186421415594932578639766300423487301306917631373172141354803186794189543350279643513766022493857792094781400033404448002398920414440374461699398502590869880230948031585011661658311464435493891595219452857153881356876718747194466675618491066039031929205098236632762306345253897963357603980758345333178492874594493377594360084878019523652497398823973931765855602595770430920621672700427952891466142080509852610598170487446087817006917955784848815850105408513732901746872751582686047936437699692896934485521768203523878429619630716847611977413923010825067362359143335924252459855105059899952664536438666410667001630558892322626457844918921433002687678042155773081663666544860383881307741681027326606418475509537855807618907997454650712513274222029879759822281668098576718075736686921031254129086254131386108096138651415263245655622849824795317038159223700165505142722862068369333502806688069283152326882361751089676995460727831845145654989268637585365992224637110603535957340209999070520205896728048064680908555892458404656682415935198074101100396783516960158519410321911787265334116213240466940196616984761078244113040735137696313043528047886210178648971625393726914091706379708854036004396081056154284550529080525061449603115935137632401144315070666925241610109256655952691121470567162947107321771064261199907389565744303132390790692870503497998003444448467019295670634896249167183552622535954773044010014117757719207556717904204493669167702085724311115236840769717714463786930753294273621076574714158395823426145268559750055817021250717508359217825208278529016377325633340770652080089370499560785087764460772013543682872596873535982026057690427909910817361092554769007520713082396644459060304819077388215522243774558517726386548017941362146541665299726553215977197868286391065552088873949977202777457293184479031343267127803815483988961282935479598197799661231517523140737173244219859183303200508473275974486164745486295570589469493112864086429631956353877416659131473182128129223344659651969429763949469566732206384872872229813588757781810659324524508548248277746453890319884144946297643520181362419772132957687848998775106233501649978947827853836596651272902056341910723102242543203395975500239842169571785337609377016695877646839713397100039460862022234769853817066743143152864782173809659187201214135386073915613742813394168495128383437582480606148837423046170218491440968303606861943156528296958819726791120481698870054814665171825912763216456112432288743447079180665950287979833503986704990302087475997828785901733158871510940615569525709723409247281332711108889874492277631305903297302942085568339220756339036471018746024388958468257483406711532669973592655365487189887013555956757746012524223201730687652833337644142707313483410330149166828734499170553167418171449875059484421907784534443242196264209836114564443557331622267095429651540324121251090652893138037819218386825705617046574366401750394854044324392652197342363322634152643810417617111692673205450804843238206286988803380005093482664870646265009321108146249253942409911056653970616053510798902983555616009103036786283639645457723053550222330083241370791014553869422047177526937547165432046849872319421707459837452655707052843207862591000598012980612660154227017444919219603271944093962100162263661014296822188291458894517548402097959327623857588748399077759588357821946932861589716157583695747160802838296751123903192312950061282364873864458266657766051304633951598318172548588695513926885655061966950729184897990787792575648389905182594427760463435839376649518609881934184917041861788663877480764331419431916120799673521769617596410807590659944408245010192130737671080130038165594794655156974091749209126015196618801280451273290643439152943288668962644802423717623023371567081168592591376207870442668050260479641267294054301850414241762274619046558872695244407402329477116740599014864030067602211491714588063575848940860138019474328201542984644335603264134219184995114982024738838858836779978937780026628700683233757467762961761666019761486422072615795462579809299392818192352911811517139063625298453273340083394385041108994012907071459833014888749331904502855959726469303563347731153794700247958599114225082586902209168798707762826449055859215746685823856465922445205449966098883139639245135340697563708471194995977049364848128123225673453945514807295374661343779766951640230299786084510999945916493929088945411288676404598093970350635518647390378785121447115971116763879816923268992667938085990605568557254637431200797849493942800403278961868226184529792822371116525755819962326583254478960761202805923957483975111471691558763462758949142812747162563520859193872556354916624781084140498125570536405692923638373646486018428214206133245106372827512142961512046722452166069775078435058899254770001446891548909841150042366643504888925336081469235961566832452247732036171366119225599587399243881237478089884862215504939323889301449128745465828709766870309297101128975712576082525719041023616954407857951687981946756684005226491714525329068026842797894866334198999480834771178023123459099195304203484812726571848061017993546459861151738633343588025295890446380675226341968466480188669527354852917722525287483529791134776652285817278430752366423467784538666227648169527822403592698528489840773090341471666076473670493757963063057565238139655482386795608627407543832032920407054504626624171663938357358617197331799977154825287376660223966104468128078199400434609637699859815231638987488143731012298309480244825526835916928265502650748619962922138282257744429646931431364004963713413661280786821034284549506886208089323041903677755987045647724257088928514567164867273930634600455411674223350457964097183704403194132918690814348798782699325701726141059269065209978089500663036073341721032530718511977390954768015492073082941127197641595382751841670742408220215552434654169418762434311060433115785077479880501222502335194144893205578907398415452070899664085458488410863462855680310500212038601056945634894614969376931741404752499797940774372821990056868244143066668261637713149732128578612552567729794273764827613460518202522439152273969577796635694621754682209490101585526481862427005769169396832692274610709788766212992177027478813572546585309652863163302086142391464624119973657782685023541689033681799996599226203245073809753982208280459067651468125372895662900689170636210531460956860510445102871681127146002183640472459665457866354564219236281066716358166271777816919744434941450428687056170508721616983246637714024969398602646564855823251177409503915572791230632197637383038271089661537447264122146704520610535578220404901373060235520783658513376073184324408490185567504050797992501818103093973515044356942796574692845133687217705214661526984229522154382128639852973727390917027083559913871688167439007700687766807765895382896071775502775669507453081071032266953681217524255079899161227845823063191737852310891733920553092604519386446513442531251266553810558115119065080721851870027096594552757163315653646345971346484914725354417142858073575672353454809941030840162979227919377077850370295901784776006066208266897708809292530731727520898290333806707977511603200693007790595250630442424834739881343165400320151503370412833389120113611135749384579102661973205006878733694543793016822658490789575530424625127627471010389340723183081891526136921263791610089286922571163846505252818809646652792958508884085173380448445729692829960161576055316518356849409990888934032529274330025233011743692672575762414302305943116455292238858117839127530763524363782860340414089834834310434253287100575466636396822605720531316639662834502684587605760823675311172132847675946758217845204583413986869563660670279399088524324462862164344469952455375755273868172403397373687651125376049123319283568193538890117790189202127970478983359300890569268308985496050402222678111094818757610136017684266365284460820134482091379976102292051482246480487609031679540849936725444056810560908603839286712809745432519775991646443571567333343118566384605168688652087837140436705486020609929182878482157820352906623051827530740127392339386023175439121445924621676554559174260360512583033414468560008483358001681201267745961028244686008318166478774272633006894315779661900477905614443774330148035222118800774959715867616025949447347796023540795118868798242480758414929863648842347265964475212305027982638474233282972666636484439448775389545128558586951499129258427785236087164620480013808749110496048937893087894594701458400506236328265500732293877690893507448252743193138048023561342158879559075019763431026749244574987621606508091236644524039865296272214058256528347905460254030757184432828189792293135873549663103791592799319994816212108810774039510404550023569151261782160599179365373611165570936103423358749380121983829744239211619635942448539381120902121523607168686369640697531807001680420331342957012399400844303560679166639768597336481623910266063043341118645181613265252628589135690876480349802099833557578991115509163296587247197419318864208706828576538480996440107176481114761809700010545914247354244661649475838936910625870320002631271832688737347421416816250346431498240751121913505265840243673450216639610944576998813683782421294169753558846036164993398673437386602986699172246136817135049646308642930279477026564663975255395965720056983556723055089147398712286287214953651889761941968216390827883731905439290014609684577288239235624609766651810636065212501821576062501347413152530179980930390981455811218097172230616400085884924155062330219607774225587835035254865387618416036607663989638647275722864828974127353674467672788353376156713190980857734805213835501216126450408457277418567665655270839349310471287170567764600650104412953324930086430235591891201633045775117660266935221133848714915594671784200172546892507577108099813952045273993370246036186038612231724153066978754338528679768185972791398756361855953952456666784398925804387321805534361828723219102558778403355401595991129044833152238247597717085106303372551823372911635553581788453973079692529371925723166682564590022254481607793812791274791051381112025570944159348657789762820769743078283464179451803557772224033103443014312058427114662448945601843252202491664996712641336653234015580876500854552785180621174980288697061994844965462072122554175604563196868527160095526846590288623508629608176902762199866691748828179851827758465030679671418717279335014214976129891748978819622726410723929404014995577965961072330836726996342573363814354147707676976211932868314798109878034632287791711288761876072007794304104587435971965925482498324907677216665261203314869124689373076119783426116195399841537040659676379516313042117039017503499871541129175284822523055230129190424187605345097273324070689220957929926024887612984246210103918685134049927150132780528803740455159740837269843085917556820787769248487449318641729764929539752856868751119996657427536900491220703109588380644484945219638283082404324721536668143663510486968424440194097617592156102673121016927977821920083793648329125636262909891682305258235548159010914824493276413701372336450718723997498453434131857699999105882821348235258677176082350638427990261915831070328393654859517438123857638658579539107343140874109929639563961303936774322630193747481437565878628638788084962018407139062712542595863217401377049307662052544693739557483958600328338486571560656602567776662308699351543259670128701776535766262201823854030400631782049171088192121508113230481934196158011042459449933704945014237053967867455103173643935247827422981718223238964190319843533442710267458430985848326088248874485308633973778070406481123104005762552952819256004165734742812963587990902065560340338172495796647600791364631799822579957863436926191878384749456957920947539434865399170837002366373605327340061961061003442890981390104607390011458989634871005986385353509544045313496578964431532493086136658264026485710043519833430633235669749698516575349586186302034670644960372825186174167862942756719755590352106054282451510747555131717641065503232470731733111350512681698625587877479751427132473332000314543820190929842090819206914124904268514565281937142692363351464886148213455803259792105166740709593430585038377179589301086277793650131024114004662961644607473622544681672459944356864166531283464685075949476839763905686329707178185596295105667931012667408731875083854725603579598104390996772220447193581786960323412836784717842552310869564440727978283080422271673654044799537929534141077298710104567316440196703635710844884957378465881000609561391967847075191251984325799306368894570193194407326630760943871346162450351967327098865303659699364736078092859915420511671405774137386662807853848074653017616511638359870610864891685195557421412922331421540118327032537885041623916936479090892631652800411757957056563895841597843951802300829552708559234797963691786414552917174156487025342782271262936801628185229825640840947173432503871668531230379818853931155811212735506523096163457325534056597059647970266290484111152310141496805994803485960345642369909547677757357025646298514912607064645446000182924211126145423461466379167655183111302523909894662241919708628574893610967687324209395173557018780871511728030014503438482279450822723896813401095897807142388593241995262258232819034873222965072927885788158950472841113563100890205241613893469388240245734724339732949290241353650565947998753928361072469496891701174620021849006344091615239086126588122665325676301670968711442778115497310067859930686535051044266635869434701075538898511219738275812003557712694547822142979223034208391328569675649731289142250558580003158245295271888823467756472092969047944650877138170227594251986243377411237712681767896084579802740525781377206843099251190674358774025342452258852074918841899730515165841660048324518430677221552721865488982842839603283219426508820141977682513458587942656908774304587452008900321116976062083964393263951979514611937184258829675260819306851384597078877987897724862812204392651176217384238346808582699492099073593034201763801585317560618310270551479449938109539717334563425689529868533076578984103310747184013634721380824256326736606860705305552282626996514931161042907411857948735460392262862666699050356892413215690082340470177599676733226730176992497732617882879696917361907775890101898409735496986126467518085677883173351810708143628729670121526145509091034144469692769832438595511276242440870575790333472158839060270088041595249998962266551501723821798005007243497937436580204648445727085812423180467649442272179281664556745779368472312301038533894057421519507731883472433088380936566763448952531998477518209490315879422180342167401492784277530917276640475264728966551734268857443724543999179775127527479829158466320647487794923086327646844381979187335165729842499522758925524414995984089432904888499517867519630281821082624163087819807576539803067884529018353689870817089525736964684053834285774161080216654467491274634135451273249276585921030909765126291105314464998192378625053474073740995534156781191912802765878080113646914313808079155074710084653387221221473525849857664070683277023161594320124296724248773139340362791118231734575356275139516617780784407153637385464518974384803321508265946091276257052986816328409844427146411927146874620759458297849610682134413078769752349208262761926742232447925740144621674049764681609414037009534363976626888058015026386977722532553453484546778333172358669058028204399585549731282695408664369895389501393215639534379810130260132135593929546653964667046677427071639485597655558984749737296828252980406383761791787799388137280516090197071694933535594932967658781067206981674527801898280810319304416101913687711991811991958351157375692566165833180728078465067532692578663945741281282576773268270280029003902651240421182327440340526669077139134783898766416262622568771402476531921008262452386137530877592058505866075440680801482232070887827586942423320795068004345079982422804197559792878686516202146096258560511604582098649704328022347360993142890601548628044034548613826930519614579985182888981931168058341964919030892457570138850635799985881418553853185390203768952497288170289243204967095036797854045942046524695092815912195221680561876307234692786917605458634502335884027305920454277213465630831905131059090988627568865426061197882406624732995404794843107919007095940280562948463005408758462072589164226509248581217315240414454410508020915925972191040574115809747846542870682879103262261778340494564357036221854059059692794694401068997879545081998681131098062257540556599206579811687771401544580438415675672445687091268866049499405613677575606952758702656621300109582356601498840185311043784588694431682407159603861012026250196433805455661476251536072136871177657630997294772949734606253630638873457303089145794117981096647604634322536068704297991244732881633849558960953701808824174742752961935826306167415489985028037345466655396438027584536541927211139106407006780573542325675364446650591658257686617698856312000456369252067952066364560394748830214302056315847778309203326003292244135691095953306764915920779432370199172631559672600730449172110265386124838970120366555005236778412566391214746945676765467809373049662997734300346746754739147754291802942810163167504638440737702402117216856482187268139254501653515597885291728974115257163499466562909179660712696362922038148014038623458751589605453172202761923451135657008487196495877030193459246641066090853412212910748960139796218912861069249418834935085324030928975698283582613802523690280660808586453762546301783769114712925658574215302897744648962220850043899511117995731708732264110036638725341994253293995692171352375492363364018707816944516024716990103411928487900633536952940262546234456808196314111923205676972991648621910076219024741098562659340877295594824493543552239181973756480631573937187818171751529171843163065356722616570139135989266288680857624907785562566767038441636181119564306971125265666826875390597283227533530721067958311832801959024797322383534718252629529550763182995522069383702407272423586611884806818579612061172738746938438947924636080005165532488158428166015509484264437623059080980044693669915771288539254102607275969159807862833323027047679206399433512237923151116104095259697431200742482040058474080282296944883913528929573950286813157718446559230521475687038208902570698142018431314037711522399311782886974197748943918121875109375388979163670736875235868071875695377783908061873487965282243505585392602594873312132057989896963290783373268099624605452329240418282969184707192405346776837832868074471400423066274399616678046242396331492246483281517033431533609746704769050619960236504166216940533210675240164363799854998560821565350728445897074128833758800723420437459680274240006474003165046333357361150516863597148675951480463112716324584972793853195940475717433671591191558564043371157650435655159567807186447036596024667818184065627929375059605565370593414464065889780175912151176696563322532492238091200170524568469330998209829108515998398143441247635390456556497946076719856455917320870379164726284788891262824921421654942690762913984431221737753188315001178103547133206654460451641035121937558304638586904895321446470638142720167848172594540862594779874756041508351563319393871609062145272519001977308644579676927101463810144397034068426834845774792584963988123489007685472220224423816118796780152461969240210766096495533628848795855843982226714489771520398415688897594099528053964660073222586061440314460916220588621704336388985883675021584714190195345629646123206768805746498089442653042557853090677456634214361028643585887969668624711878713042941377868112113526888574926349086400693360245477522273725624917499502514389324777667261764634403112037680990791601650835115351109732922021029182803844187254414992839872768741404023832979543337000574006574460641882042580023638018881505691977547180047437880400095699161472694080233957771505295384754435104024537863513881048176854688944758561914544857146286596463203356400914130712996063419470387121209888872273638946168480596103660190273446452329746961360636797498683773728448388382058969096798435087799535552961260515318622816729338302822208498667819685024207722963091287970017487112923452296143706768532111289876554831661805932126469632113271893196526365364439999077117074196578845797321482945528025994368126913018753065850873261919471937130148163703407710758470775390923552094133710279379686117810587785250524311886762380379958327240596947321411143029432659151007550985866142981751769184583605627371786616091739496319773342019107354666661623314180234910780854321740622616621217694455330283730882422894910031079015989101305412793233348712299071823723684359749276785049092242612731774678473329528346456905207468789955263915777423064427323709792024325770268196798393858884415865054258322274997161568128405292578960249934477472651675325396800839915739408433089217576987961374074956463226965169400756756245445114304125092253687229410460966444419656684139435559074838400710682175553495376270971230272024265128098464921980392633626194211501817477472049914914591430564938257195230978845157260136382370344429763677451732263592404773883973578992770800463929407135458419093803000339652653031820082846943363431016945663043284885574623475967307843546590834593893447230361397057051121073786527800633663938326410072240902570190912960149084050912970364480066834045941802524626591394574418524261518131919786963997381069999331443128017612038870704178143501275430842239025258056555323635219997435174853899764473953116112839742402036233280383076152385056391280244642700648012312030091419989322364712384560269555420351361315880501766176724705743747738224688020935703036974833896863019049578228020443687632501922239555589563359082840834192819594219519276787329019103602728389473711800556412297510069880433325625930624694748839473248913474140910352514553614913510556973168714209234668416756631713983228042181553786481448829758382060107897043514593475012362698201053490898246151737744345196969601778733522914085568921166693629412082114579680851633490094762309608877196698018034364862010450653729369169956663891620704404044335355752556993849345931939689632766414456902617246344398607216099006176667922657074943164762449217437133271521505575401008749321678094370261923399532077154049058307164769660247898455351556942992590742529869801067518636515501096825689698786363396233837629561479786025554280494905734869707610944825299849784599832054545934832010758818636922892336430065646974667087998080652156252725334059694497127604748563784781145010278497801060160686863963082425885621555151969694013895259694048208777653996671578106970507403467998984839198023475790623118145318246802436491145295952320381263804081255511464040253192546343882631124700488610370017736440084989255644061221187057397666429632359344057774321137446266421757890582856950685048112159202757376506081094359109583861533073724383856353212669440595453215059969776691667769675321725092160406905188782069483950511924944196586637100816478861899777945766463407918080594289362262690314697974925023368574256024143622841174604427306637839966529789121980347439303204646019014235624000150308146923806854280896074587838867692483424067941096376452057666409353535639937497160981086037799757836451913048745000676351442226839867500507320292501326023079903894307940895749462826636245232945265879150177533536681378606327010864729842407237996134216058687062221291554443925027925662763486075352905834017687416382278152342728448170092314087507993959917449499285870571314835978613836102040822439281086891996251817454757062361807297540903895366432326662302213901766241673457688993998100776314833893472979132515445699791090308174762534462226802903454904082767902954640818338428810106232439243171712804169843068648042978517776751663265838338870659860507724562925419819386791606750290388297416949875620614375879546548885584572030827713523228137793575625790380901010773031926697880409008717069682934256695824311096577377262370000052983768047017554012986387649475200151597816840631151113966036416074530197163369170165188544944419574092374515138874222848651449260631701180670586339451836439977793002212215659651852157544530723587403726979759270889106293938867285426607625032763359595516892984460430951797049816207446266879606909518467629989606029600436900619012536403755731562642374285938304904518845859817543564492808569201147345962201153049618006695473530538647865204138639642935862810488813351578555694910044515502826614412001001185399051615591175825979452312151691849015482757667209153645751801618730463068266738005499072342432425054796374587968533935885194203198907638845204546606418335591605065128906449689569402095953524972265770979908236298727958429494555796007465280878133117208136462789323196255169103670265901053618996384496690733916859743936950801506539312559826886352432202636211630841097665216578887769494819348848436700174114109725515040653397389297909642769792066487485923811305109868965719114699415725814201487990569873602182243175559345636555730468525167923854693894400669541466855586469168555886481606438030771174483230632331872269910611145376298124880141458155884393377409401351125149196302731165468039044093761774975985420678825833878079679990634587512100452819724134662689336133864815981253878082501134297819139105240458981666063618279055398494925850745872517450836544402202673908430512338069650276167680067126031053512901850931153101137787581086694714533100263533389411093826533587394008734302000905961863899802717360051332020142409304555323599932988379521601258916893436923456086913119341690968592970060048053101298509838621159940611707840584546986311328662756970952641663854520453349644052391426272854742761884746582202435283424397188837608170249019976668298816921892190741051541121945422194171268709235529475787976187748316132820438197588575856488372115956080765380372392961395150326037733635793964281238688535678279213205197692546709641543846231915870317048243087833541477176749225305740460012384679774759886494879284158100980117755331736245994508257912251245191002050695103696121565112246914581993906790352941964326950352994243002254276387022519841388057056153580053136193371614819272344762356159267036032483889254757683578833427694859974062114292149918290135364550042629316780705457823971336755909798429548456050084643503439665796659834669071200101424052271882292047879362903989078585855093013036110070639181659877097581117109953164633549349714579624006538078923718093466661951377379489203650364941099184442482857932097924799510382761334964857791621574710551182241856491943482229549385444707892531190315456425787614933759219682180109755249378599041457593980468817036798871262230641356153701942240285268648659592391883837350253745796173546600817960559463514573738009738177144148780109114616031709603734173213703678028732424828670347123775485690434738291132559860114759489198505164812854615434602674393085799635514488413177446404850285363162905851840214480298684001230424113357108990609194829790469629277530171093489323436469342401163612087200188181730673646351082122813904094240230272198208518937314245411437281180777703186405741736847442238645704318350403939060997070927883305818894144410296323804825440512692222786439995014741027281925109722815631321790093248132739284352700958438144217614384429792178505416399123168711641098136115175748073508682752517309555857376505400597298539588359616862690698037789625888649556601715890374073952106357249785718079810665748125490135915378533422497121836357472273244750755302386956843459958107732207236429148380949827992652614871829739718100610604335744309899692069985173244569264528209531621311487469936215930170002290296044663591121193713185634032293400176714744570590239990520548809803774987630954403845084329274631300336715368298007214129413935850718965881428058349294795238950297391205118751682106342893283003969479381882454383874650902871524947737622749552577947094546972197297331247948766326999230272278668872789149052197270011136988432148382420177268778520612356912488263180833096905047524940004728666538221481507816504657221680861815844886118677572932717624174471790914699258501131109386647488826830999017601488270590937633997324652959164412148392283453543243280417620474936199895180403193489816132034008915716429591977913466157628651376514608656447879393336545035594989712261864121608553105507378563790487329570726205443669056535970303279144593798370825402867770554322459557236803597081895545194787727122384571144574658716771876619839192003378010882965216528264175479073928640550077698145639918409819745021458081083187145801015627635202425919055578224748925857748626979605984403027091678792245247260588421806672034977467986431005784026983358026011864527023312884500789888616967161399972356039794016805188058527794578761650178195694094372817467551784512980760448589697075128673928397539819318524718942399131125745050314418638770525168021581422401237141586237488522493159169313828476509756057541818518110576035974216771072389106886378597534128965477957338309186340346689158783202308931010503760109181704362695406990976262274767535786706394388592826401424517457235864111386710897383549295825322496947557508739432868704709491725304081550762314093219859972575113195671948778024498958498452192642027126031457048717939193977620075443964380528487907757030040887011816191050889113854835818827797930076460226904743433761439046056888504430055275611286247793064270128649830009654634381211872203557196332491866592298165201130483780864386743188440738065657405955882722637624770504909299112718092174547907821509760153307082506018356255757490104645045165346539717688712384469873453692163561214977074796249988238860803087307714046232187166069936287969889180423007981396745739616118804164343159341071286535183222534745585712784230819736345425923728829484395833174886430222293610334898911227511885124055223209693013817357318097461465191169328347009158215541085175271600940331921723358508368153870410409524955332628441663688203342390091038302835261921705241729387153345831665773125185876429785724384651228879154679956486965203602912664040086811946744268385059519753662749016362767402346875891554291638019832654833152838949329595944626420101948442873690500666160548481579569823998567543106320266033875689719308795509118808325149450329242603568833359602259858962394702800090888370751375127155455652133580523970141673906972387348320915034332044552736262472595044810919585083667577213204456348440514797255160258177305137943033429583941715162905864192042292438389886525771546400487867137477381623971490896800490214633066820929665789437394138791274444654415132783033649051451276600814049864812563043557666527713689357874683751712567863009446318544625437907459424891999767129146753491654934711703445849988972738213275577687978948915995121278896004854757593029700720852799013019878171461697949288243880664251181714624167438683406014442960267093957755561147808618880920923214710408904868783981347335404732251376410808691871758153919413955781682718486598684772792244834170947181287791184043614631120462290961517034036180859043487186794718917635916568645792347980197770476452854943876201305487526740671398221520280138998021568414258899601777406930318523355134323299601519078682681105556636791921507628904182959655459409556848691773571302413649422712881694924341684061014485949873058953292011307763223287665081398308503901559446436911624954047284395225704386724070594512780004258197556531998424697610723812127902161639093769748757572416376688130650436335319298386811631802199593257092759639221373803918274614359148485732116322060951490417633419832125036696500878727124975326573540427045285387312409126117599345978233401329444247541411682633815398683574021463035546389072753695905569395896287230048130295807157122217808309770920120825594025015601844199666845384043326162829048393475144476855109163801698663276544699812232322701451654922104855625431297149827465497318870717688128444395145899503296247494469483197140667604161162918094044241649222315273132002935044664479795127862719835644599674032438342111730321237953538206420464203653936566005496051686896356562299446985030111802261387710497278241851945964982308902578778026208449655536113804028982812117443006216980700524520245190910673776144672876016527420437675459592472982985900483727054246933734338342957528939207358537611980415770956105065174816915311807433675240450509389657994828541488212542109118331072268305895117343723674530125352210204282972158821186550808648541604267492182865781287617084486883159970763681247948363882942331629882701222462308379325959409589128671954090397874208171175387805242823870288784469956683936423512919868743861011565424167979434663247664965131500058176061124522640573059357518093056564936391503836411525406282631813505470282215747716002002442672535862064059227777991109328567084873370030522178300022882622332490886915257916485480809978984479602985953046684615658976027858865866412975440487675868243166993319924946498609901247426852868650174114705358265322634526179834161124645141148025101506969335610961997794199491901087568205943808335220928827173888944228928353076883014648381830411971940115476080015425652723955380279333418807027707070204719765674613358245693691248054921199910375407146133017157985790608437195787728549155669677238901726576184445099398982013375908166444486352917449467716849876472641147461876002658708909226950105877761259035963109644796751525368263344559365450788869808243658297926355274207140098111649016747126838987569574572517936977710321443986102483580689202645637191991928187528657455391693228812301093910718342869000755529519020667247033536759877683380781318836228698628723846430237208086111855878825528025563360310801128494651915557684609111885684173341521153912164932179396417461387642060427750874860923110910002562356005690730736978151455898957590464298906016602555527407376359169055245405318014637087852831191565586656797438729019676764597511799057302609452438523862226373919195462075266935638814164348390996116801455671457447394245335709026424092025710434807863214216129896956424837790344377644508799699118118884112438844372390271236099024473904846209877530542346655516014986314474599533512345344381424867788418581858494714730084150308450097160465397217055543431667810058665365994576059219760338177800831652310679444933308250929241240628781816884112868554900775792264404433939586476591078006710099544369134858916377239219900377489407800717249418865997168684071595661064600221574179371175570998204313781560211949681701485393877499059224318734520632254396231867000777800135165552484725768185896130266537654706608570047585900609256643937333845575225397924334650371680166707781699598150521343346859321839787006449826636255578704954019299463050068420962734305523874259680174441834606858798715686592525967248733549335520112600667828351348066313285777208009145107608660890046582397773349448826146522741512157669759087763222855576449406265073473795952888186872958046153301398599016919363718432168933325714853658211986059160906356712326483019283470066630780249022412480864749401573326610286756143201082438068526610533584425477097272257164228159679265176115834340590542231010775484708369299530692523887964978658430198075333492379079778768244027123659666290144402832687428212612923867748515136378128769951931257619544317057066229396488359210348325113466437159293900491180776626319966484911425368937538679413044371162765647297035459846445513606650078022919928361876963165327052061747513259259341926410525106078508950662753078276171031759265306731932260926544058706506817907384980416061692210754848923147807604906873725315398836638627420580232990370321517459426286890446464350761640983862525507845934530292313339319504543223073194053217121529633931772118448630180712153478025299547775485969244210896193338875024717466893592133295814969634215245552726901053438350055476564992586329534534251059683321323476894475454631368832491760866095492019727243564408064732910410700317864885580257958086169291510901440944043535743936615767666392722839327738739044524389200377914903597329027112442692201976685865731052889485002274898196742700776694301405869513230181572029964097423997389867679699323853740128927795899565792553493623975022086646127549332626721580899688490010667863923931760215919653753994933751404767552280484306465754788453107955828705511309635559165306816621641918951950422975897369093516862593779230602600496473126856299677946475021699750669716202169837899801489405774799681817855154785545719031794181275812434333264067868000591550521796830791353731492915482275004312163264321526685414058714894094402505482717421467037629066931322479388238210491731146665277206887989056349610743258879422003494670382627654619325278648486881404723186779116113348162263462380203803262885624434455368110707002850826498152969700012818516460578666063401976864672428635751106293313610014910631944438774357241197010860992420270123852481717486216536877573706239753137954520233947327935662145663545814955933912990113231969573137979460235691258439549607721764879731938342868735869765718006964100223225330655164072794652551823708704497596791453814739531296161677010317019085199606807329223287958309893169010266644167335299613250412416498690802209112220382940450711869392695938691774112212425284189746581251545678238413770617877366430240509313766440441277398270852252492053161733056078670927391680991359016598984097833652233365691120148444944364984988243013140862464737393290029695453404943171131473048405829684701641224832930770288164456410346287002079453805526688324446483776002106739551211087102513861392068086780058228807772278856886947016399105201444535760407319342481071337338970085107518153991895558591689268838552219453166480401199124265194608060002529732998412025474873621946567704032072048885433799322747096434343490114177980691162766780323191726632203977280316367444380558119452685257512489660628722483890659409892379251897902277806024776039317328473955263496375435476756022308906651496190240621041191980752023315092217867965438698426161474957614925457712717324808960152525511468728061716517246275009221312938476710924146930995550508464203575924936780265526847815032329226055619695932418706436061263114869204962658663674171472434927845681626347960596300456052608639450649148431698017719151633568879981320037531573667576512932571032295378356852205164382441359249114502601214233369736958196045799233505744014338102255263455447361381906898613897942318097140889183991656108919357769713093934124531221615929818695260911660315291334834905256206039419987110627181433193032604760205202226760117123676463432970146690478218115121413885191998901492146285476477179042303952852024587397763683768007579198628827796954348807237628186209413933915173013554160548596653825188522705157414804173599282220144212711092424395844585244429484279363907230514795378707971592141344636531567525396036618209553986814677503046090114932122211342880136085253799222092801647874812251446750307703683591378135985549335126784069975472216061640600241016516327512327443057149075259307507542901286697833554895736482453355676430891393855071115199911950478518638938157020901028953810890696385102091663071906683999747070765262297526317254430606646735118146706034634711226926440650903362657955260695561208971343415948064402707069910595758607945095607718650231724039461562486995438768038397803858166941770685603623030593438363330603639441640090272239349323667771008754796819667294652852311723928501891063783322558029572714264491136211925811530932353603974344124406984254938924766350923368468422644047911504513731978711386363439846115078203411546661468668132345820685774141549249597774124166049368793947705747806245364651877035224291004190877516370623281185602671185618294036574593203799256107179590710173596381933895782077985264326033039492873229044981102842740654613563609487573319768105255761406307394416551360623048349335511498579482112775137393952271255486263866426639020338524687801563262467517829798537041645079999514967505159155810925271345453687115812912579061128526051673533536792691197076775646702887835008012564065692584952031372191984463717683798262408577432231435316912130551536045242276214525791530154215230612775229950465812702391907998568945549177425340835815907426671941848652067050874120649239894231112236205045559912794392267228842705218959681310335519292278319094289774198229251473768803832410040656204182219533529156298178472341903891179749821241880057670888038920001021723011259196643706211042147617424872149713190387144500867590919825306508379725919848515209995233849523886692524881834491907169816491513809337072272930319509008243621249738883659003604435021994001334369020516991357322140318969270753588611153905710580068246377382001888986995746665894588450063002401131234409474418158787781300221872655098202954473305760669324191452872839573471446502717260170612298874804133029180607080656410140480493238501111944137595145731488576380094856057820507424210420720593519365757835304604208713328211267783529886234652402039456127061869052049569714069116490746653888856569856976912121828546475457668585791811802895108967438637398501836876254544862747868594169628793038578193723058413052859215004018000886262891675253772599897818422432315274042994441087624182599701583726857871477995352648186659833738585514636544998669846200879625446474564485083324465211407908921773910000438403170600520069036954877514250419620206763400644202688916009140725552290932806203896593955895414369327228793038857182843309688957718624416257382408092811803755924537973179825263931422295380088889060975662836408942933105735048473262700999522424124032889344966300816328358475863983710858224144186528687112845458059081923743513173744106873116237979557798274697429312282109607768705277757991686542996115347368096764530340596585424948626631596145574529899058953882408525998981434509508804946121586773516461293794218015461818081084921113553806969865069729925098959635623012398871302856699885077776867364932189499457746828011622618374302056952727958731419680232270525062026958641678176421634910361064773326452615475042741838528829528494651173409991235460752946941475499411751539682114499937377135081617772741978929050264890856528488011008368641626608156414964904588631685649597192918022756227912127172804484011765277976255047512547937955143508173729651033859585290216646404848843871386878890701475211072665914733049663244113148312758307030077680758879688849831130218797566618579895454513161090465038934769164743738362728735925683864457071241360941223312344751065691003508607989652383270182079107904666072360349263238019869036386144524053807474525775270785956523767065062114595445403630716372059038956628175443188261568683228464567977753651863225220944199419416252003150728358575472485025045798662566240989455761280306975062140570404772374008230934343163259694638360667350914865252954019410740891973442083997088521564871663114819616291130039793647748601258969613760754940626205808938808837139080261073338001330062310301924401202523905892757438738400470633358985348291970635776072294995704136914358055840601570040429419890093465738449434610262849762823814008305985529312096231815215545225158109176592112489311696070535708544941023900674967510248934569590742049106753328117266992552308169490100317548582407560634193506122764397845524039864773197965617016670669285715552800448456953794408015064233103944836037082701347621054906162123654397914470480528112520253488122509949325364013320829322420089840591002279969011864870419050124450341331443237379774211300238547886319850229090531060146046418600918986380485209514484298391675204435289811038241596478626642768540616854124488043272992273180741213617091309463628688072290965617136108355286214612860355445727410795156477297701200814753880668488452036897356732865617686613116230866429863430425741687443497375123248366036692448203900963023421006785863550607986667906738302231888970102006183173358114581754170725558708981006376007003203967321229324954658409509768320872102388011145332615105834538029077246486030629930011962759214831001131444303067307217876908333314933228444950361651047123514985185958212937529113045113458404013421662121777997154332180007729931297649336954833756173669593450053781520858272060339614351852981641593382535437687184923614787227960045476247761817172753154049423265337601208117929194662747353738225809030600923326057840018854515700661986982520959924328269493745495402673380687043699927169457649645374564534062192901429972800559720579487903068504968714916513317573339543331826282559602058848830355688319676838484183042413233175048909164684152548709249066807401874166084969366728620213295692566753591059922716846214792738827365274209603744153532501582732088269096290863960288824500570645263330271381444802487148082900703445185358686715860041321889374443259451170992642360603319765329197739538854348492950964715796200565978121190937131137884217783274230064553339434334666485652453219387121649325011551977462074071068031509241025653702604512870705408020920879353179023525718377557158437588633486188287299703412123484378694544852627716543163996521122116986440654946987914353793431020142156683750883292710292398492112560154027755836341677469541763263539670748530158434945493141976258133532724723806748416436267514120040781421331003590432799418296112799609109689118318383270821148324323085693609107997458252522039211267688939981055835958402338263612154072367723136811488703885941388191601470241633490195917647948313824397700434915864827704494884001171737210213285268609099090100733863842788768691011760071267516681887272875103572038103784072201432899809994267537716210841196103634783967561198703795692865146394464295965750873370348220751456343586811207496187921513686526220617747539416377466185121686980747086645427378287014215962671041484056361654355529541036119279804610153510438199316001870083523979180121995431101603796673983374144428188851362926994715315702605566387722311523959634722799628014479501624391379561368790736565508151773166807800641215916003659171719114259187287557909595269477799647352737227464521952816693592485114588189758689783225392713628304778862486698949766336287026031484440246008399504273114410705021244427112423639353063076211593661273018878874537221158069020484509349058743145062771129791328390118027675762718169995451873062361392792474216616371391190779231007511165758340692232039313095721766098087231641220639649689059959481162586329789059531802932565762205140537598347713304664917447767260757027376363720541939966153429653671768592473054622839480431856008487717541733562820961964693226741241077199001586983170960195397173679409176852080196775408974646712387446273350885447636033967126214249241649963527935223568805104545269178701231996968113698821000688321964066202066819512184079719152924698552838337521581030172309313007463402913460657941667549629591917939891996927903610079125586886349711791041693447067826947379179231276978666692102671519632202386164692339256390433333212909427289733107293674058041714639460305802440570156717567997859825110355167947191535031094863193963206142183222795062425971628116677598558913540153401165400597773662539588608124513355906021307882273333647068915702368400018079795496247116474688317951235944542377065478968288759247659591983734374074533893548380287397006066424734863760941704434064895792935158340804471546178404839920799719277813516843218201038379724271701287645789064741121931341008632941603616666191231485629009945439838868127055281250170749314248843490574110507268825967272599349517147994187107094775092102810806300003639235351420483589973689489301704210999770828421661430068147491440304600325066193115032318679799462160783693703510315943312812842700661313691121097485231800975872556870431510114391461559579592072551071013363515283770594047566512444979532486295911007982355783848734148745967729720042920926571785213059767626606926660986655039638535401607416362941747659446619011026847616476208029434712927769770810430348916995405653237911732477980569676649453559604018736821036142847266227978258332925943541465120100395852326955466792619897282502495531599896019181270155396352373665231713844014595469718176444222394766595552236080104321293509297733247118603426842316586055579674390329106194636205535672031905711820523136025980422219317052638843537842013392390956898725204861813681993261856580602347742138847884208963066483634955928807394741279212408644128255430879131260235313847744725228308867156838380987306057103987982716850440549799008244386942560264527899714095144747268472263096132915304653152749350566337231694782877094113276234479667035377298911166096931603621445421082246831937031710999474781922210626136589539132976342887522790477167085300184832352325250568365238824704131548688645672190990196008667121255028518714651887559074884769352428341849415388262714566285748763940943845654070091846612867943275140057710601179169836181239842339861423491221258258845376666365975083565875785432295961637805872030566401541938893592738361665835049313236564821291399789302695586359232224283762687158335708280368567538238773334288383971848957353402272871156669659878425139256815758960573019739378761482828817598036046498408674644586293069676476675987688005275380240850851786099211380121138204425967714764638118812100674275046072450727318622044742909032307215786270668010247416834435894098127081315195343465421995787077289055393404989054250644928113265152096523029951363412082685958600811472055369329367122517150866476267214144379218573027313542436578853569256330751388853094361412919590854001020727621331670452854770007757712671680904830114716578605902724446298366167407967618866032731080175606741422602496824492922866427966428682805424222210709447038015348450768469835720267902315285271916822990922982265584055974521398441997549509890903752298707493022283553794838174299628140477152863776667745706380118563282831972004441675535261346627895510559265527500385735964601658345762063305970039977787412386715789135777976340415989297861488851798218948822269643793806069439749897608537958284028955854053988272268943959013104044321285134635266489752920908531158032553953294708681634336880249662753674874695890825733149808581559941718440737311500744391079853878863120477090007572011004873924850893620449838218219528141407201705686580519813155362559289455612125699785773083882517644964157055739241204535820509109329833775323016355162566100264577284007826482858063111425125267813963651400675309917591519602311641898749910317951308621904371343032185161384914055716905456555789707359124457829856849583946000807325010499171696301487054060829033011368371608805366793473374150827105417248398395186910277222807534809338225490855648425041127467196802592855904494903068437895925161241410068695463581641196989866751960776203334734676427193802784806347907316484056771538424237047648396362662038546035814366033617994875747322413561479599200163021607998022537795854028761560563327975696273920333358219733371575801437275387465864250051069547897637421114866119045859356708881863436088705262149656780382308368337372152041178573907184512220529124767499638883001495516608263535750731183222787415658312969847772707707902367225133009550128980024282352438445663457909961874279401888446141444961938828258397404815701594271645683538198935946159607869957304902005658891835870628281677051245343292792583454998186524318875461375197290463709334635338056960199793357762954587764703119400545906183169540379845873059504915775439809308334414635948333675925892325205123545623272163130274598102130203751314933006234273446120139813344283793588051356488639956004113528036258820474182276469360963132725066351508446667355928890430673108033180679147903109726941303574822663788987970899084082313737454330513707607974109586166460105308725635392639334874881003105937016653625560855027960909708004423228049510713108644089899670552228561312685332009269081728143077750489860471605639624630361933814576613046686910516059015959355730275185146108882877255866831957316122660625562237205015367170650492949099781117014785897100860139563710478921422581144323495208808288592580395210209559597503335114317776633912282496384499719640130210286334258611599210891435439197073998919511710062930624726038514097492712735952094930958000405176784723628659182762268075159008326952397294102619036719087637452157727975539854925246953120544043738781784935821186681835897955798990759720792189151619747019202521672388529766300760261564958631071682684225122753171959068003385359516588886189917595023534392494365361130764388432297282059769787427453456113839857157246310342988958036035538982016185381027581816306309907430444524628077710819572193403990544802753227669107801475020973364772450834543518280819103749506859004292266399433281592907369676905452680077328205559940659975817931973108261308902818942215711780714574885115992744011480828555694964023962616531546490534889979933163952505771732990650337812918036490430046607054655359569700763167541152444605630668133234885468576204599732831823533321854747864060528558749037957998262230498658291111268042668793024297387782400009669928036502990402049622021518489842971535058876651213451182404926791036255479023470646860439593236010062359485053583547853189297758713061743413340381151887452588868536925322494125398454872918017002298405101010435430471525254891932354669445787529719494006117913778446251629920670564706710795193696968226432548070431548960842410303140209307342741239399124025966298020163688811633860007712719635297146299862835043737156420550271277007226685532157517648772047204496552242839312637511617867995077255363729767689357136869647365321045107700822880299780877169283561514852359794822655739667019824636454690969181499507233293024234056535897511265596748010177776256459493464601804748311014997852102347494997627863631444993805449696350319166321351447730961879309123056466929825271223769177323856240121817296549580025431988857636243613871577250039869408676501196593969769011490563585975020957058286477791461468305636804200001767638594036788181852305301489834742358698917239960663182678933368297002335190728698401465200102095990285768337510595223115239440223334348337684570460971363189527197706013042720921174065925961986664293684672942544976538753147304224915761511711916862437441290908074476373932255983816324434313670835271529065472098845688891384051897320367070722041898260257989762618559099483108665211470015657576137154703938799272568733541957091350862073826419935570537700567138143729220555434747070011223400638697533312940466682641574138106219497743499741268888910334162887953987355928913337029870342449642999147004831197964447918267189938346798867316728154699962714668225086861592488302280295777089204111473095513817369114617251370241833051263416077531120923229727394084854876176348669617316019899124089241263932772374728320422422284207308605062164585487548982512884669854092971786641681345309385951739026530482164932545306933177039318411263113212466119837206616617578753374111331732066482519017768746099619018035541659678896944863503496037870381333594975017980444510598050843282315865904190117791699498962623644243313369357393417790010725025610593022781676297376792057700705400366784580236339796995559624512064095304407238994805220014869331135408888788572413779507026664980597370920245816783449012393367745852436198245648663011186841292792257279870442602151675467461059809174213441677088808600090524413429809529278578165777824893549736571349842081438560119757502569517252800913360193317973945057979152884839717660690327002961691477704069347156419361618647556567468163576223702592494593641995849185002753027678187530743897197062185491738434735954206766101783617527257213758949877371181515248042952219232879316969723987992257074380874572365482325878770101287538338467066811015893738798892912807948380430260088898656359019594222208467586343213700742522937448527047621421528501770381197672403380170504723794286612135537700228356543795163094768616340593309885857347582752289532184398576647729652706420176055887282505932524254044209803202429068369244331412611849785068697838611788318975721656974017489847121226755434596118664832582973801547959717393952464727499415311213796166756198714118483335160258444981593088492163906141069270792744615619598625395065193131816648803658562035178198549208003574295960000460053331772411704588459340265153175661476585335050457524729620190342922972041861933810597142657225670151492191489283633262344756426011670823576483185085859680416959872200581179367681412544849446254394025906690303589480952527246686859461037241981844771240472460542532925938277497029414422831502159943080481807029303272706643286666768570009756835610446613045988605664519743934763720618618686847925086621060339350751166710684064794970292260876880890580159522692081884632270937357964635022370178426740031281651236321650963785157135188083292913160522902481642856891736155724808024728624365852287724006409039639287036234548824178028168243250967102231598685380270534788957275812159136189450247602301990280343202040608637888026048385348757053072540596472151676613921507550923798993244441929546571845879330095695827474097383052628981054596420156599347852860489989366294887203578176553829616117924257040225022045855780352168038162389032493151227300614833217385118256407561504234903121787065361074163571020079698071159509349119159303966627244685552668354864495871910460626086930894869742484458298123657750409593304968748782470662958708139470633095488734033872060140429253426806588891162854638085827914999067105435880073707371282964997252105673163723329918947341112599411372269837715113248771217702642557008235831661485123047442750919433702511624544215682513927540092064991867279798149210021070755615101245464294806331652166921520514541834918053617067289052869266632769484545459035034675010880192092424892169330704113912872306246716699611318387373407159284041330564855763349620019644615456083934426478749327056791594090763613801463468722703061460585758905598618621518849424531386319103576257686212870439235364028849287583114392549697333187806841447984505002632621057854095510739780312940974074853679202012085117617870574858889072773648628737776111716879553400399333880389047886868466477594255586858408518713353323343880495266434410608055941723637208471216276648903920649273322055205642306541309020156093840675185069568237578262945178117937509661467759156145237654288803946347621265603927635047893254809780094447619767513127295434890897250046065651291393109468379491906493598593684594779386641996134365022237398162551588588846602484581810734912802305124215631475938240844916309201315668449696550539703211282493614768812614075680246138421517694187335744379286043841886922684549076037440952553008154617534285999973958875638464820487971335194384508732654398180450790465761156706147964725246770689076601790485460964058670842781407795698081909178113922632814637252953103606581183513354384752119918719214377499465502075926919063354198997796752865125149565062701739596094146247761968526755575798828541963866654280478074442929172937289870954630082693317080635177056760749414084368000171218623778593804183913430197546340273717805921788396975383973110459987984906511820527913094515478255008757305173241609240774623726244222096893436155007723540527389882280329136810900968598609792691354082691136542856683922663043173432926077298553240254125355302890053566611612652003605789314649632980188063302186388388272096010791177825915636853044443199523474917045926113572971060446272696246771879340818804301537604301522214208279714712398094684625168503318924079924953288422771929785822046434868658822253752340371872726019395632461784218990062153574086951080666491781254596949394151927038868778499592311871884705702095568731299447075352381457569589147095643894919854474559241118239774441970871530850713098653314635974398815589973812035092120440729430359572452258227140978695558080108004486019618365372704338540571491519512173575657403151641189667046563396220838809005470558927399495233170723810804580868592742326308776299166137691706899573316048924056493817446233597901108828183132488734261651333500343612684755627607805723361902726728729636587743960840960545079537703611585908072321267232973653185717796785511184722356751074559010693628884420761443726814209896455098751734702678492948078596068008420794745882246379862442407624241776037663336350032981910730320584134112914919515339066044557584059970777291208497287090918807240554197274754219739725466051570657477145432880783292901782779942221848973729042771440814877444262060546599607679395490266347360350534245934479501496001787376054287272248856380352502286423673384893439502347971252592150317464881691736464722106422470733875946836317397491665045874212195664870698434663878186738086333235481858072907765257708814955870655672839889473817453088847116643039045467358396684856562015976895023366776219669290356780909915937298117584016601457486679416172869399794564928154860850146757373069226339069785012669654894052127126791261369294561511711252393236367176453758543188653247672632742537746855759209282402392088087523536918631939459104707505898249977143270864833141730789882370370361785993076318965001874783556563094146667110600879513726423969803468568112962509230948738829855063215584776913380279008552242486397248331339796011712521109098593023650351274167364672957097875455171926613439245778448106775711747894001115541859430062153876342109206813436414322308566038833644551000666289764794510213000146449400925823601138508478422281709430519691120259184703267916546220600009781296206080770323815589233295591155524140205088578531096032112660088355159887777991993567189150732335354656382499203770719441079666166936876775703812490667798222580470818155073569540094123549575158365198662266300212291350828637372439796759275385244256724812718605531748046077169149679732128025604868912587049113940664327311356488213182746685495208465173158748274197042990843404013047420299493200289379261971174622007291977801565275896698201791864208229651623039703441848839550615053412227182903476251224139072824160499210912017239706573719826541633039332274924452034278572547449633132099133504005549985623518153681385396002677914235427913703899455832805456179086577632053109640438944049026863445147253674759348749567740198180498167425333522332655060996847348101779322353920783394021008669612828677301982806656644776488813011437840397090701632400705639143418468674041804891508610238843583845543640520095417820119035356403910924612044002139678766880014863862025246114796062554818281196608139503423777177108268968547182048356872773281528532417803189826974791346064315671323414563307996612304844081712232561323055998672463736976097461266094518343450792966673915344244193151962344664618760039798323701568453013682714194499119322135041383924777776769614196092977674598994229317155317931005132792985251557829460323458072389501311302702766449899318189251909628608817399067021853246194388625241400092315819487990396990106760745136980468951691339678156580033347208056378635236508156564254640215571478098693301543877189421430343216280282360165017020609100909313444481642683195612420666952763212931365515920139485492223842195494988383759890330071468591672153254070493762639693775740605410975307036247179970941593656471361051194453279744345147053701573039085218767078145390832602074613402219676967449021278691251437391984228067886528276064906920178193951223461597016580004967246663368355550186289989915373088579719195897892521191303571314440435964726875422308663244159266624367483681397180403480834754111241893364642298648144795434338530841356435555849335809363508036553518086570821952536004762673523133846457064713306662513195786859067069051677073605809951075365596548272491210162753985446120540880951500725606372309033782250851357901928386804788418623831402274831174029134050263530455176466448157541425033087627396838323427156697362531431492574866952163019423312343904040899461174382117016898364388752071513787731919918941882675135117298700043242866485754996609872307377844640655757486441585475066008862200136616125125988492446394853471435048526319396824888362814380948555440244102585841852010237667005115644952923242481818573989190113934194473820107921112404393814115497775150626440201936093440818741330611388620750942294912959756250444524955319909374463952652117784305964394307458719941997625006760138646149794379282678723177387045105080513424672852965011784678702423416314942084174603705895107628920679476562547115201764628151560175331362944941701496926293240872666501753121520866627694414899839573224027083537481767825521344336552276103322097079569185196088830639076758715666170329633198668090896382966255000493892180840597296018584290620407804853098120289268807587070277772789323906810624490070045276277134833033078633742001187703117998150329338415655982852119465223127104172560124041927170557426456097527538430327553170499150608016357504717891319011577304277827104617364254647459803026136981393688532693718561792367172266732708621267240263160476476535417788268657111529474884343606009929834708088220757395213843271159121097691306496773638032417002192831384802284915419376988568757265265351092848804686728001471262033802445152034969124770903734161355994395258251225936092633415813177956098827596248714363644976823974353651540495744433808816284205570898473386440556884519891620139270537287156798812985469443678889819841048214437722797429329131080791263213577171800047117695790631820135473761058341333139562351727427591793810228047803284218472755959528115977658513254198452379941857640775350149392753007257854257150966632498367142080051768183039366475895823288653928605348814698376042577849969777697412901844950551561775645179930926954097499426375196631376004784928268503839820736938084256647043069958115503276116486085371622520657503399663480468235054582043124468030247933376180164236412440833688892729006038980604980289000600943386194867902147312011045428784298059913253163633309850700071517417316483548695264312071389838600289907222708751869530866277235003061211520159879164613898695444067734054068296063218189755965477794674798329269519851206694697380288443220042011720146859741555824770555893671636115113601866289906439745582773140691741074226840756821568850125471056444666457632892523366347409800126768808415911774436263160874048081666816718497016489694599198674177829873975172839152931713975566867272076009325761268991220740038664957284470686396301879818034437036566425318990053496112363106422184720714277311576705730563938705580603371620827251167150827489406026674838959737701994842083182779161543459335352360361130823700228721263422237228638502414443521335096759353723655143325963629623187122562434550176289167110342950447075202158275199795200302818782970391349018083717815008074247928622524322329097066338976511659737605840670085146764027285725913081709340340494337901586442795203651574283941522303223234480149686983860096306693777697051022827401734564794098857619812782876381476825578827702921485929293435794893843796531077541387992097717464357721908152812124044510165075482900967095032867517264327944339670045239116082013207791259211860373965408058149719748994480782273933339614345154666447228813374970384409228296604069043540202482264250849112175998761715752539272418111062073296239742777124013591564347490010826228808059268060941121635981674894159595660737504601148476204083627286209230841122299591823560671044605048026247802948280287989443017206341617007080221490734263123004739845834177300653028831465706955158251458896128296396010973571374977846850915197304766125498556517380766897757845815939816503944506264272165875453628178124687595990590173924415348019669865788500611265483538197056071686100698068680733585511237120778627306905758717672169909769553696450486370841077471591870320561408122060234197241767284090139563203176641212921289163090589826528384279394304487235550163635280037027934068898690032595016031212776769727967836124049765085965569583314389973666836098350621865248875419905850867515221955896540477854094604152285482423232986024122048215272040008460596996408970951569972397362077105834244950190558726413928043963816158002014045466764906600176335784248478272127424777101947988316521447898826022044024434769546610211259274176856721960026077599798786852619670483000850245402127249747712855153046179601953802114536038370379428371879118949284743635080618315063576096600382809369008953355664963204674022041722406684525889363757644755815408996338174677823295545763278372236426667111753647453684917434945448258221671849456298035316376986194835336655507484470087990987493941946683586131828867621785900600290753458953566561843492632587062482482455868275534732125547158974496844511517146681939031700782824944880014175733602507594087644303469525524698110494821877355262258815516390779331915697278269117685830278066750573554935838371394835947135030845999798063003621286993013440209127442352973368956278090806397269631412628572441311184839975477588973669096970588573220116101603519974222738230288162982912159301829489844399018246694745597030875808793127371012712249740319716489679282680644035586440123559749723125610903197184279035588000385966431129424974087295328246000670441383617823171921497536953160076941747146854825693346885411438131039358537058989712675163629347229696975324017760233139232806338600975466189967477349513414099669026612579006741675806502122521869330662847389617548771310171309177342437674954644875463123485614414068335238869266986727575534764498328868403518899984953370760383418610712065794380821796563213395409702390077637561251183329699734556290991796677263940287745350158354547462426451447804224972911805655549599526743461609772876255886888300160378583583277459495518007879890169386880543700259090515845872245516723785488301398976775937390770357591789136977480419654534245552562760288364887276463556207850425198381616403098978887113890315843179826069238890460420298306480664083409978091498676924645261387707128317373250553011712553313753092374634680313654704858556379340223964915485811965085341376242876440948913160819600948925189667647215492059231092089883374977945614092382426406426605792978562798501006150007453901022282836874534562303487942274601079326882523527143650082278925395945975615897813841267771149081344272978995554431726846306521825198903102356494183839322306902628420695041919709421781922842080543406435901737632537206827155310680107987145150067368627414915745215045707849431491987844766308343848173897478835892806227825569512854311788653913718865515636852478560161204962566337428486334290266526533964100995365282622006505263446609348573163090045043730095856285187911708921096894982679824926132224171831090070623319279849350132974131945326700480344373305662439917353230530947899129387136523109869069250516322113948988768603148447629827399835870534690187622866726898675480032130882209311859586019438701600686123808366832205574968326626419216904859922227434018562686911443859077769863182444212503234735398030933507000402736802943429377490119893652717494688809812253674731421717146521619715325480128576166181898746603996250969352366164557086203276659682001780756696236930035619089574130916537290926774553648948415490527744086668626168024415803262294935196123474142841705220854475434681094358178487551184826914939094428789516739924052917727091744479231814752935591879563030911633883791070041888869428367287056805122665589824829948398951192100295293664378630997224442481268126706417236975409318244187782573113526640512125215459348777849656712621369034079000560333347498090924467537510452244689636679467623889582599670401159958370706860106871022759768027178776037710204037155398992590083876800677581663560768635058854953874355222658183264038825173716812078014883280050949039784956665398074808109349626059520249569926947637792388569954783413249033249036510737387259858948145839424742630745436715163260520158395506040376062811800899391429095563642500202783446826536337139336378475137558581918940149010884651809416900172862993927943425024613108419063786040271274786716646325724635603779654690230012311753420801525729312463314563311315985196856862116131879864711503247603804535470630235972808615760941311584445668767126842288501234898697914543755275935870998313398681153236496734803163793267106671592700106296736125141532984008609719661877459702621786909803034805905211343709487540212535945899327031728382704769539606581689697482971422960377540641483033438639704787252806398146229026531004063773681302006218151357943605943707138727779003964777665069000565285920405250793643132582916403234528817914919146977123059001045888514733388583862017631738482575410287226121489112115541598921095391970034747902732554833967654710607263191998920077350734438302638075815803044092509692324659719573198020191389252044316508556521833127822125219894443087675598777700087439809634870745593565255068159464923487356490575670543989645387712640210421522388630892393612569215465129765455789884053079176268443968570812344176919987890138024055604547160496118504338376215115650500218276697106578212071516517611052372518112147533135158605056579954035816165610558433019799047830560826646677850836278251686944728119307844522504557334091618703765979452307162931751861453677325805723358545482042904666334867982990918702140102759802166367101122518147137059496894424925355004498975542757481589959213895934185114864004802588235240692000366486272188996073533951454648492226387433293016991588632280085480365140835344645691388245910316109856167770037175866495889226252729281024103845978116973707294764707775087494192870469877546930785754212543620568393797184519545073103210621203778526424129817822009320429834884826362072572308586878311214301330462207878781185646301098421885537724464777647633073616550511472272086317782391561006272729529725246131810337635228287648990511840327009840961839418556765077078120220813594389871105499535757223699714045528300497564843300497387936206756609974528385302763238006649064668073317171527014167818989860604170775126723456749398150704664036284366170454241012272413950954103842295090736247800693651181174406096014988284608102373856008888652859131467994190755350510720526558830587288549018283254860204066615565657034624172174285249510215661788473002709388150284855458775830422900653533571349297027097816270256291422423884921165960156323033641759381731426308654450917741959932868014942464186731636872715665942064624888739282723195642659591623513454747683320612146501635270933112419969888262768425149432751160705107641279740299783132268129274494853007392205420678017540301497179718156410784249323831004785647943515815387863609472729268612118141898675232553593008624587470332588661705293260547773676661533500117374621264828276764949679483565799017296864327131671309218573934579123059020464421981895415420783024071250386163652394512793958403867298367256461702322067647424747820696673094074478606577892141817365211052277670771383201374939991015065351557249008396899031854350434973629162431222678531449187198687179871061506108680811676404290278079178909326527961620952942154954064348817497329189331392534616747038730018569188899255964665429750351847366847937048878292884640099074088582250001941570013897115097698388211244674789454166244742888241502159026495228435636261083922352097858346808086263536134632341475348376245845380691439076209225951006380165457327864777313818130387124522014364420819160886748788540926132421110840965481826006570355445991104936174765376614075196090965516253716873808083610267406596952025514105855104298654192481912523481657126651298083094796827618746092346057047845113606317397120878784977895245552850069641962689642072748455310950712663445685929503601017558698664214436366932202182517213219828704157559794832956799163335685953393799000837861854652933266484387011185641205205551617961400647401262767693740941648866928169322768465851389569182585174610623547270929612152909556902985281987545006151105741156352705702028991884233302561074931590771333412217883552138345367186925386265084294355088149774563218099338324347089280528424679268223103484943792335773974181946862215020768510364949846766048136863356044373385281992556699799592458355781355012815895455894835270003348762956240198759207330307055016560311397268713927719562125757492888075969306431055205982245870656450094847904863649265046707256579306014867663436377921919024888086424191298469243102089441435202113014867169427631798980908756011209680314120334759750987944160443505588485094289171308412367364073195812871531089988530033107657182148823596856442679560048425786406585714817536765830733052534537187353938806757164701683365895919443350869768359167361527583172723614379843930275160186106363842896900007904569801805690184782576042995829420608239946821252225276159793841736788760920282273822773794365893952043818215636229293096545905191943447202582858173317965090748699175991249559360863007856948723131689251930808274816020170650022088607307974547717956412124038105679548157713614493958090723567996473085699597635238058676973282607257227490113115293784353075730389087650222483931200059623250258247247280800287362801382881997117228137318274499883612637940171893724058933683401443716692053647735900753940120116259402492957664203014665286382362955193205422509331976913571567406137373502970360985489266299309506670528935542914483466595424530119927517240007696839213735481743568152645238814369496178245205725247136695169654010161067763385162574618668533778576229085897750705698514979248398842588995570229038318802453640387494940034625550398105606492559620179994995008544524151636405282151581170947372020408615886364070739592354274001067234832951900620734854712989285326074700550286175388428133369201523490302009590601053558174928728570144909956805983425055495073137056087675757650719769751825815900424819003746427105985088280621979926743466603559415349991263646512667176791393879819004701533408228574605610675883596522688475785340006759178083889587927873336404059136933471841053971601658001925265097990143184570959025556219043744915347305779396648480951652401484691194509872275756338110767775404006619530212067438293310098656281067654239442746730977249664211452617464844034014276919213482031886167712366931008330519745568317371347864603769836931004916457991639834362841629272497991469483039699742740799414738390251367898165123218936736821690357437675365222021473558466462633278631553741463186135760131873243729717275817759555969817773707004769662263503544556363576186627981502647690275595877153025297868836802533457496040387957933300188736831530237210167655891543638657748533579738183646894141152508383190460320661521889590161152906176437307115790795834467610730482900973139554062974685766668132439320570576100885277849150090798141128019090364289573442508379483172055887040138145488634465317238228547224339162072420727749154245661565495634663459441242866732146045585729235510294059646595858185660949390087685915524054625717078656642889421182142140718248437140949055542718141687006276213484234591439088337306886690721219417743781202013058755132047533098173197516355610556994565625036443362055121555278129008739216357871205220946410832213057486747093703657567601673389795625364547903866941228779270028537755676982195462907318567234759069883966446688586724179401054807616699804316668370289234149656090464082855918083021522204091072365397074933675927824925181860183794068384055999588816773179294171082587967192189619793462969479807705076458273481090835382288244873382712431890607528210850405440443845231708688449441205656664625973803923082298380972229055340163054382878296565492145545787114219140318549285714331854111130108897248624186450444500103878361713921391781761343178269406906558235780831381276203933916983928507383745511608077660673130161724421088768887662460558291007777147421051423923983757770588944391269378051426509060440074734355405969428285982976132332871015893391243267378014119022879860191708654687751544840640614486140287088865273856248363261661495000410746848262317286728797332000031086771024554217729530549720872969037657428728792635451902298971623481447539641476021063649162958494882067171538235971082648063875886906656885365963337140276821252318833264317765921131788417281342022738699298875328612929090952334219774218201319082434777566339076217142209000498475436642138355035891981156291310063066068372091931316145369390005916632670003757244325163614766145034621608580312484453483772088512553314978032086651177437910972463002880827038927723041408704049358487924641901539551592964692014503001594947738823382929105164663395304209473986863539107777496383212603600322498879386476707980104513803410527528104139323066235159366970338681496757827295370916941649520730342624739497752862124517472217862099342787838128629732553730997951278823726282741178530475327148114023581259674654511875775641493570827889823762580570771109461931365687995852468940417131170484091460542325372949046064514659464804002980012812203060389397612972873438503982237333819221937000657152756333966668669972516579397554823367912866918595250148838305514142687310489038535939323161465657732583216651859672640817170052216763502353769801428207627757659582372792371268775056048975880222349361269521486707374738026708279657793769588104345436479555868198021869019963987100253684425046200750717890268889453449767614000192838930358932346426182406260983568226466595850906001653924680935801647562368576713427055264127327609683293632694681197171783127819123763640145404583286463492368214618276499746218813800147196114046898244212743709479210854448621015418916094637972869532515077195806129115485512591280545798183723223537646741754151339396227740321161840342562381211037683196456558570205275116621007548299705296067268455738472332469624607700632891844444546104260607989301620308633027174971358115588900234526366121938055610510715721428001029610414777905967101447206317873555495496953955054178469040634005220762709170383761294521631978906994853382949783287990513207928086929230490965517938525788912443778015465584371215587920845670636058056781853878801186621411190215117706025868430242345873150356857650329302876511437746386632307584026514749833331896452380999660381993679335750004656972051339908677570127055017955475893128474156702588791732471801688723256102991865091666933688528322944681773599282511577061184678513895715618511203361973854115727564918153851627002458093671145993337060743887187554785395861631332319109234114116586077684957326405548420841070627405111860862627173289546376937000620989821732135948477639865455460000892928842354582340101503961523021481951476841919118329806105124232168836928371365786197441914886637007079976093086169729792209179295509677629848723107225202548914097399162377615883473048921066084517456705482862104577185182413482720438574522034556968247921462925363044473943416568323827998031512430745623209104976854585526970666111556437718775954963820342977296452719661030663826882731846955758597432388625899657272632174289141121707243034020055948146549584597395176316175224594516454870493351477131788763785148480541203327546945170804953769414663915016710287036554068781840614721743828058697369683742907093714174538884792603510456399487404324096192774842280571199745716890580388275583586636961933301531842461476811382235441893512284026094140425916101979924512948902765253881257564565560745277389380678607815732847145141800740204461026391534400338878640713738767994541320862223950616977055907719436304250159795440696909803240869228236627051439250790727355550106360895884165353122163616958879036420284246210286006445992515572185939932564975642948346556682950902681703191692600726491866899839122438882293642413149817235594960099607688267008965753933897697079799657631168400555978500715656834778305970015361652667873552983327976612351376737686165018091507189176990250562364753015242801141023369326961997785326714782637508886007575683534070183134062992006909729420643619601812025057159075121479839763332154911148369741563730645036484315783476370933157429807067828460537176472449893795110105847331778952253570196863668232416490048881515310413278396540883825844849994930525270506005757808190530220523590559885435360260857719749860890269849852736931459473501539484401377512415041873434417213231785151328339970753606315492678779225176907541489021627593567810145050261704273747658685728257295155175839562463189789647954395831217805175627780833600817432677482964406827376183312624548033704886281899726972401180955761838595176952025042172117833876493826905444322890462033280907580946216675811354547610362278963023259456264895578692972635729949296021376457604460475076387063256105325714564155394540022948168652504239034149598232157886259543981159929853441225106149929921962513808468273594346959905750740044951732526562986557869180643618521172413824088210763994289797528352205447779530434832391171022859221190715387086580697930249384709695692291311882513879226358308367422372827108612793656484609335047362804915718563889068324367016763516450110984858867803255467157964023248282909935572466723586692780498795979380166594886179743012259506107105541621435640765936050071003064220974556065422104695502812712048923964919030438556131259653157142997766945612751720191984747354081229833452100734274708907270398925960626618820947745380982763383072281799702160829475731880006371431084246384397932959137791615243276593916227615464671043974838444462753247570195232334723159388590630819529448230835346526951915310081772147749714397165183965813823366607839665308876202687790635899573489905067426889686151908126199571680996000055851279828760140294102934431193186323627291319275201155161718148386272240216410442141393556811523915780632276206183600595379933448344716226721255188594181959982948195176106938567727235892390130763241957572714552484165038673562174661866666737398342994103597288387384100803349781549271233722329382681353726031837085539613955484608854025914524100002505483522991906243521574175069278928340429063653144910622746208428425110661151912287909210049136460628742857936035082297596076230112111954634247394041954446029223737704044346424690470634635239539473004536634931339879301203275713184835613169370373100493372473937811015894949713285854160924850671992888167365398771519459820901292606389343516664351464198124632440982013132079800500591773790227745213360311072053379883365028834584043395709907741329833296274530752132546257236176901637668897457931013291811080224012663366691418628185575085184164552012439645410420107034817106874673516810659038603401945610575892144143606105089191490820291555300065425227380287931432992666696244344469403879303625499691811664241425100960352674447417060624498438202978535977111693138521801397064460328561933559297137832661206411452135723230297981897818862164820409680711468907134730611592940372231664866084195606314726340966858871814020372034322785258399892178716309815195007530636356021439055591079675772988563497003857478636027834582586928575036014077970924556547254654360570364198659275097478313012754941177733593960034588151097253006958257422604721164666913154558484230010650325306296982111290894004774515952868045802489498438990724695655070880117765332194246525950239136528538191637883885102184594045390918875607929286686162703885643407298409744316381292908063218292373341881231631826572076893402665958072252801913014407336858783259314273801944191759339401565929965718048347712286959106412966170684502865583390805613562069829914585679202042321989123292741978717191705532696655947206413784838779409762062939519999393363942851705665968561228504746830432118334647212046040925711608970765898450389711039954313147573124604890726128427216143792084533195727239175042304875073677383010059535990300469458114559106157066528587750123406673531575612786575172987339994606433421033990263728137864265297935322282006933134173748203965408548378680486289680264014377596998536233381460112528080891341972815598676458749572032341192449321105447985001764726315927964294537982374897404166833442378479084853973634388922188525104644390120680821326091595156110157905712189067421595508291844051040057481334322338781767085806457284086662201656095413257629019458665187520835288314175170032463567809158745372545229125573998291361835923863033555317239497059352719050360411055687910551537330368889534375798912650525289124160648054130966200329937967210586585248574677278042166569016053972727180512918016712167699200117337747627283101896886733292362168274756686118127113351206234158400362403341307015793572429943366863779639489553810299049352418817573733714937842832821465921844260285046277319377735307736210600428053234045928839339527532001385264221866138248809356815648315508882814436699296033867228530911778555042703447693260990987668209924701918957259152122299877818567122307185476163189408530733297405991332775441251425487016604286850115795760799799284201539387371574135589960025287270063506468606973884136578155406322171878396683487620902726043921393136522254893410412241110090478789609751118083449773392450202314407545882425590783497504541760025097142542050967557107911588057052976858503236918561544147198813023570730879210226507033220912616067116895538477111831225288043991662445230175866315205618579607048639199449103314125315181223727677477248024412517670826249090382406440702883649539399048775038701967424940630519864479533024302185059798180070164562867096561289871324570780173966015865090677249714798871264068077433227990054950537743507148742804870444231441493394763979571636299314588076851570260646640805010861852461396398092204616201568544219670870753606956377523615876544364765083606302101930484900217932592192418453625104266157416421487898743488621052773140386343864793093542102252338643001741674364815706268511547232265030444216258092109404025860148582583669498244534098343371078149675613795476436053159887538700144021528072492014542325937705220593779436833227546139807383282492639382704050484506098533215827523653965351450427338866926290354807442347819500285509573329712907441963904477995081133452257225241890165640420290203253286753818345358534099232077953675066032801788580974753956796642682192040069604298924900993549123045531221336078368547998877381789196685123623347352256476839676957482187129405085883362517228413555145110792744897442467361483437991729679374500265654945160704655962862182514785926152632409136788990484408068313308348978698407259926459283184870085406643018177843115214138583530483198334498408401544979846241477657918271576950146461260097081309270065159434735257145585598846947007284334010061530734010999811455466138763772387306627330421794224684985484205462253234348369407382804205299405240434324767338624158966544363055723529684694542318403197261645409289347545003238200470384490893773887946086036842848185504461476642782469205258583772820009351313583065558584182713585154504849067908537504704931308934447418988859056803682637399265291772742360924174907290183995204240735601430838390137395914429425594540388282902420352086800129251932288417807640146192258853419605815170313782503492287929441978399699845065379520307541489288097230310985501743921984135782705028860694630509378931342903070230303288718078402945391717747114638366397569036074051384177173490496402777024472504487589630251820423249274366631735247737067000063267405769308398663885999624642174594722029459320634784633545472414204748668380096467598787719085032102263136360567057948520285726859349490622182902723448623849749229734212245407037683880653964191472884634915833492433780728055987346034862142922556505899002877877046684451910942620737185964399457489854327436543119529107532401869589890775558108378690467010607090674642729531134109575666824634006607434634779524338997417022335472561137380015107878075855036423742271857185605775333643583965883011098824187505867099123388097965202817791337468606992427260258125681714338663271259780292963613125434624345083013539332393236358630089582591704862390922272612818679538973617824016006521475002080138597566845490611056642110810713277651561206992804248563653184003973528183693674532780858705787654246074144918379444239043871431467472363922499699337554056364558806926216218992092345941997600094042584282327280418461006223277826695306269158131589817388998797682711048015499021416225481624266509178699840711898685929401843226048437959062358380147539891188876124836271014912706897459197031046142213066340839800964349916554708176094738124155717650527994374721511931217404836331838131448088990352434162208912012732131115602106398844975604088646871975494550562886603083317809226855828010683708368986535291106770250423353645987141437510210246978704135198053665455713241708239744814386312365772180098257727578460266047956690412343295558933960367413778164406727827373709331195195979676260059304974143933979741514673905773867011489500670773495196694125259743395335924448838866187890433957572804152723184435456937684782370850755083720277288282560444847886817748905524705078998882409234095917538481513849412647696364729327077080410378529100996705602406110428280119850573383877023324430312708479740816856394844699949159334824150503664437471979822721458697106864031966765154585186752516956675080380624625359272170388217202839604079004883708906556847606693686850542825248301055927015947975777437528891511688012038545775272697638768614501975520135415708100516605436338503461213487195684272045505294136249881434379568815177474175714731281459122260237545247843103705027050979747422653056833419112875308974696185543572095577707082251699443160561646231115327803793952091077945883662769882756340481391863340962707494862463400892532385846152526776103854229149169560498699157065848902150243862386833017666291317560660637212895617001613835493202464810423270325623283086198104511294230374210296282796171828116697813116594032838638560811950818662552216933678661816905041713379170762978153009949295256102181210777461316718779584255097951798481425131065830831633127520597669832422326149632736957150873319530197976478353169256163425938016009989014367664616418460454684884000834646526902244054096974057463354055560322710750282621424246893555894832008630290555999276130988320611087541992969428338472492980669398647359340410422211215885129656642127456098062759777780018290923483643633396439047529941846427096578003057322893382610867768405837722257378696199601566151226446743334768916110105377439152259271389688387323605064737043457906326351387489434204025124551925463915586916507181191561757147267613872082790965777913474471663821691749348452481891118236108665021227306420211938374419948666095987250327687667957995876958782545064216754194505499392697011928976856348716449828769535804763622167402739719823945292800444127578189965902576471957210770437385720685852762545367246748715938106062614502583829588841354876366040176217487606343830946228278775712070860408562979095983853347297728733567601801168994985535900738830686977826481212432884866547609981177919264159848275042522369205214848570947006485017845545117056696929026765248027785059222743948685392596749948677257875423927558776386595459353513579318500077270982527658450204011847157751729986491283149556452197407864612457386665459929471535857537554789414740566087089503916180076543702757144183228815431134793554989568999267698267153174164658599024526951867135950825515282219129773908597972668236455013881030458849054017655885746838729831507120037687143615025972420084735682486297671346365595781824281524036762081828996246215069401058526396458479700975370906355703411422164875643305592880137087673291839804274490767456028827331401923776725989703806285048517492049705430754289836023808547715582531324712245905957507140022774684733386387210021861595099143908250236407826318306969768379056306449650744103112187062672287769364813392262227267284890237965681753937743983751420852090773797984214857980332831306302760411089721549844094848939283795309540272756606521681982929542991792042835077086252277324678050279650796377887683515072310367529486887162617929376185637423071297166353257030062885475282640518397402400452170230235168285099849197672241225717967226314419276190773043550341984973207955641713024668144665487152905962029187932567121836744359376676004135973019874918769276112606374665093140136712072793351901199645590935263320437280931267148545344405109733047188809832593807157672409674547087116694318608117495473581290031250723906301978469078275624663148502790288357738215756835773264182552518105041245797955129861219679968729545276137551096485379500432221661147059294987054084686015864951517137704026390180664928842271733139186521446254970997253644627665518609616752428518027651731922371899479024764845001125367605940659313103435371443743333294545898268834071496353046566832103402930783884541090451674496903533903369546665674275104907658763070910104421825236479074123246219151243510348907269709677900440888960875645935884985947622591591248339508535749520051835507287461935687861220094136340687915557064550717947038772983801442579465388184420527872300144647635707780637734707765617779935644794276529329922148961809011783418554081178567137968754877639317667808683236100510385465097622229216645078718820417060371050536778805932227362453581950611302241615456090231107029626166279324073872109122603963768136672297757343628419707684085207516292215474560134697847414241830741559739049528673512623839783317777883971396788383426734884560133789359295907141609256457492492532668562345275720505934851807006935491953933835328702211669085104340067725589278864732030800911484372343729715310199842485838311541075182194431504502278862385594269995936288071416759557871082746037996721126512329974367296038371842250098408708387764040103061857579039207003029819419717133401805162789986734143668853092190110086886309816810129306987424623468756504088843739246599262902466565817090570621484511048096322934291254816284022567273001009133580602895753003971086195868246586638479578529677864015596824950241854049018656585648915989039820239803497790894491463121984843308769910738870764432471084349863004812621933251180460815834945753431443157333384027248842813823824067625318863433558840027135032804190744718925556499086444041370469429617060934318145936739658328303577005955157151939970049432106612199990590213199797597916820365672669544059528703979655742953227866024871075522203679320407510298517845506347475166354930760395367132485213265144819952460862352303563688379286753895494089724649066185383080240622648127510469723850216858696810321599448584971901348565810969216222866679794961175709201448611464229439525588125207460758871455919328059481801493341286488814145229017464705344126246540075968908138569257273192088574331008285917636133215786697786563508922100477901957408145210251448600743474701879620294463920627893135311645326798637253980426447153174749838022620773140646295995015914250300794347698326095946877710653419323969910244413080166708492563535895947419440692201388156224683999598088905925865654786962626993580253778689937787602729923994284945106005116899827702366636689015129347188005924727849143969957964023810696815612863529386857367867332894926046330469265493591686175573393191984179309869073972100902137055996017421440379564427698124734647024421238301233798460645430916822441209341499913230511880273561716320474987750184878909691145684881803117130752050807715951945006228702211921232289256305944324831101772012354528740151731155277040264301812213150063456800935360038400388191437177779801918370839586666931197918083765916824722334308762801984909311393357103038426319743530221671268192485389377081016877145932664790653516625799929087882796224511661267077359371832260835730325804799726593937264566642630464402583977168596266935021289112691959620940662179690435750452978373698513567693717888408604888080037671935462766198779295333236596507477285655062849617856784360326798609149207170344326507934534774022353695142665448489807701957751619885015360609984420949906427612602934644519832673002662825736167170718802893755876795614839345378283779792336380836062604382525690711295237026082171075470556112005526754384960423764058536097638030971429276637290682198990286750795150315959729363624320132977183232641593960837838239779104580660778064008933972822435019539592280893883663135029409567164487821960778114839815857210703954893899770877535778856262672524833750457529989403140646828296372526669336417667356594705945989132294326993880650743079759387317894201734246476294078979621275394793665703914768649260794355225611586567420546135289244299767009311323569968066496517328856162895017548861275848811011194596660585435857891390577655554746284294136384774058734230336322603819840362963918092896461655144929653602219346629243075080287326509508692822203779139818968916823522435437205545091933797391458765220006867313524527567610818496390621740523563215757031064867853854543870441527295266677783789438810370738528070855858241469703849122777695305670463823767893480890518275721245573547442139008635987652949106350286182734902075182311175130621866892815016104181927904032096982274956868159806597148829966836972571352591916260886557358816553636738408980643710627271301886363239634546576737207980371748356691445201250917232107073598909267593008057375287103641472559429612623434080845486959573676394542194153232436752087587515217923990713388968746038761341389089049166267145881059497464714992048224466915703107409021625797049465857981856144695287342160543627516609819419404243259991694623126279514632228785409210657139361370636338971515522660700220488486732393554273589816809522209263352853182980704558234091437207616455205737653050964284698031433409822608065365379363963754856035526841768772486637428791777114844701890831948087575854253440223218904743308901639160167027832545940884263687004149194428967674836460216058650932000983773885059341536517962705369036079783360183392953785654580321362935011195742642429000884187626270065481699534477960572197109627522947410370664465679609381890687266065658279895003088630482462882203047155520284509455519883226128627828062795520974564208335079456366810441151758245791184891580767492746298632793445579158054720637366377940148730249297105373333169702713617287502616067524067719091817135504718993829859904534900598134431645458901334783761235026649111876421203132263361806361434610990894208350879477070316870166950790482595337226560001061971758813494720811010533858455590331492037751429740255201094630426026279582399898885790007518994109133815758759736263213339283812942671298073182077186835985612014901517131165182936863714348842690426140013691250641648863032073521404579481575097728855669486180381134439948488746944275236967903617065408371401906361691421845160221193807652394240000898088252633269730759193534518900118483989813661356310097207232826560327137030670535510884475245063570829818037382701686125606888426104164724967882064747698956469948868348475840205025827945249593563214873164331514193974711905655583663657672644849194759904729530927676197928596724840263426627701364066894106059135423323031844163098520352936608702625983690451527512692580031573057934446572024388734348126798282908169979149232614162609156915205391039078615351244264552890476577999543820851863417144813293787309794337454630492525128199384885449964014936216566041085384861438406660046145965844881529291302128437282122515587101782712030940426671429128316227110430972431214471633574304881740551188825954219589657908785224553407178157295069714607722567899168489682218942464358569541731402340572377383507675178924452721146866485203422753312335298437651189414624830323447188614309200170688560086982948252500389531873727018328154899111892034169932531516503244641503572808057897974263502753012902420660266134351130522819810027889552760765817847507653415376436966098279045742079019227434294821801728073721586245632549145202155756528443352391900171857677105255051518888474577924454530755878718111833592692123315816448054198949685482234498235730153247690149253552597202329019558206228266303828520744310647306029609082929567570973168385944412366666625030057293030918201023703844151825845103070873171622044390426967018730028780142809997931196595168618365547662261864225984394021954501548227905397696515963853935946453496045393881353248548685568179179429096645372058385614336532386650638371502040645828125360756528054468739216668002653675683303469141907239303467560611721048564443592351693314574688059300833201040489393270530720726572533149419287430510327889777509278300761576251604118124776715354756558673777473970012391685359150902354054275546184823153900913065498124021416041527289947620675275028577986755636022135628567100294998612635668915761073718456130626201893983314593566138303149602075058626563359872956801732465403931557450667675971697615041792996999739238589972498411022178500732096611583214500010541225267957014249776090603288702552193394141028904119161422895861745489251186766951245426084395646332679758911189448215668284516316043693910181128804902870235621164081964576294004127414189502885671678352106216121735835548609716894204963877876460948000373881625426160879867872391576626118041593559777893124761797534045973542567696580734909152073333797897573364204908041663818273760418475154504572545713862117710495911890441066202186111921291241874647854618591347870572878856992504442206697579826022291328193727261116177270558960990646040218617618626879781908596073732199942194866897874723359902999336775485516801362093635640748441613788350013014699245105846491519218691940332972219277092063099944812969030829416841934390839196816122896270121544728726636542132129839812154040351100918921349874704609166540734018923436716588130990390154437549376623870793372621747498612040380785231113533317463896902670564636561172749666432999449050740578303115055679282492766442409931921430635718629719041078609683980007764820704476661567898657715147842239646779386568333883161979517883511395300007076773665610930508822421327802210678766097298774299835677887881666909675544251137818020604291164520260869952518152678152768514724624979830606104123490262244574481555506186021195944058940398483205713312822045213893421869543116813794710461702524642589106743532958331259159533897877424109406819266839393038258892545976824175284185378177525504068373845973894577955194328165804883922563427650970282219001078498000044891768930453326596709959817405300987192764077351361393982101248893754525806382741197859156761200924302431112936873597438383061239203632462963866675938516508752438232214146701563706195120441655480085206881238392164586343940796996938459359169570544234889292549605646187471274234666737980923810698918269347243959066918569870599664066723638193493878418793474569940197904139465460638407519885018332331870701955288527462486829954664430652119860069269174164555985849345009511108698150854051861982053675493939698512608532078253872008592362097445026001075380832597177410936036735743481061790314071203982734484254040390488116886211165526738614257526314874343666522163606228620699817406091146937111252643275453551444796296942290605971716929522832165694356112511038961633650303810911719974217704751894579448247391748245154632857393317215450205725383515070078298128091489806616480964176555078061216579496836514301145613334837083639008496214463137056635052041477416281523931210846103983104638527872919800478877222804210490915945232329440517862527162020176152919823055835343985836151801686181688200994791811102962383058309825921511262999169360484545018798046054260650129925864239698667010333604787109629643756724578302359507761560804421563303628049660720402611174735317051414040741181504834063535248899181919278101231152160872681845108775036022147377409663053699378430104302694188313792837296142523931053148298487789051849690678213324758219082705270350432843225922756605373493383962168432601724863291713097699018089145643252635000959750942764204205150280696759745612942920149841374869485587234801155150845189331642128028034825528852719011418537110423630146284470960342296831964991175773045335661025273847667428555320456670183467010104480223914137142592907358679072054043509260592623812133010179124129372964662922773954582777155406837975799149861153496599409527948805016854371957457942305702811765236000433860323519985221517464553412903169591771241908930118170798499070016208468392895946315264666569679988405558373474063357911205540116822109671135422657611600172312361410929142441345762652450032636518918540151527486549697310952945837196209847210070796931608623006955686079909898937708799593555650374905963021241217090577342008560625872359375303703012307556964443365829875137445974576687600692750540080553285894476695291564045457431438843175960449773954065185939640066870068165268432166008580487364325777382654202736615273479537357105621384564237576939864095240172794548567459952953499746376111110446003864548941250183286135293363290369713652325948777909739762670030512447584654625711837807028562951879746912439869357827211510493355958454482619779448118291975915080617509552749194049456429711157125370414119952875681986989882181851636118444005129168502236824661918849380022689483353312915917774315580463738325155982484276941160545995680661409642218610195181568376021951960446091834616015927719601263488050696191181482645001963630907981994565260268050937352572593189984319198122052832601373766327133673770535867383691940784324851468621110228260285626569784553813943857051638762435275544243637414303970433341505897798409308391888870806668492187873495213526729134567000283763060092849438506520254969145168284772027068147779805115872758933060181180211249835097041336294250778176617323183729637496350166526701993851837324783759126540235302886351866809666231901348533260980281832139208227793865196595164651644777370915370223478362237380532122710054634696567619492308571007029382689819714072609541482066684366477168373957030554564695274910011678139772473945756878473442807827613465343602521886895303932544414573828419623171717290043026100801807917093804918545290860329331046188440614359659472714626812504114414956469421362023167770830586469743406361927612905366406800651300650979680331797778378985118112813714400191443348321410432664120405005143780151976559154726255046387802892975592011526692602557825361567290320723324189130482011607272163973970649988829094322265498160188447380234368334205077067293235074343419017320958923833182574788723239320544640390140450630636148572075816486236981213332846746112909806567427407062296440687594188855671035704812888103365668410720288795865723317673700033469682624068680040363046976001649578584052703802251464702165694898853161939487565334997299850990461095213372054825770876445374714503962399663137579645500055349050112066948548172077830442259280738630918136260243539455038220502799815159015409412986104806959713149875775941693830200475473436562248433719004952954208927451649970166889570338735351242069925845280522322480159104194347088969265929287869122182749002148526787646359206984764611133500285036521433468519107470748781422007746415628560247500565500411259611491803835302678731961629681603671929145020251672055905427399789252400616901350932172790563723608345053373621470577458337217624404656631656477900404606308601885064722898437242190882607960616634504003739100881072417733174170403495965529828454296849805307139505971680609766109812125791410443943452687565427730808036600811683708778056334233544998470500791650252773377934816947456220936791646725837416954890524261474169346490128704962830650774254565204597074180007844097512909471595539993877135306174489079307744627293799199058557742048040514651822098181880593252496267909404100996587013363538969550394906886762262719311401806988812478917382716540130846269251981468559400381124243120453037263708285993007461553526184380175928870645744421783520323308721610142078764092806390426808390038831714834951720629367078496597391974124975374892191329433799495177427635462757791248293651639007864272326267138367697869293524103579429782660660730296404721095999597636998651691867522572555952576617573074771409398741409621367792984638679386775642968872195035974980451724634300966618099010478823045099677371877637928437733475295479721439773045571761409849273920433546549633881947823431242129788762203643299698323090960577722950118142508109443179195070312989191988374153322258730598046762780454037886041845008326064148407527216002650692988951281457121607669244127873584274509145917483974116163791495573983334419225212517429935881656839679279899924264030746645219792598094976155838516619756064774584677880869913200453424321119384908238172192181301567511118984023783112489655248756961392180681365281497326524188013778511493472758060884052622227442176852319795021747005087617533966054191768680738164577065168370021902566826857051709188253014852574567648923718266108775231386273136819330650203790912482393201155956936211072421844482370972029711310080008662107626030412419782187218483241693366914879289477273549040860007835045998734262399267183269281154044034795205413539363441390588136544131348140915336390504101658096305900279760834626256865802416505558453803058430555143693919715395114789393240174559822951338552745941868176965558619944572082960852845731493889963285639339526625435118206607972233493387320703458731137564450572846771642757120198450347527632072959659258720862288026593929217126912586246337594863169649818825297289681874154359743172056422309969005375526007692102814590870392530657366813104545218290956029490865988631900455114786731871878324037390442482892567691622315942382444625451080498059241533523491926886001179972023679711804641597233346063625851060622667510464967456835884601905313970748820523902852705593422205972607194419594140609100859627014358298073676774175249562501074912965901723895093223132127885358079783951294513734395107671164489302330692098210837106198451217023056528351585042504124112232602005157727654921506045994997741513238217250467978357281094883056332891604688362618221811008881793466247236280227971466867961912530681285343047696098310606347966789908181962363423455761356097433583886220497999105380997541058114328212946501994390705170288264164977268594802510299253200374217351174467019974209551169406306946269742953549100637510305366436794710417638055462827863632819440846806014511769131872663501667489736671472281108801477556682994508108650031872175347595948766131789580061133241217197258293471905471918537446201031841412815119428021254659637874942173127875894034650313357422420217612549271532318478435826753472532026341051801940477395548752266468035819264621031246806826284178674900874305129439706431326021052945019648837021238327550690906124130230686582376094302204613440476992712109666315299982422025831786266989868515741047405454580559850987378772233274020086574308969874560079024384358533287087558617143991573765952117444563338378969304129031880852961438901665887492616049893182316573425207168861446765969911638091334335539020761436242274524991675142824501562758822739450710201998736542015236475291526549121190576340128183999713441166630053081166965053667614463100886706535594011658931822595737218251939858597744688516813059559944761448811553536745434617768007629536521788838558291572663144894268212015273487047078944107195925691485070702678763998650609270799254664349922496612963411487655577406329426100313189679368839853897178735073216056043125639549526036337647413855200967117786864189987210183538682517073871421218447720501664870539659355870878086589020675544540920005069164320040616785012479648847304906659755746072186262850506082810536783595278433688891201146193008605135200927603221757469629364140791771426756526775912626180661307009379619304228415815586773347600758391154311765986899710009415009259203949566189133751311298976868390872529087824034162898851943976110412546737642677222586360745892803409770519489299127581714411078340575467048173480700311084271608613825050646333661455879172063126672759672798564743239030566982379348264664993548109558636866720533565895853556432561949877210205468391656628351489617202097646028208355627657406198498775058539040841423746788325630623688774411127842001796301828774823924440715682715762184287593341568817291287024523790769073172375804598387623524508492777506315581757316372729951085291542400424083387261382417587316443088456045859132984034905083049008979490276990494603093555507073186708822802043247029296418181880926142214385666850403317091481740050465862178578679076017736746568666896699840697315560446543762448960951889927863918434106684366670501843453727604964629356788493544275288278193545972566862089392829208374986601692777608533277546045108059266448175594731825885414800507081833570514546133356954567130011729740508571352302457415047744667233776531258218704906366953751743028070289269380362273506588818173071846014630832391571976526816743697332690329899253863414024648426168692400653633809030520711071263207909326234462344948292170206223427268413646117277290743425668059371004960350200325834121317429556907445246590759322740287118210510012921866160706946384608244340318869252895837482966527960448890664122044661642561457302645919255132814293953677305429255404101278968121417037643286445106510635499958019537165204206956472183296571391934395678453525304249082275281782454388167406534199975577383825236285077979604591832770064753673841339342924160747253821206157220411205353712459633848394247820662121525630498057482729510285877017353450786978779229011643202920823567536779151521312514485734910226519019017482744579756353514013706797812583517110822123850303216996897225743854194260775529992972896145085219900349094883530940884298543281402799710499331696337124358095798645289743905548053429613583382150640947430046552370651136978113855387082205891908430733893924186198863683755164907335795249837729687391951096327220157081383391804132958318189993114687067941509955894352398340909988533802908393226163874150178326363653098032518771792569605683053914207291506337747744909977785007057677052571061389869576674241639608277636892173859680077554499925329303841157118174940529030035669544030016309161120258176171080766727507389251697779576864686388990894204025714861338444256884961048905727563532808611265467201907179652401337401564798894822059634082049032607082794450501111533359101625633288697118229680784684156815746844008351269684005644079288904714536287614589829148241336599888300744356215899568938398190443605763186052340038898085228856379730856596089813878459666715470958555670793550796741855570548508546800741313579383300329601031863567551248540097568147649351478745601585124264200515838419804868367006180368243059856040418785389290603535773872305377518308629785571046085464988104317111479061292883829991199807567653915214153712230994799833871013506948792459987791672420210876683203328641972960429932031096652292904458842243569080624890010819391145617893810829675725439708136540685961660726458952312856510750285584793479789099949781110718542740817224202912137672083860397573919286860222252389293401166707109276576035392905666834349632204797494088837736260863249738420920287470999800014418907639918533027639094555532872237287833245539339192658803973165661081505048406210910519504461919344639681956156038621289210970130049641945267703629405949721536070619382737400492583291518041285543647267312713657207722262878919365049149780203973227134732869654723789952559692941204256703646808517986147434326189338242528512710871570449992262996946050089949736506445687508636331940760559260138142114615528251993916205476523227833590436357336657439377470481102328252144915145534361866726195212080365144580177428729185607780169106141591275585399158052805738864581782668550988877657465870923907703255254089837686331086219237751274712359296979345861838549938858307365076500870190881655910972420549273912557532296043613910450501940802160875529738016917623424853844040152909575275593970424269014254796440865114394802353553765517923815135242781391855546941533493987686533117843198090870571473231573449040381887422025025717671775793646248449763342276777890801331978325591457128527233436424796331001142581567763146609298808752857531884843796490716566753625236946695181655435899462241186500176214575777854286929194001753342129247408315974494492319919711868058244081694084632502847425757152890836197214208314226382574655778952177303150231842708276727955264026406675938644390272844686681906677672056115813238516106949030887740644628429381911071349681848463623941265583394667531446450234402014646038918107828869731435191846674933366316476299916351504656264482754165834178144302863752013244765221288169844772400964523501417657715011413530557090165828929659346188414999003705609096111023139385348521066781285255763420553575624953255418685241863903745813478712242339758417312756367931562675115346610004859324039823487682274104514807609851290349817977152793670045873467615289489379130724591634852191003664610742140920150150025045439016372918880925454561117118416684203076346728207303980309337423496460923714104664374131610322576686390899207731196555318101692745237216276086994666344561216634824907540806618894101246766141126645729278320279772733398648450006999056229957086054595057998718097582200912064348781394296705659049795471856353873237308788368972987265648024335984538659599984590521235634394550020969680639016346282250036806088505556943877271850603893607000227542546721147371341285794519644743256747800043799803488354612245777816529969689207615614321221308433062870919836861821045707432090238355022033680205517634622209245524211512128586133831062147437258188297848561664915017998546413503292172203066540454267533275122271555664447488548921561253361725525519875867782455963572862891160214864433864969889421524504609689092822438978780756792353443852087322276361259325676800341519414546217890127477654905351114940366919707556938226123891213682774849257419673617071240674724922801098181263299324545040520806329397652854184081882737621630965736622701351838403775006824673762821818012796205205360072219655183583357937255831688525567300712192637465915555621070458964826814704088941280729853645617723622397740829389155639448763742023980389349235545332693639606718872209597701429100261365045546322852704230765173451993746526628140355425496951356356914548442761685291655196364433330027680895401245827743695132524187151629035698656008779222135683406637230393478718660704444297957110877514037539034829094838526421521893934854195562777953631971204051598145162442275116803240392984125625835659016087115226914339218469345160675549582204471221505554903145883897869294045455254475714074721357814379287717183415985246402498378261524896518291037727068440278164151243138069537233913596109256358969172070065099909232802980800198586523136589907117732339825191086434651676450070072181789367872411392272334997161128071845758456516751905463989061220545391595340249445118619159813624700434656287123854467055462017757719149309880762504005617696575878566077507388151309797000866812779225805078242228293093847391947208235455942961051340923903045601295107181633240770019406630916381830984573135466643643170134425392371434739597029053576007457748470530551876772664574831415416735532328372620712835452397888789264079784843020471403067425967922516727997834208471486277619733800233591645940954558190942302629281670923248532212156159020166889492459356017413220481423408374376218949180800125238576889483381338680537237226366881117810273182590275102094759096157782690987356965818197581580755040286596934775808854849007658311945370046675746547475865263863271127650925273694509793043164646507355426120401835352475793089069342315830827207780727595684486280305887471683111738757564180856009866089141889063032831228147546361897678919098964785523574099662190499980729713017825503541311857089657116210309634598646508592400316931677300477598228742377726740438209578479832244140598468461688684643328844098277976467912400950926564470086014791717997597036264763585286602312597626180471033876827504537700133076487939268590814367776437577649671669397065987435012111524300035459515351127865262183694925057187280790554222838843322449824409000931850535139183993294986563364522592571141972758894242824438838751265737455466717068870340174010506533446414689050205637520129664613330960290681843771578875850560411013372114808818665541549746907221347762083155835084368768534489593448229043748250923459691187092454278839838524937522674128122750504886694800915733928251477174931876688839312177174534328491055098571543930180153617272610368894388261296740794579547759626427932198746946064963830942847485562880760305420183561455993426289921050499837296187659162186943411672956002133972725852608026206745081707883174757634747622596046820163749734606742385786948626487638234996488746522094402881833126790498906169871482610794120061928637786460879953543494356263272102447450590003565208216746064257012077195976629678585342750306499305632203728293940795547577632881300769162373673813653516618798129252701006510157929181844264281221644222485204821404369657778840323348075558750139466100801828594753325437436380231365410946784183042933772123779123310932102194688869581880122530508094565590189032198228451607766384447022976536403989974871640345154624608987223828511516762985246799987432047450293926748380909613793988493012220316442013771818966207571321648057325417212726531007105576060990450008397208219727915024046243292913183037413297818614128178445114794400782033181838128068229789065409354555160052794920866997689498059288903964011175231754728720439547240459169472687324789026491380683103895185927036224857508436901663231519749757573655809894382825696337217970595759166865242169491308734029500104443905251643182171617386575233159433413479426658285689944172966125505963937009077270322135058500042094014642556978110303034286804640336786675617667520719591339780320073193784377715869973109552570538383316786761311602923619509106442075976143378407814236469385585923061061244147924719270361745677690382593996475438596945237336205539225450061329676188774137820370341400375591355657714019568910154274434571531760643467946736169969157383500085352734286690182552851865306040052866901093811987549497464392089629504539027680126787497270181056921332529369115145775065116446908213701040399259907296911609908350652961465743771345370819743546062935541208219714719740064793741673203965572724573838043789704767359407548872270267726332491197306853879597666765619928363484268418959341989750887857679788128545115377217454332517976438876801497043353457009559921992243825351722642141558659540861696902006811739493911791649072029905354947065076606432442525104188392633119390850079168575623427241294383111005247254479818283665010900774505361780438604316955041443578396555548426925636868241235935335263731840188795535946781421924717777136654375191976191903264998846151291320861318576622165449931074082938653106353572120064025306927869453049710906802583885369587787218724392825899478214951357752646030387560938598482478015843258719753701769969984628112096351193126049615419074579612214601065833625640124604555974114098892092330933259775551321644764066308476618670911843303893606519831918626778793408571393924292894920113142098924440798477642958760982762354314460174575700046889903188472479467027346134731718534696470193815854284795636932942765801916301012867481477599123278518139618185843860248293340205491379544678992336055553761748408337831494754213141257667173130210523364350709081772413265243231113510468586494608840642916327341792470224447118746465352498265301981641844100980780097953114762986168774573845527877476906547486393893178254475098080760597679411805497459355209582767045405138638936645383533426101732763406000447910690184646964083285581156718374039201021911974829907064317937820532919560285117387311939157278426479863281279401866852913411966178747388325614009518124996457897054265765988427194147314511619712322813788941580135661072283708568916124200275999034995679413431032042029131133363293377463127931443015293607479372829093982751591541689956140373604491691476272427764531080969292728251351717826674682330591160206300448589805674066195381140637222270475351290962842273606503893590410046109054826847860230043343620032338558586898814533661075282708394812165487655882289038320742254281840924725907257466501171753520124934794595865298275769493624449512385659505067802215719970935017420874392671311871194560604238365440725269151916656370082627084990034300748099666688340976104888630410204416689837451169906796084636138089940883528872470350958354901966569294776461267776716365847217087531054941000364940587525539891490009678682254665581552407453201827595747064701396498089479274036916173957033337524310804521834263004898743128076739634352962143812230135855961005420559290085715801922661684909772680442682795321432372178907489198420200238235675118053717212114349574058388575518215788708768251993118786412475980165011444558734846149735587012935512223931309904788071723837047601300707001161758516945683244525108071057144622231160714993898456244012768214413255792343627326277312610693414446279725660941772288656656970026703749542435941319626462463692896341599059663148859661103426399064037101518315932223239387406390219469546778148124916410585156007183049548952563521337590718974290953706662933958121346746082792246772304020218693085545287424780752584020580162399024720162191896363502486625462381145150898273985656055195744120716225412138010875948097450764893568301767249954680836218052950985689111507894423352811664151644274510857724775954552086100216302044048110556588249037470897459052182450205911294536222778882519113979157901244596463297412899075594839373632462172909850762232827425774579380276217118860929109143691762747483142688677051592628404178871642665595540988211394108000414554237835427967734494617080228344625275059170098768585394875978309053212357629587359702121026550024264345613834489511963876851760233456348103183023444560563795891777993943795275942827192152772641918281547840910269824902030876681302591492726416244329726405372023849407183118236630694114177192948385261383778287477129899710091246348301862309437698217016058024941140049918468469319523508274956673978414402282460675002034494405503946155414967603512204589098180645985030692829987255921859399586175789680414082316712560147270403987015797662487061960391190234619691684686801754830731831945699552663424316365466478674819238024280809659258625378130231382546315362429834343682161363953944739510173913409467995734035772206013525155435083240374223192386501933975864417130755327354470311021541000607704334771427465112084796705112831690154750038263480879497819990886352743889850726141896145143371925119006500206588642805903872910103185124332450925108191251029613306846495975719410497678335614483323037308341349585768625624053600101495123677485940089124717070210581852378456300787915335548735791749469226854009036296752350034207142497549370864251137782193317027403199903270726885160239799300117402724443982342371279633783012558553221618002390061598052416287566624893112523923810482630794467960810930702790346552618069645693058480959551096313894519944350044701294681769337469138680191220042445056356446685930253905507941724317345986122539198849679809496080408172102958588552673676398012467655655363431602598033020834187746571210572857834063852185342462289804095373400553156345220777654579325292862773047801710775559497588499354001588787194402575917382785499271396616884672581431463479636258745556735239400279594442865793136296693766202448243423796000407372359525187466103559441827690686019505402571659354177002266692721368975710503719932012212491381212416553807108319181879364063195755631324546735217978604907503544221969517899349983969068513862625874611499449637682678941011420196472602949559511960664434480558231329321680242837211990407854851562909641557592810740207833007911896415621442879305691129950728308691052006672225045294487184331417330623212374072919998122984412265810129249246720339729019882608772437990422589147374019776268796940887454493243266068065628758695625932080786447739764723130063148282160544735464221755514804291778823029830999041708080395810594650271494662150758443944471214981384754983169559464913825436616170831957977923244223579783992979081213145837570134006393479919165858476998690889862156507612198799226374367925612796404426597672537576510286885144755255024566645721802292220527086583848221417656724622994757316443994724461182386082019740314644882949283978348430581767837629210798578883632461276939960971372161087790409190499020462776535029137049532097402158573873245951542262842198943144602194896229456669076695240339183093634936542480482872640833168989080762624998822430024488194231924722510347036763037059108814757999538838121106344948912624094842836646298356197960297579921584832996957461386206160014088123016217792593103616417962821566839198479933452221178799017335063184895209942854095562339903151671556220738969264104879884786645557510847266014769208204002241544528538101535723134048129286955063333742131166484777562478847790597451810508985838081745885792236300724691191711798236955682093770521583628686799927514714537534359783184216380435170414400578660757093398311280943772775860299246990709659641389145216088371165381445178564769253808532442075219595697222630739007483737804013479646190050484494252950782752733408825565447944488461461915604395277990477574944975082343638329377129778444662440782167684822985407388567662882105961525218667497111531999412973137186386635604493337449891258971826276267326402138455037664118596917671233853640727071090423080939427420264614437013945211250360851543454071039984809600083800905858804360829981456271966155284240183138973926644898106846961882612294425027796021735760333689130173695051518708856946849364042301266499176503832322602222312345841423651019047991278533496014401534555124283200879556377368053180879205620665037821415744758710461144563057630890464076829211452726801194359599719942749338570762681932543041407379855145734120725034162015606233979737824633481216105854036732425932386498771701961250791540319464952905799420424280059576536448256407052136914245842386458226277325731976793635335280324006481799592554796414790030870297235075194323204332154463957129213119172178997070133582702299327369670198395546795674072214745967577351162928374220119618376181701709276660767719416693641881937138513573412685125226053154540705805510484715891744461330726570676757455902126611529719185650037939624102698504954004037614500753930813390943009391960770662966810665502018195063122983528149879887407834035156444413650918093214793064470749049995996886935760574624957581247902808189791726000788871020971235742364646835001637915986039981159913316499807233611468475814377548255047711503909144463505633457150228152524704169817401664409920795360744422249156147830635435728451775412750195255602692524711870188326573908459247741657727774834609263668410571145733764585858491415844570127063667450195002927884727975046968107160401250297020965812217663676119028926728035858645498806006692979635798520527520262529799545336786132551997296141931448896028301735432484216805626301608498935458015748451608729761447341458475390988564239330780491885318522733313455061061599956914728983151321600011692939403232453875073188994130498111258705012941035076400268391545145906222670558778246662512545954250165864821953491902834741027814874014096646833867147784163194381218917790608476464038679306643229791598020250971843231549664511440277451234622909074193767455601410515804970979111817046976291343478836396766309864961042726491938647710464877706709060643537471168575519862272416255157540821771910574420224487549570605657714864950828978146040807885110738485351100881979488180252451325509176955260931523857504072731133511081919308665210385623273614928838479537742760248411080434412386122090539628312871961300488775100859620189623401987094703859545906147248804438300527523835503205572337148830289711259684953074266732179813230782873787884886827862750855375629340699640047771267344848903204311909161920825386114992803161862407067231584507616745109509151937414759108301813641180287820536670730674978263122367318263680179437913287356724186130130128272310959128088918212336811880799393796246204324261951138154891399806039024770204880642519375445075420424585601830865423947523175440977324724295949597560416036825485371226868021340154569279959585392283123817202901879393317301340576930996231472958637951275953281462015690993096485984237863324140590169017841816922495898001521933770573163782717011483722028286055263885138822448531728206324810690751572442308236290266517962091012200346825223823503657622488851102149456996268577838627058932328661945801160696411197256634886145707768719124790026023204203503953518338098972894713268777564087706630477638671410925052174268437833278639757064251611425281494766341696157950870702789498734680351153382692555359361514123761762347196572860793327036309752633061999780991536365706040679923876920961489518323284644052040557355880031034912320694539818766372940069837048289121551493246712924259354314745376188856489259903214957131085877954421607492437639928758111830800233840336498693960191703054705198959133047900773889498517674079644994360667821383959681144634671423672538831326991653572631599759770813396009308198095668512201152315947079780230912288841563308618299755745009975793681464697279163120209193201290493528467214700049865215010958911458995545164542848339199652497583602111157263568142301428757728781995214707331791525445164555386942260905406377989569574126402490043571415354902774165385507670532812924734309969887623294028507886252298659870516048140097794751673141208168354935926353977916105310242754883669521649405379407118458637760533206568864289561886689751781649801294227339184031899010217389794828445896802637215293376070110927910224061034439357158292129038859681228032876195357755700826927854574808130217704234531201184806083103522488731597438316554759051897935172635421415404197917573800650508829567104375959326783428520549669517625841261242446601096919101697172655403169711641394332597863086379474412975548601727663582389344051757330837356772369219773829628177217294703874985765557962717020645330220768282288350613241354909240194674054846474909579996794616169918224222269596764137345285771949893807101937431721542637696555128662751894944818624567183521375951677378825724134964309795122563546611233916050665042092752018094236016780579188453733490562407612171610665090660705486687851957086264558522731388908081899397925505264341543583488542908930133094938127555791716464966398357735057469992390396118671585282399544798512248185826844905873042785730574451451504298432179651384209161702419050937999299612348734207659313375092673345207441418521980141870690904002482481531923750537883668277293833963300916046675396462851495822555079529022326495946666955332613584956654974076267970225468264639519157584475882332414990466091954470779722140056178583259697473670172937502713007648868855938923246917545793436458148907942444079459943259565509772754655904956596556296854902862929622064311370597625212700460070147108117802680901592695531751810148884795438824737618066039493022788589784245722836253859275802443155387749729804311072550102009430172438251603017231515700955846533134176031940017683207699143071920130333172012921062639700626203750799160661297670211933857372513481471260255385942770512379702747375453342549294194026890272228976111694924993782321179787855096885910165787276641448233135037505500712852743082855502538140186164439512914671835805792586546225712046281574050855901510079771371550606385140846043290208166896576249552781775371612216091926620175245958077635596731755224860165832543128369331678864622839187347524455241399018771336860088438084260658622401863031248049683794831293296784663879083444719321317621888944626286332988077612437607831363938272967853881263629759127202039737587214986955280220002348259545475517003426665276834853188936101640293537301912538919881799452861770621545955503646033174280382499626542207054638298389020150156352376876235630330953992760981477466894579819298327536376926247267672537265038052264753309938560778978781634307597504210995102375030936343891372147333689107529640172595446807416259438107611076649311181359218793370223101092711311004842403755152172307025360248123523620190420094391281283342364996905263733203232449739261949496918460050394044571216191175630913764737875422978509993388194856229873626952784150986183990349064086254771949861975774568223484904633233017449838357179463832708752753418302591139654715855390453409283866322518584496705884933859902274484606126447117797958185812419378062788954329426699291474132127505019449081630926706234619503124939133754123015413817758111311718469297716700129865522117146184121614015716524213716020988170496535927311219880613723365409467164696421572118683536792224958831191016483307732585869256282478712645452682033423984285510457739163662095971824595259033266781680189371369726876257257259687571898900220953455220668797226507923617893900378516027173303010595372503560766951818956448381753802514528675058194193155858326261923301964490637558742249286975566784357702948198430848323108602400331608683736184643148764646994492544449292692946146808196467125212340598488355143119916952102806695772027421382356653370745517535181485610989385584937125877555786310355582699377888552878570947541040658984001929993316133217542445844488581847738635824743851548542218533101479256860132945665475500861173711020159233554430592720161621196528123187098819799154557230418270695259051026513091503973561077702182161121808788552481498241864454000170724189932032390759828549244767002437845341844002735513189397483267230066921879312592510471277583788018250345711234352202722347331460157653571994883848525037792167712278213629573690338986698394466933580658294789566127992194838008852681326454404895142421002869798439288076292859842653519893864401745832737451962956310146769837852961269081818013474445652226024163565947554093363006780284988524079568968254507432798862577850456991535239186124905110805316636388988167548069437997875970362534923468946948243707202322814647159652765003248006372922758447034553527831448924339312829621193423582265069481522450841852819278384021470981187096347528692618795344241933282137326502973026991093986375253369126349588466109558213400730676731775083012226013134069738761420101618493102994437013119554425566483807126823075073209694273620862756657246359364704505251130332330402568821679884411176533201618603909098098634275421332951674731674730205943459908926856095626156409989235558469631660243965619487029556511665889342246042815273897980806734191180288486175335132562622238924597412864434258285569353701190876471247079897598668047599335962488208957504054463566074211249822469370804703019096362206223085904982119048780326669058423999487301117346290134874857808567198093528664495107735065681944783365266983664646087284552634846181215535528584954244146928192097657233485434694123591793864612562491916780480467060743688107190614154501557746415444914701501435083861737958493981423464615642974601099975989400291385920279624185420187096974813243681614765302781875673193612579313457014171469531605995239060924090048627335054549676178061480565856343732350673664960248675462372517149684077891597719542099440107420153325455132890670422269556493414894752680752292377269822694803162353765040720671548164443791616923981041275663258503047545970616704408063563237415377657049887172266018897596039296050054510675207836771151357562887260207462701916556095067902828900969039124949223502372063753367494066415448153723689214862959114554475347269585709236938260641152829224370462818869110813823390848709780362826123256535449298868692618985391898363544281973540552290600457236626624385561073653063824281975662904197128348465530120163090725022989863760652805249123005081685357428497396570087120145570769296746116134637275674861040006861291117356461479232196583949548461980269777246550485991361356217956781176848534491612490122335582661297761318953041735246949619256839568608282457512916935762782580255918880812455240051488019909708026065703752990433399515636694358526219033376048389098304144585253549228137999719763073680564820444017644050741182308340397388595660105921431025050666742690343108822796403463131272655111567232638041835429402032881784885124821315848122016523965262723337637957843757072598431529331123496807488609245502342533919135302390388122171648693166135417787627336979199369616737173853451947444327211154134854382304113838476902029328375171814011856962411655486483093310671566783551916427128108501483806973044765866558620813262631738032785557841408235928556113203005485996627336086043345942333435845786455418714800665460119413442138301872026565486492669665088863143527099775985397626183792966966986751495920369560823082639144541017948830892058490277476533294430783095999547402746345428476234971011651322196314660260617433892055945222021653572246184887540959660335573138481686630474240822523915865436581472878498484478237231652313994205964149748429746106064097414302737529962760163499163850876886913277347214786152608735334029875343063525778314475000121133207731041597695022711239863526642591468163075115199258298793019736444549590302265010732583018907386439031924541214188342754341339750635583776663986649040857829040871286979217292699085162788283015247779688320321786017234361378853770309188709033321854048325207680194847423643958660955191134970354669819518761973277483676568195222663217792007474009909595855019553198138334809517965555958809981293121128162331131310567508140308863628463394995456193210866223398783968988810934781106790568701386790394840088745244561266691266999205892626642647657807960829439522732112452308153709897426308057830794031635676482154575791672043710643811704703890393070140547510773070099488799265549033319666957822722093323975568488409687534183723410843227444788492391938659305199783444793898517890167800671249691515687998054989077801571165402699823532783740683538041255283729561493130753433338033820014923100419305823471378422804757488046249613296958679577745901408678646410942816057635960867965439297179393177236059310208477554075137275451177868478228298141039140575513292113904297668993204213384820361654283682768236872985337827277280253828462132053462068502090521389889083036645915300165165075516790812364177186659555082633835159650082778186655873189773119776948375384466011401664929244793632357566014657282373920782536655101919653901225336716395001195701039593649992620955201402934480394345704371070894633264504267669075124087032469251452307582901631505081241777290329846664530555692224970399511396267581078982975315489578213120433344724867545485427675319907283828723121749219065559648580736903012864679143641501374685995899606804284903452399498897009496300413909256271057120216738000138429391651163605549657218201664487547106657911722544703678549022044639275321039428337181499551775926718296280175620719088049466692437734730230173944775600234895036891836436735751922596142991272359785293750070062053660004119891988671805703207079293477467885129058512192793164544687620640267714810216983361241376305127403590461563805462552714270180693763616651506787159857991050185462388754650795382439717312328325963082259832838181774494795956675421732695194620786730101610398349096148442683841392185798029379553071836524759151501874865249474775692695784110846923973936105399364761235302334481772290178302326075284778773800736671291916945936201425963808011585042582227355727917875774303741437883630188873914715386325228072580818343814943134501815949177451826985708386839018689776161011177769156193940518346950762846204391753758556916468798356312945851253379920082712464819805552891531826788012535992688921129335890125000468884723985331416819486022856787074612064615673465309600511140782609563323321427947477808302229292322111293425318099743048680606503865619206089617005161281897883587911662855293301377082098241964344823637657604650039571291140737070458055900118528141846627545362453412126593260564715415013562050021316952139385112267059123990482020800630787180498331389395801114068793559823857551592726364116097422619195798550778956611887390107639836167379018693818789498579421273116092039056200508246181922419956311274368245685225648644835284236390931049635083395379703055103225166749221626573779596011664949513697760864563486955571885516229195047260608572211093046433196547790333644765192424776097084650655419052055511230537986118914935916072259073411816320499053841324246799987499044763565896638263710812598809486706225968945868252678568703428501216968700305853748569077379948713884835477303604411106127912512855765401857864356507130404938138457316408964180437412045326176402574563681208102256965922462629404783767392592176567494887252664301768179919213627618880976204805986434281154754020503389010146314614012255598889773531590352563270543793888614297926348293354962510585630871748294565184876579076425986524458475796327072071538084095540295860313314127547750853155230580596681926775136335987720254796711353853175840346280746625133132824706421283636455681427506584323237248496614537155027629903175665697161016175335798375749921304747341969897824125058373214159017714728613018508904337413702204632062177088386268710678337043794406831999258081441591825264386987223017815650424513822491595948430937690936879528821826003911350028139384912802252992885154824811511036197719675785792845310844184328191946159311569456879589850462153580434094720181111516388000411295479023984880059908825323041890022764546032663800620122344982823101371298579685134795751900883567558375571048913481803076234610570111795686998553958293548339994262511098964965602885231099437782221118809759547636327392236369409341353456696319911007128957888547919733766525194887254098275267319949879981529742023708389458784218302169997570683650106879355936259395030571939347029002225229389260464444397977986317371951079691238168490610318136804684107412535029897123135981057730947185120201858567810551295227917752329704257599412633332740503015636378899856519471881420328782963259688882295677051707236741706978464425558097743904329922593435804373957857359164148958690583650520214561035482551796115382334021852437158487273882953856635638562990457736397254492859953437527199514191207208676345713583508123413986113084423146398989976926400343875644106605516536158499505233663732101033151590601329858272850108800436409024509736938954302174118255210958950455981544205019923010254806081641818226172286646339335608990716035221706384614573105684190119823296319888875440828430435601103153411736525401343792643270673594792792011299288942661835770128482569415655702887626630714595312321882448795220722335544858892415120338095649981222215049339834072476084656014528215116489737983234439135315322308545000867325389532987308516934145255269380035171071714505053805009205349910782253356308994327164981552691198905396366102536874331238366992146656493959403843217075762768388963689432140237140632476581775417075244864842281594251767834639224465046085695424569545003078829274839787936422322330294556281544441589850968335767476350622614988495062733108786450031826857505821687936192684289939492301863747506875166371578411916506107705937876429526324099508051188810196021728605740708343893723631671458377827620237662681333755354327487005303705900096545414430495197496025154534563477792382985549101232401724197600560465412439299251306561297748513814313058642808647461993691475274202242945410110175608961132572253183746394350608428739548313644759906317023266076196706987269833292091218427855378428273892205588539600803697187485723630956767945810628412866804489683497892034406166682995791674006557064286040872362201301229737118369038412596115327414198747986350849278514230907039986451281075499213328633070058697914726783587230606233341700435300422957385322228840029172313289644137188094298545329156661049596807026869513319866461278321585633401271242723048839886330431456558004478707665500771982360599425738733346131609057497741429852774374915726897801144711164527106580504903356695572378853364337213789488255545378848300616469386868412436735174600195848319764620091814623871397993555355071948698299132171644159694359027866120192074436008579566982808473344396534324145629601757957880962555589034781809124083344008917979328550326314499888501845929539516373121459972775935778263368881915706480260532059821911081339588752750149317031077039938985837717770534097381130988904332422436086870092416564944246683283807185776106443593578428020509862566720943469152141916933654406074069257764442203127361320798643074312159741153538891524687985913758448208472315888785252989935957319530384609392599661473230421405995547986457788178557019549015910037367305307809941869999384039726025060212959036140356890238654387732325604533744775763793347097168410242878129988971932449800920460307478526545330211549486077325388091676957915444228783973836091496036236556531582968482874775438060707563522046719115525598436997646213705761768198528843223347495902204838641348487603421741617381113121046256935738366246636527439613312319023123720470067910012572962021126689178130953974636009462379472601050646207688218504740715445248001263918078055055338083260700264688853448755644183002248073813634722198871195238491877642859724294189461843103441612378719221422513818485079442513509254171548730912731390449191526831263757104496636708402283983465780387701849367761461466492553396503872441376601136277895147009659045287668398597803437262511422658985684745582577983612158379805067370889667154981167374120653049844458398680251560445120630612333139848116375271477688247300288143414095172235985698873935167251814893355517015658775860010425477871247216589731329076614382197555770776175219000348533234188975166500193595264925506586324859618989240237130356272735946185514351871955575508905824945392972212291627282002774397311100150714804083099719312282184447933546430872218285675985619802033916332308489976893267615966807846624032343203547655582634559369645346857248729848985240499542762754576525044541573976914298056318901901886257615217241939935149306264605829137743349715783143069908299600151473559426458416205753485531137401785920860286523833946295444172406781357988812927159401204774866224237563110839074324897277591610905668463843634945850361789560346049689005471560129097428224817744635676001087826027494745456438315317569525497510328034250729174961177665533167053199827266619156402387588360805121118339163366163419639372606589942299022753122999807990730285285982246073786623112866415356995290321749788753561331204680196840168798285045346815008141153954253661456525734356123582215492753098366111519341721709069657380587536237854488952779609175671623825370069791946239727395165800483441233257465876908458221198942720928438272837139224430235778354956094351706078641963219050951388376923435435599099581942651220161035597272690334420117325011204620836396565870167483674240745473872692954009907951732731840014267185018334536280546576256147143915593609382087422157987768433931508706039046246767262894582288269188464183652094908259969283827953298405457252553219053825705932337575242423768618011232746273148855096743116870003749338319502490927061292457631782900002123407694134437178490775507728965974470880479693142788438397552944999643205915945270231568259535863346619576499353834656750977728811359005558876026189770027969524362844057424380332328819340539961887794646553294922006575047143308656642742022823750508778623015113090062822568028492618938320890418589392490940775396530961377126091509558527259960599569538638837236805511294035277457932593807146832592465287593835254431051216917164357150071800627293585584566817753767270582582208730038014241670180200473758576178705602686566675107868396574922332980989515432318369993985187426992738187431788110610739573271690322364245105035086808891008435222597975731319637052313730578269591341974313401337304619798203754838648832490225483333944806965252273930425806784275458445052265614273456846220438348336649838727807644312456196160608088970353978107993818897465823718941159361349376067004621921094807597055288691565461404510899667926750943627705220875895312420670213042378627748378525806262013241736214168380841402748845733368275799088170568475017543578666424803331723143886936308074093529189905180549577126672003861183706118798768091950896730150030362500985003709481082939247778673360086152401179179564299656583248372133720483181743004393595473133926937507842966544428076153153839466261376797626402795306576879745437071421327766234490244661746612996301761285295253066222103789985426166521867248731521431897172024348708471589483116785010139962555606117701850697340300038851083989141984139237593063611618776454235126551496817242622893627400010300632230325584392736056549979645252702324834866094845336239831375686354475360269684811500053932298589923401376886804640670202248448223895197735210885340045690597140196156861825673639803332386256627318141136440764700287655675166951718474720978034369723344854159473736954726858544484232289024549706237325931909900890001634327935140704171390460696857610467443808014847017237150838773384164796593142282766288424020354079577074534510638709170778243619623211929533588637888996750506419665277220696967783987722405920691895172996941103095775076064363065704367997258540722135996761623972309743071111821478092404825460050018290595803337503554012040739546938240125011582173766043242914088069904822557337543470537431029189851673887475890171145089946449790749619187341812776915365765374243139972367040233435557963759321065172424668284514335903333527878926542967434578870456444333346817696951598015746681822521782182152604410013494532380983873021085236560437736450536661362613677605878901313360881307172997357751195035268515618664958648993733761013384091397616053274296399207334361523334098461823444839972629781500799951759710450522316956718815083096645330680603776992349127861939461505151580405925110941907341156726895619156947406095680000233052712783518089490550866964443465244959795637427516898192952850231681599119379691935702906217168982523021347098450513222533490237780930575576287715380153200071718503440155605584522987619030279023103643562125740980258662792961802630054222284070081175956361016288755870212372013504747517325070480626121308139326963793358579011779201755382026988859753459265599776400103211878021025235932417680913704853797412684058502773997269501589666075173815952427009183013510435254338328899745244699383691601737422202317930375630153154899145306054229080426981006170711981957738854718066364672569992271592319260386908756233331513713908797274128004728419187520317645120496491255974107126674711896914393127656482923924496895828147462165582760454204227926554982748513758812136672213363865677517493742490702588718777352937216151098515664251716695756708240562520701820730400370251011966663460354052004449058630664858082524802910571490068302697413520144817192168203882073256912878090075752439191677056999776582609906286689289924289413164531692035415459127910334540413498378526380723707152361623921292234439139838221534724701140944782971815499940755075872625092222367534739783877415440230156944856095509692282241352190521547711325785385365981779024606537069656006387333478472323805613736947012442809380430960925677535010731448467393308892692012684953773792381379244346890382248059739819662884601209321811186151581004021498966695507584587662211432207975522553766649531053834325527540112089288699609611576463531857848687820715757245081949849211130521855170679380079379957553246090947146768778078863520900686931642976610890541692997298118299542835334669609612794493324706542403697286185023518421681624293374771555868373014762162383960229872595522083418975790200861878706856662202511919556201744005994748084614048339226672440204389037638147308064578381366365036987143647858704651684255881772519040009053513958245944261595769750284939260080205813870539139607352400661426191506122678581880058875885001404701270498068970882267033440343590369822763491023371349760724168985291597342182821169471723511093803940163943949648849128295004672723878572855986491107466394213950724039642379859936161685897741029770649929243945833170892817334353174939512460696229730797202398329854772208609368877531417057006540457368749451226890139575951038374673321197701689645819699934795323662432641614323074656305946400314708021578704700904833257609662994255673232535376272018210522337103410480881476555437515354786768742589796125672595608340556748016528741269050967440832177182339650042779228745713517987752078210311747989554673468659382244318049648443805849265800491476835768782012439826168257708811135274727334692087223229857969201957023528072941798927572424269054132752460022415344054385671183142561314023051417886283213252046692270366050780717570396712539451764813641532626813269288829309096667742997000778412453200483695295252631984639899316885383912816041400088443043471067622578454156210140019025385942045700107814820173379909088548148871107934850597346834916558080603661262047501492243123841003019024259769107906030934023856908173736091512114090509707400879380216942317970189386313958046747288232671909065433867590822767908186423359065390105467763304794729729552600955570551471091718189951197660623175216252827453814469317962174559074185566235427869915937732452147993075303022777950057291020002791720182157418400911193505456029056248438346975292581675860870713701495194989875857910745267394100562504831419481690096878901058907733456987177954647309449237240418947614006595732000915129886369769273858486583444564169940761316673582010073511363460768580904649976752762631553024698581000806104414470093520211623071469380869152237364559728068159015862446668032005635223304287839322393209761327500372035473344186726388373686764083271960252484263010896411194597498617151095599957715823644769484106017766925827760152662602107830307732255941096503419259520852437885318278407535424383574081387222488956084368219785989322774607296763251606340912957771376311972967386527955798613359246423670557895555181668898500940000342042382117238592526063026691874347408776586484332895305929916580896898570409823673827755100911608945866615739108953027831841135566303472897131881586493032337946253526996465183705042376953643905994231175030162078218422843686561626541598507165423640047464206995909727480131330543598136247309982893331707971476019611623355279780901121893813782015127206091972542520076632340987593197179460455550239223451357559853742722546030822122105515874943033262159232843757179968388787084372218485920304329490102118624208221209955270527915447597917538727513571449530780661681124639472184037159616483519591530194827177966392888194955274204272750974567476521741142888399321197307494833762915363315631718388194236801162582598338587470621474638870139509040773282129191178139143605075223278337903438694806638245674389572068651262021643845698983864807178001489897426835403551415784505065758160440527559964437803866646001492071877107212514618532764695415716421933130624881830686557976955262259039816012310670463581538756058827129964045466478178244159877461989993371012257151335481598214608508912280258314948565095829368469289537037912406109257491982621233003967041179249358878383622295361131642670732649765945368952377286640831652841128099506918647017506452523301790639214226606116236716101374218090771681978219389489991216784552389781229492927009626059259622888719731436860602795358683239049394640730775357534323657301626111720226641847730093551489020351546437551194219743836619726391595270428957040244729010280987722260183711100938191615746631116342627990693322302937710516740240534691349212877015816690969670752015766127489213095839304511165795004090272288590194293844282312852921569569929565620276947959985467250415115530412251647133754028129595489827039536888758155699121521841097233648194875840183779648228019374261270266433593147025753940778674995381500794841730455120441856962823005456821563899338145027188862447271430896012282212160726958058791594275663629767535362172055297052414102551756046272886066607264696308157282327531737832295254454492984339858367248912476830877471398160899750354352718002472673780104679178247081616553014270846747202721678906272465277454277758322846709492848198142457465364097791185437304869807754961336386409116821728904744727194331991069001603450268411550382212171071257293248969017080344070073703207170625880178753314199956072410727283230006624622654903498065228410067582688797909283444633157497472860928141577267783792185899897580328635182210694691506099320505885402079900800846947701076421715993357378616908117992695971789156460116518624499738777359980374685574738840845660530041626154026072250987985484054974507033908384354296136835125925991305404924272141739393065629767130064071909289042620082799452457369096472871241470410256560814460178772396940841281054616286184292523852787396781908199855654659587900669598924678886893871771299859816579042647817911867753999214242648071183640080931315902926644594642541852799197018948160455751205534232674055211222826372025237858194423708594256491642345572319799330434184375827560175651284618394723770792881604240475157130470180886120774307797798604802331732826648287800298448744596703003364635657504878139570000619094357808102233505746766861703512945775261312043624528445184155209007106883114485955229437807675403375689754715238493341177242525376022239649461623805745442590902605629334591003649060970976948183369248707268132918541334969487941524709577315686325145513536457768257793920034157300794921519156652544364324521874557333938824913654284726786856675409122027051490353266742764844495483950924185366547847488640809289750070088815167498500771127895478121996588705440425121477245183373284972341027794959139247411194572392418663392052653828594675925954994795944506447736058315330395084245502597163259028459002274944806577108441183162867271749971030632078804639174522926557546998337245050483969160428193651061182679772189402689473889610711105342565021355708439132597111829808038000779194738183735997562272809782289192985547499678120897191706428120097209883574148501057876404424334652756595974634799125325742255657018855940256469541947365589728049323539419700150495244594654047586615305242908343172016423727118802671624313333140369059078125272072809844843139015391663599971774867403101997418521303283125567032709659694677886315944140509632335734728150213083113784355272965990321057902109063334280974442260105129835402297826909216380281711487255504647028209801283442878891399609077404296503112929633556419653875043046501906802344103812552688086966017569428968237481399289992918097447711811313138489246342864064306521630480212145513277138832927565240311787002743800602981482807338915084184540925086261583174666988649048827032004310216466839942098703280570382261018549554069831479256139745932314260278393259032804708974794331007743047015529180756607127351611786001835357509450615070693303710238898694452368298690492732042216648682541988573078842640674959718593223222489193473345919223634711976943095633382809026095536051184303187206198118405564598216510152222114229738579231759888260070800601611600428012188852261383569456762744216936856617436005038436813978842308143413862243776459711544357320467505142359053391551010780251770797114565207353910800538507628357221087709076744323389500913050035754870554332089095757187102994195655454664406912648902711003032177528922929015202778957459541562188909560628444675030674901546049789243627424972879179522262412958617000097976653379695849169568667445311272414399689451697384734243561543944889843246079632440040615646950037079799053139435785014098289940589390306216071947480188884988030884728759872092446064627121771335846973719374095789635392376972094759409791189753331340087950258344496772616177010214494892861504539187106702726435828372282079574109265285170852056338130302189497693452090103140175564488906790808817375852876781147682652299393227745474997240054788029240871635065260081959466384489889148430049675715258067787713845891877507251365591374456300195314739153217909449282775342725028119535510026208068494808804628715458519584808733578026846555854285658933060775121873800067074539057557676560603212891952094158473148461193750639058413366314564042045160308062967992856983935381800396596166669994656759408654963936296190554657514896229625390694582632391558785742277159371133939009133887841525148675904498375445259285976005071531467695261266117160113816689822195620772357867995118480606935314698020443415347534880327643073848976624536711375762374142959502874871945295055759376143897043069212613265346922849287440577418076475097560501188148999926263672675918367573863144660557105189589076487259868012066815926636040635161313441921372018305080174407800127051043083436174467042158591056679762183971061915341010684283024716885479531889338141163170579178159043948754390439086123375451047517124213125028907147478164187381631699650328905461576684636805756172141724234582121969297357383866313862114089576939451425324625176610683750120537582064742160958508831902472906085848828807066146934495088177006160730289106243413978683877332450188289848348198396801402176826305611115327538293424037229441286539530847447594520875266658391109990677950756280577317340964860678054211284392802785632622133059401347274958930489090151150672082358244918383551946557160668338868502969779752856710528841112431985194130467265868616548693679314082765697678941283226192096224002477252882999586720438385710110504016473908795306300193180614588679480822644427854205326438482665964190118061203529319856397807793982090893637501383066202731881158769782310130700861244353271423820595925550157732205638983316113454469898381114995706943384569140388084178727640003626921630467987117973869741325284065974970840314247987078852263833295950011035728744406210360586306475710068746731729766346976261565568697146563974359758290739379812779901298296662014146019099414369666042823354567101865561955522709375648780858382470524386953999099117039956797347730480948224547317374005125049616373489660863589936856577851376501706152261598186018146484507631767736558677859217458563449045114503978784919151312027763794755331220511741374789890521605448594284010382669564174966480516812682300581185648623491347630769384710344696789037491068726145908179691616231485320079409352462035915548724875618301098079282049417313427053594491004938081451237944968089533081073464894996410843764495247249220922258379322492465973166278844325049284875382277812083423612778627486979022602684084724263685460303627288109204805379315357591809297510226239769727677681154545931375090913250174752574079965013873849850899082414060589168383286567071184550259342330906074926937459863168220424623309691108903853793112408902066594246482437058504534033276932125725340525244611355109067970873680524945512484449238351335746418362916205977702209016916321872790485754725018320933509202368543621622264046249206175861465162165551779198758983127548315383886050653752349738540850527719544409114128803463239548363722634325932969068230767740865309072397209743974147491689018953602464219119670685600437638180594359764562483030610188889835528313906796605873843780060566234594935792372817132316381782691349607673142958351832296934835480030416932451383342418865999754944150155206491720241683698207920086769232127746324042826870241327133472902796072958337331552869326615281643195473214544844240992862005974753046020049915568001213548194799634432029302920760431410182450667322867363818742833925929429809528085282295059501191409365624709072974598632098190923589182158531956988606316804743392944371671175294263625245352188334687229470154518330692854389859321245186974605561318964955394549521155554962530752093617364207796476985791752424310392707522326214547112099314162737017272393144716808046792326775489098934821971232105858540048084011862854116127156596939469079108034901039196874273787351662629661981587075889825844108678757643548273972329490700445653385450324583641407684595850579194428024116600631223526257276878023536806667463888160785944813218684193040619206765270830171563634149095091810573522736271968642867832906434457639130508898638133031818566479182770353301358121543062516375759284347016401532288343621507882259483960758954322406784231040683144539174722095626760747983854053611620640261268424154814066121531064117648606339294738094848951833244880948222432273927671754829619090522746498708089384290529145317580011081909255283767459777202240271789546113785197232813801260420972867144462797907388279847209743229890142003678407217371892024080195797838818445586845011260015227167133466081143665517936962543935239002311317265432922835188135904888037123129417294423923318812838059446499130083677744859672984579469416974957711724316744555374151172948589884206804126665608236750857218472692757859764841067802837923557622492176165856836915493089768666438790494709874782016204943362860932733171964170105873961275418989368117125609810500836706249233477171691541312313181002531316814845830249939046295563933779922426438899803792854146506083726989573469439825966320889379717489401935226319165285800239699533846214622802986413406959949374447574163357588835856130723951335077011169830292272405808741772566260662504961065467652483034691826563678482589023932693758232359484895448841278605697402871976297245080749430422826860157666485766007365515704494974640231404044809925597544920938891203324587267951268463343881001217087841268512990761175696173782868263946645964551539533278135355446344615109250494394179876315816200144279759071331401136986559235932753927108403658595478398465622267371740193153983949965928385781237991139413486758180482621216781025257682114560629451516230886146577926529065557903012905360664232514344768890563666078803831482085604951451185363015010494209001070626136180698712637397389444411841353176554589707152512595262813435921328147940314049673900040888301717629492966016318043133617039143882478702855844432776737951456114890567859676059048692436527633449560127772380908724367320892120812354324152254884278597340856082606515385676167483681344811250474110499182160935750113599453910030618511193081092014672302180010907958482876482654967472709553255998416904210513684583749673838342966944413203333623486231638400445174561428669625829626774118532507488640240082293457297028555940906946003225314516386691967617793992223212076667315744960262813853337462937663840714154110652883838408515361762375126749321746738934234708464196214406384409758861107815815248065333491994513631514861673239763570811494880548043814123245284926739174167847184831586089622326766319402209636934455250128213551386364070155969935513190659365268550052606770620316854904746850407743230931811545299106582092789697591421171675458882232769677773730976220214370119917787758800749727970861089518452182722528185013320512693995922512009552810723300537450527458511363217020761020084151966534067675142258343867841271522787705321023402882348294019825262290060068570382091710829030857924096312345277694866823876633207903341393054309044107561357901569903091624821337207027913841434225804070392058503918859801858256588263812474181199752708060162049316585071827870258648862747170710970390869033631207418937515599809016288904896705673258952366875527935330902817700248559148301906213446283606932682352826905483811793741192318538076036187260138127170456811267961622212799948558319539407216677979312159989118320289298115684478686176206082191304257384288479703527883732217419923271700477659877236645846656076301020518253421968236802726066231544523125736313305644708227966404038937425359033774734001318281061382755755020790639160437964172056247437051031330611807700805593908895392099108583775372880939219403923989830114094748646165618591460140507349820328852012097257233206919401472846882517493282143155006836329302907705009018595199409584684736130609829313879596227109788107522451232605075985223067800939822533348931400000626915217762007218932232761901944293013461770563256222558082856454107645441549423454315526870653644881617604015406788941516773483087487250328820558412787020311017732648445438705135071740789823900480826321648402367498781572712189234946944173372136315471061293061515027774174021830132118017610749383053946350770833241110250121034176735624238874203367858521204884834512024736244981234640179121349099864556282038949533067279681738057357056959184789669934482678101280499993817870489178284788017087549521079017787388646102143051182215077055002249556677077471372036993418219194506593343233160133566936931186059074713631581130751735728468651349478787970549248673839764025395296458123746233555235359717584435760428910110309200288585649704612092803823062656238882529829809530954333746748865887637363480469244732554264875059504082976707988166476962537914077357663775282485572768823124243208498092961970320249983638732509761966927248269259472060098452271764072688653247773983719598435727652335945094992000964928377142207428135317291930621546299383180055666089973029256577850353791668931040834750081002080874802557224159301998773928775917819473978945048659961956031129483313788646388633597438813855999264088274670528017674443985091403067140259850023566444862377288911514506581403560163509525234676018444441622133944438120477315339356100016887759763860444682580131843545826701755429738526480562454013470670253753145017933840094562658412380363543493733010456001957103070287771099202958594582895940368628077715972394430829325382796163088103704148241935613588009848553796260630693338716348981224281264736350262151835580626704592638314356710140332144233820172495162832951416350961521856382499612915842383882751061289342635554750926178578826165016740333148884257613562123244224770761121419184515131637226509561733384730702776890105361919451230582359328078350124425877529363981730188086787980442246053674862946302912106815874549427146654104245167661129211206571587181149253774913585774591247880509888345110916987808165636836510270772266776073717311061689947285556923120157008540349305013098389048879717910807287992556490964370205516916763433371309371395523669371950018276583459546919358307355230654947799717602450331624016379387952387369298154647247857438150900200417514562412893567511847001431872419360803597474033956593002387305528580982137185082202455250870760958224705731706776586023662004389413175569340845946245420131359645035983836669193741886474696219554988790093887527001734586883634695490817853058109573624147990372852562391648798740582882830152512818042145622024620741216428884098960057568787701203506542581649586339401077566363095590070322174833615683616653022582521056150158611548322775944452823785010231522560591068759621214777079112194041698930192795835217600573673812201095611712530539843187518798639458078826581840532244701157504460040644248735369281406196682988888230750990210738661650519502283852667932119383954402823239085500005446924106035905236426495254271464066256462479247927008801818860574001514642765540619830520724277115804057128507907665890603268352271161762677267459324671959055031978570986149116906540436461153822140667968430135300976781084990679885198309561293342301844185865501540562110357182882198311744642375814095578152428293017448591691021061614288440602914425485877989682759241191190907800883042089594626773396351444666601861603021291437450018115766421068229959793841042568251476798618269673194752657797689643471376448162463508944766816673708547418540109364406115848463576581501050576989678606312009609641555345598390666645880401426350341556797707092359525922712025817854209430554816804228346226924587545771332485487083488801957878808082083274636040595616998727649032916106103484996154956092228996413398487807050579341987631861545623481859644902772688125508345644896738815195118259957400051388660503306747152035632340345643816274606921762593960683647889775995240057137887878293702912066402732625886964616950767162331888637638691736509295525572301457837501946302303070288906166657508539600946411005258563628845623246791023724239738139039818368684683461995922692699263050253886806505750874539432760557522008338226587535131383786132810172572296490854370940256788768097356054104164656294829147444678132130580882551162164810094669975891989979029227005800862660898873354956909520485363140391589551525791376123167820399311393453202815003417396037012760190292513952382115067967003329370482611106892126478837658775078012664267667677602811307738991013910693603927473056216292250824270610440406621377069478171530086720174224580817704826079865247431817661529073601246002729805622680646043455777489327350198142837871098197372238259143242974700405060475045107359134154208478703047424079884865542812094806076795889170986041651164028230212162563346986316856408609090156299424917446629686074596965687983812804538600691647013275181795907300106198700586725784714206749577926001227501172450805250676539721200475581245570993299472393007413918676622488053309797910419055028751536923743671509590638296242421931958747381197574535095765005568841712889702007303665516477335601735633959188752035676487797418629789380572506869701702772962812667132744937056920687277285900915516757233921412211004121126407537160708136770140457265032772690176701604908945966189608497773183128769686164655546563667013020582812443221168097139807529314238600206840012973669015011655950106410218333277800407498567341346901880645695349975046479933488829033557299172508103293851605997225723064855667832804283949206358455789730824634222021816459180767947504286539295540933528485550982409480086923910448466801264766508773674310587154483853021753476766610629625110556361981217371506897882269843338683867884074106120261758888259122433140997723388037721262807762812576797502836248552746844623433801901870756426907986353192518081988390804433057576105582114049620417347477649474614569083485326300169334274051373516064415898696146212780036263201239050384953394287510323939437741824262129341927165624116530651276196460243742703403144238630440490879723357396970088685608688882071676165108608371984580001788403972972573933059336996333927901374340572784883948354164429044021730681431584576812869631467485011165270620636724593926981236501599474387292340209418295174842870034110323723073497647665386848088861983999301803184601087704745714813305393006736244167724438575490515301849683244241242146091147442682232397563961520417202141930208949245718617188343384236764028384581451438164745528510675441764290087142086124984263572105314037525847285362517273893851300688066417014579854361991829777740398420172853010638107066670529090745240252321840036541875086666812021201066984900279486372942327999589212575410448511465274343828555454059259370792391280205252153377522403127070007502679263584893668110342118888890705725448990682245980535736388001909313596933985758250364945596863447136884412142706960034741491685785303387048278478309894889235899968033925741643998644629421817556650684854978574324560934517626038186783682976377329967093285444588281157120983197339306307373709177782363158934784019915956611590822419491502095284428316207733775168478646876141017911503125352470480402746041519262852736060626328565683716915321486185525692466397009768490051181980813013671575572655605176982577999377154214311484984786349155661598976507149364870916698878110337349979986469235541318942072619630007750592658132501053133974257050983076745067318562040668602037184033032825493455436318630656193787594202281798688784753312341386763083885196805586769999127897585658515273588650766783965002094130558857321276862790378628326876797296993236964396727616763352344577356869789194766269078515098650988950334306733921859221461837172025740353817150798530482882231063887735033853446284378392395437227949427757603059123326658476266511262640780919858080844367719592435168593390879466923597565860006567642813497794478523140702844069189955898396640741959169204538342223071028064983341857071861712043354001813937727894535980668283102907954723175511393670064546228113673752629340807332341027796516566784648776416363414799037838154336373981905610607311442968251900922481075341658533224156301995610241319117051529337720162107447935216800799418045829098552455424376485439998360508152145028619604853284288161172099654057724740794013595626717636666077880428158032700053520604232026569980471568837454355393336306646893073689827843641583863951904875812206003141964321274360840274229849959149273088515740578833789856032052451176937384763473114120844836168993717744585583496841654466932609069398292240614100811198257143502261314614868754500471804480608879684385019830729621563025332235352435123982689816056820775547692917029463447324682059129379153858408611546533433352146099379993775513546965376529014872453588151468480883329637188388053084700004278151666389036872966523230067662428072356111021677803892318709926057033872821318465353246191959832665077093155780103329405704048886223384420917299360507390407530831029152945453806996838062358173484594944599325899046692030546992703662048482495415458900911773008922547711595700351392922131657040670893637671766783378884155711727520612335833265978574983948739250087650566521630207105488338961211427003645752313075975922020354801915327024633443950895815533714119362475146064426631677822483390937045324716900622621956522627513027995178251991827839968754666373311584628588310743659544729504725679130520443630272673085991132149798191074941948876551262041424523104113090574850985647913588253928942249371286626092836371988737248018875834399084582857470733313049971697446019800922713215728372432796936617296446170516739797234648495743207575908115997448469053313493500594841819072604882543574128634705159327624190893567626510889170080298676721733866858958383098758231450797054175248124027627067495271618061549749311181349177650593371171888803159544066809234010948619479611416494797214969192237198232983480054185866397169651676450621660137828519968617935999946180119551296147535122515039149784869033682046888385217494288180404299840447662544914370034205982396488838440681166578640437195671269187568098413098980827250239147361179161640762063857116547769631989372076187652578394487940475398474224896573484839160451538218265373797292842430643350429247712916697914755523888832105248319205219501292166899455926843596218117459260575799260845849881122834094028064448926578073432782125911439734254476725924870235563110559652837291138136523913652887213734892442248069122164994007742366475104904841553650431776462429719698615320140672697325982747491413383367250803719896877384865631664091060531289628365194083297142649772610966305741465534720295872165322557988949610930929005185077000844311675391218029246635747787666683977991511661222371920785625276607537249358520467534876122129699374477486304201037224880207460721337800826343682280060321094348864220011271913636168430101508099258982008757820671273092804451051995407996521518931052281455541420827542939360822079339307303504721800427129156827833862589830320900249002249917883001847177207379963131928902821633712106909212953701886490782855967178884297210058515711043364111000092600099414913396047757219073278610788818692233333219910041520877237700482343146519981077623418261420032546721484011720118305596250905160219626892740871888667131055133240742313566707556654910201600232749531850335140174233156717917822823697016624941995439265264213282267325474420237009445896124783425852087318723359302806309600605276411749205985754939303793572309589903979023098809039514102301410803540578506978582888429109097844961681829908880684317132037888900196769712357205925364637749833048021991632999890386228924459257975870367198517534344638400793901431935021997182938621429567776261735233662752349824663143286167729356294490709699273753775874370802241697494855870971945889611210459400710663107648330824662454988598779582112328550081882200003974124194043160462021528809393827714479796497183095003599699039157685710218274001625787204943161448107255234773149244892162746721822111047857481374935447684014902529558082223156540062490713391770540110347224298433917190972180358790292429788530912670740404059697235901059594097893831960904574328095952990627212189714922068550637842801827896787831759125340861343555516361280675838553793419249382072463924154327023427055864919364095971641714089603574352032357533387839192265120683435881865536648875286018514778327943351434027446192438044835953767818646312659319273574239631482487222271536031636272306816093468631686835198702915711654404924105311442129002213046588254350659525146543101966998334781976589803399427311929761003839092603635705231387989032657550752024488422887571031809416052549863877391947713649433621872688593396372830443726025051353107823839390025304155806418387029687733690845442749494102366816039361911862287169956829456624780180806846736410816265635880199845845825169796223388105891970694589153906583264271772632823132639678142443469072053240202001066796443151892023071614009697593956196318656472432632153377227218844174268007190333028908580110521260127348916326109886472492654106713761519106134643227969982584750864966744283981708965724121699152601730050676130428475060300012271595188315713343443101504147028423234167076210588517974022327453351737185272131996013579775150393564978419820321038448540248148839304842448655596205696298034806327930833520895599189131982877070761630906295409296140598332943084391228407075274808830394939325796886927214163830231259228736853516698686647056509295464492080544856176555531919951215481240581714484712107910379103114197912332958694039122455738241957000354932187070430219720132365746365082852649986688466845809887070144920231311796659566076738290309882320182767962155259855742871640740377826350988388064839743811998431648596674378316114516704221249576765732049015846337150505868222817460632959140437969365516290348668615088740967736034269820440981774457830932037604816815776107405365089972658075131298156573911357498991246799074186902453136100397402728039511940833055579755054894935093993329172637517683361818182295839657192684024508144374898592177551998405165402702420714552091073604078295170218682913879787452395750517340464117916521108812988246586871675488667027232881552594688963342762689409486055441827375689147564266096250057063975034722600088936588085773608673947886810139716220468678949200186955172677445570636595430063332694460671436133937408877917983648955881094963582876691607530496950719415514317231402661353700559123713016527996086783578117697294008483922523301246175615073917350519447126198001792469105939616513506817075066864978714992095338614073477436432264744520551415191308010902208352440224907348148019872853631503294062093600895796106442878201907524686810001312054902062946482771854054220862314741139662977640179115162146674164967329780322645434563280893384548027564343501688089839011861206171837433346040359936547460916257225524538310743323232986829281688279400959510585248897516713701496783131154787691187431838404524387131721731325907554001541922087422970718951137002978136021720076809602665508591392855508178442711494614196946698978144332292615691437587066012874889325679269224400608482353351249806927790773052153560523291384993196093132822530941190878181126299726831969450953242603510748102890762877259972866903605227224702990671785242836093034260586740473949499890774952992892048003664396900201110298411738511427411111575445934089232479431696837163169637400262640507207184689309171260405583513952647379228387234978976506103542624218555316237919366694074909012482255022674640460387031397589970851460182156304878741341679838966457507484654920468200564261543326745380742875576581698871512230167039985278666492769902023752214991477259024855637768144564673336900650324889522388417419387348656119773781741122539736534199709603698576882053247798264045163715696318054206513687493293921821750228410423576391538720580701772450396966641663549787119293350345719414811031523630819860205795136677531457407780443484334785922410811705195982515239533486797847539581613672270251566690091376182171718491031265081937360655655779166102200527282948115489103128123887337078961177161457702371410980624755831491839044621451746612366401991105429727324262359405242963433499004412917643950594776946993259746230579245828834622453963427699684464271344283387945555038935074014500345508390770243301784736687475375638108629043700264064728086115682508349275129989141173012676932214066835016965106976364568706782693588013345053381968357682641136882058014529451745461429917275752895901254514065879121002214958996932502295902961272587440140091419635069952919626645358444730876895281517441038810846104824470502345117682326490994269734026581390467867579969484432141702911297100918359241080924726621445909430344432756156856277912560897794289485706218758089263229734551532214940985303492603758915961264968787153508702958999918993340796747131974552353428408596724040840808827500265159433078720931797742577636753852161801868060572491728898020806435271511766794306896834490289380373458185600341967383864347740594450597749841452147265260733851520985145250320074515563366303573593679936822476353045036006927865463765550436161655745230018808913562859163054644158059977149751725719751033011406327251979774584786691922459572628814162071526415479427015210725401392860270652128145622351150565803933698260250320736161081777291246864376751019769654745743263342112569841510526007681335546230159493996947926921860817642668528901311755855842428071498466696284140931434692634339469300963517046939749210727200471371819920229424445256750928272143466989253537426313474264554505597139096613634126959829892304972275981874599233523693408617228602251711591546712922528567657812302979632501815754905483826279376958084401715956896912248059555698381131198956851075827433697581746061012397322393627960212975800520414373431993150454369996291927952672318967414460062533297655370989781940952090807624794059720217765345978742344658928678357476355775546010387996521685313467661026201719045853178674592033724945390565966744603292779603472590631466993471275135548180718769323360086878932096086261213056759667398984049645573320762151112516183457926630081304498888760772555122217359383358950771313366028507560717437293675344307559926974330834424638478814521020049367936862447526993642823700093332884404421925511633596292394622507882026949120759673099450076014317551459134100868934715612414153343223830648104782871481774587796699119838187909584505077720405668649569631821451207268965018129765510609311656321203475747423901205364448193525884232334424617582559765592878033564565170191264371282622017932604282977435526815626101289131344486466740729722613944451696276806208137716661051483823850428077987905246461797691703720586606658574722014338105077782884563683999297923353344782713387124069565215802921748577951326319185982445302591253135529269267361435759464353207661313457295073884720870949077433848117078156643787713591081749658657369366103399424483708311272146289781901667560121678852987488187426874875515678412796347944070219658103257093638747620845704447255750812326466795577860116488790630215339419244896492464777378333442348376021430259434823383895160489901806961469515775403368435992616379772072195248788629661824471411020731765866984766390873493032255618484782143678720156313919894411133625856999369529870355566565211321114870543875386363090818791588801267548475550473750460942299047917889011823550442444859920680912650535848423502984893183691848637357469639124194090261505116037412294404899812009412519124931982716742625070474719111284597586120527167014179794534251756087106216784009453350873687181211827103067024193788095110839158510282109032087071662242728401528135309740674946348592480852629187086166785302293292443223031573025875949906597773681820198886102145556867308065208498088744957771797524641614847413201313742522388513075556234199902443785087416515510667280501740026253929565951267419254788869904267488897274828631000120128667758765173968682108700679152705254601918745223786949286591242151693975825875917487088170842975342710379469809512479354319668538266518042133486580819161578649838618429087234984500498330929393675923920993110846446609330042187871560639835585565576886906184738169826407101614051931180532491970503269891604771950654193183631318393653330507603910824572804155669869619382362425227098892759959085041693754596328318002039886136364724404534792169060464734061238365266785464434949458038952689790241445489054308830037666199531527825723061063445679324338043979110627951871917515544324575244082830137149081614412009618972082664574045443313386556974563460501235374053108125342254294215984402248163041163667628111400092271202092497026100996768652274607650721244769008053715474233147823006000962244827110535791732169339166157885867054711016247414837999511017872112190546359892059683900493465875362743884666861882038461253606046455692489850270953075247882614441342792846665116691060227622047054811015371557928139672772519257778977378201015253673786970517889540049025902126793424227508805365111592391958098403650511423066886895114925589365516746525366908669897200959388202649752961524615785480191483642819787287150291034158840263362909889906246176212331010069290000090092172840999212751782523731719183402802082675379667257874961029855229941309923303065489439563565052792613177486588259570591172456606303747746330238704073654266117295751361826872643683281960324770198760581991476041376360649684004425263291559298931342595442300364799605206375389287787351232610296576612192159977979541943036082232180958609329472974577561036037390396837361450001142120984592668932070588789754431453757828494537276291157478903114582159693874881364589550892271688546551276401937451416823083036654544004996580229871851738386914603633682157223327162577209177815034197108550556661820565407954560599396506035753263674412745143010397154623834095057685935860295566006917388044694248334137488368879027054102891844837698469728625494250740466184706616931872844287075451767977987719871674518704444859823129199704352533297141772049827301112740495832248527046386837144653353425056275151745002883854878251539534696476881197991827330332623714002608440305890817971060876624519640961550507655679405511013982882780782217851866709451715272609853368923062620077839068489817982323082096953927220317310416045883550822959279512425657060938494897884532688760231792011190141716514594951790616160632669187377058116951961148553133731951817362918451335802881759436466622634034478592868181159121001974656862102276896223991280874608276411395584907450783662812354419201552884832058552557496709100215760254864472933960524889846786485879335509529703092015020425669598706859801487774957901972954819656772727208709373478309287872622362602664963346974064470169612300317881586725262307711142125374831068308110314456684676193544280538161102307598460617163582371846414021867800950347694095097403909596552681080351927366878869558486609718093015447775091329138236813508483841495059252450692642348981546821896643393746442959814782230841495221879757858604744027962834659885780230529912318935149337375914105221629105173041628366452293822069286183376359352083013260715931473795334184416427798989339457702287773581375393532878294547624528484374369163692883307571309318070906987881530611996263209271725182388567008814496113511185493725716071039554065548625405893205663698917391801707740372569901264715596453223268277598957187075327328644928733815576800138070635531037955354622893600844362470009374336626159692492464019400251875650498567683820152777693821649995838536706005774005107494403854570473771647436808049494583333881113497922122515256791452143226387829792805734589089037090558205851162415232097626307475444314558793587686251249154124776399202619097490118709147889983633357722664573809013439260044984926736686235257172011874949775177186008897906933523636758449390093061481905697892804682765749850235686129933466485566473518901266392008598185687619726486773952357208484273583225119345051689867710052497123278086921869076171017695239922356891530991832951495556615846367197806683139788779820983427644332032451453630111980792786475717783555073255475639403485573314706104717377078249951706437913786691472265721472372697191175247540512378624408236509009963644960113642833328523414472922423992537465308767845294763675182931897459069234412311796950987981091099799214171942823063013559433664676717275487470232305472290189851988552582964899191779700473688305373627557054534231317387315991406612623703011955787573412794164736007198757326464195310007191356891349953979267224116622003082869247555574634251740466258872868906292122605960023081992832281686414898486562229672275173181109843395752076413060894695473111852141685914110323380206308939461879332583789330169795341766676165538665820517519457145727401111140323605060572172326902679164027798665292425669252117276964378797574882258052065937189238870808572386074099311784913980245913276663598023262187695174800828929400776981147068644772900622638586390020211570560360688301606628250690492265471360491899733009565588098022066516965215319226100772224100908515979539773400190063738816733960673576305867801428917982762792402501671872060153564639689725941898118467703335945710421570991527964593616609900290773759558655323121314661893911740054922797348263205604272732976293802459288627092960597213426649597292435179154313968150602645818727722270475208969478736547746726708960776161756294229935784673888933257658376282745957652013885930760363322641222764193045859572426393729555224701078522177720342494510749812903656879249850269964595698497060582444352106033311992917872835807182665201744912698181296368600289103391623147395606767036733331727941068344090406523375327477917626964693823255093636035128772086478387781303987643911772216790980093968973012557458073522582576965547640448252873783126423278859427467595203863531063759877608500102156340322101146226398507388352058595281612424703204187542836316629602553522375914310334259034328970762717224206047198848940898530897166410294099544402054060410236427744133625159945450379585017297724977968453867202375460094756414449180682519547113468393309216538326040756052957929224748230350566827608544098510591262610553460659211009801751802919953221960290887201636379516289487585292892803840517171220705963988144470976240976506677807048257965371328230043741457562242040722236705501204174488745994062679643897289178962710425181556662554807798798616090599845675689965726694779598515340831078384511664713665735396688565068928309577760421265481795659634682935372182202731904710296253482914171491197201520768935966793526540145222507875049022116503912691610419200065939485919142229139997211458625518616537017440571197224072443265219041554378085514809661181751599294707185038979211174973968198169377248956749212551635231278168080748379712946408942309307959207673148200508798432213942677703758368440731998788553195014812615067186087462994549569815994586712841295843488110741691683793340184448640830678704188923172977208114488209646597300711258596336945600984147085660207417101493441843145670965944105754417566484110531404471087901081551463123233692422562790762693072927761866209124481956008073010085772779231331225519117252096960926982602428226547088768314131305461864231275265337981266818951045265122662140927960041746317121339579694356708828747891494745192146339161241931806689897165809800148277965942712080184403874816826293692806474833967904661734358151280512371598629079056748416917821610250161151541009639872969152134495933978192244671884053750014756065280945310211583920044672245869793498202468701010374367402464738762322921730471043690583908311125251019991480119444544528689845965435387476966616763345843455807999315690546248025060033726672106575030853311195685429882907815133885917088218038284300842252272209107180961069110230858229380739027220128241868438154545360312849989559032098660794235014412665935669387064865569340397965874684532910574527950246103695609882714098946683454619391920437457752144339186899638965063295490650615954411791437515013517090662056716655397665420426101139139395440709918210545646013641023706277056173517004254294801555346752490125161038195084065127804167704446047234509576637513134520600951231189388231059840623640648306860643521281822250127472024859487107647071075789126632439113108965360010590876429948301662704541075756212709110647804717884914213498767759259242488966799323699579309115184270864865790681860698752278123361601475708098594046683605775037765658832214008948831546104580802202490738486691451059407876981562517810536816141903720628157155471241944989205161296496738211401924703101970971806518923410682434060160629686470543076978763679841600032365535400033647111526666922515202369576142439379898249488325002705074897572783527909016007817120898621065125590743660018586388601864987868423667857183082870633786081123108804622856607509855341729361809069100280293501990565398691441801588849049858390404219033106892098820298946135960302452289473947592595487417789789313571703672170334293736738332453382197836763085918053070887386097551303195564971888374504601132336884816307738561445231394453346282726542519945754544767583635336133472140104049465824229805149552802776566202539792819387159351206796949288218413296716424129531930260852775789496612810696370439287913934995406497307410145220604556572541069834881556859287104665805793244790841092807395786261987961354935680934327124726644887711278137964097810029042831469597356711884440664462271416898559651924976598432330721792295728490690496908932480133418464107720147229167978536259157705597925120834614876573375638232362250421182756595411487768841842981005648343114631756646218997253821211326737086468549865611806852807763103901366174324575609096977735428504520850437489430791069676847032882376946740834731862899605150905002284553220418328803427523344849254239451898784754312658934308317548697976700411659087808465557185891460032752642037770935479848600949186312246073629937219059327985620603594464324619149416500138828209167867836763146588151511671356143513274908877714954768903982898821161053074458574101082363539657085316631308580774698393385939567181123679849802794193829586340328217798881790138565295701747596104538747927706796104351033924615295151071067904710688072073467217793252914816137240583640571186957299397927011928692690339258459642128914907514915319221339982385815230661149093799442940243444896695673114433454418413434755891832309558978177555208715048164828680727203832722725061374602485176498234649427454293912783021112335344072344301044468582498399364749906376091639613501124140693371150434644995633071286944152857222792779590224500300376717980948612106579163372289614279957535519074522860189182424399725795681622785260704327315179207967652886935785115297406497833897103876904799212427358459226056610021662034801354167381119378944710150649461825398359120309548189524336887362198340439559939364651959545601976811221293751260681734271028660620029356452657959776386982071639135683440566414244319699453801181450030881075766245550729585261703103746785291517343675461482354764601746631251649759623059656708618347901927474755540205092223177697555267587412849444744657918002055749935221161322104196078382017221183062998894944000946552595971100854814325182013665194094129073526827575034954382731046995445708651749843930672803613500315524597918050829181264701335911644299778181146088190262870375779777991748262190735983573210479126913023775782952921027228133013424713882275377664834611397866701440713803869512168130750612636664214989318443160333037825577115237135549290531847704508367046564903997940872556624018945231771802401620832865823226363376053211583083555769506079786537980898495207062980027662209189471721984182200196571059435668525299156335515212218591461548325570886144315563773447863966234825725541773512157861668364896360434559100366642197004270379274345151286989980303127337249977959415522423229840720108851162847608530295618538697192010084183967097130650778299321950811389337508689052017825129507702290167804672888052419263505936804791126343237696011146974362774447404911311057926181347399591982560640339724366803612640996815565874239806844832491407954619321557903614538184751658005077571132922903475387325225392787211060771581054005459117587886905495072008954600885948043813861586329558104922246033848193039305375307933940360142883783545433804750348525812036439644706261714539033074506015969572201272226672710651461527154241188298141320554009997335094095937678834092016740271668301774320101606371732151410475653549432362456811303546726674549474954676204436296955682357176048080905076979142230182051743478211395449796200318211927044321734574096444292554608186301170778542710084911569111202475343702830568991533681968701782957467075279129035129999897173680998789914235289728770101189429810559835214140972590331625820740995770877773491333258513451993054783689165495605624537080913013728343403877329291324183964137664873502334990498633968671798049454585011798827492273489206974361667118928828672208311948997835148565707351493497045307921472564938754755471075824201248978645153083832367007611744620030194631123030838926543758307680055946530783275399745448138663159562995351097333171322283854804386696623122310098454196940223102667648098151669469200919584418297708241842474781615060403964658963305796899776056185264461606673159317788701381307968773976311110196614462111555854450378299629433061187473582720116942892848328690755925949121347876973604632900259826798204031761015651946968626261129692863403087662028887448157853213447333933319713063572782213543337589320350196097682458696133203914592642545219630591566581645318623401256233928248910859256584988781811833320422071618591400661375865229102261638977751611828504994769064492400930444995423673776341280415933859622554221445966024231710265945388356251332481551945920335055725084817617783495592270395455518232236335080622038724505300257245008166089390913470195225550881860742060594969260642132646447286392720058284134180790786502406772684699935209959366571663807882575422236387198003742651993813278916936554141652363729545532843030245687387944566486808871637137553381478895667237658695042623538014925413940001475471649508421938797537803629573787123856910627316502747657896416933991112504559818630732852057995589568753804420389772547612047484022882122857270262351237094245977075564488622526466207179610270989938194492807401091392239441225605807142486894976044296514005365551177815033430857345141282558661706439162254828460666233429335665124439025671592993788056140135104857213430344103552361079288706163416857277734966322565473239780495809877759624469374277008747431097541178492069564419379636910631124158234515940790378924789375331370718823948144946098643430914278494276062471363810800146628814380597160771148034874743801515912759215012565465630939837017930719714790408233995774310518084660057383461249267509625631056252467563972622825407548413563546155168203796844153832274046753482353644025375203401952271557118770242075189961430409679163852442897193552519113290518101255966609463173560616920464237064393224485051532905842698451681612574517737940623352543634714442551830693932327668868243189111862089453192520126134299074886669048462812338774319192128551553099195334289737274526153997962352872765152328920580678814894641123657842896080140897205596927445299711958575639656658205765959298829689308759083945002266414744838347044103383374774351869378105652267430638154101129461347473435511083782156910563167450157854097336082478603417767652703534422267899665263838213507983061797639562913532204589884186852453077776864631817171492952831946852776840404153646345391558804578486744268675052622727775192228944646081151993148354211609053960608545103467727093778505847384196115994805391641196750718621107898636109738956927289775699545966002406838043186720439519197898790631058166586671576436234174233860478359210328996307862578306678241540966532562807813557338295661462730989899748354281164734060951144463192451496404508690326406213158234146883276933592162718113572080005194725759397768468067594375019732576567764827010180034315210469191782002054461358335938456927758669248224643784893694015520518643297703558478421688407001579223126992608098001420570429399752854105895874066514744077558098679988143381566011681932672803915250394296064113575599163908235764863543800817478998294904993721746886430959535310619087504038851480843647754025051231473001158706893042434615407683456909723195148176766569712678678243196317522617371893491146035464716500954137461520623321317895887674112434540131949026204614589266881522522952640345997942109408153420044098536777466878646556913542672100155074854919167532972567272938079705717266583435986893446782641862195565737394480300930437814765702010841957014538884104547703686754855136959392344827567638240283940208940871115607945298082599489741468232030803340868597835578249047334779256557697379515882010470732491051056230504807685645162045436981838215646753900062486277177490777153433519583786355357975102216128877924191231799456547210513074728856749290496345685691370965721638141097854424654534228427321737082997865420446579628044010141203107033316358651830848754606935789197481160791618823282400784623791327696625505753284439872016591378288634617226265267597619838685501236506043875725674632193789620362710795739708254656948439781213411220891534589552153174420738036673933510729078822975014561240809695935085107008826100687775594927244222251685779655965220075249474403326592899714306660586156373605776774066326361914056241969019356229015495451732766742765382014456907405078885647222838261373337141710249001038499361930168789777349945315801597111786123332481529006956174926500608151702157245658927009384026340723993137117384725993201350261562884590580541388551866204097486730381720784973682946811949934751505423406612695726245924394932819403908647996382604869666217788980671350874289850311107272411058827726930414739446178594177617126682460953795174137424285237353611939063207648826148849610428425333877186243835926029555795833509753749517270410641781133545293373828588217243846387620461527309263894165375178874833202978539568351375228336922903457588124621534332812558837489093746880459223954454216035494247592236752156775159441743575531388172924699800520910951499886988985158930905863552748741718559840835419151817925731736979112107299269558971664438562699675179083607052732551954458053073311860321045115313942828291290005544540676228110338068977459759208674003982273012771730176490406318424639273674163556166275493193073094618107347257113789321407414896710847265080407947462719252951039154827133442793290947160283323432943627367824808332760260601734548999439570759295838130235275510094927644484819570988020532023658019550769943192778010991501779565607801386017108518167855458373636873205193843292363263818652373545150577007245033677368193813017420623612019008672242226532684158562242532927643064981030931005694587988420117912909091361821150259338335104367164181516318725504368025862850233095467488135845424337577574435575130234409818887921099572660191108678814215268003088851920289015097831789301853838395055484097744831502591651225958078307650466424874703610579455210941282557762173723309941543964194121925689493750988019837758125594539997960561147812936977706189269705673636578739610518206645803048254601980331650208815139634044585661578529084963416623692299663409130858669790164835435576606686609208228961636649306674289687873306252139674162573627910046511082931882037711768568015765045512727134183659474412010726665768990470391555845773173237622513686502161857190689488320335246666700357724851258564316989314630861286349001323491696275706691499656036779922228560652275970768606591481952668104704502670007150643488645072647764680377439513781859700727927765218339655315917658936439046584271725108535218277397126887174320171508795245395366334761018999627095515539675746967217991279352174524573207043576218777113440819536552147904707946446588877427329912894036205555813759160249711395041229301892750572285737822559613956373281033473077015753984077478899948986019993370110986929766930642515339424987724279585289564710640468828362040884086293756550440411111076687954151151392797964788397832149981039164314537544891241131558562071257146263506769877805147397645754511677805338557594337360755139040970380726175480947708438683247849729654540792456706662126727713422843116821449095942137147260668079023980663851308372975062564394731729692408019247887472844539226177016048555038615404778071102807405803793192812795531735200606988399455870085007310163193593244296556468981381840688167356964549323150188705086106325594665269967604381719970201242196519851919943131096090998827584850587449484344455773444464685268578289250227355493802944142978613129224411637365768360155767857014570906469145468009706994730622312487013268526324539473376720500103815596906532997437605101897145950219131473169821658355442088833066106646059671990380164394660970174645183067451853943909880552774231655437386603786642629304094638168941914166249853513795836802563136926507687923043161420144209488083811800006919338250188094902301096396012185219977255030510854952445472910371033883723235325164657587300743449704085130544259373552955137433940255647392577815165180411307195619772693185360287648538080915029571823263497037066883210231466557940250415986536442223762170669947269475775511065346625751433491214305451687254738039919006038642080650165392190559769458546173746485924539943415715829827180541376295470256550852516916716480166705552169217935004887361658541296454288353736817445993849752977139562812489996283533253291773517561324955910481655522936448308787547461072828877531566731499223159949162019602104627711307491442397342718236288456592034134479012235871233175572930444941209415334281731326201912039026972330700463575664433000109180362617605797295837162709020993977930192154403452568924233025943215969817519969503792715908535694115770578793839003255809521996672955941630932946046543717324496939300500573201904519081581857520205530009786495762412636634069054557731437837646573830861691528532188811893091770412768602057854635369983689749540308835210441136784727327785489115537284268065918191114550221726425043806420679444533397719615531487463985069041731876731577524779545333927914187818693507122164187515629957843343704621451915929813587899182285422372518892489073407985013438205679419644394314405375955862834064017317677331470436461009965363126919191752925937771809130609800232942232558031535668631671106137666243273727377200745181426089222722624132850483878218401511911842174421137139889231603100895576789165498973768303931948645683301351353100426316141359988709307131701256174415425167907607314799807064677130384075971382433601277885319533450897817768731290393285789470151233509623035623247517269095970687797643745457980759606153376681597105859959541560384509965888404529493243638997673998706169082136964402487612728190386604403999754583885974304844805579286232793964628083290900453474705760323998653367930984943622270519031292373199651224287737437338328855026570303535041666726244793773187323757531020034613100871974091639741870026797314864806627201390239266858856760680190419453591903189331149991710882294052398404103007889897809493454193436901346085470068984935086887291666135580129642275516979781230204074254099381348758885016107291697511231343086153833815742307876521686465615464778898806200097264723586050443266454220628516567985428419448398658926310032500849614041727322106341078061067350754281482221059847268240043398419134775043976090925951709408624581052932879051298854652780595104183703804934782328643626702806679613317551087492893374535530919512269695320715607571528851228308173447847137019348719590961467485906283771425855692828214946381780412462663771108984826246511374904419286240341804992373867056782007522168562041736956872541663357462751904383346860594616698349209685338609356750034479112296965445342733088524432201286654577800814304825515742423994767585294504223416622790758690751607764242881700432614397878522540791138315370411615253241762508795374141846752530342733984076868095802913662933401406455183317895246100053364440498653598268238231356074817268965784686803418740204998228655556022380853655331089746716386606174585257127292640329161201633621354277168730337033375461836138192396504955600902946319092125296047981530858293899781873247702212823107957149407951440290900522146406790564905322618500284340136275756143155147449350264099292545321726031842708108381392132141295365097981561828071334105818603698285041812590095142844993549983417554466016091014027838077130299126252261732018012929623496041535516912411332234688503796317630421775014276769306564695830445587535790838109161152075620943570678615081942509491881664701972858227556781143586577052112580043163927504284717475769308428061640399160071381485314977554459447015254456216812450511034363807110943707004761635981884755613592650153684078525199586095653664106178739253249596276443829040575348037694412227110780979159970695285855684324693086362755813820305917578002488002816218990924665215484549146206237597379997444357243348779247691132458750217577163293216193094689283117527955241948759312692613250635423327624835064086119054649240457270813578760293856903339081142226534702058777924243236250905351501213090871383395354407667728513405980719113769541831080048423411914527821508932894859098287970065347828420094689598401798560095455466216335727146265431279993144482509604323658217115683315250633296077066593447562022016660351800225143748110202913743360956595419393848977579615514077592190582468721785439471039767072735474631743646911846141898339612847600168364064022363888216140580872862981535404076672161796791762959034668826473497815024202311056727828983400919299544893271485391271346122570653822756120699891904525595735654496957704695687724705683798389864705066050691972479576965868975510979446644907311675101728464221634161727232513451198624091758437918783567171971929854054754345263811253966861644504438730130634191402989448160919174727905349801647155791367461412920435814679159154806353436014889288391366888229369099419044215221521569879354513888289630375361407159283679034803075400508366664290176731122919782510193538602989619297168131139260349813631058427880083748119164683376669304441122328808335800779266398855015207041174238309068145976471485373506029175011895331603113712233265418972542156431580850771000777744409614320726992627538460522302029388698867295227840409453196930322279232837467441135261731590084282045982194756601947046705350206970124170867692439262457687678474867127527799595999839557840914987923834521747623472491904438889485817391110325906267087779090755242348225710720478332116949432776125235591740386226261716255886160773679317012138407604529828022966397708116666735115305539544449566609419877099216985667521300440161204999155933851515955625809730182766323710277596980399921651014894990858711558700783681322272162888581305543019988774078396973458896447854931079746063603299693524429140375304792017934228586978671011341424387256854204691936633718285011296525913435416230507845353242447894794627449901664964360540836291326942720247467618120966999294241557285354777685898659333567032124568159420610397799403126745592428428506384945033981630691735069072812444530355749140499900103825082470110481308155980691680254157235823471477141203042814021126132705139697985459668333908001870310121147547423650484075397752985534019969945122661986242820998116000544891732062632324119971738413270347932709205082860745385326110748232887071388401114661040854372051135822054395329067752590846779097151752246289842976577583698189017672019285419797235163286357648767708374098290208922393044518314259221034566340525400649686790070756280340898887438873650687865185049345511899085746213560207466950695129692250506839770770335897584112945945094498268797562385989587943538771380653529319236466887606700926568575836890946996751086507606987668656947176796824222133942025153909854967881138735239250144096762169829692452917485289769124205706532198351394173275515380039374570127693110328171618786997043731141257417610113981999268053995419856756673879483256517933003907359798238986269588747108082513296523911282527557923877491069617244990041331087930606096199553133827147591676101749699769897681624212764495577021101493080788097633969640170164038274448655517431883686677136664701672540783155906885874320145361793152204374456226266604880531503495941373582884368300781108044690993303792200619160422183643461704556982621246845421562781350117062126176877831600168522918736477295400987369794500085678765010703740229654611583949565602285116974917061429397272042385805251909033605625815705092171638064340440894426449255430341262003518502211179160544754004477214590770764174390500062748166487364252285460267233644285975956488902943945343713695453455673299757934955822027130713388459292367228647728242723525205087496360194448031227590505132032819798654100106296685267539859140020834161020986472835170152804019973865891096398920287324737103614122552579879822768255512321447967494068227967369546331233991160767527567472098558338117948154040367855195762025306450388702155404066928479723347672028272117204929187047670163902664683511143446214876551533068789216400974456051361518801384608628228991234016249961569955033768776144786463178115830209547582913741576382429902055975180776979245426658912213793302344896706063814898050794529052788307894119900992576103043327257774800492071178385462575873949803479729901587209386413026346177322555267071925506110266716763468409100133248374549675225353082803152615431585075393043679707693924678612005576335538617959055476040908747415283950761456460042668140953953528208235198210057690653091301155398501917295125854238296986431193287703744352208294651891573099138908510847394197713591930687538878833753457868219640701737336797286795756958396551874794458820700521276450142199598459541020881963057791897034350941551441584276007839913967541284111729856498575217722743668268693684094211158520602018252554318503418336174884658879553325025887694769174166377045658190989367649225706304355224217024504087596976832152944417535954152041231650040675987388985694711770453291774191356381969108835493653276485750857388909938781366043983870832248923950383169180832328158567949947819127285114553855420206020496251848082561679784318299334628000521265081940682872637733684660179579234166190147861679040455441046048114143224759396404718438752425070143646112854169923414293582285359361827202259064742743482033812714695912159408672444567097382165160626568589886787755905485011017790543378120563467364387224682844971037222338997169040745924003676245808870169488599077791252506158759009685422104273047650675717734178444692951193771310537526332482761264942329449493472694036233101738447890734516245012868806916098029763524215809144694361322589923349547669621959282406977955350171964096776436572595930517751115603750026868168034531405035210807605630548166393049543645383706558498298802775960641185826511409145326958553671727554335331234771874828791519976696028401804948568076368049098070237538226009426015731479012367679734694332554679872719089903287559242671244142475989485042648779416026818036198151057589227966297030518260822409633398709138083121494894205810993657574200501423718752484161231009546542830059673887133117398126347304462310994682316735343312988066150691871248337288481695285673056197915619774207579758126877314380181263128289256670920008685546908885196069902381684785077051987272678364188065803353215818860120356796546287240755261026051902134459884879144856975728667570428701985525958093895370957415041642195343286912439030535256994665956357947148086453096926948484798633923487003966817460072473361276555668694228523558658633897138397656490826953151681855812153588335565723198718070845374670237272348206654151420517806364516590563934808179157676935127020632619687121612993045443460681365345385289648640183477638822301427169108950760492882528781713152078164015624786600377953806216661248652664535063518681740129632839057015834447075984960552892277216893791794079042758648899430846984604982554608544660733650772502072913926969717633520340865403733996229762733931591668388809442645514133276418166614506982512320237988342237617943181087132335517035341899429433570828690474621467882844498809072966076976463254726265602690833787438249761023383123377737554059735808343941060488617439749016873281278415170625966519874737150982990979061409471030078695609229131586166803297368552662106996444480197261900608766691342416616016437965974245358613735568368500547172209913155211958757749571717994564860163251363905611727809156191581862071443141503531800053269506080608796128646315275136087644880583432663054292883526783694381629463354635409722510710031246258284711128751540053645895637206116937160808548145083835645942620770512034163717366206379231473479853173308246280888597714625715445055590083505660625624921610518138935567550142077546874275482709614911674964039674159702576608707795425924269224184455250698802170385671465903051879859969600630650991255555308848704466905850964606616355082901026162775025665555405250347974756448940786807050464789880608763629519651000374219913284630741146072702304690241632688884296880340461556953076772867680798199114095666777809535906754789275542931661538514759392746559613930939043419556257575681026783933322531786934217240222359865047353203720498778356541254405163624920930859780721834258786510651343128966976672782928572163282308177952979135100842214544168157553167597641312213582784551953056782493034319803911533760574439284347166155999748571900671125448855602639368729028443511161852216972684490373971481157206980206048338864823236438957751228840346853077084579279198376704450364620826675256353773888046065470307633639099526012169290669302436938878956705074526496075340446071430605540510599004177679136643304941705820327900011489281717727509616659971903032258022880482070133270973827063677852434039956944107327002109195665424318803207675348771528698238243583512810106852838387562352713654246170963858125533301736511482138246336493973990756439078754173859605882789702416461084516074553210387806473322606627211380692208622402374151605081864384215559301141409805082353044380902823746605377499219590455006975025441117220677935235061961679909437097923862440545188991735341253308920473608795908541787425753713079484160083778251131922165409825517944470434160559547872984408493282644864499278611889747283672997959335778793425380869372066290989803207268718076098260195310712397168999485745825402715275524006682530328798875680795969014641546194461549706631409856383389831359822741034672974746449260061751928475570794667819828898866557433381652991668390922046555875748806032341695703716471380514885307217129662637068857950023259855620019231549372850871631431137469470458401297163831777898241528731134524971800825437948824575169495799297828206383325118322932310204835656273861488196643110727418244793336895539548426863810884087409151274500371890065431018438729818542610486459249104355095391069886824559996201556003206757013971941493294664412729394895675187669585054383137587506613166283904081693631401351757050583167972034576515222793423241335194050030495010406210557017044514518535529406548995883553387261302847743362621266580546736990053552167018742766838837958760350323970421504283739371618912567787581947131539241404290109309175166970077772570341277624071072356868112950865450387655495579724137241350981245289590667791413594337390015045071129531097391458633550892212015507519010666390727059577035904151981062914379435455736570683743758644116132439158200153866270136818714114451814905764097672245208205097333351306367515736029771190515123099263856723442618335759194666922402202687790445760564912649588266971078130230013854504055163103512058573605067549720882577820462758336931699798435046079049278833568384287552355113385280637423139087038306253730912453323993859432461064836448687335756335116641600052435768380347882696493821130913458474273788226982279143472634307677613668939725752019634573763069412567541811383804160373328775411126495155513770806082897755558577816422419559219000703743535003342684845990550096641711195168529900793940886797237879658031486228565650375080178488599349159014690570798101452549019805624855149956685244043477900686501420004196189608828428884663617868110433465928234054120949196579051848415372513650570709115947309115558537102121382953543432208374012881630669778949390262045511835529472349676988672130831956515879665355371058393063122470219385534990147845566757448843700884459064107987561143896768996606691741782578326745752962878163402556381381123810007221041062691511365715149437815137292867875499664105033251386131070523932546139496898316570281402125730195417646192755833448327791441378638399078978060084051741225534974000993397271618452349017616996784278727083622818784278229089526228961366323755803278320952275673914849536262420942498165394364436888009293335732948373776600519346351761984657994728051980760039651415818344785451386987607943338586267295752618934108980428499855523345745693807866781704895812397002921557796906192202575693971596580259418349612674747581212971989779432330756129270196361732394964893075713030097014677949502852705494072450381460588675669154325210725558654255982771423561200209975845856244227209520078277413090545905030076265281764553216395325099027475232732306962061057910367944193439370536832742746900792880262496912573757179889155616896634415600689175004744552705019676890725626674267635055641500035275593145056180051457611256650555865376473566464494811141861874406978879621174638627657445738588423529720797053060833719412963135679622334668364993040465317402722722987311462344083491539724694216915376962735203517515832004272363152873860444421315193589055097718523043829611729760105428041264034160017703831883681821460862821954021998599325128312775082616761918400942965563550563328033381866063760858322925328712328670268130525220534162829124920390339381870077270551671416665494314096451039117926354325598790336383979536158471257848335291639411078254891080090395895207531475319585233282116164442831869989805633812948023264687028566248507934509459794180586674010408881205832612281896297903987877398110476318864780566790905827089307358855845720757407457079140858607675853603708038518010655888374695217829468813312239553054959828494735655859106295258836563417666106908431464215012001519732487630937568852001377715409934873118451570361854548099678712813964320501070801846085903111652402276782423937008468863920201967672982043147886683400711558442273765608340236515557003905237103100603929633697261280258620834459172705584008327439395777266421098546365754200813282583964182371712879871566223345118099512034205227246339912370207592110159730014197519585612476126004798861960962216550696842706645076932976125048612476767283037784689497981279726431507916400717939213642447957883960456950409639599679189894708703340233143570198436335344931281216630477162528436418700967034542545360070260142843959992612905130251123479910427868303272056892964578435312477365180476126148893840728975962780254062392695316899859902684492072305789466106004088001104798467204441008692154510660335622692967573000255385531838459450093341592915318874646944239666883898455534032915496389098914984976148248298163631805905747066762165671608099124294635494779439229751155595742338151006934906964766180945182178997002562633025435938985821605361359647273762301127069369509884046519323540793533667791379205631872074582460691203820827698856879069986254879385897090372925878393605688825711696144459722929322586797991589480368818432221174945001573270738336043565645833738099777896395436958332486468648940395194077305805026958187115902617766636264938158363546286158740688288260429998205445759111645447573579770151444270342264236296801687807295807605728207331075166501584483757748942999798973193951361460209683036877354754416494531605836935651158108812777169950642244619820141677640048540137763038835377514204356547552398958441644332542586838150255403614135735393242834353244659114734222650361331760808686400274692841366608336347533035424205678309722153193177631948091162748529541768554087666698786664627911165555497982285765632635415419867933645120125003106470512278693119180564541930976128566968697339620260032238630165832393026470265168651916960007922090631620505657392212531088850885069296638528271402245161306152246425429410860098803834353265005554939302213896627502193330934853407228964555246305580671345008286834088736597241893045413788100083470571653289893783027294268406842122669399471768356233537618566988876600765137220706739373893328748880893904674028533145943247655293629974717408070529125877189051010874067165660655743697253185250577167108182115232444166672099044798402161077022578186336092431293557121255556960328439294030645909781115780224111942474080020128815109993609266819367472970744493272943007075180624685878003382778021620147949754323675732423304133785547209084996116512690551795900615427266968005018554208269242462847190184304742463849981457882869364138183178289566335588095128194527880951732301272680776717561305475644889989295921211659669189327641656838837925261533759613349170751222089485814002635249983631982850237036531977994644581379631100739667573848970146033259103648116716901115560140150799436621340904863108855020207733664044241165018614375922801345341374980728443761370704391250077280223768208525253266579493551534133077353341552857969496296237034433843024447613312312373487568204552791278977538401517472563716144983598657180430843019531931344136068889879908062495755936085634822294333723325077587222085442156502931677854770646793894301663481395189774763874919132202155103224010614748372007431687539015493745431589397589971860284939266182028039580941283883435680389701755214770300514113667281011838658563961442349058086874379237449702079202787004158762984897918326641741544124213777538853271465810715346912828264472265786009139229801993574254250244579579358861322558016339399816542349103879026298573541716125849631163919568699353887566670115754264729937077719390458087889160605108931884218692368914117227611197910250333588987000995215055423060847671417301996342317558086762071780228961089264360311478556421012462238436190389991002198691871127875065240350577820844117241848996444617804405913900235667183056063373887584226264390890618793661865537083266882109489758923385902942675533411857794964981776978821687717229560364440198664132324166300093732927926487232839289711425856543854850412318104472438620187755184181303653403583157628842945147205771109441200640936563637547382316047070823601552915917055772657162389100884776706867547845325704229599452511322269586519949618504707618507327461096657303534463195694720553119845991438583720165026507542916280885162063740498027158403001571760607133578066159573614584646365698472797492578202436245436225908359190822833930854149481819213724697616772159395361684047561988035679191319335541992453739399772906873118333123334703042743295929867642975890773598835784247334263195789081759118361816731762908488874548314560684499850852790483979624040058874431439566852334288695314455068638206892748894062964629164646177353424996918712013475091559452324812944562915544224162890165832346000486363767425762273838644367865204994614785912064096454089091672606808155032692729457562877246237348081166110398109998254422504672191237724120189224761188244402829409972429879829635331747002204947059167974692533045604372925592904425945992171544711138160056867526716333584066931590200379211105818996559585988003978578132378193212550864718222764083884717192835644562896071024171040768969384248913929015311818388569082692884976527428417376003411316948064214427442035235007447522235957309322575951265305108689363745317243114375172418803685431180147692670103048586387023821628566754063592903780097527927687498760547940224390958172302872241538201170474122049144289576108499363711696093458599131492243389751561996784104394163309774127678058530839414697276015474319009984515195120643421351344232615291226330767951823730795638589834892866525235423574411663968498214655097723367801073154458829456439747993810578678421597046154600108070357949129151480710081780488549572460829668453087477757467654935321544547265538654982930003994443510949088040234078424672126775481306732932251427615463728757846234915187024224307335212570189784688097654714515594054635075187069908594316291626475585353750072672193051329457639447836996589249578684157712203151210601686973170669315868455158706492989166256359606514818885073050496008940778687440564586862133297195560961983663899258077076876859778612216334598630799795272435496628169463524606886404965977432887521001653290131296559416861582033027077967493604152056543408007764216089239104740036768051239474763095426676827700645613615121438836160849895161271802629802705607780613621681844023483100194092651352886352853983738642197380420896139957226660588003337761067073257277052698999083846791513074479111959655367625219213061928032977056600087165814708108462875159777305480082773449264361604882786584377494372475403923226637923518363876098623440093655479830147332981015571956472885309678361556475835019460741233238654985205865136236646973740724470120112019652169540979853597268322707847561964321213232855079407849659840663145189077777767965875966903945037450877618018224428094043537073364010434314202905410462132592571011254358377408397972873560628208590395048944478354706241368336889191576755097496335695503525031785922552596201333998630529412983560361563520707885254813804378946265834402204751687321374973463273029007780762183415638226077971859888077892042702395795912974299655985098771801599142766813470420141374803339960643459817784235140729737385660800991322320120219431588594020904110074243473276427048353932169841406540439691265829417623707097172073227974251360782031748236586463776095754969206819086776456312577140302617373711298499832803614874850163364847370345579644001270999574763495953080627704662840168624395945824046631154196279149229599769562480452900176554980819626800302754515184230994206706052101290095708100786784420087856979192527686435446000153638098264147787243600275674740676564627052763556030065280572799332298414474551940410142358700987622813508883879621503247175386961417995227361754107863383326907269570050563116874981047354346370426748553474358674748011552791070322252536850614150624521767411121692297354683685158747026291402900805286131966257008081401169516670789823367255036266033011080125196188451471391877464515215763801995750601583945273123033249281376784491244139751650590543185181047195530008319843876621279749004078245129955139700021370109162261989277352985547105329187935018764109510145133464229551555222152924411647814585677933314375015337029354168661836202862167850861816201847664189008874873056647498991054840991512762380235186968044536055672039689351143444802300639193136392143529139873805179280502319804517280322885923715361809965301555851432627387436328253094777952471043259754701241790513484805043571380378735028694044302639369284876826750181860243146960113606560479840510120326900321033264681987714546681099017488524706161290120842220534909743312513060689316380895623730931935132834969293300369338196335914821258725988040896677732991661189308640021635966674957474239600653972702064465443108175109736097833065504474497699784086548755689129452334957143042980836084611491465887316379063093799318232379074030030732417595590666351896025344986478611818337303068413729333542186165099392655147826439036537221028516682292390672837696375621307407230885424920151454530560749616489467456133994210290453977388546616883349154175439222230946259310984014946689231120408430878535995255291845919946195399111516500409600954033204103589343043728828771829510359828761735593722620301027519042719800838605476392858761841513126727496338117932182674200281849144810666905528330891212742760307263569740209973759134027662842903964595134263996460527125596471572205612746155879064795566681416047459332238586152716365802366803490205092069625983118683466657766595965885403454888409862397787559253252635944642135196916689882072433499965522617548157548151982302041800782199934303316963308663785913001061800126127469576798710466798647589813478099442246537593199849477789770016200115207160869841407463769897673596061316352232891755874721900068856897579086223966652327341740682286739827395961237885282768372156918546341224755150615990031438133052601215817635173099959433266253739418706162675363544963183754265806880755376097681232963956399448498642024178414289912715229493362963493276539071974594074637332056307338512043094289614914312938464409757573633590612732018092721849677220330089866235046112365748086464937275319031087196957236416311941324374607869924719810913056098238867990506016024123833793091965532547972211631772949276197664361454304258923613628463165979646862983255657296886084606615834651719251802685426801681117869374219944435303212139980196433518884659701956030993659951264179217745140569137294506026555945673488263965029394734889457474099831784125548778316283381141704761349141885501796708780963708484043810470311362366261540300406997985556999205055241036523314385783223140285426898305664644554407868285179422374575503493013231889518447097328640325595228397200923968046495929403177407606088251023779710648242953849974213481093175517708398464634451930102319465283478296239461423321761818221640371891119569218772902195840596640505579569741629202339667321260767444217568135340993442038563269583949351819964383874532816959564641630002454272870023652980734552442390769022649827211368340970216372966679219955937557987639918402476989674113029749401033940394042845207666307693776502146088954364779926919968415944020077353518626077756473245301538225504058121635281295118928329936881719224248122612775889887408533077987274584600084884418425642164101138063863016925248004547013877605620358993701484354182152680853143375607645428594881157600949316814563201491396472017405751058465484075062673281237506549071688290524863772662376296385326648580133129571108060595440873277465123762944045616956082856570854854521014277808327623530131359845970157987230200171079948863589076089569390143945128758285291530418150633819835576780138066194872634192638691629827583053054003209450985834884871072023696225948025936821448461643087208556804302954916007173008943400902393635133025053758098872703438012317735536817926886179209164379247118220986206917607690759077853837717168676499805281441763150919804455038991569618969745554627927904005609968851468570497350245731926836378064651590635028293607584986852035077789894687867013888950412098555919781422742180900109722001497373607133326850703452664770512901456533388731795879620632035256651441820835212170896102268874567816113066750447350236239048836250370504249613282138392664859072026951698403602574006663640054401074369438979093323629647242188550819726602432720813744603076104422312934609915087755938838304821131960786758744151629701624202351935549406789854816298452436287523983672345358025416874483333433321118241844858631300837010544886523006041000924469617277866110733989270834520666138774000245829992149937510178646070093164315798751955913705331277929938456701956001734492171440459744842435572357568887784872217495297594953920049036580893332578254127381874822183030281327531949737415130610336093751974726581687953617972439794206855020130984227977303678536762676183711982550869624649876323764002131651115265041377171153124460161009041937670431184621516411665272337407079846879372500326736737708324673574162558241828328116906572038050860253153270574939337016441973866816965533680136320702263150039625092029359436396135852703900972381469652817854563178497119912316276531740761363723074456530581980855004677548314298236041564570159467405301915265761932974502644378355803982560530322150818355057894667208616372673586231867985454731042305892935633529254724266000797151364663631916202539261497739918517186499553025902945443845513033755096672940273298637710387206884954113727921913909454906779163328572740765372728731751033440835587648852810009170051448717586753607800328365900848918525584928403598496940274707657315198314714198747352022727552340736044306610526501941202206753501440236263054222567661907859372762354257571820122851553027340002180884253771190470622023402839956612897274153090044931487529164246675790555491476044860572888722092722477483437928835924100983690440769911542829564246237956743597498450355589086159660902822633503962697193395748240299543458621975600761608760218484472388844403748827756745517891932599916733705141949709480982788891573024792668652940087169095020031796249784395181080237503786832161918400706789222690664872091682202109479624993866436498788860270688170250776807030736612502786796583265126217238981049949326802023008215222742238973534396733781339455822736990872391983480216414091348302984248163320400493838864760833017884020592295161068756428530478475940499317639475615063159198495586544068012970763355510811908258411091735814344819902912563337345664429393654727344100783595750921409008188486027757751377787937292023469368098492876082980916014781964693671829921669695102649781792344518946660047934184926215292334878610583791552138511689925586573790059484608013911831651477559621349018575038970350268723538896679962599298745489298233937507860073858085236875096132826400433106976179625665549002163517935053981190022587953646762585090106155099212583158975667136244700127474447179179663774246082037115369503410616971221573942572650041486568931061329944564407906663209522188982549861065211971186504434685842681149227733862006583066242918146195191849635482852510001466064089881658615398716237901856867942897665283988625243088893162919295399557652863102634626655980368650402587173691655888918314829902816787104628706432291728644219791898421517712793683171648514162463443745272395115472063019659492422295167364683069282245485026359550490768197952344200850923600113174359760630840255493631656127481182893809078445083147975518350039812234261970017529282721323137674500972048686735932981982699763433440161474447107824948898191223832485468931135178073668360493804445116469037169716469036028960742193759564336375638754704955743569519303507377620491848613030228589429544218905980012197837748299791162851859247293918890737474955907260897609943132438723027217306573272694713311215047443007631735104395271920939347090914828946056906331602119728567623761863451952774029009993593469464738970489177864280678136829458556195940765273072798437645918082625154150420547819501571309648586190427492539481677830586229045015194595152087936594189123269603682213336259472978015046164759159139978364883542291564106708540618736759695805148681912615250446523455811379294090879962116272943946845427099321371295707147153063335728785835445832393407741724679426949532795596609655638436191645238267584590875196043642756187425026891452619109482923731714333055300173771740668054330738056285217457482526019835413273242301475359244543986002284433850884744504957381409325603374346684077130094296257129770723834393842603043887844209152975067455477385728388725207712579768034994017978120213885591916553222577544801149702537935137142760616734282286781339254088237146508401939123710411415327346310115519639774518281323693651549287239912943859069759551383122530302778977763207347889751905104481317945940857932664793458369007422145768004154751627379867827463820577494091363031044726626794164854405654609973053505118609345338992780603520461432810239436981439802284272831442917090904085957014457181597896009500368306973844218420569243488464298282741920950887191633059351338658058520427383282346750264111173487995789063959877046480267835388962043452814723812336710391215582343715630140107214230236798444320926018513750955117115040847019501541767488595571964587027912538987705465317535468582030324776218864167284511614485449121203940421742066246779283059671223563001243325383304815939716296224455730100066726359019335097634197225330891131362639286664242289124801237080670104234075091365420460472696679008325596717958802917820512726186549958514534179342506280155541449678046393350116338933673133839820490846876712685077130720695835456795646149025931518356009046126977626508248589221895133642571916997578451354342196786989783941584755502486525422656009654950897073741480767090915619493830481827006317905011071319964686197266319753460925543973715260257362937506379121641536065851945861560611202929511855972517208974964474552905268634327621928894438624782406706715613638139979514070634864855244583298418578336970687931559348724068552253532888524593019083898933842321126097499406679255469336441359394714025372284825752870113945283599840780297481534665665207970796461672682198233385646800887000093518222371904449386973871639520691066706660830698216752180949923270359965093411821886034050631923784220366645988649215928004003777547986364002586995786276151069318682240724551019233541509704512868137309227309478759548876107254633058482185289251195944909177855890253244436225411345281583979923718383212415155107962791664196015229759226987327645099232547015689937875134637795493478485306015236378458758301690996503287854421131602213221203437828566764706976061937062340939447453678843347635832939583152578489440652060733340575959823463710789418465516341112148384220940359576443287023159534721917943430691819676388779995456755247478535840824449732686747954253656669297511859177776787630523075034547905523660002945717975977086425725835242334717694068187709432803159522939033000723220492490334433080395214182938917001654186438408643312884050194302051891656363555078606139171231219033059518653125243074301137158600447788330505288965477964132687639750944230115582123763324083348461694894149386965617904131969000630247671787268683184892071560296992332016997240725331895301624936644975746766118629754329390903058006951000488598089886795331928445789626249780627889480551475316446698585538281283300930124036195655215624142346139272062041789645549365615460229858985990709412266956319373037862234752864716685871407661288270848364546190656231215453984409056053795787631301768243662651679116004386733508933124970118747238222670871952536968788770645136503339958640001236254800187624612755228126527283931824254435639749824564070612060569573551049405808732484276744635682724291920165690075130715182927179881363781656346912898384081454420407157226545558716363739282723483718780310399711266165884027761885172050077972386918665032141369793093677992484729662183303192662123935169405914604615133927324861898871756541913238922971795283758440333590402228756231010611761497463646698975809499202142815765360069127652765723880245542046304282727062743168994599045200381682385056971401887774625437274518954534397855879796081582242111623012016960103864603725085181396760423756579375474187234505865067873920879099352210038932687352452130536724349409014960909815500625611532361127605209837685289088745783453498052187373728441453447582613875710068387239911795596815756301882655156269317474646019552818728062076160589483120773148735650316824324055862835881274033318450379446508044099325577414884469237549312713013450507441218534107690955796217299575876249121604847025899082149554348956233112663029830524768599465812749766786432159155249187569640764875183194242168362073109731540597237267344499713644392344162152835616483797166562420096096138278060154844460678876853831630269694699259426715950324734400691372258947020056591292933839651174847124172319208625852632441612079528476900075238666770282836594430311681165604059141121227329234563418907121138753217486249362760868597768088515972582482555841672530573758689622505533658462551398322493014513912882588857654035921459503921542505652918400779962530704335503174356058048345993505812162132890234475399317863873356231480393229218468515348383885741587127238791366666642105052298221865463729353301912378780955660352222878176728567900893153679835935280942520983230422747158290626666726766685953892319932119938091437072260418892550895964183163002683279392496771298047138435870189053667375697765013928520390577117843761577673014348010598244796013725645275700835860294570433814682283923106227111327063242835478530683715956969639103147516005580978786266982915307873897786272704072395725075568020166746590558678563377557850215098915443660079872653455916771076785434481008945319364932248190132897551514206847390820462493726982328085764498187170837931346115088542580654724664288170759750246741494889082717433550572751718764832196861068294759272787251024710508792109001830320098537729005917457993753593216951226042638147564945483668771318352070440547339061962495537338791852705536969972183377978021356608173561788102408473041788886401390149488770130501482340806278474802947353832800952289972937775454305135727994287719466799636136132228750178219434470933601502828028439796800190332313334038107662741874899484971783303964392652359775055847355303542139138944460085061864121485873364577920010262354918969906277354456763504898098919705062414124320336509932544984540302209681744924244316438934956785181291984725215653139645025749425836670468317953691281244829234223237351609061804444942278022540248481075295638672489757556047062232172384377216248489943669054252314800939658178107835634559549869410482086057014425222512047684293989323842869208560213618387914075789073189118667467450147681107481394507369275423324203228657073489615158509873884322964819262443989809002477175227487191798749905344890717566649891504195849910777156971780662125012522370863781202583745589431775485216947712828424594747423727452400837728288209725408712951361536907777206245278494859656930224498015248052588073588404138332044829608526144022037358541681501198340356140715474535857331379162500346800931445760970311642515525228435180935249611001304672785070084433789706165204806313776033726143423512246398288218396745570297011108120302465556943425919810418544911114508395559971456800649398197712043753120206725694033216371782669085222238105252821811000294977863369591317250128606117614492823698248252247350456527720877830367034349946594540982496123675978056461022812674469383559529110239593863379910451222703886228533763389431973415117379155846420663302036263900486231154122900032730457197801682752103639779696238364777826904433179786505377109526776097063742967582968761410124202131890005213056142759375791250923290509951469849423945175096522864301847133952264571549942571989900934594759980953538164500704687502248423481605047178695225208393715268644634720563649475568263130899121404125235054766206223027844450720563127138312947825454382142827804243826857615667208395955109883162260465581101426719871590474266792447859535264689751633541155974240539689491918684700961352453675667396400008082581904793964555596360833613330656270813802546298590189041210935965884919959538438191439950642876352013461442041016082837100034513967745283268929634729754935666030680094508905158634826955103557016427072296956315258837015230696182587894393611511011176877677418554687076843537004451015161155685113806207002186359565100286621097910682160073202690228494077992193462920074442423897332333898322512700718246993179534101064904331875010134408198440951411648936735813561257973452464321586958922210802170508494135636445340111711886737522390748656188026188094572311660450914464001864744962947791916324021387606048201155446086833382426914688278479560742708580451664528529054997476592006747866229548478184663658771728398374737835276118138455743130726995273112248370191544997147416960631409651138472379701723212298013224167947169797010220060587291093647344134010189322137494814314074998160705363725919603958266693967889953984667255934254921763414002195383921549332309083826837573562186312994005595274750872622900704228237606299163416646453385564094041321909236613798238626461601756562926019421859931185487137410241730894026800177665497198098983024704383084476573536488928223699162180438375957817901794973041110303504812116813993964177421937233066369175564104184417754029552527058677987039423151196351437717490611271567512271003190400580254256648217463658529131136779353141309556062976778718548553696383175465412387095309763034293614544898378471726267742777312566199954310958458792230420834632216509357473280002735670616645252168875758510545047710487767029448317016444955923553933172040261265986107701609559341621944494672973565483583856087206032552341703483610590318666310899050713065484654139792617750545252026799553161845354395130473665850303956535653609280216887782271631849802021961850534452027995056996037101117482631377812036564640962480549111377976663034106794384182813671714603956452924161363198093737746846609924289702974894131887730260964149759260639479770764577426994167683257212408645532258807386447226240664482262965725661645886515830085464933727811851105102388995471384015238244482091697532957876227292135199359228581050850360220969336664858046813166062167203045920483254936055560535878095619040242810552844273699937564651306027012748622281734821513093762086997757323312803578372075377436582579989782011995349506629428786125878027610600770063397964106383371597345630056135401523754611308293531875300827346709541971727065250996131407126012354146466134214336205056177781734512532371855873217378459651097201195304568863023408022868631867286806415272518748166961289601423681366689468956282134470053009385776062330452720431163831859628066458886590908696497819223276949242278693633963569919006973702316391514047241103836225004500769802251399094903818816792494888913896890697555096310198189227836959125217023749378882094739614406034866396854615358177143847690704130013284571761950717703062060494697776540751101291689976115668424396571159004508187516792946070965105998407075194054920586789272158981399385399338644709708571562983452641123290016558197846775157314476262691535585144624836271364855350069459794747552710035262971965234013078030230657687162440341692292112525692411859399815523669234856884876776300569485742751219594317967450651074869663159355364906700993973423174488515238994772937424117916897689050717208068247854892075617414568170069812342230749856368115077483064500957123714397943533592082568639944130864158983076057314952506841209324777266074875615501744095289744089572983611757827576030003711876987434543968383380570168484815079545202405261570423275657568756110759129421064645023346834279891364300088404444104553347426103615994439610281265325327155943953899615298887037203921100645588088996094761124368676789391998848574766043076059030590485109118735809149006029488161059118065185885169998964207077963797543500764900912958852618375644329703178892182864862873347481526159365420566445663527835854246557532478239437582128228323585125111391106346895838087672672134590594247265825987591202693731602856756766699462601032546630445226802409687602793100991573487970573260716285942844992532086877920269380982491680074187386084194892819782851827343784041977661437164800118629460357680257048712725199138038455192636478149237538973950239631313448242897764942350128706489031800542693021761494728533209579976123513610140110431810980480660496796417867682456876563249378698430148416233169797454865945571181733897182136997760989465037568035701804754959080703957009240696445675250352497233770494528470374688843319807841331754707010840172724659003001378607982113403947997080310272179286048146989111404880270131763964454313880129797703001635758468754815112001572938623787209112680148241337849982084130127655304933736149789608664397046409565584122267967357114541612783572150602017481033425986030030602118131996820401154773065268500115872469492366394424424351585336331193159641345919362968625065414155869417528099201547720136309572007285892237658014914586943562192079971053991962966986722692088723713902601025447104785646459554396568684330267304562380998370859740614919420624814306894241080344166940234243907139338632668053024236574361972823848158185860960039662158334039070255206179744336964086494909366789556320878302830711172304881425473591049946714724735192739729172511677003090675143895322740891325345965672101981351019523734315738320417646751061896838251110161749926676997039472043463428896254632188761035140963432303651723319446535558184292664043062025116809208587079482223204981638435324314256235507680351697970746581910876265485483663372824005281031330755585401693964598104982494455857520675757337349977220688359967788657824432389585020244649996308341737068467656606688352751424018041836136526626888692238868171975092446200886089854079369880987770344366068309449642457000543461550740856999466662957033547515681065604071914077227266056624087924624920273894301187396952626629888179251802726044313326819772999095712390567080515401149829335490981178922993805292754242626717738084214072256080295282923754600562160477132670848560419955988734389996475802929472893517909407428639350226346237072972614134958403348516672574984537438843246527226291027542027359168949403426702695834682323872662906959960734491384324507798021557075004538085033271600407844395850849431885271994687113511779517454070693858303873191778742591925127310220507710210655858278883316138475940873893208531044567334013755718665673596534088928357187646085931144287498240960218499095839184778683449936496667568974425790848710979112929449060638231157748634979813238293695775109539112283856255710614322018822537007338524323526646576393088191963058228169972773533784427855819994200593818798721814220993199310904907654001228288403442605793876397159728713766724844180685951604079074552169053880473881889507059297533008124885674642067451667464026522484277024802375397423763021867281233514583040511797524319035344212135466867854821851478409046786574708744232233037470922963508955449142246976923320104045616412213600573308062138465622270228960264020505836420678117545254819264265621073139088794518160409364825410568825695928309937838928868734956372383116892287777546736062980150121971442162099956738503619448233556589557293032551326764788416290255251154119898662367136001196479457523291136318607748610543533095495246469118911294285816478648287720610892787419656887001456705530574122705495819185497425004231632743245548524012276452173087472093132907951795381813935051269894898793425007394255945247776944189091489952710097734196136557517686107185866376035604887005394713058596231634362168338522617775130570858384156940356747979885766738406174817580770518105099585778930306452663661090721083537037625948786334302214522864136509143830058208131476736962773416034752441046739907153420183787997149213449286544310210507893531491486020271750672371999155120131418990951336160956748328345132575090999651279221479754794799115173320495166184879241167630653356806887057104863859454718506922048282705470475812618129032351010697003248770364827437992090369003632378341598347210798797376307798937956400201660071210467228244481087706108506603748604922888775322030033109706186209847568266668132967856658452510966227807111775304558289556343901362970500787826479303296367335223199179182564697091573750989711732336413358200059193544795554703663163884085656816072730198760485415431593856036679564700514605088496990988299508282094305837783369726364978731332104843798278851399760005861906560822179366297584289694780506235284854287570495909316145649520155203552903950498232113607750581286392174443425667466365587416928361091593970539849463978389151069178068473760970686709912769316796180472451786087081328723316155737810082643744150281977316632807868790838571506455776156707923018850961907275779613220379127395439564576023230701882113068621994752648621669905702689626070340238080877875703737631938300595104543866672988719553121424480005799626902210035191337997709298959370137122581722418033350754294298776264371917444666047472827851279598212372753267690890576600342794774983656794702258703394700403121764605969107109081002601450128325648773117811183206332142107847191907411548389001222707659282524785047213292953864945702664772023525155252545110310835237639774159955636788069650229493806078781375736859110580586336290404711305263051062498804900601977944504368982858026065896018366390270490106932786772704090939272427493042619220192153095486027317093957085962172047257837625801300689395602413133923503829786558877811055919234749433039086587500592068167694142519400849061061406608385611864287117592154377751543036389743583466416526021440661304450788769035270387643322811985729788981001051963442010592201598938278028458835783628054962782375286891004593043077915328855367223491769573996800532095354604114383228973718967198469447257244668232272210837205302011196105039612832703963216396445486245772319562109549460664460327601663654866004567298574272287908181486863596902443153468179373986648717762271070164961298241203177928082277070366926632301631457835398518746487310939228382215130993805913309136040458962771230122102411750201256418511261821938457826105382056988070783266492658028182219538593427981634785341882479424970343027919340582494692514140109660588935177114428477138050065123575324080146361423620332315525952639121265339313063596235455206772464465061883474798681335971774771635626896869553761911077606471928231664739296129827809545654053220851747714340204354439222584172522366081490568091630983119462801974905446106265112807934082673013830896185185487716052173871352469873224704435548711194519613365949195177643172174676865833460167452776655254030713886561639824021937976792927867288061714770684229823585692552695920805930397524422590406693749384698690022853853587523448386532255024510537069038364130381523483281461689686265969166791950793534101521203795266270355936986630461642212926008513949021840443277400093042900072283448337357571440347120026633885908375412490724994132592535875991255801428379558072908333609036265991287717112000382454088587908364353230959793181797687433613729795839376448635998546840601129597541170728777424023039293110564577079317918457625122159796930925071909890908953787012621734183548702999319391198401402908159959381255430016408881216561481325925075193992515636579907109579393490393273616548318015405877469397215712204592482487375420001134533973316526918532720118477055761415051743960652157478379077112985853946750034101498077642970077409205677916587839894867549368714224330811659377210270187115023851935464435526394254738254658751425362651265008089131137679293348893647514610743201362249593895819145841759628079646633201135776945147926390652576114257380307232581238821379697086597100114171893536446680753530121331030194883208900124358751810482780986342775941522139798886304518577987547659823915704091049702114193783424439343713845875774895095800374698012102886436944403538637743676868802256438839020200078398018793873995114409392895386067727975320092789783883509479268264007369844912535762714699432357383173600202640295160775525504117424230561428931755895439354522678712265451936151457907122682389307502655565827371435667366335648096270891394618672415563233672914673909663256316250146622656193791980428483693169588555890867779319256085776554722915111913289652925752458877698087951759681091777048813642431241647847347531902252204961329293525579526057162149986833160823141822607576466852943842062624349593507463069998713527274485700726851318537872503101259362236718580082324227050866766520438689382095032037603060869354625704298603758439164711475634546554806722594926308321326743827660884199574331266798655772162490614235095083349049409919730744466954610242425949622189661397205911810506491541521894545539017316006654319743600784958072621645700360948441911888185215685024866658753418268322659456258406359248351972109111341075673674894715501889194588603983104240319466122714942287615797902834830927022784946477214836022734834815466709239674833393303650286661148845281629330712643999821197992581492967601623663446680717460032895950385152797305446870622762782201799756313979527592840177731679153405319907094723499868599750302552966173525305205217192173909503002365076318897909908345499284426428586305817105150517067994320136409247905395944845539315234734918880709657443525853631758006165013693297552154863106787460184501449243713708705366306361507259071543665122723902377354945149229623642587771488742998394702271655294439627677560383139031132844995959519674725825271234829924975378759431702449481492848678409046729372288501635366729361697404411862871607816498621500663612435969915680946133280805833350075460418602078200423099414251891965574121529990811013616032697408224630402050836532084353309727629430969598042639456818926189713008349903115309784951662998596958720837647081510516054123469818345821363125075189510388118111931852579652955767956364551754586553022129958037885763046935086238463642646988728539101781004562971758467937027753273056811761801568912034345213768420614786118047903500151605340834236034134027003772935312253129428990619578723605042578130316788926310575920416337786756498575261952538552379611376745319246972125038176709038581632810967550035928901973744071195517092386955180274179629104724476861153557165670429021381576437278213582848674490173286234126178646808430117910299835944329926938598740082683602736386560475534210724360325255231667488693042849516352894706153988872556978070014205946149240903794856396137933217418741816934875399243440749849208087044004853316053859218368066541118864405628047219821900363630586863525280746193580303586338190887703991085047697030967461285390570089062735135658285019113008118225268833361699559517143143577983729390126895379306237585356483570098302651884999694118680755501572465246599585260713571012204584960713674369587517684183457890718954797549387291083139622483630939908189650279709237884707439426682606698549175156757802606170618292522817628399109860383439538580838166851540122174907454914949335198702681666700982867067732138066898019631552959672176293803773658544384836387954674740986744642936300227923645525438184971938321641563794878229719644315477498686855201365171671453459721860645838911909031135437848497462803980260240609981219042392102056307374612590998260960159626300086254577641779953971637387075715796778047045263995411890771123173119616525145529889295964888349234182438019739106071478710067538727855956615791488741600820705549860645978106025555091626412917767293952314110451182409708607582227388425959983332852280252110977381390566302094957985359703528294507191573725134220909815710942204567993668844970175249813806368691665320215657155713645433971027512372884091530987931750961489621009736009915666255232575161860621871479349538177061049610844792722562525239003738474839308411196433429122883955520831314822371640017200346355276412291741277220213418980088159512039814276366994326764974500183397888981485009201559369299616439093176396038847447832100305769106050186511243130714264351617239244983894578190511272096591240707559494555418158028806146339225586525038432451915401463963251997637247530839068196172505303640565460575972838507791691422136011375656000617998038477429707987219717934248758281388819295885643204660342402614072055451210845769263005273097594118674161680429993158027984224110302361642879007652195843603838090142683039753333008631801913513326437881587034412074354275329911195555595929115551819814107820124600725447017306808743750831787093496185099883944273502336800464642222580073394916995040975725646574744998668524834725417313231419289643793677119677099314118794597546044100192204958109591795933242113683416020934521649554041075040289899196095437766302739733909671007373323389906105464423684614752825714898651921153711710193975345254035019649371795816766459574372675533287517742855321939191317633161476527306190264709546561553585694266705443664985160201801626853977921382131603460794695547418376080478568866368443028284923652524194327988707363589117945977807276177322129564178877700482030245498247982980995243081717298587626449816769810910098314411743698139168899884858586275123164042554282198330709582727911785315600440285175405389740863885414271321563836002125050224406867403680372243140129398148212727049032145847289986156358229033718811568665788528116794854520614725185537071924274000334184886254005057286362290807303477780621726709215853644104745635636166452781146349398526490185164715017925433083698397904727523324356016382401293596902976681112972971192889062624172812819813521759959178434882936409284042361511441544285505394232711777190500230808847936058773532880797018466589297044278330813357124383016505342953266519953490315748456783339034959391654193291782836185153152516299230797518035836596994948959016834365017843238100292636955351686811634282656031284864218497629029527264907734372754049620185846217771340187012958031403762439460846859925350729413766037514513726065138446951926569571188009672504927642149601395855422879819249942397702491159259865502129303832100173159054442843723056897955280214316795419463353290875209148392626545458454409341069379776913590069235986074842860856123675737100957344852499275708318087876756414661095891576416593117246951884280636350609269454942485977561773383056063793715972549577425016094289512682481486816061772375144140328603894212569648955743967058001300651029979395844529739408597165509627136421155927022996358958221829104670214096071902529232226135592637920877343107303651243189506388813142456768624625499679864936952165495129258464637790459515219168937101478091747501078171795411062902057132675004147208683592951248525595580526415992738722992680430582434800657922238170445297572383102745070276238810736902833670394822694647336313770063575627068678450179807104845002383777685243568089471484327637560116065080167526066582555015359856792370289397360007019645580083284541291335833137582567740603479619618840399864282513349472880861871644284855391002196812344678149043182983814041742714752145027000345040025463302400353481404004741626314792865560766921120407675324510470974872918772940658416780888504212384230861265217572985468796391683540320503003800805999083949254754117876965503456535740123528539098476198198279530644545744938013284762693005222997341389950901173638745137211026570917557811896960094711124017871240151328261749140772599022420802680896720620591106752082717472503800026947245907762423224843369666414129678700161515720776754069857612403283151065059909648900887262294560925961330416950645736292978353449847169717124465229468439304002561745988103432227082925212233079042989948682533862245400935098405463535494997039306791591729855317017920773976687672299571403189261966213822560672436711731302472705394356265884295330709999557568084663340251924889339324977873722166166016512815095272067633885371864160872177907751826250655248884974963118178645785225183778510927030276082626924893898182736568309973810855434869234307093228688483508178991394848356206147171757986905324264067419439129222144152668591380138053190268037981036449488880582670443596458408768723229881323154349441654241249302190838358729453096334597738126007957243289119135734762729360135278009431064182934297776388934391043756890121597914239934248954355989463527856922091312156127766018643097243524119040700154695805544275417272449303291561556884179660752914045226140064707575937016749331839701952530278254314377249870247782668731215372943253040939496738624930609927501514361161154851815637247116701068975565899075642570539895129204295215472703234073501889938440345204781592583068507420541327214998864546283480991881945224830716021154777998255475324288243392253391921682189094871162629814318120348136272306667543331709764225810897463581378549619612497953130672377516907706737756341131730191127944340614393319686771955285054015586944834960466787503744223651110663341505817766415326436495238868502597694917871715250109829344291063530577049571657039667632091143268695380022228983727536742039287306998573210295159115009021907143553515453666362727104757114220236406718869353371861936766809443211584087017336528528093674740530918217190094558367570177328893533785265815247012687498995153042051905077773499811248358308515728135397781632737949397362045278882227243704216103751450978107909167330130284804263355919823236369135864406641502543321942235108531836633964977413822483521823944232698878255842231423744737767486310669984884319432886343637222734143681634387180507137832647330062869375458199109235323599734511990034492053927371635001895755672496197215009806702170614386613099268358774343400923801254045773800870588357159231877434727399644255301438348365684292312302410563512929906673459887967830635887533381745184989051868256868466727406058513420778939324715429057209774054776744027810649897856628371550833308059128156233245447945178640257732750554026834099568307055246411401536834587075257465294791681153251928162663300839754580149620861093135267550242822661539133500030942782402460515803336045536479867537578196018081744819244895796641248493276780357445339899662175513186357577747744555027616947722616300025429516398137506931498523470978655886747649526808929442467076945709135977865961047868370986189363018773788346168732911639132370073415703756049672061739467087733924936761723184548910384999018053835203423478362514301936404317583805499703138293160577858737413906412724386290326465475752746510372196293253671492707738887734973883753666135546672011360232797306130820155307251040182921259412497515238272004713268034669420813040382976092198059931864447964087803529044346450566832213273849002433575006921209741107434258609077393088730376657506930202139492623683851454226454339297857538346233563584032955077111532442420139393836220595653405469274881490148589549753171114440673726457189434561997905975692364086431766556080373955040470943091759404751322915033202361301271999749459663232884773892323018066820222692790488043865920723479888933369554312428195714538024433971876405393405533294362970224898754051605930701370283444921336393862724513278015356219784985303992403526598671873248585935896267022861545895698737549688658339914168372561860248431786868731107910975324407434492409704969934258124417010653189598812469247045792911712947439846487314047830480656918312692051878993620266719010895894962120128035740403043895092811000883611687845551932637669038645047559710979780567707736074254601799159243104762714339136627473938896598176413057619781507403987010169178808983757096439056337933688594619725753586268466002689310778796899918164551489211296175763391574572502996223162126736427360285814791909703581177164698033823780008863408366888241001655983376684617306745855148092172076580324086290087805040762145634216592062455692770423539218285248819935211833638584347374962247971876066799785711069156196204887349118841564535190459073720052238444700134424164251124720766422493976964214944423678158020476182938585476789393064824114373033346817429858222879037519258696444412955770152395938858125747098952075432150791501540407010605077328998487439545969787238881175224842435996839012104142950682607675890439481482419986554338125757158154308270318699991862462970205333133503525343541996235053867520616281589125914628305600448798215116032429874044575373540007974127233879951318468208086020278303834237653094286251345967111651256177464520236894356295658988861552903960123428361475816736827064617560951199957471036048247055271297916391196549738462951061817525846700841728309200919195576435176162649747876985735898802028606218591249031578943649784839945631251616650921015072010065585837245469963455334923002486042139721545008240101238622694537646952382569339858384104271719570818597999999047827485121921172443151395425653985233499345847018380895979903253178508917319821749145035510120316343457838864527239503748844361128263306141499287053758223275844669928632083818430944230717460474439568201718537864593944377855300919643349816988711216373179489291166201035723469718890585017984503007037190328052152395702803712379150204567888360363462022907959209196445964594252346979195304694212625337346632607355332243439848132870510137267088493076539805941051727218541809616236949191352311218007316118193300803234888308531381584411146358045002651866372153829004786327898549234766110512681273441612308405461036022364318082207755714375445880101309715579168263578732540429307932702454533211087617369855437614395680230734567389683905381052705530895660512036578899017230807601218672318937255545168124986990936907158525887487151369289064838917751915201487947229870817808218865511067003260875281449393337306888941728992676767452598389406340477024281224523379530464847134503093420949289187699135276269458219474909380409382795825033134672187683732025643732497204457668072777169579490417140632519778292090017977903644532493370946071015955755191363004480719245537037339653711179891004004183360768598089303125505506957579538456495894578033767135538478782014874141014285038085699620764384402324008862744983684787290583147258663345040885764049019297243494065012499127778562251929416535962857101665777298572862478894436429533038484101186575718462855111591798907571122850902248346314065739758993280551338995096840623605962582346546216944814011480862846498499176884992700699618228864679527942792501867893674009050060056560554204911855574505761895060858407490558380741354229695632878879624607417371487318509864908800331333147267433654534025941689883112133150504573175878993559661645605058947121289878771182658548762727318686720426986339760336678333093595691225391303991122781848697682084366205156529427800834240318831454377207481312571503525659192919457748089281046876505131614756409934389784399520564835679686212553844900655927285791800334309178464004428598678966245826960035963556357804054594420074898086018080755701410197279284969024765092836038726646297401186532498077150427706746885383862274580597849095301897037850886807698981500158619508305117595271289723796934090849788204957062917275392303553836063698573944977534057895597574326275076308511021453656637991281645794746694995735069079139009571073125062187194941109121251427838141549107480747509989726196552977943533044746563991185896972820919434199652742928427901067613095231635004806613164970845996040315401248476361488893432403356163760889239304659742935435214090606178997104056898153652758726789894350479698509002911298194103909060807939493923246201390072024421507085922439347046343409630754207265014722726452379025957371520812284588999991278575229252561555880602429553633584831093783554529229229337294515837223179360947633495004929264532003248201002796297513456264566220160202822319171979670451395942168785669568531830254453456154154923039453650229275266657163370168159431596877204968359181315209284816761716564473013353176326228955741759070621903370518007466759851421827412920388466834429549430778179790515488520011937953592096154548290929559221174855899939479333106772963698948873588601355190491408719312319871405224050828303361740582155028296253165095748092508483712235007320251499069897134368631229706135949367857562287759388536174971647363733598599391849565518860067926996788339614113536256203064418693392582265424558248248690969210377434435725822979624715210596858014654532556580847930842862920577060778186032261517688429535916475437979942986248422965209560029833175573065741733080139759899988530177645862230039008769028924579049577846872371094736266839962751158624363239640491918150386904523249362910808560472283360044793394872032460212993009242052919431658073521173089446207710808976595096446870034983760671605228815977257708740972063910075817416869041800014813713316443974704789219178990651113322418026407462454020711281407637553079763091968736707659075874725492520406474622348314109813756525291141965763448468154195896056771046397329856122177282655652757385269411864481757207182369697949063289109800342449862401777918642364824090449645327987328146757645070859160831523044546108628116008412799660784214401910696927272317686042596646122719002786426003539820031392966650751157250259596427670113417698290493254111515187508751609804607629908585404322591049315775016150649693579127879350659637950934583598819414234554275261502108135638261036682520874754262733252804093644532152121286961517822178069353168204316727381089321053529546966058319872626290833166684985296031344468918224349142322822821927679528877752510904713335899597335502590376453303111424207844669070894650310711454358590497990506509859958381545078110428924483506279056073558156329060266755337288880763570753656189275496449745895553855834582778340045786965908319123188205900891238069647984321272523254491052912192816318805079920858700517236244315915504412452337235540116463752066196384846141691767464205723106474142844604376709976209638853779419342510910237078077023776579959238971480551807285712878395925807537789161423073970314647196252651585238999312298147742181645687681280326225826779164008750140797865011549907424843131492908946440786646312819899453309696776864911532908167108040333878864002880035925761540624894631595374570219746329570717004635733229501147301842602361984965529987717386110191191939125830750173813022154546401263100701399164304138412682212887428352241394077907863466013092602548235490102549708004244501132276175749843366039355522260833122898354745486633926307611320720824187065390562975531623878466264392302023847799256733628807166456533363977738326918490557596772424491522878515470338300768332179103623064128987478722848956172198463093450155036365950055169157217336464175282485725333753077691950240685714035097486173866180602102761951096259820355206836296866175024366001493452145966379364297489384371274063637979798716538452293558359292151266826504133551746654149205540789118571821895425321479709922950838377019580721969695169454808994399849515333149342486792168269838591976038191772219946545916396155405949040531636167730977148617651090454317347246475688568026437693117664689584108093291293792037777620543112387665903632497588581138486606917985404421773436661064778354604898240226306051597622868100226044486231829392908810805817356672072798483399867203630051650778716488194359064539479079353761531049741404743365424548088365509747858853263488763746957244944135636785268336625609047714280798772468236123657820240680621863686071931311376598907516540118874624972565456104276034031859533988059218644584078117320080719913616305499342396994512950278367366341831875555175972583186433158420470076665959822299411745098075203258253706827021267710064735212789648682083296497979215414407478248030028299812768751853984616811714052587423895537692602474399150621811304317279655905214148385746294051318137638410900171153773088552121021991317057957281313341240367151444299004896575989117320475478180523856359484343580759924324677571694111769119838306887953046499598076224873271294559809250954443826781868596209328397872743181113123329961101424205557977005914092465441459440918659213130005556326638143957457880782905505538997743884078738452032924472630363190475568186567236976436547967738513249894366342400593567095410223088037189408531218395174790098281608113386750674219313360322989192611355819877325176701651206170962688177349877957904750094596072607679649191369702462633953811632503075713308137243345242730099478162374135057553300543580626902209441362234345415841109073386318598617391622571006695109549280156579908807706870941614044661058705417203124062168217404709107125591016073527588641256129141513385339690269660486180165108561259937636003634081738970320768789866081930889006587848454201261051663172085864350540380177421495087447290985775453058319698103195613959349752734481153144999887038185378561315160141951448773114957105183642584179288795007925534706032647639259429857229731828058244971954709716813005488946680177815297035490018769743167687984689780517439267238760570956343176789106929191120484137680147215060213496731477675056641420093278566743575873369989864531545507496753369161673962954888148392491597922016783289955707439969163105258256487369983594068191701852041660189619401257386950259405728185673787450640294869818013209770017940923083715713797211257910646085606688798732081337788813614884566808657258472698133700902662022783072735183338033448713314070617568886657473559747088161292399775511854826296269513917098328440340694066365200536756111073527732097593947473350341001408993212487786919503098705144509481244532903621350554976932646288896269414115198165219845874479484551454786737022091146041462852452445791072767617082820691293689996662333411844468617220770167700872732251529490696636704488635603948717838965994291988874760776046584440464672837411772841439048039733882232503463605021048535889193319657570741820234073770730988985308062662917247432051885383377852192375147490676843015323481987347806407842136115864616263833658612852339248880195230818227011899714589667105131153237972129780064381961413221584424856918874576726078168437172387348038776741763552910808234886775624909107048206630810932009348650346792178982121760898250835190588299027510858062932754295469336768511275471429709125948198981571838768728508537250320001605282307116309372931248037415320005316827947279870316679226308212285665068028488874345092268475705167693989424826157845402541442576980344552909142005212815868175502590133499462208555750067668324102373588398635354522053054713687106913355112294298129793746518784134451753966299407478899482924356424190472066866588607354685593149766842437497395376888859062475685323671316084591010517833404153981237646614387101447746655182023002820149203844935967634821769720248996195658918677381167225917527857352303207139778801206880209030145171972226747533358687535857053070116369079217277519576624931410978217972309526155093066101913290366579504857044227352745769957002899508208083836734843787932510324920873159826858245658786148652086372173293028529109065661580616037095956652636087314174845330883673358683859524452009805067848962705048879350552000181876961397656103419680369461074836647000621940353268161498022482327237649362177220537245875348808879952579441990477069385889442756506632016482774499031694643998353203600425972927599469741906609861605798904794196630926053866095070291500811209999041989068366789214331046133709517115098625860222788981864221050103846691526170425267498327792819293739480317173427855068703518864934585367300570722505930781051128753603633331765235806263198405117821796449194422135700671104435398503264745277460526545140959326843238801096280045103713822403332809573083341678915656808605322479903148417279868035233205033095381611415790916555996082453868641065183792094148798643829558205703636355295865465257903127647823957414489862020208766839122497215382672546507448267037461732131601054773893773056501886400961465655171809493483591800210926708943182525741449339679921298846993067216143531845696845740651538783768435712503419122282932668730899735121381024213190746710450006953200487598230261588493048616974441496070368036237704919449765135044485146895102756031732797118286245525345532709626238305117900312266042393069950790152326790069571832277376487015991915243460346206571043418491957301643430197870530431602397990975307400097351146657200256999382579499944233763706049366065273071567811507630065713312221965178872203830677759475109806068887001926185182273155597592457281138026707955326840996985154671409260932585062211121955812192191935358129764304637047841932912711515229618791450256365347900133364768112132506038574068362825941234833651645288185952781392818165273521785105042329249311703544537615779159146267050987391409824059573393801474095140253660343785549886491340456811230729535640790414778835384595364943582284027305153528610180344505354790448935514757191193347490834389958461203515598230943164704536763454600196763286984788000513976719007886477524377586978911648039547696043474867009600125305455166206976394223619067334346220875041496868815641445957809069402586660127599392493878181777079986779081607343519137696918821927598889695910410381690575447188102346442625847336820794600862948411288072169350639375881063034764249135776937538064692311823630437646718790076576154359524316786898619155901764441733115316347684719278121545090809753953626018919842259868472698232502598352269844521279461249137536657597439132066950776983711302105087415754391810446310821820706059189733987950669692808415510734967953083776638814311101544667499344969170989032920564533151978994261098586996503517919383945422828290074882095376406816306658208642195462835983095885691242085743988271175029795106985030292601379882554683623688564901945379364792485911965624307478164241634608168079540151372395000717992065087169240740659130320046961278123720186496196611417204738019754270704268829536537230510033604966993973142064738598832601548382352157931612743827265504646267529801022279904927575828976625469230960072447341356846211294665839031819301637452747334624177725544601713285199050965089670132494871730699287642215492288602141062285013686243755316374287449218642579426584672838339107235539922454492444602731834578315936048006154731165971227500071766593600940476437638495191058324070822110573925562501444080487961218346188075243418273944128395875023199820322895937036740249371818921332891413587960564112686043934744005295473694250824410529217058220584839020718040822267903975355477011752018331758210491078883109564295515746547156026724666458628359857019085281050365308875611560018583565454714052668607523410387123183785571442928916544014560799789326592424297453581840315792882126277887326461541664722921150071002821492171320726191370677531949306539700942933769531684771480104624591593444347542170756558053174526250774482416466291647335711784691796204876772437824555126025026592428623486548199131825223386953964078298868147909350061612955122012009168514967580294609452404777511062612851471140415728263679062976524411961582116442140198219276149543216487623271834523766054420069759160063139740344637025985056415366071584750083622296259570045558638491805333401785343062585523107999162815927747580636139697549123576676826743161463353370231286517014956667480626613486747985484620555444854038145571365396829079382037987684489731311634140502026499191341766227432024657096740123287427368106438890753073153388777815781884629969645438067383119699999691579943163907091280154963530299249021591194644074158509903430059094102604550350822473873496718138085760409805185593757456168473154836445302379659224829223146342162677942033432812420003287709961002366736393670256794434776580028678463156030485853833934172605978199599545436580926763686581910752726856194566479239645159012624695383437778856002408252391084976744848355269831580477931012664716716535747840733106973248478510282745723550007893841036652385021134371227298870185154752989076192632202410925424689662394598974007195233942066479521850515276746516224797356803316814507814194989371106345237928665457490943215247900187434493687604823798787127040235693230531094225962476014544564045732495191612295423548068388392961846820053534329584734551160146046155026861777761137377610245205855967163453187675436637973154153145150809065638543508923161269324862002424081052828222542874232462038340358652779814966651923284035956071678399654284066424731029754370427581456174785485034747218448397087783873159571456412541154043716798273108217458050004542653436946067048253360019255645960369585330581892895018230412128031574243613428914918048960757911188609004437290760341128984715002947205963876093399975137544119871607077461516472534440650150724146338928645390129624240901260199491267208321317145715133057717337158430937735337048010872184495659157580552818217795240838575387824406041554995737462451216925600576994009434937142256466198976454392076929693018979500623824099734418783960310338551159074600474909235123295149208505351518769342352306933839623588026995381653183965315922172533526716780399881000033089589095555943093241648241336667333649814356687209412082595817965026034333134960948703617513466659762794427990620208213624912647522170644340510562147223473258700240742348502457469252500175058013974583272106298623695204264285044799434299609801005216724833019834547637123422671699361029361211605825409126139125303384721796606296304915268403807270469860412301709598878109665473865744700907307719456830634210617592825629740359391459592660292951091819292659509481504551210143267945572696235190825840312298616498839614097198611827126122269872914586135719438646578049644200488919013968768072557843713033121306487512384935134911199623226643237917903252733204705638603366911254473874970258457281462095608483983994418719433947587302398088530536778408135448516434077908799161158623411762261948780670081838209640442874211444698666551459024622717714496014780954598838224182322403031570945848734719065595385313060552513225955782798831457677162701535752899244160271258483517975594719600315160890862397848556825311091653340449344121962395950418719155619769784114385284161387775904005671637058810288465396482895911466822284147540512436616842408549249694553794328009912158765100996167618828363456898593077705299054821027252967855018436958158375009082980987190504485744213945904103639328544510922276620186361689942126312973708663127136119027678109762151362828250715001955234848330326063574994254925040495898216046968690143840471309479913752365736629956886463618422482189671426714210021360912748418801577817281884663774764164248384316512286617291298008706569626798990477401541845696943902822662507058597990195907089763332517767599371250829463236398262131030579074004591920887941618382863602952358712530160181481050085073245336264691759006206079572234454105672724063551659829074373323652906018616178168553662333463224886047501306518607504086361615192662869354228429365910817770327146242194079009263037402827067472855728425514398450654312318192716134870018504682049293446273353302379283387278611891834733841770799960795680445166655430135364986140025793152920686717536061655317060426894312380044658421227500239664931791528050613834783669916659639543473401941004778839093790986616890036253332244319459670691701158717369963909093418066627584066829161313658284669585096263741769082331103999827857979856728016812266424050545260883361554447303968457296866044873602573738639406689339755247356239779564172700292924567074287824156447344286263547083103280221466029365208258623961404465178437258212459552629080228062986460631763335478389777744442735804160750706173706177205572117819156980974358724201315412966490867414971376334481151306131531888792915863474568838044444609350862797431344818122369679359512487981249658778718664560227380698881501527721538101820386177499396760871258978853984947659563490966233004405749280606825285612951304000746124818319741495434895506222681538478782080516379828446454606502156110580469955741327738426811618179307336300613620348672976141646099125607498309483716581107053084653338682446361701677682636453046216428416585106664737208033442435277803467378172842996747187645630232100808898461425533444535986205114386076867606653997991951279198393059278534891241794270451999164969150181506801562035735231944671814914236560530503297006259240221092515316955534327392884768609739472561051013942495101459234611123989609493084924329386620792886792041163974833165045290059786380695642417936503270372805564872280251239136634010091135088196342380249004830799856733878708636803369108654189340148106181052090597113657459006802748535184360091515299678395110468738608470394261269310920626001023059445112897833595337410293507215614644164757173264945637398042687476820708104255967066632817638359253813773616024276776028720914185403126280212549541710358298387345985230423080119015313793793299357378157714715763385681937191153925410048258041463887597583271399238845837229444654549433184948233280157460050900397071821108878581578266888356308880236927540250215603071557764815683677877090898226557387358470902692454240634104227123743590140210736765589482981321984445236296882487285784145184581237696402040502598375791351876337124807870916089851777257719201410550244584738362994776243122393616164322415518151130780795817476248496516581246175500288470937762668819989991808263773568418149448302099917640699806516082864641307044359853879698722276785637479556874451076303999970643033029440548843890615863303806796268256093039425002586066236916857774566836213882746623431777673830888966925195199407479340143070032612499323728614561402562429742891955025538013863097517248237642550233165350371866677913576234525820688991533121294648082491262552876777773513083950608769755664032101097189040277978041848552852297781028110556011524937011098785178034228251750041884277924056945803351061461941195536355098839528478822829081201765061911426334479610283280871727897027790518660019940314548293655484338019444820869157040620300131524775256531429014800031430705676641765395679770542415523370948111048017585926275588579391617808481703346931366689961382253329051909767409009992814582823973213262258694017120909285888539569960621456339907327286738648972186225420289789969319876502815905847150263381969451208928666082509578638340443212893934082178220704355610364615938854020802880700909223015739349540857291779785901169979915045190373098234601673955447259919980688153530077003461934652581379211842359834425975298217560378188129973852654514915047821919589638627819515274186477909612640020458459100521513367530943678301608575592357370159850985438127146513735905447840583885317931625713074657424714972571456891278266857694304632973091863119958093999834272514920280375185800773980906306154941160208621437509655153810245483368247411485588975380495173395209022152404133045195775167387879189642421491187994223703781865570224256951401339242983379507705006636511005626599590755684048652066354261785124075097714893278839523998280108168367776428510697263099382600639393063625308696948751249431759581324454054294212312804628196007301866803990955976830271409508269683788113958211440331113924080652719736539835713178711790371523476442788029117729809925442631967462783273789326019750680839801654569732561346664544387520725072524859357667382266047743250997746055670994657485052243438247177496090314850869053969643556615300191775521756193744475750457297671996903444400598080345876534531871558838224854035111054324466911636144642073502835833134596730871951232230484320652083751586467010396408728329882654954601903022712183180741883664695714743619960612366846212125501203315448209646285802247259985066995526708914354874457085140005544753472263574143803043036161315763940326545889282934081209728951402224558911344346433469533911257053881998966747911963981725884847963735763525429688654205579624656556749787287940176957269119438476495421618034776256673536797240658799012090313617465431703650646414383062423215150515017553641693611680511734459157395837112171098962229667928411529980776950900729355769812317786333976951847537743287544635671964075159066996902112681599002406517971021816291250792202392323827097611220815888496615536048262105949601235159581257056616840741553870210917403767443166031199824864369809050767745851170871884321379109544540299061065273922954828785750972206530212190087710419547968596901716101651919053571896951605578064407075488894249544484368858527699983595958598147900413376289467883275667069058764027323848056741268533785234182741535776617718787406216074682260982980411302223020652955194811116403146396745208671543261935652868832901414220579281589561513742006071517550766924133421644301498827412236648755343415658962818435503038953057872498771849623979411695478250895284220751898930584647403397223326998125061996077397259617804383971435422691203207650472009593619144274270700252830649987524967671796459472513497791188458388841861141282304667621548274148041266071230599085490222210091845362649933550478671248037917469228991827106040114676976091611530287523793954866697807421947910740565086076708157126795074272625210002206355704772975660766006666890297065792655355009988155388462187537390925964221608020652563359894098686196297559625736714910297870366757000855849718064642904561714032752657115255789904833327203700258855745271899636473453066323470224121664705297112405568370818952588937451766365358451786984384777162122832803939815321591423082134110674106459602290632785424811938783472605848847595787202125057894614029499997514472889272353895425451571422718218591945195003775902586133504403448778925821577590596733423978832262277742228901754030107883966901424517760810129947876472492915655748563927506610063832849183944501886989071357874511294811792519588387388848281021384331426850231227299699852651665559028562126352893582222559307283358095039735716745974493925366030126144480403039190675347177376604146739723889575184914118228471868170037315079808630826915907639821693956541061546206474782106582353197183909702236699292466565319461723045322984950472857441911809428004010188210623865838961941149191894074295151088220940467047067680150599170369446024001663649407247236301920081564477173886389849723154719875247231512751724525184209223944317273620017238863136900204544049541189346815006207073746040051435931342378442711772013296383387469034911900706514823260332874335825153158505238909002377528810324579487673528568857210874558164044595893383086514202407815201127430936890727315972974304365503681068227658499020940680338118097141576853306926989135291303855159072093179560354857160205319368656442255249392545843022679009736132173769879447301128573562723458314052412440992553972924044944919036665869749183780082625429610588152487922658295025093396406404730158026374900998070931638152600215104490800519824735780618990541504323775572368138333085840903531733543949024423297794336227801033381234931104031942781783411086921870551971987180232010337135980545597291079260266106123595050630393069948930791867786028269897146699425030736588646336270968951202146052019207917784597443989117369177772959352499041422066570424537546652321283056546212532608441848721256333528461412006659226562469544991211686531025905609980525588009309081760262483287599632924849043926960927531933366966983858394050549860008143636483071279255401272715864340265005856826076596680186086149575700963388904500245843481562588541184002666030953101197701562204155991878291833844733234137384495113456796739633017184758732273909952886090825879974312680374152356303206517018029950664388078008096250883387233045559187744552451725715901739996052003307725989242165968136457241010947882351771651580947833187558615677210016055938818962571997407797556958320477618014368137210752703133742975932505392070626321682675763832988278843011552210451589830766444911231676564598685762189837288034772582639928454747946068921733760426881743375046541300857908741557535629043978493562334032765167219054956326391306467605141248070699200467523837451348971596301603814575006250413079532998093562939955649363714474141179767423958811710412932151439128779047327032071712409572848507488886984414082276461064802203277156811769726563111120955645351496194347053663715998923292020171892904312206885073780804466594765093564432131952673723076894942073360028176263130169345384241200000160568176924323425344575317848306644543356423000088938327702940412083656121554374775060941109085146030066501302789956550506826753046873745418787563441850454678375886475024051763094040768431086505192401787839302870865392480090484119366062798166343700350979033415497507858310762156810582154652475505210443142621063989031175223082376509096625924014188290734214746617938808843114195221180308068392994281113078884844820332182593846491518681219067638997831705836149612461344903338904490983804568449345985980730247549839246456625395748066103594085556154044598828544552760784238753799039109561544221115739555846664788927470612374668592352927094980718707844952719525420925481158703027450631349797913058926304477088614131827162376964747837360307452646423384400511563988068906884949901508600816828162216936934280368064368583617938068471483300626736096531328480987952689602535826065638807110420386608115479344927738749042548059206023850920955655293553180356501538826315455077205300419133004463648937951036817650960271231165417976634938265481485696088568457030166415584594255673025483586985894145255164665089551764886326099054720134203564993182020433522462628705639921983268167327584220499121813666845923430547609211028621369954947614024866469070932831241512433937158739892391301298657441265055217190768729201396461334530047010990608743720469926031500182227810695676867733310676829610599919291681501790145398292655033290588286859248326333334009691723291559633471603496703765824262069902100158088191715653637916740909866175000271038680451938630586315231496537072523988713320902981610584370966270169917920532789075126000038137619251722540654434431775607310644844143165150093915284505963434693966554650980361622027300602529704502877342212268104799649988858113021244327908624675413525128178447901024264820147252780402500986410403068434531738648886078632088182218841051091501419317852788939976405916997764371904521083740798433427286596741003589735557969528383133677837923779971089161616705222238950439488560150209835503849333806947871653456332998941335617542001591858642464227677889879710025229745307343124734288369319467089953691013468814143212301526496712870156644597304392514255379127007770445424551563141330179061891962060366762056263901232620798738872608063838366498118093305100729287296010905347813654839339786634036465545075953554341319776537192781217527208963036814582886556747212122725082683903641764789382537616645560182279827581916807019917938522259977656117499587893556023252288421722958984605356492275280315509495630689193344457689507702812086374958119206878914973247312353630384644799400169315225041427790925947676927579225536484937606490262386230603653179583271508222501976455515880627246100510313801243926690401804221584632420320703956961361380224326155515156256608035107516157925425431475185707212500955412703200068056119725252221854404885985031147476257102323974319422215976992606965129695283573602284466549592570810502165836820573188574589992307870170857548570526528991657741227915352070516865934688910979357097544767081510486201653643981118173888861964540413643538312256155563577705739152417373927618323711586307402991130856522534733822448060606568155699941183640154997290865486109153175380209336727206559883125978665171961688662765019583600794608536843121955412649008281126123462359084744293006836907868127885400393384895477012619723410461429116607873542664827664262483209625115034149483133542869515924738956563444731533905552303453815269471604658266016416269911387062123019914635591351443913857281473007082037810113023700698357987636826285774098618310935928566956615935104839149573267676302110956884441087762740912151601625576084535792195211904496397420365348190335730232404533223820558907580979169676438929955350281200418378897679852119213542766732421915484663311847445642135675452574861757013710548779464688887188943375971265416311691260681133617967897603431607934852379063997633689675026972664082919984318086431782652559696437056834680358814121312985367681361624065269742184575036132364285283832190954818747979129416872903323544117674631058223501511458285676279783057286931606224771673061542143914776365175648105143401410895590461500287132518660714242587184329488844848533755052646825689258395833025559479436648700148911878079357888863670703555596461018746267164696518746566329505974961554396599482019889875401683317618160992709432444227815373576879715362566893113550148023623480245368250371607976972823353400484826861369341136361072974654343099547533477223761523236458211625013532590414477921157423795735638527074463319933929048837124344267131847460571517214579226489530575453300431900609976583265139215280878910296388500380933456105237864292765866468460954639308634823910566043324766501069131560124125601818105964165840893764382098569823623929843161720945114615953697725937423387219543239848436213893135813151002811951300822761597715171086698187940832002954849802877926921909982602533617334108739937947142544181462415109977535709379611227094059196790561273330264077361807497267236206312334320894155705579538369004229257672392015935445870070585130836192716072113197477491644167208594729573776608658925632407919314830022055139796153321109713186898438820816409265392165772718771754539978837799175125069644217318419143401119330631452787288009176583204517958610720225462995332169656981312552559398758696893233177271487248521766528438845755423038520214815061521279450973373780027309666376108006512244562118955503143814194844386638357202054664352507045547222765863612435436352935885006418452974386943720285233441709569539021533322951362566781994977850484153817610013356698319463646713874756939003945977424209382713430673512672366882019809385237700509399559182851846887603616468190698496771343617713795635231841287145462304622371711511635411217686705212359944595041253797699844719284385846506895941842059630925514443694715171137270166645697345558693001294439900488558664942190017065347726858160495032421690629863451071017025686618818770023518932386140715836053250936959503758782419799661547068499130693170118858144543681422770233310436396572523769088441868853481594299002768112076559679363743208372231918340143584797698882227250568162365033029873828269334352618482084292643577611339991693944881762088063177377543178559396509483178593156638188747349534259135829360711353542430518212703205158493612922901048592331520365334718759240543257505656314273272724555753465101716985122660364999152688065950267923211274379319546755266605508545904345004992690407942193439110702614354158965654982982928517535665290702041264157228055040060960105010016518989065939349639593796602236764153413004679970961617540112286812426600580034213415079206043125128987651176590200000232694359179396074917808286778886403268694004020575812784242346745233406120652216070710247050470961866365472197140893785103926237420981220860595523871766118232075051013092568962506855951030244439195080013740872065259640236635575260701363447274136746100174685847342831998634900001055967288548113568774337249602062325544086168260115279197458939927066501793800541883646164759842619804186818352672111938369982539983712317230120026349832670905332022197391068261730365005616786567380083447427685267077198259040372306716101869892718285141270183188137673697963044994837199264378184717541096016077094177146935554070277927462973901339769144549678669429359651345080017303816418383283264733083997602195399141271273110148408350715462730252436695440710090924049165636172055947278366718383252358946574428741539587464428959351261641373602687883813153452805285670393467677016485891169654021920331670412401628001548878005267129244441688592989643837721465990414419762157954937778384232193767162814575842460946256259159555174527412720075859349486164476937655050455345006099954602415023972171521337337446967973925609188984405137736195496689204351769666793807968761290790379595480971318523553335656575484406943044162397761099538456867863081042430537410465640479655370816161155593229954545498312011507950403899812481928547439854602348415901442813889995238177833128939879575629521079665729127121250470557860920026038825635988608389864775512171420756408030432357672943568206153468143221215467647109691318882910769947117859253744709576470944936006920286728789228832357245456981661685150098939297427152993538124107264646959795072196854464751527163596886448692517094576296047095663419858814172133401396332288235255539662260393463248850300085208604178447195880997117466534817638452566034855891301527941910592646948293689736980902373643825367587695204819541260536594440326882526079807074619151703915655206211030875067856896022924704411019737034702206421201350342329680504169377087141448920489890714194969709013560721356019268923670735170427232148452100253258222471823789892222076475447964979296416183971612720250195511062651746792456440402759285841705844397549543929332844593151087469913781288766564088586915100066969549955333574893063551439817432383019838650914488197162013465423848178683823109708062227537476979567413568226896454539900167565097305827193683161771387689422773541944775700349847644554137308948184104404504627205750616873507462174704076074681675133603525140411838547337239511232616098470989292687502587321383020124262452060603369797911047211850323812823789185659705076242686052405799708614819145045602675901025737711186963585877024313821799380025950585916194114999714425217067284652231612109923054755638877235506245896931773978733177962575767896167327137402904354344947234095947587122195366025682058708669180321099099458299566439925936183040649938622068515030491150694551753362782110899578886630056526021186692819116203181002139966966390938110931538762295374490938523093303548868028247450838445694154559296629852523192118863799545571054118814087638418279485990276308885229673858091881573963602293454305566963430095335810070427389265922468356465512732216950776052184396083245407767814128431879944999729367674896266701833890872083996182438211642080620403476407757870364893683728599411410288369053137120379462678556688775349198127621703508077070483720908403540808520173412550276818074562979103600375442605895101036559836392559363321993002743318042194180453348465914614849848550909565050062510265748766454785485509391226263805240937066504706873702016827619391929782863112753805287041017353147562734817422726894055707269951309884470516654537767201974687825497748305569717143940187951881302629200133273582025564589541900514964443368837374682719238791094864240163961811392007579666116485382216335215364025126963082044066707894204004218026764265630688271902376151890454648396632890719722523996234870556313035780944326734383109351075850272111809205230715648274350096912445101457965814169830607549825145914015099956299088955244828248836162505524586321393772246469913541896332936245596514230548040826237220427237123381437889709319901932162352720172856695771288634868281094823102028251274652424803535876224901469051609876495005580580885014221840882817648294327402429604219330423684157392576203409380469784928512843254852555028725700322248129410875622105232971358058175345135049580904394169325386881962740310752131040436959771618675146669187930146360502938147216705194907336262427958171132586062381418328430168755217972861241187516083295955007643861441064326143324330104371573955763302736735732648150806516149959346972718711712092981590244715093516475178921356715096559533696296025694906930247485427619983957376013984294858094265494890700440380510448109996864684776346909157544907016732817677382706248439039733670157093071559163107796083456542684323191258789557444710616937240126999466592784534883312004919720060557618529677196919281179457086391953771068651558753074489229368624421693435262994596467352845726412457116934081756020517360359690358146327608384524408218760061835331570692743574004944488209189691060253023332313552512275393077050836881742582492778818554704625174013322018569460014066806053210016783266121493174730664610741852865459847402225394762257499947025713945711243637076827279979302840192714235746051400345182676979148529478404495676169293220552605773736442677978063265429981341098479560965787568558773400303527346110961558970183235718249058354306946567728871151544975794846709187633124558730658268455466428813356288930241475389914504428847997054625799255729521742448127706390103777957110476547038193655591770289209852397252260787909633185221311958471658617043842345368269689804770678191960653222627879222428343604274564446115069510424646553041864945952167929054581528387534384826245402721037265157312972696710385251013644041036235579011459310496270232739079343029130678620592958127096368654136325811990429226382676346422070627572948941422685615905134516542485653539655471389772425589074613870442512784260888452039384221288491605280709363591462893388277655668256292453500138373901224734459166639689021165444101116920730811190479286193951207937982310155953943706768521109953210203766709576996106906405588923651149858662081724905142552472722664113640681100846173955309394808774894122882604604485783358721780531758410252816031556119701042223466210491559648655230826589582652061335673693099078602260942717022789318321166517248578111660361882724873910343603695057545328943735068629863357239819219233692645716614848015121651685942574978167101442531246172661581418709110421277120697324459808201408576828579851762680928665877603297375676420926690146279578389120197231744332433274870023865029596041969021597259084341874864734010610918509447251447110404848825442810065472338327970069751553077873036541013205872982992955966141673398182184256933851112740777944489467241711759028580627532073342421765915217490659908233013583286494468176016165977318732998998170180074133360685176266960510545526112902374610682122090536108944074914396243372723273094423113974953127754450038688925329642562035688619985333769994719134896360141628433807473865084204160288476794579980159452249090088724844613913254241298297335151981859243799475326457404292974916547809868259126002261446607303344203018878285403141439636520521733329931500611513074444261829383242105975979670675044805668559226892934351783535046964854994602831694874756803892948594597751090356939376315254733802027118411123867975729099660216676774432491000062041948029275080539533832727235266411188014395307009326955750242289828049602274702037869629012696529479062740683046400390242576971802167552870727706661633872030874656694240127271342727567689967247621202259351625821529398104633865690749930376998774825550891237511402083668216718067733355912737637601836139744594105607876496787627720016831915442769443738680784774491552637543116589283554835582838842339058348466510638147390739254536725730543872324916306539346454108060761898269631354536946279640702258293151768002951406096878382004990788110198275271418962480343661057908630618402460886630841597322865601402001720422814114469992277265261864585386195382660821845162506549029750918405966937324993591456727684992953571573764560394607251471682736146955015274557050775834117362202843125950267237306507187290554988492203655992501925719539390046036107033729627523194480372543750535598067999561427083759433287023739748044179958513287090164680514862975633124868170618802689005750550258212477399710917733293101267585353035064834996414691737286563209260898580125373334372579588476653083344825655062361713604992182337362724493408303006850555361904899604043204490619206519428981366423470195492497043158316754039516818718403508546621580229865065793580877017351374755500580934931463090958268710078285190678662567370823699122857235993547520515818023515613648357410787670765215321778284469903949873938761805740869587861009613454253409776732163335431759006914419442138371807537680997936739770638501789186811388843928320487936307663319807639870939514659528460143068481995876980995549479168968042155683508189832090140060130833830432519389967756911234020782400358113134795360661006385937215540605761197957063887955537996523541603290079517019410616660566768555411988177136983132386022979920888421154371050489805524804524909460524062035650661405032215540250636564982813807689664245063019507315175772816387793901112427170238295883116777205557555596047552194133092918014081400083535821570262302867214827240571166706693518694735781145396290222983988745667780658575063818821358131143973373647603982398855659871343945333472007917790378905660674971007532406163832474211717231986488943302807550480873237763003838190328489337970146471611131525913487952012021675705619798990011987540523030898164160859545393348941476178142958996728632571593835969180857219277099791934707698033465911422801184904922619179944000333161763152651423747486700076240409724719912559258282562984851176540900384989112835224492815627494858088797132569389900549407721158682348225053875427920977376981907210380220716887298612582416176908866502801610030215409908007058154511355910180497958539708259998888586749832754595837887194655055270779377114589892886693611871864714868140730761783017601816143615737695314137362283302291452643646762897821813614925584102536891500386652037271965408040635688637752859527578869821906477518778788695520761151919138762476248873262331409134993393480258372852399524522179692014494494861578874212446069784375507918968431736250542798756773759167758238049476643931255881487812109582056311939799343244743286540996013820014576339751220638017382320946764123188351830224149957359803298550796402726755617643252411890225810331409671523647020652348475219410729289331328047034513465827775968856559709684924050223771754903187050917583586083256643532033829088704970241698240970538168411781366688666317741833361419017130284231647167091089020808275928328940153940934568484873676381689373484135702442433558306120827239946013025220214588007585558329822393552891166178980757992798904228139778874700946523068417924339884291299239056133067013930905709921741147424989415924375360250635697096411134570019177589904699790972277870274628386563835011444778192253192966923984548328482395520755409205608233306597637290057570159798233349337503770670402684681569194551393598848655113680311505570823438885471099320451014006828014761596579485288592269157672116648238702040202854549152604091796942182614091481445225731118273667248376752373309577194637325336011503781088534547898811773855403807184177679553778369880419135930839155091174250763766783931852657804116003603334995253013947889163646250436503374586940643789686496368854551387757409822607901635062624182310787086397810308169032034766319154364348113687925302430050741162082921377475766985223114819112899166250034720520894055575140094210165345385611804849008464996108607970705594908371946131294247521618651516950516288147395794509844953565373445339140413321354365743741349278010849462532738366442945356289287104149381719599152459959133972332723694029445989696184582255646278033771604673866463227401246662171197663573923813686755093129555938053443563434925790770129288606020303874993545802397799403961023810203584262923991058168140272413284030941626168902984639230546379007856588157076141061904346496879330376502453822792814680467830428392843680890693999239786755200921405420012575975745102259423652531838780223244491631294961348101442480945787961651540613595685961738557109488296777801743110837638563137211893177178409419422686036619850157695766580136180186560423299472536356914925185245815308831314388855436600356596752590539923260485304730843939765467469526101435441184922531625001132510783019596504343423701015575771873913066104795762562723775165146233384738528601053596965503066999430007529906023620730203333298594300933347854089237511909401502335729445372341073681987939273370359786403500871759662118708353179462939682191043363914524205862688030156730983601780601855825731012209409999138784299972163302742397508005101515965013239332962385490289963025656623572388886336779166478290119950980377807031865604916478363536248076282765312335999156086276322666679632771881814593861942291286247776408221517240942211220760484533134516174153446751021583269358643629098187828058519814206053795905488654665076542467549871740936338245275316825230023682220848877601319247155760204413399138814802865169357996059072595807301140895938650722114774477656984020110075654027681511733112923766315600192143224751837110804459143337563259944161000069632800707748559704516694775309471654503865956843766769626610567948935318310815118925787120063408944554316454172955705687792138980740862627474672416920012558308262953469121772997879337663910540566250654017430202547054474545858703637429413334086910996290403213981212711769253411779294155184414724861411773509860861700013769111951290305171483167625865973659248612758557441576692686786260695716610479826275460554520585134306499122305956828670615403041084702539723386750133560135688907278070683639599295698616318427300548153692180827656545883350213545021559854786535983565526700910446449516090062079969260269042348849146899595710645606021125794859458187676027060701922493532959591093609577231814507219159816945050104505802410081955254081898163851469013837571242186592414310415831035767857257874850704621328636600015134629233962421177735034466424630809419903288270840424263988610439005106263640263627017179548905279778925349627001320157663010215828496362255556268338876282572122039398809705720064911305433576984104325060718177415147375742273242722094093265400764302798850349453378227019952214412776004050598678935460350495607200611465271727406631358120189654799275170522938936959612414721644485388056469501513178200096779488384938710224963928765810311684425394602000837947121426699378834795541056559924822500612744590914286407263357349394898241544945748236894203612948991992865811700673501142160165674129419883720713035282881920810092171129048345154290659438802617300405357133234978493788922367571968378820651530356266774840768223083032026020321207131197935781844720202739298183987642842686345958373732386377875892411838561466631450646351663998846397002036053718843806507416669310244837602142780376983319531646419238592842494707422442777165590894351002777307823335479663159727982555443412862730689538058777272866311098596303621881054897100487320615926035162091570282406536103708176346614412603938017863461371819733563063325530087448351905297662107976145340641435628038820160911419993701518660783815201612491329132552222419448380059425418496809252277505021599522246910680099734969662407332688911391021130561047649562962317431465367100996316929940579758814980005658155509828347912639784887862928126261973674226752423264844261613985197765471336849686808596019929007192749214444371265693528565512207214475981769046516758513174645062601085216425239560954537295939781093825516306591313425313159185059027712586226123340921481068087190240028816000111386156847244565646269127329304540802441548125397612286808748416181516633061608431183443064211680259600551837626642018053451625169099876157277061473384338069541468518635207483679619427179999314100356643325487634321706956360075477671202239439997305513233998214584433405014345653557729687638751099919955832990719721937208220059442211371844178353069546174226050343150796611636834339264411941938995700093789186263046467055943973244872763306345825623622893901285599594784176937911891191091403046670950973804619666869239134879303964297414436937103179759707378512766571108633448226218754796866397318652567636815867914671189507055244015139863034349685846957419560525884539628137159504746315494318015861271313495588845015388624843896308828896790187052939051149814284876756394763076524780710326071978687495341346090849058604896444580628999768382843184231618878075366695888616933201093148262418740929368306474738027512560070916990934842435419782002516331927673359132449768342570411592730630388627408735311875550058559033341798278347031672009426978969236895609504008336706844615338015904673911122371002991914867558139667697725823126230734867425771668860594954116916469826547190800082029225191993978327950677093043466157629648855430750038733851591981236238017113069126898137535883445502582483020675354180994084315464407147120995846994457503399807242924872441099308458271829504447077242837508703881271805456271793065716590416188561211432384019178183289054366940979694460970155329846632380103046884896152092808450097129109866506173449687717782340164674061079654840393751139155047427069998487699818296561068069746299007959482960479956976768082512717123659660428753160294487314673462298603379525567855728238397329387332368487986006971822314483249901615965370906236529028988120889995757576584996075591114107516005923658205685010006827822949662313815868198515114179559227351876909503882332704890672767165393282172060775340663876928800381393208602502774274670110238597457283687322700172573835927937365972174263185380303476585420244937070848685624066344603917644945681415192036263355264087495898309410141130601537445564737818107064461013450959105730497436074643571699288222638135324846266044509324327196817431623848039140362825610109838968984254849627942328424419448100612118651640851136497989256835679319270190756252553489684513931910078528831737337237291976951696495984123279146979170764718588771520626427192472236821422221012734938392172018722629866868702890630214895394080819295712175624927890657935013591912394610548293649285113290973012631908120867556431703030866668899107314508284317135010331653353576412464237525866452646826217534113700307731585153310914831694901421977803159265143736358063101806927777700262900398088765604899230748226459191713679147449705563329819434343378542887012403719072493968097251664339582359910872387361892056178974721860987969120064323445214492531002380698832351065339045848582784640842220799909279992135251809254432116562999176588916981978634245415871255887677246285201266026755020039135282972073300187345852491720549499908580481087452070892615718167953811193989356396674283225593314689350033790024882056115108564583344213311068981653238154314905221243910609231846346450839035419015244251081691761616254306678006903916056895125264269882349486863248980950438855910059869693607595735699695877904892102693133877603431141264677016987731497617020016811309531617843162681873899179009997953748966961235550932434747964549936000650021622862834542337885013880044405962172670607701029699513346882778664041177008964623959643015085605661802718843471296096465289879704570328106862166091193859440539570362548970671120808899369791347213052899765006832074088624781153160205820199501662833938073144913770538541239126687346998059599100447415215686763825298110808079335689173392959935195359388320920302089827342614347695682857245168602846110263269937495399845899063083062458608849144350136487073713653863919053770321265133272006785072927279861459544013680781961696105072284754968490984054785035683350450229050409632468065666476380599313575095988250676536476580582132169859387022335252672042814557875207483640255898539550247636463289589806588682349152321018643277220372829004102487786152436279064838115143923823289560904228408143048113294711301778991816265229577370306016719354390581528507454358050888402297937459686501536096163525446849530023849195271337084266896520618426780372344933574281249167340488942063925987368010310306669249486769232341765295254181372055212591332118738256398513344277534471291828360444855295887768033676093835514779743275006238608397192452032971209382646827103738380670783602976643941484057465373759386168180589431655054192773816773046844929674569028579173612320308182501244957341994361029728912772915414913530682525671967024181070702718259063286512858728757747961605672363400156828817442844992652844715040011499117691625130118539388030340521878245058297189862008747066392646778529900817103554797578206838125769475122511228209257686934939900266315953364099331579734978509514212197741764602838669869727037328455783999404251222781902681337869680388673928692746040283013188441396676981527732718605608895150631964515961159099874109325630054757401709827172268586261920391386432440736209293371456599901935283728335436234786912747437462138397556656995474137240655223405334963715726095576245771878743568656581596985736525172507540128170368843284063377870123325871232287509206174072724100559964853072558436900386929136658538785489879515660964308875391320129270564565636438239097980243532680218372751787429994857732919605709058162350709927270468405969520867980262428773565366338594473860708221316819501373360863977238515184246570326485292687584746834388792293431100159393567804880920238479949569113228273905613180906348881585311724624989250348718350987057083406448184606112319868952639620274730304160880958565136800505960538410616188790945629744765081257493404409922455532851388345953556414865475616415658720722099075068119800514109856310615107487579256745022294952016403438996912724526879482907896985800091777356191371775647906390360722865847343920724476037786822968462275751896980946761383925642526865748332784989564634353500463929546037501360672674537678534552626066963289187178126524883129559759434384069096740379624376017475939870698806287839049750011855437613811601450971028196497904754057848780719383794714355360106470143376487319855725372352419751589661345542624975682391709520408875272248040119117011464143477621231414001219080788062372787262230904661625668665311124865637707268787573224218430504831439057103532482274796294215264027552106508111764202732496975329762756869814757655068774928104523858831224787521142933007648365834018889578856503424076569434746843156211229730043931136659412758518009722315178074381850442241613669839196650835925901412746879072273836224486851602601141183637812341711881095649144896211934169661315995974964995652585381468509569853499081168925749103710797984422431889720691650864123760774638860202659383204546020351682890338778724852513969848531814170420589736808214490859351349560982490231584690584813894406525168263541571698896498820234728381421641047942236172884361000975057216881999727611809660666858753692596858201008209603903312014260948774834305612704195058518753962503505605344282749828203607280340851907307600860843922259195575794614153353465674514978254493466319416549136572762437878853038199977650143847629505542946528962023349479239775355236160350896802775425780068499455778596404811584908283462861383594204745066784089582209899922732306041918286328851619950777187260872377276810002018248610663975917519001026469173396209482311761060718819329261858466680411419913107486578605485917679486386911838399618637410500431803725312029127923405767424629960138195389171653296897835679629619971074894427419706280361753278104938677971223100136139405719026976766701679621297136800465301306730905774384302781426245709051589061306629662121981159530824435678061937833410865702393198112106986192421329687281036346190277785977066799184669179395640461319153103598716270207776759239809042616030128058419918165055748449289136484247808233491657523087862928913321888771661093086442091623906585241105247869112745573859575965467731785272022591630167055723097527752301428419513049444868459941285005542968619982425388562206674206263560946439413996765397358171023267099060464941472533993297067101724409294787318008339357755706000165687699682409089702188317170023396856904459680041565737990000170927454477997010280376553820839101519617387657367943333764439019572267271078525075760763972909620396959546553317868381102038150952040073086524565714586251429869673213670590645176343392166967638300924170945987502751660652273480991426020920339739419656322630794807168305914266963050295801248424005643242931107848189072989445866443352543676797595980839047568862951932678436784128535946444796643961070621443291428159979612153267070257329747861409578726586443558483822224190843555527632912270782295943555071924158950338197525492564636652728911271196337614268162873594265594778366338162210736002282224090814598148974431520937063254773957136170463917210097877968327261425287723767315697613969590988132663728390806232680847210075819665828782827478361391206106835060091946543806548523099870405066506800144894221167100012945523983789754241815578633948904500425600322738396132562467184287117048436234410665834751532694273155826630941367165935105063993793807136488613398672224843600361126355572319636116333172714354639852715605498898860014371654919207653605508540774890036450824186455480293082562737114387303983519762158670693148234808929870937065286925845546918389664992156073284031600913807548713700957724447882550441897614365695246394802880173160766463589863505221099447471599459338184754867807335389718161509111555317004602149033500046620892897677876165103833752414743290679060806457689983279786208977000810908776638324879350626840663579933712812956949227727540168880082716043805963748600662753811203806730732519200824846024767891932876312956536570959017504714254705395508834055276591429955926871529715320892961002987266971324211791589550890786805388878068659468869134675529970861201544742043995110722210993586130397169097649788333130891534021152508527384745377213646156695944356158666784080620518950088783734477141901348243419902728187841156509780972897999452373291269564034051159960097863562093951560965758229462032177772878913478428437936083845769781056436734691032218757656489575049010264449215581657985652766439723813403209748564935756747679524713665174596048212338776366360449638417114035551124798851179783281801161021978998293274273530566922858621977728328886728045344627925414345447725394062742864787612771310993822955202765370170479949446630083611095118968286471993653799617770100860614970704144495547983598129659256465158521466721769551468250223928322379461744999945634954132991001712861397001608618475129206307180259042376509198556820076752480879135631089436937974918029690404885054853605413464911743562250033544094124899523635565936995826060108442758281586921388741460367890682485590433836260964199513755823675642196161067594505921816102598464241714734251050570139580356321802789622926023604505454912275383951787131949806728194023538406754077426662186791568031762559229145733523143689884213191350616317692200067215138945263400287614594558462344501569944045431428654263636511111422206345356602571780328952220825771268960543172974395314292853387859606809496350691932447727871626361439903150213708332119722763152144395146659823372777175625918776883250614981120074881745093812497942940250516402901317805390200783112853074363539842168520828836202416373703122984120756301298762529962154134513339766664220608676216389789458341814142082004489659805044216726719155948093606444973561669418034762253739793645664619610439788496285281730467474180750795341226495832757437335854403293116096372375314891968676673601004649606813469968502009096552773029030976648957950739699384828461934619381294313331807084383516850362318588731304517976531339055112502488164621403259205021030624089484822075961768612678974071327868463655814863680238777413834227065106272633545555620426765856659880245912152961320528668119026738162680578381616830582409125839389431433248646976751969439240422562151316412353306677427874535985401201794667046059366249700492539042456768714096912129321474607191155793208519527937133899642633508521906489796069088583829030766232112424231689514747799165282414948304151280518901973306247071968382179988158104387341932536450789397316117065547675481238195482062271588127940903701651914472585973709538612021590705719895437549342089952905481941769874063013210474271598000958849263624206260302160910459937302198214236120762532146711150935401271228226060534520214208646139845323844676354815118688127223266748390190008109604116088279585518231895999908782538125274090795003765561143891215858761278916780641484270050631680908712417786103247447367430079014277105145986266383019905846185267804117046452969337524141541547356548444035796488228003105878172132694344475099410954786356877075025115631078962084015359958227690021672870762178968062473784144737968307002562014765526185700555771733542982770331318048443700983075759001954990987992022381240354445867335931674677011872403877400115591757435794504360630542103195459323670202940330637252410448408745100025688617088649149466586573690907686715424995555382041476771330799504958694448388885565651166199445508720345391443928216297885163796638741943674788367780550741875152076144212247394662737075457409810367460988140190619765692069494738412223794767726940379228040140301786457939159765775648070974950285197641285263395862748356208100193185882653822837711717695426162617875445599262877343261652326887366641291969249605224668396316921356327959676793143256564682752682673755674610659554741899048499056290406149388489147859373700677059604540583876940380863477367846832314456544619178084070503072716360431038027235804531693703400352899074328896979706891455376290766307246783841466645912535071536784456600727861966549533405000095553975984866279738526831380262914118673251858417248832889000816789630389353291863840621330108736711971909484344916110450907508560760724446875994956864097793039972727937341576135949637178116077519478780684681262875747104047279720847367275055208035428752820006178172610070513161789732502489675587380789298900074710006664168336103344737483554308388891655311939850201032386431017221716056360167115615222525164796205758666961340268007842774713195722627128204568738364322829430115606381464463337582689670179689304487140434039483672674466119922746290139974383402429454039603336591195105384121295061731518308804934821173917910975390783145812244020706503212796998616144581040835511400605257679613443227704857822840631081672198290180130251776664515836138846018493024765175062899350765189533461310202434322075728806048713737233926318372549045895693697591816231272289429651663141301115142293003597355305920427628254102518232999044682373646102875252722286738635608222609143949300393371414351471870858157611871227192889705046557660573718776126829264862011779091276546673931642617325890850072372190789951951578400652970405946583335411889556078044810733124943301287565413606348513555231580988726096180830937649643857234214151058065950170047519359441903431551200619740906824795387944359388248234689169024983491503900893114873988721609866050262690705564285963383522251521295501697151872468964956472937302032171309931146497117802604046402833833715670191694566487649378828676651035020221166205315563452648811006076652148978424576232903273891707676562656065212738901731275833313585937673567105430913158830520088506279137951638549735558455089204203139796541445349304815704215773832394643046796149745632360259555834886520933880769755026754391514131961357104692895461186627340340471176275875594865035026007072591255708264082022490617609272920220280236275057256847834353134084351156934960676727345977895196540071078281855731312445795103962130408414556685384283635579075398010995228321037080819057742197698561127840050794061848469214312988013257179565868551002497190984662139627965135989791332880760223760456933366388043891928798710822104776896385866837782874522092122242151282386310707522495004917439444926976587324804984630379784151053467135085645920293701650419654447206513771667821438526045436894110619218708672000537267551053875498282404783132164133309529704195666369793114754336829388199503673711121046904412968653485382686246024705511652866621296046207176628257480265881629059955167775345378597669006845684994558271688522301174709652369363814462418283926401449089108230470938147470105097294643109440283383043159429851138385061316757928592405170697746564836814635949256146247186523352772617543486403847967101622228835870682401700516624131286462591787484872157201103593169544076384769175946380748866448416996265768989467421100765416837466338016340524733928665103783637345530828906420427514262362643454150673638837402780363985848419439115601824214650986470498562233572782520340219937128404270272063418844848643945174217242143041109304758419325058218817156743759234000800303198759868557904621711319451263009916793739066210153072505863034233699058458135930810199686239816624723269453651550892117447123191481680128099927346396653883441486667970190231360638147569931514086166516802736429550805837731931086365890008847164106486660658755211097438255848146457526961931382145823199254140456848572185914412544220421272993515639125269864997315772575195580045926989808691595385948744035339930796477816670931556657117064496508398638478585406627021085698138096117653848530672505711081050412443450766391753704817423193769358051739297504605358451482480502573530425725227984940906509774223516713807972424403537643803204985684263097292245810710100920228904474773965036674380322339178104792785776655171984643111979518286962118690992237128752343767712650492072472448774719242463857537581367582330256130130776447836809861116503005391518553195956697603119036005083603833430412275205584254099399243913580654754728363292284066360086856565607580847128612571530082634044715683866789060096275391413349253021939934159731228366304826019019861023003715787562723556996090190762032495694378876175868450808273259098911579556384128709330504766606116423327896418475808001253135914013959452636417963930238542788273614656265571118473414394942691308805662256009446414571982908399578149943253531417496116323052747203873580677171448956494837712385571560269692212715998536367039285679987409567707745919601780013462111451815142806483918676738340430711651710911613420357780974120856479273591496048489941557696959270513176797899092394335172243407099191883884908883089530419784691539710183070125826248903360777219344495313837547315224455543609446838465195850494683070508711496767887678217300933123404888879190448276128181346833052657392031734928363764358700400047811514365490443233314152855825230199546741448109591726115369357914628849237141172134451857121566407442326577492020689249654804763621808561676006641226009205891297657521522064388941698015993019106078899414151509195018470002104864643266475524850031301718268941699145882948948087792256453179971636171296463931802662374484728988066344527562820775263443759671898431085353973155750396247292759375892924840885067289202129043215673238637841854416609761927862134477662639284167286786179647519889553768000651059247570396045361562149950272800381017237982965758903322718569274159924660820756116116095232384358201503564484674700038709847742384754678428068756917878568401258674241553099978346579794211171852068871712001738872014979817479386552932776760250861501862512115537889580112425331690519215032934835170668525804090790774169471928611273525648350252073600061363559995374909780308354843694095303640772353779610564989740594881836566594710756851128430085857131936361496371984527714582816689142197623739945035282238741009306466159885802212819921382339808915658551963206113758477478766623191429279630289133036812151442615873839564464454055324831997579538033884963618084331658336253863959456693668589200119436484736463487349658100628913780246918199123720207222714360818554170797796170891015975133363713070138085569259276658890186119007395030698698811082298812337944046924899876913130247810978458754578617221069792391804617396505649735508279117277900340428961361758376115499871029923318004692345202947491519639818207254677746938935488412726299546402375829335534561298553565096604999616352309054766450232535461803854605251125159844773188004557268887179753553019509712344164228678571703868020970991596550243009086346730206756138630223596378672227323408072704988156310035368331255872921205891116005282547448187964818143212914525543880885584491273604068600644032519310718318535394214243683477542241011132352971079502671508130262458467516569539100166411326523143980688964351534324319964737496374024608568061176040261133666291814981476433615039956877012327201626045320296741341170149785964271270233044668444629145735580977120479433866978551451442993051031819011720453464788040595728760612150222599222461762234557649152963019280827059645804023888846343950402964821017212595287393377177539724652469293301116497548300898411813124535647383885823493495689991853770293099459647262037494265062387000393337503376830752445231920704325114522579639635092225521070573487061037221923913106024516915890994932546023804494190892664882570428940089055450711981529098244727994252983381134672537112518103203557186646145206179499907047483018215193830292950923337020380184625236433768772120019458565205282920250674886774850321908654702942797723658481234546564837004718526140253246933906266248376828132617167391193934317803329918127649705101702340384180605000027502421742083778331894243127054340820656029263519950494834190943610571595153051238782004598040417897374429180160212503805168404552171805996202378881907005052223609763260644637953386086183968991213790476416737037940470959769912215985031562182866972062606899680942841670315499639506808376576556665019115478823566661514379330801118290057206064799975324803869518135014694447065317046107236062311720784045520350363954139065538592078454543097472911664874102175801360945291420958641560881320064329964716354959827808742901442310582596310041083737952584179716005700399859821435076693810154399142819641247582196951580988481479579615300621699607141880287187005642586439802936553683024790615844976597491201838062523300668333494995337262653989974259234615322216154640543891208327095791571838017551757401893782615436791918092917025327890791486887660676407078040948619333864180394973201922269653413964326555128368730203632784113324714981555462647914506127095045341006853171080505414892651968020612057484488233286194174279854883393724598967576347642702224939001862542461336531745907276734842354137231887448744530011405798370102981957900891305000028704981626504994066257574849599791052271630616621304268849758443393750997588890653717254582673583215184613064944482650732766654039122827508802060111850934282804418562541496941614997078785229823103272015094448864044811544273968275341354726866382713011308620534761737737601907324521896228591335383918403054169920890661753744005005630822278646264519783995596944304426612091410810211642612251941770482448390973413072087866595737301166330982174389531022021659351530235237512458565007152898635830515869637925344655930813793689476958851553309864609865622913828811985802598704836131004223707867442477506750077299357435068485429760300993198544139343448461507647794457791703453586543616070312655679682705102435211757294191992920338718525199570481834011402519775068857562487416430697961555728517617852004007022430091751137733600894428288748408669528226767826697405718843931089821602239389627263335970931818207354845122658956805403195124209342854806545871638256343969941325627806009434781469230156805680579584077091578687137112347551906803499377323723914339507914908496572237136513086233982323526384709620239484323215640571799735694753752275073004347104367221646163703436879239070990212365154567899561536528465251842457701500531276687760626589876705816674855464227096988572590197252895705519098430392407035838303932002731670911470317881386534057976819984357580821133294128235469915287982754438908476801112671989329708381520378331811609885927293155841989172030798008350901206250492232768630872022696419120505817798727786753260071817179424935859883952061990584263881655893087386424527788692935150940564996697929858929191117823260420590881624130435120747889798366852399882340906557816413363652852326459100546523565874759171517216558044313114562745512042230257762917336998567805899561238882499885911232045634021098581329541055630848905832840615656041538681189301357438066777583397313515449655779630498692334725371134734449253828365784865698909091062252029400427314273524927223864912301779666897458499444384074925827989567709365638920371778931382202626039340325560504117374085764733922473556480773573177391226685121232425479241546892875312293644206798846326239886470968478943579891293174507185428824736698862228963524553156629330592517690088699251844372056577824365802615407760915086470198106461345426652736448946836401287412616626959027425437487145239015545872971286148180371230248689516238208908000958477204429976044711771147087567199581452187673044042238831474489848587246209442681321308862866055466477428121099053293357782079004004868805333729638991878666192444561325099481510609425820069577520414737739337401199063835972233174742308440696078452056010015202705503938038394852837072557474193919893512465623195371895130411453090360712433840492512068467389692905640126136982298328640355864122829058385512511229179823702115472168482359605817692274279091364821690774355532364645686157976894356637086893867964369017611768437419584375570355123734781745386648803419705461844957405729966619658829709847598801135433420073315615862360794935743048484827442034904938146184721559678034208680154023945515845393853759130431675832700108255815541895610840712924869378146059077245535236360869969543930333692464510966613789008924395229800797998038009900681797383174149255052603340349781855376294018334684481219362276137484840502861196801670826478091064263626747605728554815380620693391815092293618303950023484287087279707746634518280822206983461056193484931954082065236386889544840150824045825842517736362691617339255556922646235150496310104348437180854722722624686138688060731723373356171569614653889954285492492947650859001012121529576047645366815563597718584449577247431608659076355522589683330021364026908977512752068610760350563297791384336487316769650533413962133228735443249405847986353564207319780594949151573635500237714945537962440217134277735548673547694435455298188875490902648283253704043738523728858290971057864569202597932100603823960085422398082850748882808786474074727420229714556645881651908099053490201082296672444290883455678170244927720229899184622125799217832793003696555127686207033935190261597257444707490078619089626770242929427964307672645934247865389245181718463958835778547035329160396369860486626568079902867635137157456752507690221476571182973803527310653676257509038478925570926418996522640775624171612200784469237145876292767133895902360036350094641309200035598903488506370378517580435518655381055978276294657217711316343933220018152496804940119753212475931840597448806008625147664872262446111506238788968784163346892242651769821493785373691132664956231058888117021074632566120615959516395284160842818901537737347723780596605316933826842634870642270298987029038721074773799319029962263948858400152068900264210890610721963083527371657646977982964709539395198290116130272377343954701294024099616762689923692737813297984136740102153078199951425775118169255034912622113020953593196029883663727155414204931129789609546075710764309717910798751280055683169276470240621078277801287828777793080315101863463631249009965276964604079843823053572941263670539802876219494630390457817680652898835994255923844925995025583702599637621854348400275737393818086582439237246278382717101356917167433655108001111145617597878492652640038893811532809770573219917828911470490602620862239016082231180844181546644190087997220521749710558236294232088668602653629996101216831052114633509003790646204178951783865653509092172733350628707788585398486112860709739062251815563214668580566693084030341938599724114998823966260992750432619257537928227182713216337800780779540018476346618544514679849303588760213679243209792331563761485544154858745622481696649703721957479136583896391886110686515673973290184780619551039095605363074016420055930878085943970792690579729778691338500814746585209591598967407041542964743369954444192190303280970458118730553990974701197605424493185833728511990278410417630938707360583628090707811683011263470749601913767711730318960410193990014425043532845224575200638999648039546214351998371219728317530274907310441381664833643415995415440300756891639189492942592163265248268241597999979988569102306094841777538191469971728828496183431965482852518679640776551521468122563999130501942539092558893766786620169436749320745204015110462386114706469845380722543226165000382174318516072635047508489209398643423446436220839107771046860420325630351689605961143872696220534416999411736732583065955327919755320674383349506930855659149938466525377419294345931520054135817276007903502345488382769775226158850590492343457890502684547462981753697970888967791349656310083164489390998750469287716444473844883093864509239791180356546845822560066986755861031831396737699949348857229786107235648697467728431143798477931834985722657701401265166707675829903613069704226729478198706422593233867135849016175737350063211085448682172567540221007140168299771015155582049756800264553652144789724323709644114279366203206473396271919147894688575571151599023194686213345562620314536752695847888785259022768037182986697011613510998938439707511786920029587285252473248459755029945625462920409963400691573937986573107503291503884289885803693211290898445634675144466073250668053532267363885870052256009801658502058972948869253162482766280906274673237685414782796039142204595627560884525213929304236089982111810404925670325004468479851590516439578004198586528014344800478680898798485719315245055767201589121664387477652703630058961904010192710696444621122404189348168177896444309601223852437342465293684862228461996515409821337420484828890089547204858829665375424319762417946268500074840010467155430878410886508960742895699183985940720869477083129041424333784291795723686386879178145223400699922002402914414079549409207303580079850863192792806459999805184121666496826555649306161569332242946424478875219843442069611143063070742511354630717714299541100604654590436967321369922852036983032632611208517263958725316326641868338305060692165591164134325936147004004686548167369736689406322211872457655789222297972939307665385481492693136949956668137129795038477638366472372964443052594117348130816194728447852442412849462724981770552849366426039935522385066308531799857184905397600411691731070634234555427749695871924173742531106529155306641935571246872039140488905088757947975718834725779387100145803194131084698816891086332551507302331563447544996396396727653730752104751063923530835294795354122071353518693452643680807856210444094459451050721060088664276342180873940463474985835980124789021119900563277433065067154479812207389799085508684960963552194748973772547745317444258399761611958400142848035605960620725809219174488025285344996967003053461882271856852636437075571759539994072012168771363130052777461544834057254225139229928314244391226800806404563834740763790675305647064301810014946792251496986575350055831452338804120428725662417807203969156713180786094245035909367190335506427843842249196200305632867264186965588847438922904109322473471557442070673349262386041546731080559689992615610433153119315431450363835183473539013951136807423858356849026272491180495291556336653856382530432339570869321599437145009482068299132452414625663838100931745809544290154508305265226425847092177029100664041804896210446222619790374191412067453819538784821080359914868386289672729055397885898926100916016371786502706376156001900497539321366191091858822319460800099504310435376840332341700373932961370118067995396904217233252278505907388389175574297617389112852728782757332853939822652755552239249026371491898208905785326139057473086301014390884545105878886339258552244852772253790161804771563984634299544291604897869730214986353045940562919703247605218086592707802307207450067877348874993385713736035594239071705845120794039223574781545754691378165272329140891332604261442178653271032510048873255499399974621784545141514763203692045739979945974403362127248380618974505498356024707295713821631386732670137812276491356175951715778764987465245254946934397820062362428004768234056388652228362037456082244908477393788809567021738080706087840687125680267530637891416174144369157156736496632589083642228985391124620707451441090679764573476981736414980813939950078370950513482168365522974364673849450456003499951613893935750546490995493002249215319357898452671548823465044946108459931339649095630646964357103589890053095773260133075371459294336331498538945770343060369905507264618708635229310653732054842245426205215952400801805897355072074104009556071069615117112097908995039756776041109459035568036922394446063095280537930436314112026523401564817834042340050870449646968114046224373675696352470246159132990262968232505749850998984502256193718384420195900384427994732038161996136719306908233678320213392773024213590981818302445387404621500660348390580587639870173500740961490703669939163926674680129291935793375233136826594443536061940054292067325580393398739585868925226394573528525208915195677149879633759308078033596857661564511526482792162073875354383661172690678959099957047635587736003032239460291124459963090146750033991176928436889348968355515268647302963588938845327759984551605838890514901805994313451020475949129582290926923183575381102275141799723111409650735097012327795019721342422248612040033751796757555512388304264832802724974128114867493432624699145683661454710783011100734579136007844840527408008529887435763147042697476326082735852641414561683456023297796611246530739608260548886164851205651339737553965539285062670066484068960932863088757642925313724740507129745501687817306039216222340253575618188786265602124067694847026289669272828012530441085721273502769484252529885125317868882524141609095680641225394368430994326286249940809782351271130027236494689337119609459233856801373334296705173522039856528315439978392482601918633399536759399069545285596815205846823746169237746236711171549770521659368937515150218144969396389504145477216980394649564778861151089152941627743755244457697183349667922550617172421310920073896579555099974627074841052476382780032881693943591270277765251011898856608827019951644230956252010880538918087124344777939342691817013577167558150475535363124866715465310459450148877143918056908283986771700755771366496874307361272278105995780301068848557012763706561605813377617346973891646915386396415094397323170459402072418037374972231079864369022230462066498333296956503922022831510214996670639660729484046753380577008068845916283063948564465539784952832648686515095071907357606414423267263409503030769437178643228910947582568216166857151051045816901960704282640295315383916156052479004256519382611062696770336516288011531148414007791967756762507156956977817526970459166467589954767269759160684879842258035638316832088412024494179419365444169678834416116257136357127991810400165235238757661222264777891634773655491864847752573600096109762539552210726420792385867081034294350037607132574405656015163707145780460674945324574009969418923492858606850166072877929814445255316633353573573313692344857413947051734030539002039174026401333827605152956002007527846537846839478143297239556044715128991519482929495402380883408418293353075494235351182866027590371586237071230270597194802217308423035415706282820522469347079507031279115827894673201922299359982017031002427550226000345714895192377918142838430138758772624773161006996949897967914862206114429821520918399602963511389075078481628874197740786905938011010212180754481617955461452872100510924569487166488410186201579881517855468381247592184401411215477979401010411227107268682786824327268699059821707296878717167182660677090553672750220032188375519176593630295141464961728985778570703235143455973940631454714483214964305003778199513906544799013411595600083056218764273075776634262897926717876565398234738909637864621905770105941040552871484365634811796808888341552076995508819649431249890275536415258574778132087974076089813816311020988324310543804824658704632248541245646991256853744596426387435173885223666601906864641519582964838295985855581328335623450273655762547993285912760919276015371287357002134014311632946644419251266155210871646480191610948027893685109739232144041247483194905153576324726796834597867255852793511791847100549011217379278556585033598156324117998858018889696174877910401499026574299025752513364370722427874905977303471616583301249049735468419931991988160787958051774709428925549808605371825692556932278178987803466745313046671897968946766134392433781100304538921013564561658240163325696379317198572340216084208695820124216509609109767522078315167297305990032762604393758211945288194594186321343831657816738434635137754371753487799977021380983206157583126152889641746950823209866706707565160355997266994414972289949632142414709301281664735192877160906340745274817700607026042335696545435694290136803290537160542043808269466183131717887352006612561603155145884340576068057275694115693894885287746533996003871547665493461787523158654273023689775063379413306988809849045138619143961280999099108973840522451857529658008657833971077805557759397700007691775791703977422459384442512607966477941509469518361399859299687267652873388164513061769241331464750901339945769164497531573810940126329504542572664510002795779083651067236821230541401481157768787572786710615216455369515587238715537393722819184978812267458113171928599132586799392313572180770758064876674087288540294286480989763312418144034610874311921514796925036517993853262697151623738627448312063225154202045726266888773564678714181892937655975414160239485979749227738380555344311761886829858704521190108476445078474079725764583549571015482904443361399105075593653575499465292398409376910480295143488149778878438913502563748793469776942875866940645321012857081828683229349965439493758452526379188458467606731898202017347397017836486539403156360110281618451533502443478620061382087874836893470222379526828013895575966360554764148852602331880547467308049321055556294621654084509324938447780450992909526735683907387182547955998490136387813766744806436011197240741129405072081473716941565480565361034167829873200542732217379536885276675637396213278357742896234001533185401261346021888660618207506794680668368426628979022510578692972715420605860497583983585942225657241898560773005529277924830249013753785862521919494152839328405946232647816142962072190483096361514641719502153151327944555245410113890678475660217041647202185503169041171963361027107880391287152454680800405248030599610823028730453726744305373828587200006128269905480907340470195819933061713267739766488415011425738000936837621838966708099077042259285255263239389316537602681872208321032050696477885712723681528532228110626128048487394844380363736574279128274421379765326197037705233840649242962556328781117783845700088530117838865107552419447014702648242168072950556253563525360122486690616838303430295895707999090062652768505024173999416691400026984824571221362340708252529183672670700097088956369107792198293837549142334166306526544618893215863767444670536772774755662740433135616986689642620610029435120130272719098028896509743575543644590027500155048061205983868871154627961361795876021949830837988480900086152817854599164056062049214551557671860308743374361064869088400200502961245677508983762472493091227387741200468519507887157413542186491533681766450023803929232760268522075060978772469482322416703549162579552252048187167767260060839330388950919851479047118491401429782423217615502242784164138212922608953698238744900816261906962840594881220371139186000974778232048923679815866365749506134213793986241849318147905009944419127862555800328977085512983027048945418156927991068326625124237343464412153297614079843024011437022608506709097644120302442790567495899351672589403168329317166022333482811504322129179327377171168862239680623967158822034544338663978836099700949044148429826521219164458579048466760711891769919569208327022793157019447236667428378006319194116713511791015353701932622392162779683532324999984043439951878680894315419363994255841174790127453642251242323939855478965489509519013902433503259817991503406790632807257207195602786477612722567643417467017200707079101071218390894432365402653610788641210301321263160358361922257404151367616247406117029581896974641392213931270987465885317526551237727900749004771191430617577711966461146774216300864904816119078394808687024518698554065896091721489928881442991173580543268814506778625502436421846813441000126843677593114870498637386795227082035917315666733008852385037973130307954563034853149922265952429856586678315105247661323765375649376918682696712137401459382533033865173666280939029289945133453812655294747363860611263437575710268948466751455064881836973446482449947101775162510576489223649221259723012507609506934574075176721098286900569330886155667616910742274582329611719323552015489171028048106745836361605187367982025111228671075241932271239610512284678692790723272075862115122487941454977147636684074044794050621389017505895035784438815255366234952295548790365437288921027612586103013036542029730446669887533790801372302462039542730754343812653898027248967111697187129464666172710610173805816228814360693245473843983245174585695888359661728864906587240962923979577441254764753459055893597350948256589885557578385690297690165340583740723759430089840857003844834598678660993595895621519951735102194428699047854852435222370402856440343849455867551842151230633333795723661550576121936931625872613906071621829617468195751371091527865570311246073798445523661426118093726693585951776035259815591872417248023006997140647451898537715614326621334928264240996747027962195502595011246945151000703331566849119916325342211006001649251750970034937850637870487493907931614321200723042576428682453865099616464251320542511139683140961110653918934071400026205183147362536916055991310131498175626507495735828889312021341258454649677350892944179203275761814759689698234863863349602861946701191767432470996693551627226030453785477160674970029859357779671541765171581426867938821471096465822136014507511506591795112491360442133977858352684426543213623681230738629803373415067040372914194082675629871075525443947927383018666744810009882688073416054849043455376927825464642305424015139001343155299001543556924256394906372659172542767406510146549256930358765230937644114659392176998905674672252628178971546894974516304884050421592840568389641762239281021241135151622401832184297240711847789365911183266831188785560257990234603542759939235130915211620473217776489434732284671139081895666563862544312503138232775006053894059287479282813944140660219280257681249697071732622543672705345472399496308207445998584025498234304698938432083015896798083113377585127877943477643052432788821716445012031776054798664433552394196417223910508839522851636011043650092833512022639167410372172341080703681704551675805227026909401232188177262526484871467767950908412268559680891465144263824171372761713274657997707331495482898639753017118529140877660841860611476616904501752344831445648518113646195035760971551461111525674278587304904026304311886758981234089286241195998892411244861636175884086771638797532804827065858505712621073789073840987448812599858082828476207198686664730644555899066162384744950897570493573811523190893662118668946552753058212156115231371786038515124651892780145851797602057914648883937822320462329081899516579709520440290747817197537869231221920589352264072535235850446720956267369462239857690664411071435115592344178363941558095400793228047511276595153617489989817931542972565837554134210644958181202102129090620187433950698188518223336503155069478746185519746163525172916440673127326531636588653010113585614252806698417113526040137618226538091012983084925938342995293236167197203306990241302320993803160753827698225364480496520263596482151372610326855661778780000173547332944352565255817414568649770121499271926669035543818166078560741702628759238969371821059644617993803125949236438334507569440119700712099344343484962654748758441652100505292730471619878673822161258776586402794402188151739606909097753718898763464115721166374641036008728960309908729130940952718330657973985585831686409467267025953898277455412245460645980769093165610104243558257053998448038308101735433173219930183649169734577686319619071251937283591178538801553422427980126002247968924113485637292448055037018859279682313383008423713645229834062245197962658140610346530716762037927516771585710883111600735812611244031980199980363205560212433632267854354063277906323483723449421073122474691545319560017663883294517072141657578058007412270656649280369492922225163717466674218189072641926991393949072848457540000272549738635203214981516058834025300162622833263184766288235620684226742355993975524662199453647381560294526877129623870298896761843583604629616971819761486418362322724970542621630820219743434963084436221672493434525137890788301537486612619627871506796972313014616489905947158216516215943214311944094715395526201405170142489492357371029067810728634911220942192189624824811249019646185818818952715743336049504659541942382451231908736329427046096416474587745553349427703586809468137498826466308889874572999932066306742318862060578318899121461905365205821981678386943224272374387930141195408796171260324918818503572283341489819595611938503773087496328866094659716951248947096506286668844098881860659394787167655269512187481236234616655451772537520081798931529991500244786061755357127832160980753463312307230778112537776278275593684567574972313324032347488595892192360462153037044118853654683350970942663363790976099577557828020913165284157361056701133538523305036664425719808344019288183901510101428859001539040966851596327375328861367915654979878436806867006825799342572868132995533484771009334163313040209016846141749383276868108712102127619962131492870764934883143427000533757000368434124233101271400530051655401465299229227037985879773993578431865416034087253370551690956319419293635587228901077413537136305023940707728616557626692444069665018704666734452719834872294333858129622364599396554895490932687437652011866788740358077326407091944357542677239850176444647150013756004711556217046695436906322659374148070856482067037746831794796364419269399191191543553120674717593368064637529006921141528216122541154924896192245759349940195614207910277507524585309803118805756296823851483117343390734554556065394584694300746203453066209947789467823993300991916467695675014734095688876717828023965450621974243498757813720464132661721473081484798375418729960025592137516782959687183866757614196856186460539801468919591136901961194587728991013231027846504771701535038823911634012324251834752862721181830189349735929790429137490717722820338890925208528358718260116973751000529344692333097478481749769479390205905590065431957497497872319736083556269928560275446712371671377761810017275799956285899614133150131169177912261383412094373601387807031175875289151552774009392348669441518652174665711479810708306371573709667305913852042911789944395210747238755793212659314085354521608495198031067599789241761588521239064902487634847747717478886819621603107746019739787626052390208083845439845050642912465453556998199028399345289567350131391215874910063112456375869685399976102391068099199876357504514885814996071743763316598991569567246422497867733917581318105549602658589383319949515935344090548406967827821002037487917452269143705447743354943596279415371490413156654724784695526009040339068208460909021442914738438135176480274291316248468302178885702118617815142980154916839364857069223879986758420317548999404983612221315357040432984784608796394409927908503892933964997266030196239674953281135384387264240431064251518412670928527128760046834382123295036014238136913969437874207653962097366539891059219118043332887985693689343631552580687161655134047829630475942822700617267090606682474937696192312568929823654977430434247041949721680309024081205816294784997154705921074473307460792045427400468128810202357987580916859424486264333336125499440930041937305192857917460987354174599251023005871134168216005331207589345755874447037266312656100990948703475789724559318834588367153089408491728560666394352082970866623586618781018485829122280586823558629969947331290439845583388676641306755342014600363648131439453227435424372064719603689753189350291912149028481855939524130673822873477834306199998924569980288005491878046205059459247949140642410488504717041757932531554291485613591913257686856829893162081183562020439891589384219688977586968684213690540188434326528386834297033415730920446824410776911297645391526530816191292886470391678725365043731606659574315774108867399174840764566371810411440308084297667394801468018330807422916014042443418329257958238557330234337177847316904212947436381284101971825358526535861516462693189251654102527683597344250937605524953877954687743287043338303139195679405211852197062482007020044739848957090752393239527042241113213866764970591487046899971909453707088944423150365074903237106484034104802309297577385194461485632366717123073060332079285371484839713193337426411935244038493459922456880123063425567562454262194119437068338577443438649421134132506579096132087952327798441475597816799213064463365521483647055279381777828553392508065753368416050871779486590780890851241978924373561248743548726275197195829851414352551426442595968656350621860779319662390098594725192608164167463142318254163472050534381810474245560648088673895257481081644344987334381186839192762129200694622286732827568050042594686252987375660571596888482418171193284544591213541121240388957888375797779898030923195803391689055704195845617714949982858041542555382155276415571069971340738801512407460766022089470598370449091192358868507850626270032951371137759719527340447782196899604054721721528660305272992837056619901247283848339005073843008513025186007862049452880783052533879214975047338542749408404850065606643313048065301752883397109675507476483524272925097570125723611117784249627201533321956065312341672362227977606334222091896972881472586224545918598117994916135982665545738694826630740274025646502433537685142579779598525218790896865511184019396212707996704998066172143290372485301410871550391539028512238567532137284517456083756238247593959279324938122164591836048933635075979650219050868937872417068012217349920617566227765151537071969459748193497912976180927051986402679964623045405593812444740384301055371094088476045427198822179790146203811032376331851945274332451418598516745388380887904502475545844260483690834426990208454888377096929742409729676891207629254742923754289173465262283338057322685988141887871584952179896358177252207546406314969102793873765589051843065698412086750017828991113359307601470481837135088039397613968395241113938266550271348812389228302989911617074098524955879119499174599415704199160917279420873965546260997497395225274097347753844625355722681720862837865495965851986089407653054539324544373992099492113929823476044139644215667147479805700651039816401767389474864785575690552249201670570393742702704411910925517186942249058465831893478903235192527714679217503035006103988673601771215959406959894825784206166156610380928703226440475453246190427639139731433362344076527909152440150901867602448115640199367126092404324256551899471268328676947469335220971345623476765688618761649289904255059384557683871384857755532256944840086543293692581025147689884080394247774705408530617650936890252818765432137897188813944230027317742442119401859087550847500055174582836070705161570278661076921889043835918631235598538853868782679683511518655578046137288622234066378067420375287841606214141301313341727837917947296365397879696906065211497885506307832645601774253785257348814990510728242570865873699140111789646184507010143732386049057589464474686980725008886255549301420183872889552257536848382658560067862506414702216443650103067533442943911466597066037342773571589204219695515136423162454797149299957798896751016898688676490216132438153840824926123740967274170726624817255412382283909398914961890730284232617177783956883038140455258610106918529267189925167272052747497938757380100927098798087522066334700564947053441142796110181829301170302862395575962044367952248611591627157927640287160350710625901938584247087732897900293762319262638235129357027591481620618192396597636798135141785533339617690703496827674169515187565167844023075055244397009298038057042975436493562115319803133386334075810951273669998293616030656885627008445985267275340168478288108777944345667691770417400445094201518364842813092793209037991388509303059588518784294929885878858339460634906613215712913175675918932437485315574262759608055768271962758329924202138974515986761413830530157937485934088625587564298849298669656444035880584593962888197225588698565709448083863153708886105821109704815389100612984018349652107584929142100865940834618583392566971552823575995315247916372669921154191444003969620821351768022859052432320260240015514861654513854843137304899528895158606577708428369104626057171472910610803066443822539934384010641442842991413481332590443843208016757934824500350996998643294650518355031871409783545470560502285206432063301293647816860792937300025511386317219469659339111943336658418040893536145390119309800777713976532157337335632724607493332667035381515117176452411269995056786383325312876997559928051939241046753005101398886865484774953789720756003283953758241853957900335420263429311221553768512792692719351356883383364309460125317393047153110170925702032935372563862121404497471927987973657340434431620666736816566912754888544937010366775913820187390860327876578046769381403922936988861977389798339395008740989013569792303539272734686291281514453920084579193749976037806792497966106438085159947416801433419170754029491388980974383222411972846112487494801224471534554250153474554401630047034899292827019103837379819706820704579081178160031186245137380240302290272190255226819801125686698546647641754318168737427652576139932721052226087446968816448942777274414935222017389731547257392809014234405245977781190957083083306828996229637689187331867067112962531119495512260791202632962368791349349904169399385929219199853485180957748568224321196479607253674775613552503956671532941061063093136040876056163833536344264835735965821287831997981633646387183826008128009114354982509559456040559604877565362462343236597311790850624251647400881231384157336682348531972763951471096908300548845489095991437439041236125903244556171305917045933451645672929228911936811307998597233593877966400807612593270353038363598613827037060102178678461396760429491138200973307367579129984249755144223135625516677504416648159140266736454377840647542117345635141941528023339044343964304482863978878219446262826107903013801306437798888600552500017892694016604005331426400598132566850402910161558927349202450094275570463047426181640561740032650465593009288508552514288841013302824782677838490278989417379463456312557273623962835539623780487544444148324434866671953278790900646977153243775512001924451225863880433114686624789186239962888532097928800987674541302549308450235845063490680422614335938302005878865482681473173883714285681857819244035750742636318659541952399057391502830932100288056982637985838817699724614948678169624055264066608675919633698095260471696600848584392351111562407803382911283716676421919294426081259717980554274008883368458399675409150996290349574820842186191144430880017300722668730178928667258855271918302902419064345107896899734069623517119311961329460179045306216332183988387444290641560028132432504647918908940761469097096221112799300899057888628114596769183564246364591830995272255878518159341681097888730353913162141464622245151141324872635098975462197716376846045135686564155128206480633625356427536929180307998557337575562676354420277123415538873557880159446148981118609286617378174237484630694800266482990422278999774430905525961133265643896913782870038185571620326684967691981442117062431606095652635030197345389488996594680049116812948891586668650873330979498188827005339572593596743861224066912813509034993368830699572705460854299790649286357094482540289971199193282816360792476243757080747940020089055098865842616893183851335292616111410887352629943169000817299719121282760995992970164955217806640731861553011925465468160907696219124473980557210597231684892518324297432584079353626411968347119442404641190847047124986341001658135330730433337350094675254447766745548601473564686543876299199627380362557906902118323489451852388060337353067080582346378187120787447934177583142632258415016141358589342862530628658476003239343690236047307556230682617872971960038714724362301224362268802379831592192204727740178741809956636914778258436379352261316511758555970573461398357946039242485472136916824952824251792795925755380710775250544386163901713666583897461934329598654672938269108079738637750616809361495804966989187392610859388128390288641875732208601733372819849259232533124040372238972526495116567184070976496263417994278895662311343936379553532553367594382523131391222024017614856252045010014161809675195670350410097066556808035537828996372476897745437299498100162383159184081026624753319835421916922127860218031707767996225172404059407135993140927418258788598432268995062451329035246192538040062163134396403146966030883289737080523544205653936601640463642096641551318551931310293559076267919412402694631672754429323193169675101258538404167772177225604780006746490359171372663238958256916526695785971027091689961088773584473252583664503561022423427408653938077053060679735562590127747341204559528584167390164236899148737060314456108111029185313485046805827245232638364026685969385124892284304948353590580189409591203113499061295247090922551744159779979789658858259236266738212398025791671213972426688439718778179653862111991279628775608046490715047075883070938766294820969252356034612452531781597380034782692016816300222852575378959790802555251946409256255961495113632979028911613214099474611018613902978794577844641664551235500768677735556067301525923689724303379612585241575345585132555407500138899352206443792218090965215545406311751178688123890163711247693963460682354477891687377402987049800333861672843766967901809370380338478203214485627391578556740732780203330613567891575033945943079812319134036005527367278628424447029721444594445536390283390506337953973077141473496297171998825137199089376786482045327877912836558633318991261613879619363601486103840888779158038010101962462309843705104438613477741098078768459111879665430925485884232317821856969673118521303724388633871833264367537847078409752821417659558321221445383047331464967271297082774024149526318495341748969255234871375398855608527521351654050933938375593078026046364147930827077363858644529579873198503728516009184854561723003611920587754702157759876506940988625959915599612223320445069935134644631375521641341044770016453713819460461064619152934777702527933666247961538366106196277863699754445182978547567685180273917386363348081991334933952767751434020006670204576909254901579754401962579544612325538973941011060957914653202097534265984422385617195205392129624986787097112909313372532728904652248273900265976227230880516992876992982952888671791210496430353001759604202541225668388773996082536272568315348646405601827801168199419666160019899780964345336417491506598419438285728817060599579473535732081771891106928292142144320208705658039159899597817071373597310623179597122982301044974914779133570168577715032808858239200028124253537326893545919302781432406232922869998160420654225550224898899501201694158361112213706180685963372224245479914213116625830786751035142639795056187836537069637437153655167585595776393321581547919554309754799625917825736698298434600490591054688243108302468902593345896668413637372109055681553577016603005495757615195599747560755149364051598289197259875390122265101135283657558468664537004653706277693824718837679683740211226786224009883474911684911708495036686277610443043292666010874838896389133483101103192277131522597447546300051808309620528065389566821487089550742732587292529585880799984337520232310699567889155981637577368117378240077127169834775900181903194944558791743031088959494181002403559024056874763178898023505887787027230848889141668008138959616885991694140127542435222049918633925998754205921929816330890045985008116411663660909776495883956038617841977043609484479194178092542621424704209022659346414876977211323571251296489972948005247920309105132182679114938215505121586600533953771866035204494341715447178133609256953424791190669247284483752248576115632056298259971963056150922384289637455052487310270079818244194579573086724660596134509573059038352889616684162986540119910243089862259995521412914839695105882154251114886052731564282230352376081617771840092773757432465385120155968766710629578385546297638565617672001352452819142111459110242245876803376985065142167591648903292897737472562341315253951339385210388922447866500048764697952283995613227318540863284786783546426348362559139096154275514807459903341273372572823909106509506286589554191342621815333582602098095470031937460056983076041677283323236199193050690336801570697830060080956138063272514937104158758197991896207756364488175352230065134740537881541913541920855918065387227821404447673222863771801162024528980180247423127515555433743160873218298518574761291726779270787780191944101517494737799525850302019537793075485435619594662963057673339307740384463037149838752720905351619255825917215154890879516611975559187217979646399551187609032617721582779972802964938352518594444509774689220987430888313782887459624065233835808659274016952255070831977513438002270317155258500165807859682868473520274393424550317045900997446472534345344417417187831755226292768784296963124373762957419890004310259809579598894655241148411750043475606960254577176835843446044847091594262337579276216922197704125671566351561776881275311568478592902127957901886677989598119339088766833624139575030433583315233104607096071906779650323357630328231779894614458051340771705757065671469040306313438205969533225612668216556836950763100875213979570943200605554149448656482921808510954923912503173649936308563178116541059052653685121617295426127720581564694373931353107637596521289073891623004073801442608705755777238745462868992325700779710348896165827647312304414809039373055871139311447266645882011769315782807320413727886312856494776946811828303897536156964337381325636040257557337992708885123094774394864066673215602286047404817997284210761718762766042140875546457275877950195494336893823413991744188238905010318498548718764812258990113255098085634994323668280864936441046979734614436446320838776668443206284127227788964846829372051303678437904442931878728168311462565926109905722608287942090834396244197325082997362208342408944374819293542533841058146950182021829552242779180659314345227733683601930629851721895585153071586456046987010084757630558156860792897969069748295058933304980610179522153623426005740850735267027996678582293868168342053246341643034609844459506475948063276791353209094730678891554943752012832452449982758091873109169225950395013824570805882161015213542039151447939052379329089271367117977493387664032923042864227801978072771925225088058874185274863733921916645987959444169157542090108529402180797043027012114366950323835768555140506529686961213092734412774913236150981185318479030481068392323203054346103299533089617198235981476879216016121730986477556583552925049000397094568839678781463902826977247325734802301944891115810930858508921127793317398436938237850779680080570215308632705787082815014693325102479240485296132412634331496913780916872452929986350925581995819781634735459129894000763674072287813730932742411483952759961754725925764289069498154963540733886590038842393152736497861056142816637549501119920026304291878372598369412882968427287378199033310068779874854997699343012589656487868068085528939182472237779649615759564343079179494312913569311038335380033277050918089449155102935862653692609547176914292637262230440470040756488721363102229987251142467647461910538903235602251168226733167241071832766383535655227074134095375706215875328592285544879768234249677160802640383858888327331021422995071794394059997028021133065266466945615886831633803567233596365249893594229457152111640345353208034467166536956884385064363579114257028818972164772907332090982597569788032669550499605000358586479484126328745358061073651309623619280450970051486257194839863486346213418662332618477260097497396694477788834253826705263211723823105433730093059599424704921159609502902301789478665856684510709468121444804200514344782551965918216672118822323536887492522470796399458861825576371883537049188469942253945342704641915411353925782104055325908602970798919691697998841364756665078179224166549833554208886750327227627941093421806166063502696674061741890592199931597818073106685758465908029894616247365202038153261541290339734326001652801431432380800608929650236650538259762547396987528970903648608172666028436173853284749759122595010583475318487449723818359968441171767653117237788051047491242417170547952831356875719338020152194095229942953454039273465678972014805167343545338430559988206339559376905670824711829477259881439424943539564521911974029565585983000864072234489441541809756112077214635221512224568044295162926712909346539694838585083295452861665240601517353298819552313023510862107874462853515271411087700355656348154665385297949232604991388649211502404788431722159561537378488309883639052547810446359246540584298095508795554575312856831276344991463752053231439257463385251868676074881156510450493266891638719986722255516895417575805416352262164193737737043535712552341446902777701595465743676485915331859377829073219715524874973959677165918444393557405830385286199868555582110729008130307730656542934911455927999772573780089911183152210236821780837792380005790076588203807845553615698920982135966834181670000122722218826543234569825576044088427546635400596304874221357489104407445537464031292906318806965456603229494581184141588681690946824716486050749926975216913976250355642187802971383670421068045524168930620774436982208036506984693496596168425278139742544761093755237346282221062911034684257695072466833942595656676125222537057880465639012742209306618508249066707549115467610826654300829364678768018885597636917579613732785453263607251530015507469689423335498288011806949323460240726027713953840988706989694015164049880269890819901944730306023809103667830990208752172107980339850795052065087288213224162665940592631235036356167694169898783109363954148098917152183236077506115513758784429489398937983279749483771343043967266434080868100675669508040324760887634035442899418593415090716548466128029335116352281189774025251517056202623119688259215622104934685910462819114984625139681560284447353218301248440117047925455892911713701086528108806606467155515963374909605959758950948034594037358368645582957097208155227183241491441326995160184606881307291608946538209565529426430251664974530986688040531717922622329479919089507792040988665493723477602668187151796753073317235956065075206376338981692992137885577305215948252272534464167424700354524954209966951042433841567567331189209824333092554732851180771565717081855520935569698712220449854566062121988043208100874166921892276420441898424847262086383894528780600948216239368030363694355529997388467198992942592253246408631576918970878383795080536434714595823745607224134041649747143531366135389732709950885072112317248210410496040728151961529679006107259719292402365390380490256399125524791309005169624605349591351613239892596068688745204129703355042718852193515794500513903978284904753412223460923095992417311822481856081353756553370849868218806530005808626790640057024520748083519703160492801380472397636506241947008595963317377878844928374236058822811219433898380539575369266117262616905122804707043838015028996667661051923873968702415850361056378700317846540911705789947688117046819763024355635707613916873895884434279933148963177776767283014371266174410178554423035166739442025935380977772405937231946599921195438640586583996918742813773835533142299503075524751700013904722834045006950305792106754235709461522436874172502272500930525154337266796569812756666594589884191734728765684978275242412170672645841686920119545004243523115619467918536700921566651315624566859668681346694505965768156613302447521503522307441153111811101281169242044224070317201396439167905518144860304779479071636957878835648182240811968959351178376961811455532206896732964233260089456843264022541551092618572992617702870179723719491621382911217331788873811445534243874330560785934284127544100772715786217581033647167341777981886533040078229691333118884215050422164073968398598477899230191659980532786330500062823454353673484244746254038889102389950322219757379413662426382492574559879882838312102217514795190136922072101269446357594706747071316477198357246229725016729229763937252239525885423734163526041689871524134531622862989248209263497342005931632593597694103729131689836118429246256849312925428570555859788548956061937876160657162971498760928211093885038414848818229638022133233773959242306158423072820372582498517475793579711304404356017390997808985620934384170297110931817118628111291298081197463968700761763897185460577174891082757031092528378782447804664069015455743389074638110698733267209512660310720477025222128483906047066716819973879073295423041681503241679357238985338748352651888803240742915429788472515060726455440026842476784786164712625722355996114011106560412504446235487756024111242571131824499117855007755672541556064767316949563189713348209509373289687219413266823676599116562092509205606591569420225613781163684637563260266684722788527373468767787606591108725843114479604365559742449746357443023496693194287245600602381908823142911402999765081246424645645334168169351524887691038964548753494411517704516857034697459515201427630794974877648612989042980913785709115769864229753952913689423842218432752934930280211248034408149186124101554855402532402370970239399180115489194859804109383817248579556099470948210754723609108146722447175496564276763683905543693011629498637067530687775147696235327779704028532967488505576693866041979830317934277307921077753425634248023999674189568202303548710646752643361084024800341142094069629427755496457628489818468593021453269047885198554388419583007416267445455551615863911631497096397251004221789314762533950166469847314813078592185628996965078843489398636015402455737094834780591958653402241659788468996784813324945231845362219043343756769844934296588977588672510847567605193637265973732785807287041608523516958594478116637117713224334592272431454429230710171189349902391297935659376749752148751760925902633617025643209951637321201848485611954701451827705291563992835041500748282802027879940123444314718937923448956428885172335150371713884643179687814299476457487469451341607925978620458553544256881937570273984814037148825327803790097550182563864813727849243705208154186796526454158624234122210057966749289717700233141046173833741518885267363957790281655779342378688146084002378241712419440754696626204282920471964643450565316684922798042384152507868695691168655340748905995353876320362899017923567307302296985001747553146144727391552921800053111608251130347391776750310919837137820345398230681689186644218931737255253036199044796558481969486664940396301156632482708386599053117306610682726787857852843329474360947308896850994495691524268988603492641908936810400431938396575811388208169693244343973302948320400284224233773045707960893961962800767799848262170109482302740035294362792795074136485068059541891950028844758596130023353791094809191529990587580220735667021512804126047181654172482832991408242390291138940129926682912900052958959696644583583666021444193101597345181144315825049477825290971709550804682191300727063857021413078326033175577652901561163771738846979048579467537869790551419617594177678908447872393706634727045567179861964943349813068884819492817733425634560379116317776103207760602571565301638499545111079933205551898852220544553327835064476675643239418845068082157112088521574527856644207362883712319943437425880656007197148146579934358208915913813839596963053128894718026946544041857176944494172890424487127171368936618208851218892943161655692548456150264394110700081136912803007599332579891689018102680738208337696989660887655951371984139209259274112193706568033680666000497632746853283902029511873200580862154441953085048227851112766905496813757063240050433281851602790978074995453873679916204176837733756201453987025592524177969066348604145094316334459042184662677587033558551067239374221530787507399350521284058081700668487016978199822551202510236884933200715537096343453559965432967174739137094519610130742889887427467448221050409609340353314542369375459644931650300301686724524529239149370214808689329672053186464908220189471585790756369239002021306677643455503915452722186065399615101994585736479844429695055113533852439655473829581909597206034320255700316649870059022051993169532968376649124559660322174966478830394765777152376999739652596487184331386691402159057989482898609800341481353281960811107069745318744325665110485574784374402866529328641350229022217344397432795632502060717955158960394685219048972286570337505827008100694013116934641549489004834150452739750371735709884003368732136730453147326179274865102353344364381158886668436918188082968073308158910361739253894534986776058466525867538313911985084474139455163700951845507959893791822571489353631465262947660559644196061386217265700520706350478123777598904997087818497650456719989371013925390457381066385810756209259348356899047103386467651570027020246093137897112516432530613127565217695007930433954256228398874575353221946429079811884070009555240653737397335423862843415026786765348147149349650545412777078382105472171506150346668571976415397009301549034727057411379620112997606287241665459140982880011401667202055973357446974881659432097301820125188251090160021690056872673547539505203829765475193538007016683987298293313202569232930410838923110971088110594467928840405433107544513921175843630886513284799066022716808792535337982564531147059577213630131587705696898313823246269260199625391028767133233162547737859979005120473904022952130933782409310647858909188198154948994934516726659778391779833317884655800971898744385796861310729867585687368484308412675773629397369992907569200218815293778321155919662175925723967444650814227382477647337693638103775583212777758385693835380184381452769832352713172900211240350023849470255476703260609341840060098004397615178125363848543840457463260593981306566730842790497378367564370470274172385231583386729132841441785542331785345999748449264762777188769806819318320781423241852537778906276316769283489738946751206321956913131202388543388603130594558046318187639868657967439325251606902820665830824130898619695536945071826434279521477084512241232536175217389980167079440184872278887848932113061622919816729352273260829656838383916210529139959270760373237640481394678960838955746557303870620004044457494880995952256706292845748536062266755207056843255510362949333301063519685149268799864965177790546238489427606999744730890231113378998537359398716666351822751944597683983957040159244273022508102871932784083755813122363038832877263216860433769534835828519569847498072687451132404933099802637292180732637094191374384942441690473703712865608160425354345942578318832604390439155749716476303295433655452858022055365250944463254372583077956558379494383784899843575906775702267033494366255429873074141571328212750115738730536418593489169150652579392805225584382312957866091292704339449089563438856573669754303897183087735949643785119112578977676508406720726975850114171656237476217429119206185078160113916605437553576616159784664332824322880415180519143164287557139114820857633183110227534573901180842998847815879555620585211873337235717525997485883937464741162712798700217246871916748041266317726808682345133943848374736559576803251011616111814225878679382255191262434455876373510799483464738332866091779950344192420488228321520376892667516188241574075635179891550182857891713566823143743916083879686161924031566707239066021139018763325198427580885496831473282111181485882441888781149837069946392830194155193492668400823738920214005488270591916359777356562886190410209218021501859507780573744260207170893189409466872484339389251925611672454041589495421678313380280421495707729361037569999217426920242416112460608236757164263460500433476782151047174764747469371981514380881158090766546307610395053982194342101842066903315188577752319287021256170487259332114692646237335411922176340514773236204818657714439730190161759886835195059368158966540238680516966191738337604600291803070973693861560891953920336475423032924372874940869372992076938157946750897793503180690142676702283358555738223314918253462529354110078387435081919318390629648817369268395802964343895606395326224715974785572730294932233786747300162307687838951525010046422533568920915244501297987771510799858185768625776533207905792634062144480289544677421009298496513283647179832910663396483660951903584609130758767797443409909846126505553397228593257490185323196531876061279500942912140883373117778914652081283994264710673359723493152609702896498947677128516940738452790712276032162606879406956962518341303804567639561469954362143721832199442045815873356256297783369932156340456689234645924990290975826476166000510907500604178663488207602473842329801789758224274522708859604260334639626920609386461552579680938786025588702795058185911461465935592328764982142734961587760920617319428565916248143070272813054798039809076322864912890035747015572999705854977299917522338144980071955624492421116942750578020704945583143084457337121247676429580676259020073608583891138017839974531778073669056334120419022951919385898407921801709995156746809523590140432251838224849401086106947170604163788043259679078065318484795255283241547437350103562718303331104984182159889052436430404959650174587915417164229998331771386703648221464886702360847489072070583308112379568680946251223397066802132962250206562396387284563519797550523514554317118060226896639036601045669986283731768841718196699342965695038632560114350298034990380406137275682608792912564268081646635281630099102156845766730400792099811577490163300774834596455203145324216140974084357794453185700803615891713758288534340001389612315378172262680540299653055322188423024537378069696772093716572147771395827221887903956931372426187920668994100533202337568646757855188108714666005793975580671990424983787826409326544463795821515887959721972130542224348157285791577498499038574137176831496935145520440888089773168973501666343918811807713212860452694555188720492520232015890192572765337695623937479543008394112290663474751278036704187782886970912183305211279436165225471038757043250907588937844857877065927855889031403573583624135912975704383145513831848176582745478188552068314608278352196959619114473398936580883779251150175898057864041681018749600589651119300818453475665900418770166469578964288088180226222985686474792171997148657030613468573867977647034884042041977465861880826974098836775390837373922649683493027519134125765828649310721978272530290413907150827587050032183821062726355571301914731776657754439306125912757998748649357943761128754919722059584449684087163541625212485569453721265311181561912351616842346439047217693532486008352991207638153283919519438258171289262717347367465386536671691276196062924317140206014028187760655351267877636019399025800505525008983743756651109726052926678721008660543090135664714202004981870840776094586379744112115613681414831052620492006896496997141921597039551182224245563517821221987812197527005120599841235685277957035629779410870179894321802583175287457981241550580164883670225661287268484440929335137016659073459938718892481195830259550998986272447748709914902154071266473057309414283414884587634911740168495993548894974243287811542604174181437742121709456509900272814488199820824865203748738274315198512765284434805910676895320157823353216909618116606965896379876647652817591669595295047728463322394839714760672397070816002285119636979470442395577143916550045731662902924993733551601927625521797047794238706082352203092642477261270893834618274829761710234448219168555292669708367088486882567612834137470243187475325835193970243393557572868993614217865877237849657651443057822631581263255378429299273722939951865960566443640676121491108405091136218594936971552830268253146618841037586856519613397022811486741487919381833308844221341309295046658976223330447816254653519908030687549139155778154203438371113903603577336283630734799564178954525080837022826235495795655197747964179569258707129018780535093912821533399560885240166214790352259302067401822681507050423805171796257992426173970725885661588128364416433931176211555583440586138724086168526073416863920031805140047828766936745499085439570230443862030148103074644362069313583076949897764639618676012697994506474136220252021716897617392512843979447671565210113572492696302267215617267281300932394421786799661818589820327103539427696620515810520597916565081085080878207308392552853217972504748494263440199044514839868111833144733187926219280792660058218957577362133972093519326706927817648655682703340641212095030048391312680837677336882433211810947538733285795464248021482127166861525090143029698429573192658058912405149686534776722397673742766151039177818889942863161039397248842293241059438274986040885226185796693947845446678530267964070439826895878099664155619600877060995814303155695076726682363873824804661443954452604977013540290186945499229863768740125584956388640450250649882810109732429061934576041992950323462075134468336891523335647984639555562100209823214619797035019333112226697729226586117543324534448391315579738336231142662538830760842774920759565970712333459181866672989646688185545343966190581665578184081081326937519755843926808311192613921695984662924672350178921531318587881312205198750526770072265754751414479370964517851981664225355361031387596445179599976673792394395503072336630923001667343541765823026054573752735537509874946943010212398526749118437179559143371030600178448311276365026235394461507328713269307399461660924808824989290284294247055309589639440580791134707170094922416994179834323161555744126973855899057062627064526414135952412296772530298434860917778502868539938776687764349221441404788051224877771068957541707482672988592740453841819527426112460366285375843320845590822154346595524476346928586440479670426097881891191794647116101457266970083239909951004008310099662441894912895188747020923710413319471830785965972288089814059845662714461876158431134975181798919617910093764265679555112346650272117991741831653647447273751920657197402882250240218283668367696251329769466984961288709987256124842416135993751831876751020570203336802803932753542261137493406697367345618229814090492303870778660423540492005976055224568811400576482762619500838234430199461969829050258733070947755164594831655547534510485769010293208461566763731039309799473421556053772855001063357406310734645474264491906951450461052714571308998945194614474700830197439101305056683909559690113092077798556406283929173213005063997044448550407385178792025925946497654784635906374597310337532050117369439121223906833271898808042128295758907832487937594050770734838192206029652643542192566815135004471918297655218064808218230052996799558269758456728878759835824431058126407119450153570826760778383806613675706923669268799378396772673637663630066334148045007302606857651010542243081311678344380126522088663005831244736482855382982703457599913841217971732264959808643825385293445905108432708577338132977184698015563201140443892682871477554472431990885142560810254996138624567130257720892117515679392415126530986098336996560540464072585041679153585348356825084970766677772962726566903568828131479575461020961165591615102271612676935629157714396773886377612668289196311877397454698406887326795629425229143528069734358124959042122085280608975085489966003509114380411606373762132706264917181773856487975068974290932288257138791245651038167669593386749803826648298597883987157346554979201437288467344830175633147085786241983201974568815082979603699207202975429443224235359450993143669236309184125477561860952471267473951051885408502209139175329814905171751693119587097936143837203692472500524358033961449771140924174156982345423667796282304158018977633343206422714526298663472623699531063949836972334145422053654004893143032554160519907042169497864928938506305546748481241548207173188624088151915555084188868577207833147548456165573581526385956037336518317299080428065670770191630513120927469628952420378685961135935206158090710102719816293901892473199412465142324314830538237696469190799832775177805550003249148642176165843160671212975521727554165904958718029370106011918614091684843818586378638834624647849312265565989499646669935259113929975455269346258090933734680396680952421787676463954735477376905460969199563803397443049087824910264608395214475480285123035878766273408058477688312637283088926898917800148508582117904839930690860125549404148694359037134756600781367224366066717937561149626646022066868292782141217497943524860066834146082112249460034725563815948352423090550814554561098609882591478589682484456861602749972431451026134303189767892176529943981309838229907778675191719500959074777426511308080654363048669192507821760092771900998417814424189048233033941830343441400511517640130210804084751991712457331130158123466640245243430194929580523553674803456246992845620145698905476196249019031339095502328899902232258085442710367235457290012646643012480352060443723633046465127859452840427100909011695891377871060291554889609978921401906822413437664808844734598224558780366981666583742336603936818597206476165960806235987858444668239587443493338214458423104860132255703146033652416031217790776244488352045148664019098975515621527417574223843355689337364653443596508252625974696005011908902013665279589118966526208844625691669575018234204198631439327678756507444449615119162704586921014132587100917269101498794123100405227892647528191956660093572645591758228155749539041296816586457293530159491493393115211900876838565759935600625355309353815691337410048190230116210287735388658142701671475328543539607253007702808906087033848659740882141365817922535850470503819481273251375393624686201864579542550151681949718732214540451781781183983311036458054096206796762207215866592658738989620516068767587279555192262027161754851133122102439763704044864402853722014973670629687752488253738120175986351437931224646010918962963746893150907652058259399680161834419008610576589016499672853150995335834875232788619731741424027325656773077124673588943342323946168190122214461894686776654080338350450686295093569471733331150399441574304582466038477119563847912165727178028497323189818893291249477345150983400649753551746331001795980528445602893420608447032033274238723744453895325254711981978786147476682867223884058524958895847336699406811685356552680710171204145340610166267161677181471329495329343399077806487913715047118714706917138050217057399972496899294151858043068563154841738877853548971284745333699584500585405412565218473426335231897255690642758550204503833065584648708571605924754211964353695033455392267342658401586331244282363944402721209627365901613654682564023853909912075324173726767172407837871550686336695939176028504063192645209461198091043016882464914139034080114233219234811201710960242831268112760059513283605056746709643000296882544200397349467445714751368906646099170773632063591391019628320698013541270004426443421456481635849403187676501478438397192930748532172150399384356001166564213388922363939553537795715277880837536540811468926098494315787903110750750339520970878118931762929137891998083301531197953380780817791968769055259940762483000072603032077915900206947165415538554297963461064633882718401513957479168845865833424077888715649502240088094947732814850489847952922800163416711065153319480580890036010319155411237094082315270055490703940656999375006274172880334450845385906064209583595685273962790939503005513307362755209420833418826148028106452053812494188086230534977859651626079140024579516184395052181536114717087209690237561785406882229294353963826454241025915932185619330972337754305640109974088126396520936967181840371551257914240998351550354205908771664112217838451542873493558467506041815935195319489840984500166495609274931112154471466314457399008986851748506206688921462749107974605101853790191041228108826486530981028463924857983048537750044079876963031983472760548279104470190135054674944024729126574882507116212228662611426277177796468981823905729748160969685334123008471127999560394355778835230078328180074155840743760497558643429987268188932624711545935816977278434982615970857114784504749738099998819148378631085313652338464412666054849345689641728163429220303616883235977067037752869005936675971530803357677464478848708362006916597322853060985834800882425668114313626233351988465901691015508414627168248113984971114772537596900234787520357597111605973741060400536061734458339567145935130714008659886600513875027894197132976473800939442204402983789439056344757165254324283025774400756718550439030883422947791887136424338140476283669161688682329492506469246629644118682757429225282782625311893145515342884968158167720431364231761281787371643229275446407016248183025700638143708346651231613293820024704460961501606154937040837307792249772368578345017057432568434441328281771844931102276501973720430136038746214768616453768241041140989219757192606000027980265021414526464760007013089166852383517095756087387651427841932330717111342628957388676135554597168470035518024200910044599083204617563594638117447055651239917110492252767416069322926424932163502986801550875756765032069524972007333277087592955104983106269543457066009872083062219626999553171099738176091636394004247384549154992409817741214205907311960295599274073882018808887499340841714013702993493273392008728010016015336046279855184160208076890947893528533980369284398682961856814930253778185280985398694272334369070591331272626310715333757220277190500060444939794372857110214761242348164637838973072443163572499228046864529141845451191379101635092046834716328397438770381194557892578343502575450822637373716258482891112635279545496829039027827886605585878540424921123778439290933496270638096060864364634035306704633703907357423692997995511746433752648528931063159710274579320624781208180879467817046521423837304481784786276313679766981588871359831488793188551685574371632163811707765502769620025547515930181114430526002642312468062470959930978392567292669818124728105419776475072176506523970249775808345491230490463826869192740936902373299470204329602898713664065433712906421630877121897224551522629990929036063317529386225891449520614620521948649051208369798906991868993374311470680112846795449660704596852834139962392368859811725276999745735650595872570947496002950450639604090845809012972612751302699420051690258922309785937864104469794665850592698570295142603876074939412216382098667740942540398168348277435990370594530010732574328978069240315221247788433247309478647921895235501193572724802321050085688884914443485480960894571817904661822303278588357674985352625353565707360062400509999432106305206479509433564455696746453693033644749059455584740386384181967061993608844684555490429476555890976548364988447808411765662515417559311686243808902605230086995569385572520987042782413404646061534375507133828310492169227354578319968122171372710246279416221631657813608134858463255839983008619183266082736606250567040773751565733538307521924974670126135228644545447882300395211864740968555789096124327081883149782436249936904315649377917620987417146461873146546554359119224690260247670280859331788942354953540021772716136390122689482364446337594623366068138629869114283979697507266218046348229720656526391753928344690076575488587442004661415507267179710739961694101550113686032767801287790834099369420045328419352134197418698500554245363884885757724139512316353022340240844868106292580163576154936617627671454774947474823481354687780534163032922231003953107718218578312616217587301921629451055347000573814739908059315487105626795242394835145074326478956318958497779064673672911194550655799870777111540281124873523331456155058000808019181538343542476624755534405474386384655554581455579916122174098105745393102936101276086877174449140721346086179324572172806812166389928990640568482151782494578719777794126755185204070904499046716335909482318312686499313927527531648005999986046457381032135758697526994379529038784482539380682344173599317227513241235816594168207504929823980939017213239801533279471218892985078228917601554610449030032762214014510368431066925911237070035817747559138209813592377017605956844953643140416659373529416121152122510010696834236359459182072546829739036313355666701958052810961450162829507968197986455433609860646234127754821962481180045173234666204837452366587385158639488611479736626508375410376770414861124139490912039982482279056255091342913088900634568893100386550871689784539461191750250541084274166369650070597036087927243871610964907079611188361313638550612880899203192743743973636917745807062225980601227629707614924963772970465240285203204617162227964414932794318669856598267949873342663873951981097348836222968909867595463657446403089794621855473431903346720155731066295573161617817547321745760797431337878041626749719291460010774287324493125988357945051152828411157301209748728896270208442511068759333984406564443878066230274519344508884124241728245036281270063445419755053682555333390971231092486039834044768887664656342421656511463332659683853133022337995228197623854807122370034146881432845541596947308406190656836541129687972753510181676228369569422918350272263060517388570471444030867143057468418828358747265217120947239088217652444107559384228701637001722423508818415407096311297081615317372381908990775880267632695366011611398563934520390594995039682495600066749980217842929985779898289160028075799848250686609262248793709951820484244877705658658085797742866944254514459073336029204726159144857167135128457152802828908796483818730320209902910708649161383282216310309767042195449623067323897261905523069991564217616855162646681831986648427450585273881674507422888661800051127967622832361784407452691593500556676803709747149716821462180817287065210693147691937838238865489605646119823968575940410787650189136761833698678471448794178749180217497055344378061117907703815372179234205311890995614414153106725708801544870025275630989784405168901864750759759725810543010302867372262179451087540614636891258911977206520909033260547600791432256301225808123208771925047167791605143937579087575539450489342137302008699476720671916225269832877797544861228884344097819560658473987388547463166826762806520774641323808552398164275003104251613541881324261114860521947888987083390516704953101646753945845161053825763772544944152976546428810174807362144390311467044762719979446397254412071093582194977599941737949081788758360413578789782961410261802724469368975960724031859015093989100488445562704505367308161405096801563416421848043900430525312129239603296938561946499621034116261836321843839577194077702654677288675915912336567764868954990821767630904060846789337626090403028640377777888166398108717130548665986392822490716346396482478426134019485270678653193304335433775334089465384627189054686968755584762371936725756401967679341331313300838080125515108106473240701479639221032908929097700075903633304279197954546303713074613259167068011109387937048754214855579587301170683246918222308436605378163872809848647723987773022570298701977074704431290894750770347694695609792027331498930007917094175552705985804856835268298377764340114990319477607127636996077825754831239050377467220564562521165993180479047236226059939523079261612802526673590025446074656321025028577636389486593664099725652076190447080810868576688874624984193653861183073257218464335981275451593002819130307058539872945563289911659165429707678625324711102773633696412012506899154778175557967098426545254331798102119663148301327466121943672188513127110344505404961178020696915760417426942076013257993444435486506424620345485224878403288188455158102248631964870613384346215756910846342383446582136158590506866223335376113507941742080568464064866363269718477809802049865886489849981167050217796495607137002959113366949573041205330471146778348160879954003721398245967426526611764359226077261028932534741448207958357765294674821806744658533576268459945822508753190522518767006533373329956153734243968544758003403891342055310666267005134048860506776015322279195316460667702094592802314430567673408065941739299428142285201636454031300612408182630462014881047591461567277821722124894063225182749289845820704731155287121992482465906417735211835623168615627264522378985998548016879107432231444129575323695595550828991045736334330954738172574926823952346490295833563449350558474929566829807811389103058837015155631945352298591750153703274709327468213139960523273164938404767815081766477634738238720165955530221682484021871773873598842841141400201475432534013932488988981149167452181841143393227738996706151721743560744430018003627334747104554634926534528982697915651041571300581331751302315035118138269107209470753519018056641952634797772140677059381879910346937060438495482465015196645622817361260488764328368385926039087363539294690774349321949204904568147944009876518151963885980949191737566127837245558595302522377561212756293902939366263418960127699637713583069911694337227768971748923077531860445365659266185476491754845812758920341073216802665528579249552836033877127362560166048199183864071287485171171109923436710693353331264346884671801546737711906073640221242425563441337376743468399689005619700587956730992779101141856958281919432726020524910284989115864007263068726756441479411384629176164312739422374599081424206511328601863697660303393513393046006054579825046711262757274774915845226190884315943449978771325719926577064307831257423574108177166219542182332288783131968609588740231534084901202487691845659970359425601126004493986714515691327075108670231816871599437916988806348326481290328825558573002248424825164442279066744010182993372969522857421165529050949272733778567385326279433945140650512515418994435327103594831934509948262907438144686080082226838187604793812537380219162611054143347846924425948423636405592404577074618830254493483039111050244108999126613031083232563755362712086492672402475679613309861712904821219707253400919423093490059073797764256856646915712867967076191189745942778316980178976131970242770667078003200991806968455124130972787347019737056206386373389600061803841716171311886956362946449999524730631538649629540456138130336556101486206465246185470658942925408534156888303573690403368580067302769084666811545097628804679301338106336621893883506460878166700536020008042904843817690088415025376508428684009174686115405257928791108186213341495297854355628748738805650373864792837326780433042954227081386227844040603060056691611376948775523400767043538370650154239288008172562235444655621818695407831801538970714718906206352028288689039204168820294506500224580738937209950118456458200957680899147890902854820675919093107437143285142104690024799344297927340373848267076849193053051195224740458364570274591097146150299281201517956147375479352541974026711907746772818005310129974492955798554527416226590339859618534648012804459922435127042895632644020099725128011186444596900264990762579200470479359338839449716260130307966682708735832774179156750478098193166073260960357099247899174030201932872923070751664999973629081076239863987893542531567067290052751018754397286151334444198794737586881234019855359219922297971861334812306597476468331749463933261666085464035350029485600185607265950062638169900345723838923528556790952665678550656213967771866940230672589272750513511221159540705334260550238033554205669126680515083626042046545058330638973941004985872401728230708077662152432914719847765540985436417751540337349782497118048449694555956272213450781200440628185876720603201088342317041276982225494193050443636212130466691370419825070223753439482786734358539772764404535784697288087473381810297268537474240859071908999760946129904964796630325519729521488268155847755885273904714309475416580446459325913269469627208219575936024054517628170338977434364122617983878813191897913976231925926707780552581942703734651244036748794960797791364895551072907732504052024563909365523265341144116253123391443495982599297521400172534466935769554998823264145225838436726070847907120187893470687285684062486174994852442599641216827812600651674518859339740333627102665328240751932767288953757514557604856935445739762792284909380154478476838903197487396717022362451896342969211702764071509670499246517545482330696499256083079788572719232014075758383891420456447373925812808561371483277798979897617539490417917002823689136055038630750395342075758332434600853521383187203652463266809661312053336804195683154053840038525283553233449555574187580029439933440381416789355441490628346590343801918940787457253284516496211188652985361731194471356475622287659636650269203264150777631960539994341554816358640816289749641426948428638202376416923616365118215518808759529650265929540731173150821140508391168681453480479387111569721584813528728530640284024513211164071924582770721148319184516466226524533013418018607519306986181652843786272594067590834844231806609422250171595858671042077197742265884359267904874463953781302820776256853359904421517701139377635059124721027189793695347892709875698390551183715463585263718088369220061474836490245211664126324214309286888775851756798847575636362333542611518911059597619803815054776940479268507908596530872918887674373927836346221743403487230718650705970574070359374038346053849521350928815739759396676374911941358036904381931722578701030299179163442642590340715376604333273288294486311815672781681619700410433319266523755374700748385950268208817182013052705936566607230358203791229544957255113587072155273478131639147262083416445317638792638709703457858924758325069209400067847004009768683438311986006637728878646954304087155616987861820929686767171669362864479943417881054063826822661899072286856864315456268837431872599628078006243025822065520673116559153283529443636670256674923134397484839217350418742829679178907293048625306916962460731466759361996844925263877906750844269346596632134837581506436442523220184427289331506741223185706905863824769195716675717178818426446376865119924780269959369478651893244002981781139773720575532667800216173395844698106180327458475899311094578099828390360901756970601553318856189123687234112869929410642496713668778820657779694037587876489623285788590297191523258416350877711403166840332068010518414288031411001128385243800169305467455427617536815860976852903846927214849021909607437235163797525806241624312678764918471999261034004711929698710406970968662516594844459740679217393230087398829308391380019292585472209356898529108902616599585658140218365303884880444654305789512652491704298750198356211007451177191524756573945381979847596292782144965449464046261783372015699785150228254247806804010908777851910611644092361047649566277718032607289118278373137975567968125073696323952814970820009234317117702266678481788853941358947222664403765366635066608543758231544982520399503227770930674868612320704343176002137095872988251565209591200489917057480488495251204566262934543465183517355824174312209141511765070019716377562929776902459061182705557167706470434376329640547969383163716476797981982060361957876829178287932893750858435878191730997573454441485034031681421423284838825307529046323411260552659308253991075351867078920837234702521743760451813143006109461473004977391866453550045056012453764655674948906307454186182175977069265896154494156849115572998849322250990384747949753783108457162637976819957585245938945388604594922033774420999689937855638177678964688577553342144991201201902745740772528444096774249307306983876794940554695392730586417991744996535013660410543329303272806457285218582636330859659033951849008891331599755529969996407199331779431078387572747131636594729079744565332426080048584394140181709902605104048674615807120350328328043729955265208439281439410812160945395082893424645866071969362902545902517872468389515569680814009938166050330402835360053997534638150107286662267438557044773020403022941096397633013601402422228607447975991352020350649034286888244571216500427816693726669600830614787231864121471941757393147889990623256634781618544995188722941734095784941685811235423063676652024229217772927520458097818113355564864161070184678635114737016872618163834050143330794906067814199862136457842988290920959164261243479186752119493017470270764074874491985297284163039453593740517391433658511549971654478838840684561246110456605536239288967672922219722218783658006161353325959655202943229932910080212400150389085577350049803847978495772148414413544869907437961383668149366711488553591123167865849505809593926553543101357623950048489746232999427278817971180784756547194668490196336348858267529412785040189494402320804579796748140058274047269088458572901362461113185247623639639531786045402211508081424200024758992776607148284130349823226048096238513292917899554551719012042120408099585359879412503377120103253067194886104558102252389021487233085108048075627532686612756844208352670546228717519638078509775153931943773283327003036993810263422171713061365294370658253492348231892137316185014952247438886975204437085195336788665319497720833789664085389885595822633126176639886615171133601711307420740588417482377280080242825021973893602481934352605021705294086759210565490780341854162726785976291765924120504218503886127754033302467400191988844158417605702902328847014318338211026423715002175775556518507493662193262379692766515306029472987195402078376041161892632875166086293564625689788114038246105900779270704554681879872901328464462603929945202426846772231584994186982221950785269052650700559143874240775647058744017008760470231462090446396011972097452067298004388076587534416936839463308273318053185348440018937338439423846441465553956103534214437471308641502066456204034040243727055477503745791307770705941492682831479216752436540030690702672955398649968511024837442727010078483992273923519982038619445367265381427443385509276214459351484734819347406886716336342266497327261497968833165046562694708904400247128241045719564554446789670016732328603254226666826357102658134371717485978305856227349864975503222293090369333906819647477919065752583657435409225517529779755106148830738390323043574682168845293066414492183239285908682893581199182956738662638302553235797985633549908941366841045145131462364390408885760245686886164382442542353611383305499389975197468898941683171132411568804381700576269011600678225379773816929383946419514782864325776789595262668942413048858129615419208632970710382859410685355398163119819122396094487364920867640420123421376348514365258907386929487366178318240377211818864479869200943492426141747106252822850399241026601220644951827503773939431695499484236062842292906618592960286195315154210803888516068389600452215118123610478360278126251044824805728837171998361174949202772055958399864513219234587888735341610502810321312957666014302494502302257932422848297887015079186600687553538222714516213392813317209113943973038255234944640598123307693506182561507497905425293053505543622314001412717832763210964189467264600819108141881080715152464949383898957998764237895832932041483569551762981988397356169622852028882341680422267652026699829292496155499499139634340505625424798125539398832350029254384025846293156112697826316129936514008738778812178104663541379314934404503748416421948202372310295909467126945726684292223103889408732147102823126156682766909088595251267349599162763673053513220952765891942685540261244465292657155367041132876458539558569160229080295800556093776061412443614032193665927364254157352887269423566877749121896441233710487454146356005134846477463144908033010013569085410840210500054985671422112520017586240525054168542475503680164817180929028497134455793206619744996355743930293529013692297573956112071246347400282718278524953015706883244782165809318685993567743038749986051601100441015597378916812800273945606465349781795574684550833951307336389944308416157633774569591753019977673677375007196782915195519361742257154548190050411201628071155203863710070092542631313124949314909550761786132819934096525950831183757330390490436880684954353454614369532559824731309741168610047330137977772415295410669347522057152090452582518287252525794446435365966617676677853483790001506104951775914716901463479706193991866265269250948494540641854019412965289466514000596050136625810087111254929833075614652734666325637872277655957281052233987485986242011834128308169259993027596258439507438864007304108877695107414826983694790458727450216402341943112073336856041861167147222129878421095853047318201408814213961447678529618087591128526061919071378407070480924442570050367629483117013132016587976942864216299369088603379107426407378556599114995076343948057372964125381753207612224244818342025369613509090114332611764209598667987425016580260477470151353493661892290635172583713929535765459734675118580909714317259151186926371105315353916737074711497862716796817200381031844022867196494113706048977268770702176238976934247719203012303661989835788783640422040366858659882812030341630365447056439697034911474241436890475359389189415385907761760537120190454025424835158650624178827929069220044325244619427944628395877799215654349501563356477493272133703266987995966030947300952567589080532525101683044357578607695970459748672246709348759762578937491596944643111870638257839556638187896257284544245624207205579500192976877332812801656268845424665349897690751337641262836747073623166762920362326408718975624609030434955144151886158841267240211551584559528302548561858995459953715244271625359168310465992282044809941537223067420217082736870802890347070818245081593009457921907196146911231944325772896913576493307552531432570891011772699422744071038521576411635302847656714009736211214731004082769302337345374934142322445090043132858893061389171518240428626695167145123379852820580636228148420819220083621767162558203211279445966744232517833806609263407369081670484443897468306835908617063647366951736888152880766390998455274350769749053248127763380710906313944909579635425477534031800806241901007537543799790110713596778475814681271592181123546498806525058492243323711667375196687126793187058540161432719088762695122717475409093194807387974096392550025098903918021946566098112405755708963424950878343860821873997371669961363015037717694546354968853837154334927561753793252737534685052243827893377932837595603727581990505476842560160110342298811154097499451043512109043561283085964100863777745461067248335819489842949143153430162157123688368391553523378317829366905100676271360226736345546474820665408560229142256660361967228521825384264473158090836504494482025348912420827658325841048738228317908427253657971493282419349592283926595839375891542514510511566916670150950656086774635940900380994132392415484325329305397380201972816191121808798601356271110646298002383330052607367438242165248858275941929775448493041847950790265149412576787604783012155916998525878361823877362726187320088974253982748156127288556484337157961176816243159450858184624113992240374846910568507334440884705122931213348367497242281363088077335869884640863562345042652070348853738122537798328059184637469205882856163360888686526575525498227894176423757381802326381723481652604958953081990049324768481389861096915379656674473727405080986262429766610318690143479016341332435120813622190386182517436655260765015137716811463191961942112559427800336384132378710565064353053985663757285463273926099464739892753854561200295012312082526029740710576629650269348158544901487444885330913815235936768513321753858540032503972080396274587240185414330584513051553956043982223056712733753656456199801916355477950569135532472755952423107099804600003169404216035868379808126554637980547964173285035758312242634393740702100219103365432707773072747726363076563456851378647608153679939998929027435613848887363765060519396688686597789773946686596377226808621284937728429112703026037437570886779719749511876122889448931220479814075810238722211971530704232253143758038533303982249546167306549558925456552401775037230391966565409537504132551136876736738692466703544955742556009433139787628689885454161444415654945900765204125539967256596102463032986700898362977143023116183277148046310993212154108733979519849312565838947272964092724515566858436342004243597127992634342583969448451293258120007530112344934939265539624090823936193716199595449579883825684850205657093704735207527301966466861255086584386890291859803330801684871806642351552951716370761604280488439481938070578113937801666151494515016611685209334666827555533869029971900221993387860010017926024098763405324371657537576689963005015818846760183872582055713034586684173619059781658665448269051237751622785894558910411788306054100818499423256816269608188654187148569513110622321507348159574535263893572168103156498004833046580298296096705826616945129616524616630468914324577218634921571985608534019172494168795631617719332340385931092775303255157760291591136941269989182423461636254508236716997755367476421206453132219155254432060033102363457716140586371027263484930473608483338361168225349789782115386835877411030920551083439716520784932379144801931744215025824315621244469115821093518384547204066299519008789775579488913824810491052880091968338132239026200128317090104313567677290703077721997394019113608884990420193238206653818251050530375869930631506994011275415202948231762390261466056082786766406946533221494802652705879709864218190817056035129109389503089406132314006606415928942609050000373152148647222528567500125840403862019924418777660732145376772548976560886092884627773845304180438203614747852949214281819349242073130001213553159279548708768993173446186739810110732236616120393897846281255400681909837720972285212532491157723290579837459258069712980175385494529253286777226712867253969275374867911905620536679352874513816899794822409174023399434285749423450674668983201254609897714235971253955633917947520013702812449898140185716892073175919868662998367587482032165824843365558565058677656838136742192638099808400004298551246302384259187989893627392002801896873892248488463499150061498445506342210096607007810769955656745561886774892956803940006902388951682604694154309690231858986023378245919618863990264299825289137484382554019147180510806195649893312520536162322221527642714626818576649525910194008632472136141629067042146200321163447214423626398052541492022566894478409494553477897347673716916812396242864969133506873639568636013817592727484477378043135065483583490471841876828579427291407914062604258826436538843787579152837509539307228087021753838903367088595654571309324037657917415530162952173508736683820675626668244954773748917356808683569947843967249365782919674181434218963765628859639309629903423195309100470931676982511014345871752901895568228973015679627174282152964280814546448878795233362751682063753041367105395485114030720035805620423559610942890654365508465601190023789427093253775891157952040622934976439572890964759780687544634587817701289924632279965175816877764201070173359667182595356278262250970830208236460033052605350492569065302334740406241715118374429241019305688328867403170529174540544359845273991539267202412822262974633842263174620674060774407118223350815178731686586694606649734997826922654108281672091539958177576756944651211037914364858856799289089724705111427011876240287634856193378323394310602359004737596648136679874869861072479428050922429103658331857391427287607042777446913927296997761364923810723139597998964407827423408672580107965409872678765718326944528285136975675777790088109355331274664063950412015738329156176340783709211223055233262488812365906971926515031356865414668145084904117613656910309072575121809726724289305038426065105001766884723815958533946672769478164102056071854266912497933743663362643067291519890385678204328556277684465265551350167336356855609592458265897485079007159433431901108405910877040967649018124473506808508185593896146356681750917470947608928717657752510539111650462343533209472347902239806756437061470609279223022985106064583241167494848295231051456606845220639667367939125343112269391639395217974841445015829767256937044292634532792829911946420634020490766669225276226764662851488049953737143235930279934773392291713568207414974927628360418710749081216380313075318062070769985697514489729522719056882019013613687582058629681510708252736768243075581041874775343152456489290311430917968965481202227270940935193189491252535856700486158280433360173313994785092197042404121462272065786972933280063513511804398386979307457080281354554604756725252573099930595113744134429977804376195301361578876483078458158751227875920414599927774913647107553311798926690599008273082031137765917082305495994517757451226109380216917223624263828993015854812880829472163323004361694627727052282040577055052647063054135261437722488511867301798859025532820595073326775119118853153473095486681293586081841276851399680318988284293478799550407557437550066418076097795156982108296335133980520230378002626830605554330233006851970476325489294021539792603259373357662779145948780163224128824125889627919007489101122714196362309173823831753965452041797768566943672526111926565517964467335343705315525256354690076801451561960227806301965997582349164813735528495681970794750910656303983503853078576043543736116941276782959648880289383668681323727110349749394075458286336086564070596176143005140900176408965709444143870416607016699180111646670562844201749448205462984839313356231372743074217468279883646563893264842987202757233527987999755385409285588611064146391434169790714555343853576468327667900723952891999312567416819520368479866152993548836446955146037425647068549946467758046935406200491645163638852634868172219299994842783383617611152337560886355336304622226165143598465108735828480515827774093158661262871972587833640151638530619356649123370942344816638089805615258173887276080575951795683022005657613563799154709240230212180344204660770708035673254990838675482983824014643935441948664407057437444039092965750810667272031946548241699397864440428127012994837921689945406925796663047549867912652993024528311416022420516970046958688178606231817168004052396805111135667779182726010033548016612073170810585442062478766011389579051739178053543370912403413820470999771073181218150625617513076091373451547232644289331323288455433447993133543102862721737713574176785589710664834054214688761660264207382425859749126166829628517393141471873075881751981120519451014575465104516679967511541186677103352001037854641109025167962340565274834112953460621554404378973674393201859750267452576716639543941223174455473075103703604516484622654050411400114334671922914817278736348910242632258330121293585096399131787630835897685566048770732866995356888964171467321512097421437476781989233479768617269217379599097999015565467078528894604943913619384006546174287513464773446961433003932066867638857765412323619625437864576647444359139783552870996869390166624979949857391247925834218017310835133786688102197103573006082681408841661990520642247493547626765181308280938261644432588417242921285164510088212415550484014314686901952833678512318018723196328602524519732045054402535104389445539590943472716511140452932656564979919800006850455382792388018798105799868350176957882423134818120908799561778097229666551503394578169802637313316186953165053783802235631554108678578397811079832032432585206134807045508196796158315192944807456068845032957741079187123091382824456959644425940892803097276413249002384351972973614225768153792850838485427842152458828108442497155738017872891903929304760249764738432526163233032195692226688133234190303361802559491325750860039849314141203859909685906882102024699313687380601238681312820418327672114351268573993910244821320340234290224860715523813212729753011400255313699860753756943218518909921711132553227976385918342619925735177109850239185687912699061179245731418607346566341452441767027439722487093664054593180236636532095904151703865154091162351424312539120679124928377889371016874791579235442741175729019281015357965727889911486621892943469922530296960199848488985580706551750419585631589888691828607283824263987795557584077510033447246785211953987927981783789705492702537614216223636264214724207844517918820561104192067006365142643233680405245214647566110282647041732572641006832322049983488096920617043430842497514033879871425895801161585714803818059816534243087872492168088066166642337096654564853914173771606164474527781887071306130104361151457604703638802051819033684403209182295198775448327406452262576970522939847040402021058747001888822381404399294114825228561048869715355174141188198111052523481041533491725765373624097257750635062464755090327574348365555368904892078887378898163765408490413740750505683537079541076920325253541204970310882601995589447052606093482387559339031242553398183799774787351649007870265225537145824492658581454266452881949930581773525750982801643133705511485261592681724499326742361132199126890319730684484191210613215001580078106552701168588884557153508455889962003041586376174509441335424038325713231649680787696310774793371292204996209202076968960761602429236161879483245281075927911244214967577576762290773082902399527551253401296777431870297017553731088183922571268088056582194041567065627148480129730952550377905541803189004092637841135473310420195513833014287864584273427371106662842343841563550117263410449022909514813795179500380508324893997299478994973159285802746095514227636554636349494108033449966765834071903772962001282797287957075469971837491048186378227317662579001198471527844327758874727303397619515777557129553678097937789091032298436151911479682294141495398490751473652971913454331404771798494990160423764871962271104297725996913977876621995320398683292842255871302497515505661395171205687915467708431950955695328546484786359646915077559996274594357807198392417460435478015431043688351036757359455898384822150150237362416628373017909153623419814024879559169436231780152888943166764999985506169136096166435374298289769146904063768302383568918335149325410486480052830023905432086681176991210201665119755364401485106671322763478026734290846726147042183916601376276481324081646456475913405738108822768862470382591968251624546903965836066241601028635568585614624468098770504425287273489376732538619482900530142049018926970051242161225706943408847482904574165565606831339259998041435935177658265853763485042988739780672476005016115471885846343839076034421835423347796231928365534967695166530868257750236827755525154359245831605165274390365668739275655928070685056356832759082588545973749868170582279107434196562410828929644466425112929768889507698102923911565322424595757949732436356737641941759833992725246214232277922835827363580210779940244273492235824747436098870678408805144327834611891956007057169248977523619803044045701219426379367772390743609601603497842758765344585367963317551331936562042812140750536876521049355414233891454404957502896940809910457376220514388464773486561020882749296703660097761613430754607790402178995258488980791200490084164356511289049892147405607761999190482964319131920822096187548558003726509531564546428371879362205035963660082625502123738262848661101404507694498009992961460181486099853413392737973569187316884551219863555004434446800824537587185126167368149422882901435120387093775864521718655235472177814623574076322581949579157017323632014771343670900195605621257980963771062450041791831753688304775990485068079500976348952790901484772155532741114088682432320946963899248474423739635038112313893909985664068373608344534439310891164746757506986525321583716733163954501991058984110458282583221967381813962851144881594953232941959304188704110034378395251848362824837394526822586546088019894661261529835859586808341972160729845006615580756964034476921367336091269158030149992147739758048651700493806396020514265305348384511819738208594913403372585854009566185498418973225865187667017240279282189367619859477504539874930773965588179576302076838178091610906835577998107385082448165024122166053675307326402497744361103544719564909851836446135076548047543534026567434530452787420223884941198339688712595821899567238006179975646781987869898955302567098465382245390114463799145174328929071089284777273853764880304490995740615091621165343848463490461521626981689613865613166013099035603036062663139009319309797947111248387608089291065083676164134877076681408437488534235971008669434527812863728335982361393933741718554829655701093860466728555512465349526648680805186272291193789562112109096195506326740921023458216511238636327015140191341462126472621836492375378575900128209015047191597516769226079203729530549410831892274735442240082911178108184339038620464121785712140332106540289557898948735134007983068712342737599323848757527480098624082895917940284199884503687506569605783788314520133580269121341088793520676098730553670297748598186928015330744196696496063821314226159290402802683735706466325665582766169987976471670040418167808851771656197866361672244127869717486659592750114629357973212053838106843226700606903180915882347538731591692924496015395491247674566817035234516848491680343510352238281800603232350687886506763265147109993198083951556359164137430292439924633851117170511806914031305755242518276546274535754547092495000529147843814935691188397347666989102444160448241698731244871629611035709945426291063370272353333233366973633863027448358420187241057060912634819835461211798036156460575966612405443527934775659735256597545833327537230724066012861520930146116742867269915305796697850072376978384323803692420939269683697581973982201252190819537615246106172183806843929583963179822900323643632891676653107357351981905477944554192061496837138041006185190865278561456868537774037652115846025490247055598068256506426904603886799460557397743062915089247348557529524081040009620972933684880826826749079002976285231316851451917285917092595072642997418690449508250348463548377096683549479638966093457268720931988469442725003333740612140078578439042068680321004204616821437782158708769695684083203382471855819373756893784576501421945677563252695734855610394617218917012598573381620069405675668015124710628904423621432215938021482980936451534484569246711864105673568464716222989496294722846029367172866933053612552520881105174434272144070849676127375894697849718124482311692785495474885269214931532984760766967927466690749432033076141835163465863326143841594927878695625460213287388356301644304240022721072021661961995228860794631145491341415859487560694437481284184575452773160855141361047993368772046987385857610194741321708223891942959806194724894337846193599715927586417765146315032893877183963141623029208257076643367789012410186658183488880455446087916968249362423208671324655533917134008121469601528657474279199541958473619164478180247963014409551554120336703886448799781352711007450568951014219643172232068004296045303546700121879852097624334729138474714006144383211774113845355175643420747767762622027120999556274697412022437566042807652363737036485396324656001598328115103194362716832731557406854954150411530877556226158279491219878744018033122225047159636172049571799228347243814657558498681726947484900035729455246299870926993461231532141908455086116703295340097216884243547485544383447702934489576011008330853048881621563865089463904334695283605139862060437190801901850844706344116022178618869571835421246317221274193780254015639681715685113146833318912153623567408646162149241371373915710271837089460621315939008430918252980999111148067627165577501618778829065794240388880087319017145313733845371556403925142892470981818177356825976643518776238385124831572509297231253661993877715905292975571823891395558850310652083677274198539991371553521618470040150288173400365785006028077843671811913520865549973175797256123448316373502320363629551258696542612105059225807310196621827989539416241243178646365188126997582565617071410930669831477448925689660389171978496429331626179296058599966017716253641978889504511613786850263739866097944122945058286700542795477208166178212381256235599459444571901833244597026539039477222314269763026759815907728753441923307739029019361255277447918246590668952149490008772040701523510500581678006077825688916112718783709237128545134356171196611376448227416503276337082505753815485243944716677018042863384034641317350234781376541096717368876434388519377874134936327247319789155090453067869579728103884600836048387966854976577049215299187496786697036347522839251954625108244970702958330662770679415874774786696053972318061609445365155893942756802345624613083551810334729812251901930984617948383659638035580437317149569266137626856204248514903452850663839209023784434235974336316529949632556200668948711288291859609739787672270602098654664676861717179018936154951480861413462333835413954970168075164158602741308283421366222947903287763259709760540183905372772712829064588827821048671797710740222946157808271187178931935379638375421368696048522749974574372490530023786926802920845327846512510493955762602158603153833359747507057015081117464727644510908121900212575394175187167062541286097606124624921435932648643633691518276527144833582456952909237260721194980724796123017287404248813007357007678500518454469873666204130739509074375619015259007133338233377376726585041062594899821238558461693782133183252430819840242330337237455314241398555632634915524492482393713459684956153276157294432951809319111360827841962192484675622589816527579353482475481041821737619327877422904955740630004372180659419265734903535167378979403227306318498115420273265716418832814639133690962945038192731762097632249094984767500388720492183312874533008687922513319160552105857779135699294582874380881483246426311645388177767730558311074023544185103207420528814578446382896402249115056408182902189058704140660587849090695801486013491482754000358829407911424008905106054589737293640209592152191660197414814389031854715858951332675697318831340210876148276117792424468099145101243693320773108798951058229067325582320129375035150074642121837645899001351333401300864244252156817620126350879744448380953004671135211313723622617085914491086624709642002071083104184389516978020292771056197276109432118802654438816699953847005793230687051314942957138668695730310997395041776912904145627326217130734493707237079283239505871156742954282447141406868304581312693253844662906887898758092240472010092475994812571042789070009974359123782443125088805630782463879369701495140743238312173868156734628538867519480537293801534932375170259402218555344275878590655827860950640478557142794088324556867039092560314985780040863669588996419782115346411144629378266573520406496457608667128971742127550244716020918887041536138886519747821589629466311334801164691642604318081297114242747067774942424146364380336442935229651410276619687168089005682749756466146787347551599857361764583860676808971586729516044463124801343209954669901388571004500466982923901086449331053914185975295065727466672673221612514939671016178662445604685732361861773911124700374382988692576427226347439487605768517943537812861912229357672660606918008939469943847133229293341350174435428577654244974285280756980080515202886200957731237514134342345198532762875503251667906341741701100230097561134306731347965403385038747015657235900445889179578765664643163680891301162453783793506692110686826919583893924448197753620549251329030714614011808337391901910449718195246653610764093083680361734632852314728124735498072581226351012764447421958862592214570214046986673545715033729959992129182918104928261447352365358308409419503992643692441132199621464077214344853380520389356866663268864795845594993101936497953751603670234682628513403799666878976279410081092729388149067157167542591415264135071315954187969597408115153387374921633355253843721486585684777783221245018794157331033133402104842394199442242219679124077676065830761358139268562225055109373856223661592595191497252057143032353465399207068835832060313101992222592524753846194024598352242424305302069359430644364689326434401942640035250966807068599073268820231168798490874359323899775267027406370000142022391818957223370760751718322690868056537724076913136320504635412624886713978783026476006663093528025340205255948434689113103710225427429480366579172257347720908463993406672820324304088084964758643947814040393620440785983939109964148240741145238442283471399137712744545370083355019255197211533455010769333976336797098673199828154628001727511981798253022497987838383065288970857590532196097680932416193684063403761688761871456885854229178345490380025481677310033028998546765027077297826367512498255050637351527698612224707353964344688326275537316595629723208049262335961809996020675148236710547309351317479728964276411294119581461203223268416863683453167947149165438703787852612001548915585399187377727040445144092223289137916836010478294228909309355716897382987864276900205661059538908923970746894082999636716196412770267302469816211293980483475113522668033941007104985067502033606351058432335346553093316321975511717266604828626344402855875779191200704629219049120697233237633470522178123213294508137639990981608955762455078737654644399427001501014879639284538665067074445611613992380003506515346815787800724008158461512977836084752241487701500127198533894092854832958468703982128272643353583376632741898876697707998325571536092610398915485896459769811899371909144519003241880545432982308399310092268766567348560458982193062217266451737437129630844305608009745709947779197876639851121854597064944199429757192261982307484898073633259058148696149725484224580736722662596727782128506869882260271202070673120069004714194181091661896773368698702308557071418718027337061104583903917544488789420805511314810377778802143404498012103364740878367211284790035921288014962097224303612170129656146945618867082570365542169475811579862847436182187419218891815876424273925329432802632091162964523779865566880774602497326779796375457147678319125675556679207093565242682614379588360901001348906141649458195148708533477183690720352447792443891705762232616604044334562893215023612850402918179570603099139018040263075530638391818112409245584542424321238316588251071542727952699793924793657103575061847998000361014888845275651992470985614907305797308610773084619776527469744622054565922471283313899895682891258760056729871656013045849345048630296272528658206938857722765449850532401584154895077512992257024455751682138529557968758809759173965403554960636360195292400486305035338941425238339378742252336627417386336748003439216388154039889542795495589138633271502640677191249836020921537379711229300482902197072686672563257106852838761356489717143268019254594216039831063801342411937448946701052639382501914980917051685284676318029488978130728510143795802669818747820662508934086383944263239327216757326783439203111191340380818566109903470906394411509547783603457766381995944028003689761635101789363386976047469882575463807033099248872270280355586266933954119086817142580865139130847188910954259188581499048490274198743675527406177942966112352068146845135716704949197811441792525566731552232917969014184451245400406852131843027404667293979980918210598687068442325048751629689814659221676277791377389366781408658870159331631298229666757470794157286228364411257302573900852167002215016375455988528650246741057064898866485927312989742215357927453897989015991125120718951842282369502561155415815664922979219343548018629030224789555302844283592088782953483736481334657370362912416833857248483240459699519914480499152459519100168891626411806861495682645311428065733210409115438419461692822590954203051503518315728889359553283641801875384017069564608816504812300740311745138086433235036258774001987401663979395722500837774166514996138929848415044398113294149061946755787078594363315520525030390065379453207892761266651196903485744348742286453738357518494237360762252319473483316487572640765103471842385261705687234861510862284965470454159855385794155921623127571655044276882378294440986276933359687102808962596648405260836272626272801646462992802649849344072409776708105204664144072575169129402994011901522420231217869339239536968408842813322602533922832183305864833067201282932206282820368196367587109366539097060673275240569841036210180610550504604223869633034193280652108179389972311445970423924433392385586941425422569250541541674561244566772741071577932842928637239466901251570990012824144780667358958739228297538248196906057421873491310530992271692089733780669863381355299925843382045341061706271911752156146868550266296411356844303342607163020133083489372809229585542079377216512648550142750969397944407254001180065461514872914602697753518798774691621550029250430590839187991863818917759940435797388896110225058205419225375700638612779905346555093741612873847729865749449973412421656776967991402691313698360185032582157759008509886174027005020136908062990888044893524196010560891030634856244773916729435245388974165441031645942572330820060133708616411558600754507250818080180841239110123742906654399476739064461387408404310213828179652380829897352203667301767141009199771623925699808621583460213935864567760069167082738037250070332998677605599428956490589680885546512339101127854013347609932673226652776831745958431923837529322895802176708172470673538951476557558397279225566110729799950386892989591959975154475060815402674374776395494154899884457081027500529314881739304100338018588575950708303804511045145746486578818638131221230830066086357216965782803391762602951976578728981606969159568001775657502360850998916569298802208289711114425732026497815415285064963571994710875647071805320073801438409346538384688596396473182111299361222207253978437118986528241150081189818204493097849414161155906277446507369495534297931367243042349624017636857330892404953601030960326474734801502129463468999228714792965730330462692269232478104825095092160255929351215805471634499559650952192769127036038894552617638540855257298081655327634565297733980070045705395175629026570851462215873148763409920829859020645324475472675292410478295104389869356916075129183295180433034352396923934394638006722652846693804171776121425864795585689047263341685499081505816214224530791386350568844326913827894340101140066541777083247235590539989066254892455291843399410550978884296669167379533480190276307455307219781506431084317693245074697790604461948088690892753833649725962786229472565668938350946032823101247363160468392750948658393137443752528650305722799390425651192905429551065409859486502333140510019738031352577124104065643412237096392513033759004639836929443133153887266748868851620672270495063660784537369210999332012978953972499318616850470697638826281000902298200995211605920259024719239592588525037106928314907694431997660218842569660099595229114185259303883745755684340323044398384334889093456688509342549670758660871331458226531318976208831592804597824091313219107481697109183763899481527688969665129202464002691589043224665471599092253616546614626352089590302351912094387197620237985793018208040454651403260678353090417966681850139670651526186551419466864232085364112609721722842794030937574986301142992937956013277612066603773614272949137689321324542276179924523424463225480247411980252305421169743285113686894718953165278411174882018514712721105909861795130859677351073342807487327027916181297619507204146059448429830714095848617004983736350092822875133083744285372096647882244083473932366253588538641406730666635898389032859318662802105182233922294927830134728422097559029078028438028646833697136558770784422845985570652102427032795905707578777186406975143095174116071432096287725471255110593734569386960586265930440002514284819082650121547430948514240565067526631588431998328489091925707407842842245406914332696826652786096911541456339951540172714207197629589961865768679794580831785264176347201885265450120859674745812733734770176016824880034023837199053538134703535196991520968179319822753765435652651543419718216909494415100371126127188237403666158537758092638991732490618569106171019403786085480942500018551471343049763664393531856816290035034879150383734394229114435230984234037840385524513372303737150020240470350630848462365655273329389924481971833322715658075261691695922712725498000762721940431856490643053929970756978266532900900322026606324367050590937419829329856369421629954734080015944766585821082716932471435254703522234997020882230014033644734899124171544844692095961668716514183355342312466987511700702575841944076763321602316979700448108823162430078754311283759044073657693682137537977368786516070865776674125407628980657034399120650826829040910254952300758984707229498545228138652692948679592865086941802950563342329318654157724212259971680713202523899444488072845122239617721514279471912231410229378109979768112948444081950386553681611913285004505990119023753233632069921926960433919868138327803496927875111364134180627885149082472378067793648050902928613788821030024267048317093170691851560505181146307004751440271837793072625525437046837699754007085126014094747965443218522649938975846557267493941830078555135143986625735843654019121998086041051703532002490022315301351292692770953421262323177236457935535220520390077335874950992710181724317298212316998938138878751439597040458672089935081369354406380035084208244907443397588058704640598595370469628490016119277993934807803314467856427310004371447939188204143792861345274553728918770251969034554542346767835818611538919399294873828148528537762506341172837850508866010227110578789512298654488102551215829749704198847476905867496610921441279432971858938516710093689478828853592338215482393409925858328140601792572745793078031383811845064955742628981736991109588408767173343542104944554233640146873526437545820821814032400912011201812757849071946626453562240614785111429443832465229748475895473500646683258377445717261235098867079642822505196456799541646392627377946328868854859943960222680331926255733297262788404713826280189475259637618614614369881629067729335722954181957314424019647303941821525369606972339092786563987907856536534517977589380778884349003633975036627824627062296316955699050418549533542164410624920489452348437881781318220006328195484979384847200265674750647609487690922332315106045729559485586258600509437908798761375298911749781583065859118270326428440137043728346326338875532481978132117919264488904230600251537128694222226310392774655197766156813571789923710595653674910561132715021340866042994704785125966928589558930147456242136211928373422750953558128928275758168949127231755659413357921924303766681210817416881606981867445462494291369928051181398619431721632144202923634475426481167382161598812564748009620593024818718616925603773210679051749775630995137167533048315313402828623814189062088235170222527781574051884202985897536805397765459396736816604625992573276244496115264604134089659074969573964674688663032666280417427785729823485458122479410154356042778287803562032013859534389984102169793316540601523336179333955258414717602849511341583188815534283014194232314726931644321114823062400165744521840461570159960746942236979631283048965173058763111242580100009576543461965292414184193170712915061110368629355683254625175576134021623437361664011029029667227773125689246226602210338152940554188766387872703651124600600185470968425290241279913396630948183743254841420201675750535238679632778428880191640204383913974950549688601179412469746320496960095096847943821536943607250063706547925672630358635633492252488700823493955440009644232632527368197827376772646497866072064453526751745452354575348040873772942193771065287777724980125470918399420610208977512366448480781133702773683636069296532541998622786926748568371883120793201177158131854259471887563373264831580397596336126016607496114041653317141807396236698361267419217460827040816044424431665859779105935861138372728210281191934307767244696980106207028753815280177274206534956930388514343877886996534413820094599185775350660074246924328331886491988354702245733518360639434141472511572403211110780451791566511745843269779907666788537499371680359541455843787065995874967160955897279166845790504093790307481632826936578846393882246093717063200900064757959149929789792659559807770551150828969436207478617382267034237436456666297065792178859859061915398165994883969336769267233107032095490708154764880025902809561483961940233080535000937754945473989263833238104796595497952226115790135283823269176021949658277420341355350462831379756086986704263569060971511360580069315760965266317883227545202521203366556078567589842107306771247404046617646776978055161762164915878413286639649415485983678997452149660860295324574067280674873384462290333742825753446740688464847597109371119292470900398817083709252069463992765428691026464350324997442076180495668233050003687683645901194110903520432102140485146964041712949959460560469751123199955929220028564755376798097156623788502660553526694456946717629048961796387394625122678157491780200977826651063606346770850159763669933634694886070534747928237322700987875121083085019215960523160525185351239212392407315636621372549327545977391845304366384504246034513219070493598426261289943432923072521747871095107052474848862018246700967219892080091746890679791761039538182763508406406363033231856805654072319043565996763981723699256752002371339427043970518775331083672622097409830465766962908198410081745794587469901848826034552265352669969637613935699782086282456164303091139789153063768074244418766924881690581349528426811491750312806132104259048084265012873662424582263673967962026640996917046135569509727176687450170056103796774082347756947235312523102449147236628370991026037083855480520420342730878493197978425566565982491231948725893113305449602617308294582381016026413469071202330505079986573654694666864510554772497196794264293646456197387374485959511715712178889244526245244334100921074927720768390912157720231354544952393486763490657367087353718521535990523409892484924700408809230626600711050345269288075584717019761811237401213559575751986307158517278753419442790373111424391633951467639407239386630484355230991701566713930521864875083796451730625404307348028968878724286688087761961871261591081470833827352838041388205585969280170933043541551288514656594844110820978848166262313031339509842341126658420815552416965719589265988952278633386086872782270724707915894435684568565445314541678431170464298064180751334387601045281339169116878017124654455919516087852496278196569845635361552650572405586110383330366422255803844516466072337719807041750207337532546004452355014348085796940751458042606796781841299219362854444416594711591400015612754941185682843251387845109708216970630474556601572562577619181428643603462239028116710279570198847436932354506640290804277944089510946226257950241627148910202408602083334093197891537582600738087455202280357365517281937413704269986758435947725261891349978270656000267326551102315495015733898852250752566964335757068309176006952316735440852419576557762811558830170587125981786869649649643544291905856357892870339840731683172801417447700631131755239290273388545885362329055621356354909554183640668439499004661091401566968228727873429351449709391493542572087616957000265267665674669637246332572881504906033040493859536552798991896032767442964177844825732384831541374487466708948296462421639906971556228801628354223890077029383388827750664886412295638813365950672540327728384440972785293616883190577527910257634294998894084760961648353192618463124812877693110355254105733630669273471434225902241272477301778791586644867912529281890047744917622703362300559275389145210573489866287374431794361062510226368014782460623233409908712651823048596753783302811096776612238143837610193045184525512357803472545554618248695541222084113029073209992784515098029558115835211856754058246151740701887553872556069423210452057368322665832970191615223755990523298203764431693558491376973196005710933001173896032898331249588477471846296261940972313805222594103321541696957910030512591219957208448565325818167202995879848466884928280304849689599828210031304113840563148773175790760013104966127124751271615880022197987923762000599371874208472885097455495238086843734545561857239362867563091285913329237050318186823122123710031526322548942171243506189525502671991390954998330391175645617491562820588843450733881567955678670803206044285471029683716034147871033650332208749793067244616301392646160325056767663954027281145566500882333799438279796524605455654464409813419700388627478163813132421294911252888783221868827727059220319273971581192452531896853209104954927679694552594554675087153084396220444290955591368494593970176674891976168627388682651917819967637927983356713762665381810684552300306615489541311964499655674312625461309055711465488847491939891261127124585656672415770311989812711643827208732640075687317516362193688724496159989306683035711148171524086316510838241885731411601671824727692695124103146302519830782495896059471679143000295901278909875868376974882131101460906739162618944817596751568242819600003184404985797938830438218393866129748275810526222547490403909370067597502166326499988144283522044392875848011349213320887064642160812552229877685315983910569007352905180403633348954889185193316309793010398409326916616302287416846882950964906291835382050683081231228884098515502328432288526916058590165301244508736504519879729555327893392146373721998244556444868857158750876121599314974731278761242131099758142750714866196561163528566585330835788774087415919967703668525157374649865698865900642320648773602799546086119761401544353642840561785800067039230827704160892184176091347821761938520428607034905014307899107717443782177486665825184225165787508161024641292366451077941357420707339931891275696910143529181750865144304669933697746420092370159626746349919237565448123503816912084288142868420869857860642491020960708496874398211462744801568166180029685283576948618154032011954294007056217939199688583127036404999048678395462570708953427035144741140072269132689222172820330129374195216733857991561371248168744241055215830427111909726485825609364070842943688424850453971771145948895867045555745312225454780744554045798869550082255078132284241734591760971059302683240872617936283409465143819969665173030825973655988943391792767205755704432236869661167020550991628445743508303493913876255872016318368279784310373815440589062108479335260553512758921212267692348202262551848320713238054275688226998601633864937976300932702844204225309819427638726168976434142998156031680767654953427807055783747424507428630872353258041513065076062401501112874288477010158118827108735542531560848939953212596795612756177417632019019060505512742724177268635947094248205191918061235175962902586387165911367972489633236131427224757425719941390718434566277928047186757151328732412744738253386027918013253352280668865960503617288971393556611387387910074058292543736759037388464016715752058877991385998995145869410955998151909845504225391399228583999284043544236048381259713821015263763449017666872312475568386476671666498007822875569942130094962432831026204139743278839952854697617048333152574191983666796042047440435272013807250738152282859362552077826153887596107996673840100286068552338898639772230792995650345929450146536075904664635627169323898254901714233577454479588822922412510587402957584440088587029979788319201701909388284718519412992046950703602773756283141089520415016133804925384274371178959280919908782251712429750523132290416597429377434162985145013349372846509640084384893837544740404818892662492684032616848803361472066839134907701134643143588448551678929728497316304985791513347340409476122197903120981542930326473530806125962000764891847834502460195249584270770838077653099538956107407402442084090328130992583389949041737718853534174423961916648729867404684176444225632101560152742837484306900325123940869333564132553894043601688636871790768412951104750035662627291921644869242439994289932473044567747588312431156292589734825967539749570968104125926833853440148157150412650390960983528527823313723252096833012892897348586766636161632501259164738821018692849858399176279184056999542430233596542157792798747754673723011088901896798124036698445344474344724700072096264428873007584565270665254682679965840744654582259407987193444520896217670271568876661323858931138141133982670344255887905550428187053476828298308231357902953073619604880965409530692040652662438681982850551738319796116879186897637571726980550386825675589522561915292647508304952683137554563498187482015369447521038200282646772251351542313343064005384480476202714475422154282880908431337174892172022271883155860793365333974906270042759102392859423624678483961501823787096481559828299816217086510037276945674217614993511634749678983592410386305551359031882935700692321572707364745753372438586636541716410242957514317766071055063544365108260959580419354269740881869262122980697259590477158531743149501596337882182695401605829948343380334327502842899514878476694825476932679389378590003916279428201102715633351862227251835856464834156368856292785319636639157975660795230969814067166041032203436756708089022266331433717595860349864839815985677440225708940749515091690664587670712236548352698539768919869009291839833131869990677097639379697626540190634808047684717498228901107121751298561772118147115392791887297991739298736951099474951096193190729732797272776756962189071832032880962215176685954536992409103541794643380531662747619087084595876431337428975118191533633999522666358171556471557791758507709544976119787063554507266786057608167562391443446741094487793021654837270889559733652190483743564831813033282712487267629830971252940653693154159171262663492509832307137146581163526868908351835781487245606733666368703335001018712459711132984614380156056310278525981985008488267023559810298507544712851344332583235393229136810282568207462041186485516125065163222912009421751989593366724076114009978710206769786233135641055527668679613959912349722560107719969192969318051999184758477213353036734764464734574407184829554754407745745084637216037922107988310514278819675855471900065553898012201828327099263251563423929496642689265238919835258882275280036847965507738837304534378077507975903365945397781950225353369545124654666890702017800789057044866585005840091776492031959798349211341174940177414907182118887371900887091314908923389731689164018741908563787045328707822915459833490964460623342274035517420709418661043312869491489685448442811573165134002066317308176664771239858576586999486285227836999973073286558522793971594968067862606843900455227672428586682675702511368425784241671707860132353251069150725548489122546936632050157554732850412068503568148778315350554591060550234084585108090246949604293729555968439975400009139798533658214406102584973679617941800402470028431755865628867102963060095648331420189722466881048220313474101994151178287741036145023264344193410130170177798658345312047421856712154818982163111035194998875838859764096299065799688985980022476573678167215711374851361154239807950572418712705303995617969028137940310122258583956477784321465142317763815283624449456223225763453071729452207021988070652916447324826175787875229132207340953285113776313465803778688162306914574545374606212994373845155112470682446822346079058970734486266012328881348847262770635485799531302187460827705732582486655231330594472960511530761970310309800056589237007231410515443042666625655367384860620226975894051306365032212549744698607550722254633321705026015058433225402403247988515294504848981285920738565353390067495693356571721190218445404969625179253215849624485507296209679266483048736313086390258379838611414982394660821885049212639092742961248977697385918903875449603614206073190780574856635888398138497809498574596318600346776475364461026498630684414903459660551112969335783713606778894872197541919625655715036791957039866394238741641089845382510219166242636546371942448116677408619404328710245092419266156480921455362388379581348515128731079232987822170968269861383349168325816737464255893635814148909196130355910265821399392949805912718614172623255750682006083207956344933118345295501063802498190841777228897066396615813551889001709638982077997726287804953296338549401289117293835712628693985293544463817816295095414961564781446884694933074565839365180129458170571834341739580942980820752180299803577542241155720810162655816458681170180994410532111637175451050872709670686416572502731333792395543282957497408844344658135156746124251607729254260081621715882569505545626205109348593094999338828520903333938792592227886939660212062468418906481522242067712770070549488756013909567315591156476650688194563776078463052870888637911381379063484961922023772172094648871306561545947107408274491685891165721334211214411276538642695948533346060473235363696025629876134944669843636485693395363470645233657382453617156476583744798262688119124943148457318207248678360686852474773005014846496300254131943042691822011113453056032004286442208898256417678815462186863035352880457600572504279579070160845404908995629544692192994052037647935267671574170684563718097857990788652945644369784357634547768985843079882520993847213727625061823489837670733276498691699808156375375262009471557817086470281366237894514532435693169857250555444446758699113243899252461599555513763830737257783437693698230232905754627039109854167449558436064417944316165304683738913853205095569324231066010596181333175091534389539812297296048367831134411248191069537547866940732049235523657584025865659619712004857049047069815544482857595310033244359200584145246477004322963188622493413991738919254780002770747036907473313761675271336821085658031179340266766427133228681972234073739940890105289585633034725694681301380244773002175541123653363584110574607302199272242944518474921179208343070893792346599055170506731691895659313930572520379313065950030806340749919095927095396525363790579208088929136252881290048382899347180524511543263031406412056760671189610545519716879724766761347420535561522250383712777024268952569563062504955036317053762806570046699824207507790938671570934344170864837396589549934251032831181829109515604929009009888157350260313330695765600040670908051335513495122531065341232038751237303410610833110574317349722183610008944780719248329947022183175762107693737335616471542982004312812304371020205067780341434169423320956367462330496090998215389504878382410735762376732061270655535382415109059292928335514423257375746112305915414215570505610637010714210013434382473747728157890386444924485625200382561953162457250480953106583122186143962671290094257290936270642653006091539639642394124418900672736194690563461366602432498798929996712934667997142787832949052630009437287413204779798222548779342215568332407700558493485455047690934609513808041054861181341178099092847566961347838926719502527928515210131211553172170459220592112591939667971032580017236313827457933653514462840930012929879903385569749284625876023545100082881206378866903597630275933323656930835262839149825135938910749895637057119665617080846021427954015926037152039513572880241566864124098436535916433226806987909740556723148654526296546292302564469447466420122807025325606316366978663529172583921489027251319433253019784627420251728651232505939583396304131219945419896836672615848048738211212433072838912951665249076579439223931870692193689953130772512032106108912982419056039413836501752066203678070961207809097913709289604519303497403091847799654594353465763716773959885127719625874716597872028546336098073886796944441408434698008452781544863724996936804748731640028337453966520655975672372814963299735530384621411596180541696495121314959011936803956295045525142148202589185925691910776709659657341987674817308281121161245429358701326297312419924005335641471078710383387519323284497976166439732182431025907211911268368703027659916181849894842608088857155506669331656989065282475653302969545025932018557963433151340918742935049148013279228401062819657292333871856981653029293797156289025383839533796351749851137449629995549726615108332915450120330200722072767102242467274589385224098158500151205217801094654151397008511311721037625498464884676799266644884691366531654333599939499445626117766547181274340067844410290021299794689859577994718387136866702192448868097442761030193817953280936157973446754922468698956448512600335542378949566812695345738137659096966459284695826850954898325592701304095565131498162160956526369765414151700734266650226476849289288169318608711090126747153092699960262013463036324369013337463808501026278277016279626901378023762306728451168983145919984583359589976437625021291070348655039191757595925564543777640755629043952316875873460241173529994843373444812904083773447903385693105087049054137105562260843841847727060055166257490813232565579046365225625747670866087525942716367485324722783066359944106354563155718829433430337875932236361563874431684653460276515617506942051476032447784559273615774510328403130098031498297535437091205051901441761203064204226221002702876291593680200781957394995161922943041268425273696335070059875810933359903014766937238384546436240718283335532967155911160446590122732873568853774845159455880318999106705264859968046354314599923546882122607312545450881898653996278493755671374307268883920960864588716490838477131464856904520226973831043983039526098363154050350654952686877329190354231190337480401217475219065851704261759988807618431089647892480032694208932952225386442484455694739917356717595633984289803402106657985090417970330045227946190572804488069753115924087290269982469171278453541619067348022445385523060538401480358308535022240035253645125820676945426094601051439004353675788840275195943978401550917087277228079752923200811126111762460620965796954885874648280467504653814961239202239524561720802499758328818798847071521240431698841210787453873400146589103333971247968069600659657111758197786302623495604529592830906517105717944506867164911593538246795358148614569394620324255084695272921426636435141900978794137719523233211345904522398510976989656915108109869177845020263365265691425966307936339148237969986087963187073065445915339273526718228943966943418235452890274652363631924867105056404917536495287803515172991249716795481606069832050525507799600603179143113291812213660865420906709824359920304123361189518114615955382621758393754411772050166239089308532262522610127026751953795989354098177793149519336303443837470612554033826650687340329221803861260746402017000208331808781377956738669737830454759205945325123871756257430342512833659790934151404154517415372086477324113863125559779983258205458404155590761893605405204979516318577019449268859809887144248951992320994356009090948288221668012278668350888694209716988278598387641962360019912646609556184638950158375831425584482137081084250430543642824512463685344882493695150253330327734210221109348630118503299358859499633324542800043619425972185300584663829171227125100886140821683347376770821679211178441785611985634399130567346641766615929829492658853742506330719450814730286810046314658922139713560640304414109592325966420815094107065581267879755058258391385822438274624980229945906641760692854027223232400817764973013819286873049262697041211997372310098425369358286128172496575889200487395024767944366471614598771676268885955658226647725838260724249457292256959105762823641526411849807416966613868951629826293421760252351580590540057057318380989083658144014203879813663573291694258183827118858320301778867599312308380086307736634706609918193518482028891329614792003096426045974608226208506379819370577997260288631149699760495452863576322969292778932645107028354970769864870789566237699641370937493032245138264223701288695602200123643288142192759939627516267163433444691337800494570548202510525349492486411733141812481076176559488508673630312822294287598015972877621238488255394500304914995719109305116055811940993286606280647743283678134958265523594879548620706159524655774203305964389713612654949273185659874395810484041576110865904464579393833596034419876157691728083311586885577658561784023044501812662231528957353019529015736845829995576637119049542856421807782064434794792685051882164513787921799937808489789845596178941114784556231317164825674179935131627879559139847091258073580716243728115421974610117542920766600082644433429453600341592299821804194295831411689733006975155672895579464553874810034071815208145847259699403203050800338378167733041268442438897523455427023212901738469305790954840346081037818156974709390950956019421733501839769686983106718856152681581637197101431515545615920541750803792503142105565527791414645739710696566436603173641126961033766732289874616387444318700774108831608462517122448399505472721055780988325067949323750665582012798107754831688977734549534592539410213725124012665830380504207688043880938095617154144199970427138644332516013951121780938435755262474991301220360090460213264091151307283169563357247109312779838035935741681336109722111017317321748026480924104628549436631286963243919062708560706617289071935487717087503230894777314859985706689262344379098400917827706436233229681349898135407227087404879385853421952378883542355311526636725820017649934401633385604286090528770483758564622825882996054436738911888286694404543009583432744655357857680586354260056415980217289115864281912696018000626480185637201927707450678373821130534005855436990389401096522178359588906706907041244748454951796332430415403003069654277888545145147017023918102625197784195409494957212525166971671189196186769611167815334764445379355509450591002171985556694915881163558610744837335397058310774081633671090022152114720742562964560915476806830051348435753555201924042539668511595714131107848880970535172801671801662043333174529720261966948983459241630356827024106201963001076373851011923464050304832796293119945512100001645888757713513253900919943897068568757764337527929165256673204324552294745815323337196957772336550038302443136942574521892087960338337895453994986750313302538809039220728614928478131229707035499341678128183394166698502356279264722066752932500300355004217822415409548133358864714422688064967344248123850950011661849954799309181244530370918040436857741372817017136300911624599728388379175372566074312235394694201523030513199167515567410742342716925650160890267214846510552101932861531604043286306667954989751732086140329975697058690760308605081760553658811688243124927906976747608770151419969088945920191629732098147771932452851090008154024820767006675497367742014308990457974462225987291313390393339319029859625709339705541882302940964801699879328960587941883436149880453682809132216452569054366218984367706018163409643247695239206081103981419435415548522730097933702767382581760279843092401536051127734501024814610442243651119032317769463831738156185340332551183391212546120989754749444897269789115061252977989479874384827810561605741070916533922920240915797188524072329043106620919627028511465153037570124975436600242421250226540323577703094057850194455809068077402009149666362449199381418638285712215525282673420778883526801835804129601662350528968425055963832220378061093539064127028196125414412655115458248630663031934379524453172143968943260489127588898083845252200403083044115677949848980662004176624826369685248146813288519342574850180093686519484575208040027294416043022120830516597725516177381723204322632075507765351991189225947270460507278460107208255811501106427140629139862881961147751319591550980951635504752303200440183239948074107102017225148349993720801783498804250754793612714482352795982104873962790587666416997980409559182237595623512256519736022351621285022916846653283712182875087641933394085228937161804335374453610462260015289305728959257744758488692924463262706985828335402040321710272030669019523605113795430198301326469550392102490999451207167200576724667684665277643635138294116655366020380372023847372655158373593479380255746160562715347884224797594188337513321726084287517522092608934280461230465507630185136837804595681685537090354515031537396930605380020125713498311533359657200330552194608224243434902899047920798761867807429307618313550019684777273167329999455607133025007161624465393078826822312142483285551795799517332216949968344813927856103976616610812392815593114660329216366006725128694641209533593844024717812093898722531038946373155489263255158785051861766427823165502246675087662620633032417439448507401984097604365089109344982029022267287624878152939443634553612483377369192740479300797321125757072925107402760822204342130829114230268634268402726655102623996877816059589117916983124665752924933923361127422876617554692762128186919569969809790098096823523066584279411087626682072541895589101104776110565169673364852380889424349597413416151994113697427346184088381786966727669882291874943423235198418304539760097638978778030421714595369715483891388385028628296093624895600366260413925386139138810096305977770584263791276982154353459737280610130240322327663132786731679628918757314113527637736490596359727937811768827659219201267588896665451518407317325497698902835891184438221333735506234215874144415304487173356431411775672370980922000705249037117541197741585553885771489240961256741741688580457986530277793874416268685998916753917489636862812093841886703948453836626833080265342918690269794257596674063399550563017128525700055408333846905039137532202358745704594763429567071018933882050465338663659301066317662911223127523026785178651691730816307830325145496962981532608818241445678912813956921985732277860562520903202847168256506583107030706777927116363658508779081942011838540216857831726204496156173945280245576838719053420222044986680913437076062870843801598761596427109880188209008172575779927937976399829750861880656360194650208473275024679559990790037707187027508157155938785175025278366307919915552458863566404293018691695529559841645984944977334701746474583157255570494050583765194039924053374054172380106560906140003924339037716886952527577033448671221031060325380738948999678117178351682188358139737079269669639295110700315306442078951969485806929890128293044559361816300005039009828898144890150773075839628355998919375986832830829151574758022294999630724506727611702771916645825089454852282770491678649453942997205749833906478563173934745209209547656509136966498748877304808259443517706069270744642508985633813504667359483546477790563408432814167152501482131143574497782715187849202681610388599398111816830783905912819996304839380333932061103756885782832536784260110364680262689791834877541808139764419999573033162288040454139741045276720110185793591491968088517401501492896219246579061773328551759168267860209963518205851460762240975332971214238847141629432186780434248228634715791348739209334678988751521795386576996317793349069953032925750822002920641145083721092738427630017889431012429441890581986201334515454407104342205621256003668908128655042208779659261886123419739294651350637958747089326974772209365999378731987323286138658454577567162459692209017584083669700370403591819676839433841015471232979298107623557507840127091471909110814330602010654479892886470215345691698616381249570391630699173102512907870266564075154489030683894116300943910513771483314278747227561375298988255805192080211565368309030199751355245056028078953431579240719601641025002286977804902345092790617272453410351772624875451117940798397763894582280206442026209679537668803224049868531267193701866461119050161408650209466187971741073013169433421055408813992427458714757516952602670161881379528301578272147918518327246276194048895076492233032765742653188756676817856065154228193240885659395776885533374875693438993605328877654694445045010752173729740929260761762797603475419581078951561520659334104395207196599609861624730286977567928779842973039658990910789161236712993177989251661349314684282645232406487511836117841249720121975111041945972007767609912258327249408024160436809722550827214437508576020296635004178262969444248688580723002626448905873102764517380128853605869597095428298777378057093915401675443688289898593714106789416460193492866451849436804477027695434758746377085338987280041548574135101873927884459525610640636932940919347132605604406811758022665644838922106379071408004961834334318810280786654228639048823612738709676889919224587343487299814661778718743975606580309253803491304052186876319955589851930850023501834284249261241426046447229854827124522327846386251974459441459895573795024453676320711428849750701375682341998409717751648012291222766975333387223999069731837983220570116088288988838853162621677450618792565462916832933548986739416339386408406734689343974671793013060837634824357621339582530572491548021596850431289501052984939189896586472630859525743582285383898229446339076015185296548732553252432903115648913076074083616577689813680793786659219237930563340896690293436673496822326804952674654989776360485002857442149022719133933986108309177040608311460061187887450129059679018199630991986019270237288581753038451578606390187659034789047589597743928399108667530213630633491534383458699719998066489882136581349550216102997935586709169048656783342005022872235649637101282709994731409669135682385943016844613833903975867217438395705274633663698075090918377304888597247227853486912046609466644313659442449706646887574979262375789725124138023883567306504029780867385328084071237306117791073252315932104702073611328371621800701152655892291179493509719690193874907096888568403025406125314013496719477032833618614406831451206991292205765931011201788260922705825800790586634685438324216977055412063439268404868026039694549079010000764019187810209937455541346016855545939151094364688110139235927042690019066130520549916027429309891480254309565522441953046630284325291148063985228561981679335460084803754203461689745391779760442579436633008785931533489227685105359743740070210446916770910422429366343078208261470236284858758137325575615668772624367816859193152565191670778676743089512625724524203844291450544767955691050987566042986731355388415522897339522384518342516323796420436602318145001237110789988282872664780476632023062921011354289247458869740480389490906693961265099118440511651330927843993221195874644428490672023869788547275754891730039808848029963010607496006476563347570846879890710236066314065866081354456561663346532899577401956258179347637674497795013559604445748203584051601435725487559421668859141474460737428359632998192197655296733825899383956404170959873228220970459265255784193033900437670017239518372024277163727758242827165109719951268572354929573226350851717911819312734191959539673313578176428409133704803084711848206822397325536651008212598246601859768312061181902705270211944175238407302966566809065611245671255618517577090423272528213277202785473213468241522591394935589371851091064435098921937866755642922664860414987076339458810301675743926533605425947461927973069527057952268581390830959096699185995858955545459119848432975495259283299998739818925112401831353224289356262823912448690481227893756391747560177843478797565477482078101554638246918145299369700899497116895991984696729468841149847329079766554767463987842143423475643618667381555021720758901566130758928104431838513886056318039780121400126367526949457628510360041041087316722467027883495832848760640185644043924550139642443096909507830869535914446464697696376078582956164345626141736184761092963880288495459721012404894242691728253772264103895505199049572285608292931275113182140549666013241578080486332946950579503338072516572999508977266022778087910207343502244839400917615261342867781205185704534039843632393900945996524457682090151568492745911927166944511961270211197882516553497088645600613392649222420271000517382885973919100123466465360567901758849302928180145635660400723157583525914265572723121970467080480037675728459268346076636639529117772510772708641103055082419778257231344741045103970592762863754807249419338691282313512161985911382324982988241874052965959693984241738903623982708971775409704722045460703861568803203387118761744708554101689820102456303288895739575150329695589199384570415210775305731435617423749306952985356231750470385350627926640196296645740785972578940452598922439333535708727408829951742345421278067337294902306001370658081990039421092723418935135519957737458017798620629819805613503520921250985411532285293171350907146188779528190122091285339518456026594641588626316585207984615211596558875757969141682813875003616720951742042711887751350108181865729453704285091494766710452189422639626051609385295492820292138240506112686731308957472932172116601860060113847755216027695070394694188465356208437304288287883528868674454588285305812630286050444340069451001956551829924420308600099258247240709871716003066582867242378808770453192897012852714183177329115214945525371836352012482554401359093608177073777256810153697970626357766103837630974679503831707045339168130306170806883133582359649333563830721281679012271321702182798099264282457984486684934883446949409669040019136576501512307237485671630998487571957887100387014226197954619550127226970373538861752819155350220971431052585506277901290944751774955825730468229958327143273067053060476077021280756499814377285126933759751560229528966035553230086349613659309417299931069851948825272333491841450851633478358826685361804324269354935555886089180320005499817352055826297746356215585762972829674602819982314397257170939682985909272549268924621501561218644818304518593401546809102940388153643854118216202375963785671734033915152520117304974452355101209020110827224140640795052377436539234281932507165163059952429225634660649427464305097671201828210327271305617470803482071249455385356801794956299537740172657000864906699811587570933613023362041116917865726403412019258643575948535740073685497527429921906229655426751831680846839719551651648319655625293890442952380031360719788656873898413301398481644182938464592870827754276035440808254051849351087136151551700091783371338723754023090972737683711578145881130279697629704749302103456946192669375685817477448629896906170220518073719156248800921656223082664529451507504179683646971163104303511786512661613820184664142449626481904663550787932205803991757071790431786878094717582654522423304845018021037828307777892438400889891862008940788862412511846293712803099202304570469510937106694916094296789124602716255181410184705588830866485900067777281648680619240405676717458600107396192813373339829842468683840381466135364337052013358569287775357875511989078578466562422092491447818610360023214892157350516495202095644479527144175036470523200459653369705707587779043073861903677096402668211349108042091263874258733102467811036665485840574262575441327649117450932199590103470829949194850888535910089498782202008447338968050206912577449926602618782834175301244713315979263313906824049891938644383763927907696890395833995139488757052938961199347407059946226151488768567255766591477130824438103951138212824059037912409191493092248904550118071677177843459689187973802367670561313597558653750871171251457562821809223093457608103345932072128137198342129382794369547703690651754051718024870168730583477052224080426972131900967466935724643512570297566498425671342049672482972648180861594981502930800148173217781769483911009387011783103470546718395628600449390621029750100493731002325167847584258607662198531271244820049518201727642117390350524176351052298653802132415955754898154985300802750014987693093044528135383846662322025547531079796339896018892207630605223449578391531606318273333802091332622268282517241646895606716129731331819516824743979609535319030413627442844635757807528627639790436145940213319372231785320136700327438257350964356828049642337662361798620303785211034970201406020037391171212628312685823389895883205551169639918996029947277246137799918610946437805839759973816705689133008821492827162641057522376374543712926403772278382191137520845278415686425163421624886581635877415842340678744270051652094174384521278610508533245630723561795285870884407882683484146820812004098216077761036516926187752710151433686048688426741566865227943784046365743220290220409491658335102573595395138481058731928703620110140241305453473111021734953616923158353699823474300514823991631477184629577239755516817107220048844103827781588933219086323282896881516237673596785153384908812769977802504008741092811428239117585561374690354692055971083803393530159129809654489164930181910719399770872656650365429853405930327997717712380083328400980870882295845161275031751871142215697446511235587066254002791326566361776259597443156928729127412829520990978102927963454784261940945911760176540640927091803905061164048794657821679836094150435057384566630474798284845771781578442132971490102683977188980309812933849569252682004035355945297658661365699120034703874686311062246896683038676124616009971874861714306028659115034387716052324312116804645830075498077724914738448315834069054621481886919720123929806202688750378522056894876413048482395181688985089015014057190517199764831632261483022444321979405407292830280434953814670466181411742552501817705435811875448525821235127660180102189710374828415158290708869414422544240441915959685679305429506259902510646447488487214396568667819051543529235765907263781424524743701635234030137147161634058882118359176536978268644433494647938680403780314181440528092085992389664138212379167960970223921943608811997296478166712204820332744517614015772541105717859614390379214907509875842336326606277714624751184682924579217480496114407762683892802394174116577428007074535814160354831452115436810985960306154959122811687298775135275139488441580662129950706982518700294901108284269015515729866195751985899513896244188456909246443709913996627572922057003197959869694086785455641727196946133927823901850823314754738642089147701453326051392160183567190626878807044120435296199762832930351539153784059880970486970519105685449555851779869867765242678189845908425438149410437206881721036907970290381262620611345953473535843352685456215155007938095935422008456290266225208705547833492773912983907435146203500082524387528390938963022050587125446180568476345901936192382532535060410030934885365828273420649523230511371038861101785414575710914558210470512821806729146607866024083599270369536900214045513382681933034560567645943475121366193556011357619604632310440833527401662819279260204393731127722152806212221247259231359516128314466939692977377977943568203953333757255086763560782601447355939721215881778741920016205015531292669686085589871869477960080822731658460208134081263666158026140598012684876965498012325548312721762696639964255817246837595072146618854701815421082532528033643673306211213478874711278873034686638987219302445445886230611128351748996899293371711810555371173367221201166339471494658127994687578209933089810959431777411534798090637628673746168629308022974745059398262556079259781476310411750429205578704502161191782625608904424398001144251630876217814021174382320743485279866305505161981534867171863359831991610519232552127953104072887172499972328429844555096699510048071326175669231057207921397530558934662467575283526006829690027207761361714347222602425330032716967275587452401385236494908120827597187795177378600441378765735155214933368779249551111094785410498615839575945731083270782358964150425221202412531163139590452149787232464655169681564551213351472702805830392733552481070220520743536997843688882558704707390204414098052289588679839359013381911594750547627224611164951498506903796558595158973422692707922254287389610699823157414376562801655921772129096313662582469237481244542843578759218619978442514532487070817331070605565890586079339728617105083443983873125586399825027968465454600356535587906560828688096179829091724093849580342116223989578744910729443896900183828769373622147727696542012570598017584774917433553252113422985457094000840881312983958180787800471398181670019634881082583802528231935153922723265261430771496110592660821779599897966548287520521223939196005798838350820150551831571065236455443810983531543273139726587011181486718202244951072390886690605599181232132808182260984897832108315431064702537644709846921533555622440839097263106911344604777030583958603266151202561372056431341587367091497830188785215237199343438763878613818436729665060212587890660776064078907227008894581359426857935731355129564380753043514340366878819385596043694345797510314310273815652582193319156096783639432079511926413344669634787974280812785863664725559557455520300555092812617285720269582646993895322688541982219440333652285357853688291672972869302038689937890408222959596392294056456204326956857891469316883300979631821610654742587936528602199098734673359488767634822181835700655654939999457619804300813831512058141874981045904971072525028647074047279403410928576718071644638395127491329129801016633891859201133303317406466349414749060336138044835613994456799537178396285188036043243846532939474304451724403354255893404305556143970041068041567419294934635776291998412525137617994177028712454745414898436339377708055294758634967292756714314403228169269166761854817443157557440684436342739703747031962131193637271593920164587058682261325269717355752798508829598731507186321739532848472415190337273353999579263961150068843742694743294531949926169945351024610960321121663299430831228624721744218517396843901330016869571494533098599609211986218286287176371190096809460553470956012643808784051324254701182582560889867585744859820463772590857117824501464290140713150918318756272480454965308947855284590827867334795111981481321721004022413938501616419821780327508168993241644697916808739070734015237300806203819102004434100461682198016282255644361678307588536501814000366661863126247852131561474076836115869067837721881299620481803738756865725901552989450556219904006171084374336996652811888808963070816828381392748576186681296384975524624100660658071240423663559251370213155090127737477467161954328450314539976966135043570451525682538088677711598999619268256494671914621119467144547749145743240264210314862200312145138539181338968806089790130455973654142673086070875819065167286496616327034295533538446076929723458635170921538283707535171350965725203514945618212238248533371934934792094191733709239934792526787040291136317296468071247918259640213326098107290614376396633441667272765053317073339357442990041021556916771437200152548103408204770053366665958467870025217790839420405682031356330638796020219185305150035559011674705392446285586128810989767324327336742853429520444981607122181634057054197166784952955942040357907118979967814573389112104906976703677359068956836032799411120235482641956689464882138114022097543545182858302505059811947625535532403791751046073705852174967158219765184722287384405632061716944745453915116404652757392399962299155105154844336698248939152781030070664407374685686147318589343552450321421377081083554139321685051524532948817689513347729241749744167625589155441565625331526894091169545522500240602719687370313297039918340036852744640214006678055228536941465405999963704541013171825835197166961999129615004805148927898663699158692352308302420454642844674973687345647680806684900587614127605965890302379858073263534109671117455471742280330469772910099749916263548917168066061602694104391318733754056861082977076067585040720804081833785942109132568783047272637938752113093817696900293877634592215759478471599503187101869099142593629985355950509210751219671869377491176013418184820789881780795928856251231625255787817669989430618397154462136090479216243470737807894236491983318418042406338195905876975997840235672454386153219254687860131686600938522407888824596762918090108862860926293263157997726477318237476967803310414482187368690109223935296950336431671341341009680432420473721995139764079682320311201591749328228310269587056123252640134813457913340738234283541694414360812287819416754108968880237741456887816687961986968812908762980873760666808107176473483007686769815156919826913455490738570146498691198982188101475367266029488604286407369886379270058292270117000014459382505159081500164009605273679453701707637136012706167779832080094029304975398765654488348235216244511017506601993273900410020870789515888538044368861351873328947222953023009777436529598215377249719556105791781248821523716250060448547566861308559278476267888326246017081308830386347636162998842656358431381297450161091714053436228991041524235511392179082413437505950204388295002183607061938081506523944932018756906487378177015807435464246226683195757502608003467164267941541195400545252977372001642608367551678289041542329184057996253975232586017424305850605506840091852201575163694901516840342914560627790079440924979615238301287095166466173562692213313091163418874981179576680578466714017640605148596795395228944233927038975362004689303840948650941503653775199540233108192646832289015233654859616951300073956931898127383843102551299111348379359293186216979264162795581768528162910568365981279592239342863190468323404675871301589582457159706314355484413135387222366375138815768611140457445930915803132712926745356262738954179186312070479866728560531087499177540069942334420865258410177832249622928369661418873723342359385548364767407549775978033915176394443161873950058331851275322251746706740940666868442237122359603903504452504830502710256462539058766903329838588216183303165391343821575171563507854017580873328579295476922200658414175033545392386508694507196305833134631388921138179801561917238454227742115742029196556072756632355360669584990791236324562251571185566026961802949629829819764144640210524854940433683929421149808441533316229916093075166436291645004881627307776354525994602159482567140836801750843340522456723067706684142835322532281312975550164740601103271375561425242213802394278455796756296025651335648887671569241226249893334640441429762864791808349156892187402611449097602049196518931838952547374161626642292902600475132717959905007892662393939669997746528968633063745580014756471415846706143208445243866470730954230989954849349369406525316783490035284881035613450803744281110377588553041882790175578471393146445861068824226141236533359553280762012296946516668095876143307490568387028510122380895291034167015623935853966464738606148395232548337746190181394102933138082744660654534559572065125042470277141240093205821943148436643758378254971410141043141762920841206643706791558992432644684473578913095021220616218333626808674198566333102266723042438235985638997353318161720177528489919328598002656323587751428361062830703591029237872717141129471760985528988641762217712721729240547952720074250864015474265427930074692931273019063983396456560521218115172512538816881925130708105969103663443392082855437806986096030069757503413334125448094280436500050110762883141672074811806988466045980994056879411788495870062906006974440601149356853828502471929444930638735854572323505945580186066747640119050553274702411621187229562549297454570385719039464916568157955124802177770580021154178631289657370905354041295144218105006279352660422753707390285455092819077855539716538999179395274170353155216362768412703049934027536929988689662041523427630663639339005189711498051604296122315114386976071883997758498540928425532197465417401392041305671220765429818041475004434561842323543545675370017926361282427754502045752457242139524957325188994799960644794881614011241535410874495581443189075565319036332678668369168881543117577002253944030767739345001275527128183110185957648859819421996337472621950328576266234692702973382395884860667611399246955873133705559791401600415429334917128417295307530875114182379770140063495437868444861993990012496922449983575696977647857512218987249229780442992706506042899646267277244604729480991171147258087923368704345955588106673514008790976776742159896165600885941589540650024160752451974322127805657237146659511077525501246257638130534034144045821123946877896691335578358807960792983112091769378234081853706168960056458125728390493023056745084039305965296590854904553564728605158981467098534982125547267717020566083811553200617010408558496665585804438812396289278433444355733024197816833737296616113390728914139517694971200956726570860002066388142293582919268871262764979479965126761650815313706754481171291523700811491282283380733791293431378547055910702171652311143016256353534230807837664379476605329217048206654415915283557103913625623536026995500687947012466765603357906804246295625138877994243177815387751463942941476517652621322215455764484738128463854757083469342247734089698977833596603423584959468305095641242061965539854524193413131908910850338177295276856174052028498139706493267511098562448888672639976016222318228960312868433543726068392528674679047555650964239121758999758800348235231347944119497182946583525230390842702668508797235972553276685780454555810476072582839165978237848272208151616533813330590860315211572928867801374616498171931094766349630781996901975819194119704474610593147432996052725762132430748016758990709065653851794860447432446768004113645644822784012435494152114961792555244675787286240534362528287461446074823381290848621705286537464992274699019899712596613978557163812224696877812771219539055678630680624111912601948022540165300589497202890277119932861253876935903361142232777056502820410927777711067056918905686439922894201169482607198826564741938072596283653347318394399840696593652719782927924428000714972034203264084398814057344926166784021960189459520971651157272307290414695013616736719695984090409186091609214257365963671138160385809943035159271651928475040699805237777005095205249476089448528333192797522785361792462285622124542809300820886412341384595681157768418062236974469027878053234553945480362291709184746715463810932698914192981633115049687724970844575073108775495330586215599600190373241407587221651397572955017966593932357839288493583195901246994428789192003592117469237784117804253656855863118747709821030508606007000529515808113862740136432313174702217446193575925826941150740939578983341679289599358425391713945104962329186238581774019555207971016348479998983863274208808938980189351595549704676066396219313370815592487272121322590407008042591691794372021766967957831173607346298905431252633769427943260632913501220399985839360771635570627944689922442226462800341357519987012572734191763637687648576482063515985679126217049278981022918846994813386088826147406840327768633381676864578587754426042738812376288808103455382694864013630680674867721308545573938968822612762557100628240372567595250779018816505550181820709089766756511512922642600870839202756682028003124513859582424269124139449795592775794282925186079122661545407554869957446434362424017376353674359966717540232294639465041571496568004548645202796446976802662188781997191401276143511850356902705072106641902413020386892577550314249763285594752704921714850806499420588641499596529480956455206196691837817899543792366385738335837643052802769053835794150665762357706888920462829250107000814448352493083506762227210154835158519694845188805757132670864175340046533078164814950261795214402706419393175752047162225556956922898147294990454128172639222405631758653231979063450956135084043872609703752718958858025212968679699515245669652725106519928526762839299417987371442864147255631354272859678742165974433637159709523720385179205735680948854539770593380856974156455223576566745692350790529405382297580557869341570280499628964024318036334892934337333459444042920184342336316284885311032360717186329434255740474672224786480114302920592481844563662528460248484799830168709401827368800742012029385181455666277475415348106224065123118669156504595991406115991596794081891825245519589627715270899545850825952250931542142730604844187056270329035813745695779450594887488745786074636031743225874781443216273026184667621447197005955909755217944629247227306263979540912771288297649423147076267722275388488323884438641311685787356388158651387332771395554133856659304264141630772553935631640468710986828624663537576558126552670563892218631950658846055404332653957001933011712801527015103244442068538668111013624958633718474674498594277125754867885511790953829180479082387577045120756289727760740956003459320960198989236158889920548056245991315944727102357957314058250951661707222407949813886409197674576620682861859222967554520953976804078396257399299121133254901193610246866506941134536265900604510912743791818027653814032199059412912379297516559421151028775991017933139732925008145867543281434835595762894615448976391316898882819252179181713239968924350614787854924227219786993376134607891090933247754873538913879923946669523670660743105737454435916256981572993490333804666421766134613440036107776080929064296978484013025638378899088246505039171145268486101338625404006895914598673831540038516094216809025113213896203715792167031104382482666228242091198175561725512173886944394207228024070449780129757312467295200238387224983719427819062962550818397403690995769194132753136027268378266944226335440358341942529010231149010874218485794916978608894358037479312293834524162548377765008212774721265410626113234715770453329559957365278911938320782663610512352892358383033586031491394074409370241146429679817897467525763588817772174001601286944167207248500884687837727311646343260994939837651122234796269328918979519152029712273406248856520393713360635970067749661799624337028522655451670045801701417713795993519741133857858484451596548845748546755260271703253635984662604991353486633877051013354458962750452276544827929629909783149626735845870165857926349438952344874664045425156222031847271292023879461435743168944249920280012614949181201704733352005779948197173720357155584851028854731873111915825499232931668863363796233899215895869358881405500810371241618791858974065562679276721669972783925193027835202052115680416807509131628740282971281545683540529121206012130280904654553218764464920107734661049473369976990300648668852516931426390635053129517077580982531791512126107308065369293269186936996907141558267890309847919717191141796377902862099829085619244170219835355319269948349003240628307726578123377617065455353765316089017102720230869148818888801323056860438553022353583213894045323186490131922772935577930193348947145170357641981826355070776040400633603366725195188455410493623778605423734371754090184230114851274440770518571062063754493470070436929087225942787294436096980914368755921907103197993044437121019151706907012598150910521547134529975479765546014745357732670018282931132236019602441793472987235293750349577109352556327922043626975985024707228595677924968469284358092062574900252820349025005365080412497930716742251375319747760784747659171605024805115453958108673591656176301929658082848920835523079171023320680567850005097330814758285224080087059244890144983507337636456657896234841781410876392880213739363029162490879379115718400143701219554499183617552947990323200306626000797221866017232259975196251487664302791003155306710563275009529234238461001480372182490229212247546860939344202073831809164007049717267539543167906296486426799677453658568568499859982894589938507396859842676616219158584625397036795764090279821704485387044223775588447543008931930978704048595834625354170748974603478655367841898001663326974919985781889367320320068333061965916099925197943907446200172470784212791148633952019065342968606063537201487112688367969155877991067023417207822007206085926066809745141365794690966841451830250769945286860004080231398659580680641506687692248834963327075291549620892050916393286948531313510698195006821552038058499831761499377372356768912100316280202956928098624267800450261606016678895849316036294524993470898941391026422056300515581359420739242551845519782991563207446682852177568176065583191447321835095984115754273609779830377486247138628006244558526789590482421193970724710324128759702561430435975880031641545884789016106105981304033466335342316071598562874520675496437343316113401194342624961410717373017919272599695017905147510732761223592075218040965584949265171837943259501397577950180849769670806557960592774393671335553410211197602371976464699535321395556537541788636021261521750690433582225252011720653877539288509242630735109242295140019781961806812756867579325604047451688966535222495540987959437558778263368410869498686339886382037918199632001634246182865941411652653895400469926698921266675779868374000702110925123316502171408898972996749285467470534325227847607858714659053534953345284330918627797586101113659093618744701621011392984716379531762443214847196147792205099681040679160274231861827667597239097913358785542338593764208614669448289638121228929211216228946405291603613190510851576789959043672037149454795061446626247724370689863324670566581094698131300618582573320699461468600626661659817793376894229884453401906276413601597910736462729527246693795522082422147019967687547885531660524586871587255135543415699845028310234819789611526918174393500307415214965700943822157652230130790643299365057341172357189266399133336815654513226322727848390761583535167144645430147708770599515857141803559590445391243862192734007413864181666908207478445567657545967423927836764833833878251238850563491876578488062455652960244693417543518923345307895609056628563329159505424158719199677001326338478976442805631670808733522180889865652822785039379857626059465098970634472544462115508700380989085768663561640966399561954181811811034991761098093623020862932589897508959382185452070574891301892133984894765999424559286766153087725279923041848182333647754687940297980016524643353795777467976464646377245159114084293787377449731611624241286908252107570496816520179610477687559214639123510295272695669468463310001463931619229317752567708378956498303474653301478059791111368389717289498895649781835881949558556198974498766577658957043136705407372342572908522940127040394738057176948023214757386755199764804778524946973636484840083092305505135386037526832074005917581307535879504797097642616231151395662129054434513196036655661529556134127758420604490400633701214070608112988083215012418772729115992744580255614914007721341893626793168917413017145004227212883421199964139165620993214626235851385292892739830681103406754142700900686234633074945241918214822467846661998399044404117701270831994477089269272202333622764980281647397148250117514170123285337572684873130525805784533554231605628169984584880275701340334638117474364360720475370545829464779729181303668703789426608688177940019944826042798831454294211215150276189898703810452338265381176751924339055226497894564140935826198572606579305140821127381602408859954701122267283298410865498050824943937771911003734643779702394553825684303883341360205917752015978511951946042464639511818268733867621028478993582041507624372553907721714894843556073102664900073126492802485156203769238410388469473822073249085266678509577266256343410500135302980282101856852391244392993799781710955500351900890875278920327239447697144454348580319579051376717307869457655637817955111919362285681334905818195487319235817617016792918714177791919160136765239515944060647248850972686144110457903775263767249265339260276410970752099014087574141792807181955146446882678178186373310502272850648426748895023286349120087262651002001568839255051857121921498246358378550831330743350578266382556698516372372909813759244991655111120897461019505103034920394409942541568120391163250965859499955111371538838415794553721271239155619007200030356801283839121604197397707698121559744679160758449256074164591595562954537037038694388124838050214535929252580003967477769519119956126811259016875208402380791778177424425905235230570783510850201179961563150545424853728927811556460656611127228857811416724982966569726332114986942769039560824276954825604148527666805599979598006279914377928294813191352596258391635106692384949972255975561057330296183093968690381377043129704370724285413930505397379289103033232313793412158889280252880058721502765597412246417596858155487790111173978585274755298286520025424142148927191024270213750078943460702096438678382291259208884794608199920785024103723866191848149336039682297155950387611645888981624005574693206864568276516926711859112473323572720805110408292146595953939167556089028370859426699741068764124963911551889518353414331746197884871004156025445544898902886368162224117468377844040104933489628904951347994003041574463040819204779158193920976513491759732532031243729737757542697373982232914223143418930092875557045533792389992033090620667665892347451785406232001131276605828110030791224466061874564610674857996127970856810382505689353407497499304368943524996156006742214186666575853641570292415668003594191299041072732882246153209057109703773192095408305308519731605428215964400389128892053926638703818943249369959435380261842930408571005429611702775327982496623363455657729082765222184363835489386200099709498853396251438702853144000332913873608494476432898353425132483249252565522347012929623677296978979866154177258199918552532833204934324571636896439139902586936251212943195288531604792147106355821641529555608082340622713579168546670142933889555816310752823295823286887342469983875575935501875834660568994393467390017816227535360211228881888658274413329555643317797389565938155264388861397975825458294153322336576979542919995466401370876522436859852109970075694656550843988415523573538620191560378540835492687735445351345113965891262566948157526041968429351775383368334485519232434487333910859175250438683798895146202946120379620422289336058036700251333212623910212513978337903013769608080401139943100467906719058540621143091686394231989458968250133651358110212688091702988431037160824979158747224255746472563017986078432206029680229052856613609336281219794577662510294397382119887204326706220604329900463487303027598989866691512378309358728271904232428365437063797757579887043346517930881389488282892702059658626726577600744403172464044739041339891143946957639429230850801982481848865883879311137184910424093614587636206948356819772408408415501125071601027145098722463224417532261601658823958967688892588674936699062533053708989850171994671902712179889349025879457601246568048542451362943432773572464127948478026254680435899229442230689252997856244551782076494104091032424618181229552163413268040446004031311986302989293160611755484367579488214267766068381347929011765656698422726763997689693134551697776954599681459461774200723424955360121963029624148158951740148675598265519241893699193642029000936120490870222367431600328123591785029878676853151577115828678359687375901368611650007124011976883125349599284028897170548056232667032407700326715190466936866039350163092442330788359538274748459409097641544106108828484362158471025159620675376269059153763703176389061072449337728428400004925655326007590798528653932528124759403065147005559922379244700710945759371179396854817469361244043052131472033603576511194042787546767070780215650984439253856636211272066736957399453379299726102134991350526605482298612756783389745687205981765862118817744686039454889543784080169996349214659956980561396496139324624058447614502378483433609843278708299205037100790446883456608175999071538847135200545400261827717592767403838650183369798861851859242228046900898611483445345416814419035530928172755504855322870279017719995564233785604657343303557301715170315056801284564795154788918713106821278773083950337488772960759910626716841407076836648946899518520296710308198631009479043116737239430693787501731311225603269970112298569612030349285898293965662949782511738833795105134581143349926815463834019577483187840494672634654773248492604361433517368489502225050553302078336527867173806092625711558865289472057488817025546022436690474815049487497268026285872395278795804219948206769502005900149083169563857038494301675063037220421925077968644101870439655972059240068840665825772096935369205728339775937554302839783667579490628722834265438033476289045849610052370084750635157894414034959824347360423519834147836503642452293575665781060847729946466837344932887221288611576231266706392927006839989987164214445204865554644570387177389078713796743103543629298702381192187549619943616549173783333396893067982596197317500367202235746708779630011254545514936253944466563330994336357541602622850789058192432944854294465992633450890684234357276353809871795039897225503400329484741532310045675421002659883468990260929064878005893898063102460647048354399032311768461064372654653922106038502404734446419238842996209984911734259240962407875823621070291322063590056785126716671153786058596847915162093068439689226114866622582136556298447891206714495324004895250856679388833314460947268271904655442109964989377396433178571581244897474986732925529816611378646756340256643199388815606599886169251371446684668099695530564178868604115911356096915345696710434656847405342159624132650131817873859656854626605461749828475712828800273971214016898751891933833959372148757158000390851847785729446738706977207931753094626694911336513300119540905206786288849118505328581661646265735525738650569575961886975588181800580037498004572104616799652248689267536035224751199399335279774524950756155193815433794473248480203201063485594411310001253400497448225714059173305159873293709763611087646114113690981842460698406936045167576808573127780281392251183423877515274272472472527884406238606307272395433852606285581443089333154295662878863314694246292124720903464699404721687696549988830910568505353213442003886941292563049954403629629602737788171063613387065243357128733262348666204614824064529105122937293740933301424517813462751483800195162253461043195516136549926855528219983852845508918302536013393349525818470833670599614991760353668166670554266112028395666404446663418742162417011406777158867513741256622807127173113982151027821628851395987473458457914088011209837604285768400228111977623139899246557985989357473857410271625066625685986084882343569658765780892340923974365288892790296296123920532598534127992439024791940613203400017798445157887223915931301755309888127075552903193226024999343537397379625714409599825391369626258594034550262358617184751985947245624066833372927862103369285777144187283049492175145085971661260880961740896896014997143163441995596907624326516998586853818660721007400789662242875513003275400487099527642465342256876720918050872204328289752099362498161622147902807963643812198134738586062779029343302347200520110637683468313617602557657272873481675375502954688365136885126539142808819120055557741498361520430960572980515927010898973947314270753012255585873146373843151012754269873881331459310614433035525277040809866967911413165213526073407115273874966460566384596118132469470321394633294747794921742066067661300965009815365956658997637546517431237245828432635321972131004107374187409579366177921661014314936399226833651187621778909120013614146515211541176774352490106805531708294361791581193196873658061484197560643477640424295816973128066155606935320916262647610162992200528080625231433500301900735997253229610312143888204796979005776122524181961634559049578987945220039084017922470791338492741745204705101840550813025707980074481336825523830178097403525036311803922524645962288231547793891936890698334955708483598141708917637041855498016488755931130647010629551244382432900690037659958382160403160456414214502584796790506799920092088005239017619584100141108371257274480310377430892183538628196903979207869442127330476804286844426774075907736844588234900492331312916007830267910696945629045502136557702489402367212308815113956564198987045431836271179392479631223618647451712815270965274461190095219930662942432694018153882293900585173550269904943211530090634753083956857152689117859073732562775364542681753904268563767941074423116214697084608211563496784003226716512387474186840241323855309128413001007133382594203638960155529328735484983003491125550279181947412196518009768789084458295443677897868268200461971193917718293985183827034076438351628843308648645838044978304344288246938128765194657886041046689146716998348044874084534909469475751281825260278943400786692263997703786030062400628779914185630083769344254340401399522355600618972819026458742411055396249777176816424776263824765289917518588150778047595699680655976134759503921667476524060185312521917562474852833159555298414493292408866010686625545048446959639646441354701520372939230121408667263307938454674948341031215000985966972828130921650626824687794397562267893851063549673168921402688442619360866616592116332346441432285586666890730339519138292725997540119070319806288160650932255655467708604121314949790387774854376535594685862437797597745492863332315389365913016788167318471883895269569286451592045792469006593888814231632534021329529544787686108810379743610363323614942519375138813603705413182023382163152296280350442204139605769052992378438314654689101584074570169104133344774829603212299161404724776437830725060435329219233990764864761403289728733652679010476584787321662459772209235768649034271601386106192532551694909899841022152178857294546801950851139931602682358544313639541998341855473058487644522394120045050834032331437228794611356375264512301334021028065433911795811174099062532269042713195605545208536837110576584820014616490278433029398378649510516581823169790119015165752081055384886853877841685548724512106569866988326747385051018392234107976814675759509717313256336501246102078186430508099491081210527299605025629590149201531344357887584753325721368293823046745499183873328865224831017528365419663647560920881515841845025020270813542577810424359720163735429935274262634766223070850220765856093195346791534410953554772759907772775486327772791018561756563004599790980218794290535674649063352674650214042981586231260299603488812662828862393901102104290834118256079484394908625412063052480593578722975966324430853528320521766511854995018590680771319529415438442808550270913129473363538155102000846300941987375259109083115743490937772023889345497322778213036924605140548101105553730400996716577326936564218859725678625463952994279389621339230467239394293232976918434924637327785291324010698095683949218584660628684135420227315964987688043983856735863331127725000886602347488104604583809991702924129999875960027164509034864104905516799804341411927151502939856116851538979248455187269976926289797233698122187844024231706103736319386765153093645464422382883452145744648672573074937445090384108133631666683575687217752616365940002899153091945720444747832441335648379830046945609444181754386641906189121002877204828353029893851509360788617885974278689248253062286423696450922026350164725939456700710846749399048807594889507447591432876357960886136652285346470698470237640232855497906005949777679428659867741531440317090479655658952448493604826721590794042464546827551187821748339235161870985269701570182915650580066804778251871034355322057047124043508690874113681417052266784261633219755405869573653931872422777137124133580203815729075444109016566383933300992304743041134404151723621960824398036212506408137608711888545473891741139567250436840107850701876279944579114195535389274781567702329459109059643170974339538450449151915854649345764990893560712453521546747610884402314982104845612855343137467194562817157469369338215457152406998179784685080452941855061252668943331246283087334034546267025175595750777156541863945157194391785482944692821456108202886887457926500887176525174025175832405600504545295227271167353894510231695620313625038266687382897605879751022476591071349015123663751403994005619328884416114458321363346259287158171519282971057089604904645229296198020079492205547851882862353986731559507452843863149144649646608240924508571842741747684802440777083805022980141477635220609974339427497460885405063827411662862246154592080478393514504064338423726327245056771103840371498720169376751206008997425242150014778059606515110045571647987140718783253087442268466137247823673139087040792274819079283970258200225611145962453373962808653401570304019626587876647049295584958168345903025728307532888492892222554676866396996079974432866948283204607240347268157472109719126395774898809291384967574622439970310795349013163782932276277191408702015622787467449462952590956011301233475432742073311523024463672157559613088936055086052725813727867862398367327323982225772641932070157117041320023139214039312960344357676539923222295733004994635650321017275863422928033842360674178093556761783131939462729620379027738568539125413418467281835685219543111318722699421042400489367632361657088242106600566443755743560007429305390797365105488359680612570815353641837697530044302391057457448869888280019224823784625282252674781167359020446975556674630343572729121735936173522070479603694327936237980938736424111380277564780377120361902188463074321026689151280456187411759570779551026017591034625528460045362245097300850465345583749164536093315207616284916139764383640043433354076628721068584812606992130022598912525693995523852064147428715225965199954331313827271756978174042482373200766673875389631639212184348971621747490905503735579966449712105410757990894576182831627377248509246862656609141389380891389685453121754332920951353244305161702781872596900179711694934252863933142980603559749245186286781194918578205092192432846770843817915982365204293202414551377841531402828200086864196292080063960748016794311819289235764177627709371261977217010481332181911784908857779364111673116526705263516864780543377522328160408591008959643371135392641735688891822148635303008171593474096009507093147962341231254666878052163546287526464751139694617268283000784985303564399723057526372986123740211251140005292912177169881766239892939784059956301958746156155794021870096850399691669771646001842663090905855664212196947889522292459157905487089050534903014128342295551737532878935100501431337810117362845750112461591355897408309988948075387249703433627956607478719803325752892286168873416380049961731913291198527011846093388219745360193196355713704403759765828686454429996637055723777301594336490813711152962898337284664397111608352278916746687991644334707499171410047034354643832713405902088430901427023392719775642452216633026667374433659452054001580432513977746813934540257534252622642938632343677670315001813530677330873652372429387834523413082065181876955532600250458938194662111387535276011142127055215013105924550481084686975668349603783273505778857692859968107639869977976347880346144763740706047555081882536595840824107786103008019204788456084867145704241617780023014844474589712837711843268686175863028058895918334848607288754253577804187391885956876425156039677160301515464621593670229597566829184070803593621331424229238820653320022886745951258029932736657627299737337814799099766159371968533909232808635957777095687917742649532655935612499308449250539670073397436111496364715142395796215473057922848524171832271190774099298217614204307448505833738117474277204110029100371864774118444658399004682000923263497192340526607681296409678281342141601373401881245723841233782072535706974585748020117180397223289259542162461555397066735416044418430420329857080709723522512048826897007042651975136805779899566491233150493929352940350353005862337055403668212772536281238985137585703517557277380423241994138093429373864780993509549662986271964198800161384677648572735625721851222556464012320507932728531546157936186359678645958854211168514795424044115270710914153584790982874395589129137920858831804879842710838249456344989241942663412724233008456152989245041066202080652235468512602684765584320238052264014704215893640399761909054427191514172730695371351150787314214685851656923527840445065133537613864811228508142836999229771707464494901051936389580224584991430851780194106838758149971488461865346090414284224274860470516970538364346549068174554541671776297078103034632552828004989102991646906310794245141343083728739917109878286120212349093096966029250523500357777190842039903922480413743838959874139894902116614829432851121105485231085485666784248889919679033761753788829879474217175494530123521000918172398020554031964721708948428464268480859453682174363001405302603796206136129427121366600268451395788508763258734217077869503761582155526555797963449974247141100002173060182806884537128292373967214410644612156463603712317584330246946741934258242833162613138127619983543451598814059987930496552488112559410562220177370465284474892159177109991723148506928911095219734477283221537804143491776564793184349580747021796485783346867985303883913677026486798953178450461463353774889280281046486435471088452314205309221596884931673424537144058570728570547496684186473437490184695203316019643266775650260753295499409589429101430490615482984459323350996720682975503642072078996977265906431959694561868927128591159307847591703684760550522876955513883303546037517053000333580536460303394849630286102289484821067375143607305464846628639060720330452396395634208301104500025268229826275393063132113523364237079434949444734808615200521253449837650021701353944629266017610070558569762064282086384516297147196019055173843217793893048274450912531501535626539729764354197466864379131739912667662628322258575724347525792145020947975715735915310816809058499789615789060893522659121171402446804292962631073025649484644169940440582627723393666545982541151580075846823371339385829497084329182613995630465439398137880739299938845146387808133032221012405303729774910178139367592863241948148505347594233980431371482706859083765782109499880929401776653487354731049290316880959493323970267720556216443204210412761247879319486870555651448678792576876452072630049234287392801827247159101911885946085635862151990391645456841705612702084368144925770230978079998495489107398657972774897512515393844569540097145660216942237129935248529894058496034836484887581676412659019710372487976966495860336483600193182909346957959142831637456354159136359166207600297113167542670162600401263804146285372217734007149095092954536809551050961175703208687576551712752381444606939940346477776423447569365784540674523209960278203991336108137810548074572572802728438479878211314757003515193117893368557060552480164773121543783126847374143932175233369352030563543695848690408989329811164333887009682752680260463256612136719277645895222799743011312153164155303915904326902868960990914936627331647843714236882729617271096659725241095167505498060653338106067942344384817910963184539936438698999656785229676876290699254882029418710005596461594847473072747438728666990028394555578238991369839778032333246193782468007311042460178306648001620453882401221300321084915921549763204431126876333355956183298712014676844082096393551869934283324758007685789578182900435087592828440559138813006355739449945774184660555063369246822804195201070991488461861943831809902249699480556388929731094835634249138786968752868465282663690450039250256050644931304903878212545613036894602022661191177862119321413085769745346089899054266259319183825035848893331021596488444102495148093878084794102817078820027718132766082870870200646795454499595830643913924854498518105890933800175742481819827702275463489027921501013515629275052435715869996427572223950274119042540920585300491824384291974772821339464578782375618226468487469347636071385330873305520796137531237623520439651702007682632418974230427872043807215552195484641179742236243478412480371876285847228590704631318258092965710930672965963015678955066939188417501901191696138006877609221932342112893619322466715452702110957362284524872159275924696042941678507285269910024292347879378917865336353312473751809937458709874414235924789884628863563515328826851919047965075357235833435472413750250232253272530997314702472734462445553397851426433921850154091338773737110000056790548776423036585247985814217998553169934560568348633204478486260645303266538238049775566043039660894026336163257299861490546399459725195461753024117777827128500007601666360877862030784720317546570764407905671451367217104782308916584502983866565512523002328421191298964447346272098301174368945160359236769905200808347036861712550566689945126136006852317214313233409693966895376070468605112936419141044185379195179928011136725530788278831872224983896393651847316858072523896071355505982375677798714450004148395504180582622897614286551652134832469845068201202552064626848896017287332969881635000422999821718912769879122064074598526686096032138582446771757532845267080957734519368707203856949312339348989765181779374000188111880762511975983519086055785740742453012237837814676913550902914529315249849767644955093743469407995720838813860894088296816785865151598771752185741807736489085470360830572184743235604390970707829312566814782155391125102749719633644970130582339244694641105852895295142379447784236118857062570922424800566129300202752772449634533759041249269200326929413377560558858038208159912782514786774193375864446694114193983342821131224904520604592253919199398806789142903566064442548713983878561231149432521224833483045631669940889221647429333456553190900147568308467615143139729434731188920500218382876575354832309690023955802594955605720150934080735291049743322337304445212491538368930387809515806009049333671150692086679212977829838339341178328133559174710337260770396343290081171773800537306853548205655198472818592021989900513030733085549087521701160144070264255552364756600238166926345596319701696261484182354172018134644587738940896325056179247159499831473637942014728728134607539375310389909582440544084945949026956339801498414217653403843268284058000546096530097314725288757758510792547935261823092648401957301336120769374352827562828704097855902771407884373254227735963945592019581185254817270672902409403402089814172202068245180514137852331429911145357212643652237879761758604995602527566706632834267959335289141370048156832094744441786960943829256991231753249201012297271004148222850522136636337699761851144612137321580596474808107514319472084340700592588974446587911674956608270065342388333711222231740760247711918032457896655812993173870834385618413325009289268274089668539678727130269362041671350711718820480557140434930260173972557524502432690731581065542736428142696018252493331514921142917510038985956000769813320274863649693635002780283702162334070481833011682514759903947662630961739191266089829921222159840042916004908935491238846897559094254323698411830697002606172877114012703945304496517589675064735815116804557764352855556309027878152216173467556819735288069387252621370091754227570469938788661035687465971475299167442623051783409540003290607475808430298288221262654134746275037246809541545245796573571543532607962216925922279668376913158816419238169847147627276101101174332248014949908410984753377697573466853285164608418669290589038167183899878225032353729661172813705568540700186566520765648194148849797589750079512535767283857719550722877662645099508191940442826038628347757244571941402618428089945623112503808965363165139855951922724141462022868350147791935359827114554928470247086727631641031848792290059184580881175398318287211789223476204239392718391112909276719094553619097528158929329033592165893349921496050589484159768146393423234476328797217432092706540150015708814381487467475062332093996768967939802720033929538967558500403824451035960258159971367425359929812257545990790549401364372250626721396854015287124888876614766083106488463953948429110140794124475197282753092381468035037049696756174371083136935731051207571305755372784132881527103590497778648958073523374644697732497090824256382586778739334624457992463474068882622196869779572128769977260685854501616466853327551105623300775354543185874759909087612828875469489879886605266326341116463033621567737441890815983868732428694113797455649483924627762682550537353293023623880615579568484864923216583347827995374449253206078688235938677486339889215458703243106231483542521887195072417839721152729562337320453907354925217880404791332525234352062424387718835766951602714279916579865352427309976680109472608735117937723923199437405120489193856510151281761340382090685730969163800826510187512180720212994132239440489176886391523651075784874754499345110806668944158156711993219364136483667622646467492000063332921646422724229567974833715057663147910020570105197447064577766998378458470276454251101221220291580132171321234572773213648617835006573152087991261272508694800589546178236240874926068087648602318315642597321184144607923588427328824651148030170034007837157695073512442987787668356483654872756391890311863797417314297001917586573546575106749689127805598557561693864102957402525865156861846303459297784786576243452602214032035156553762888071518068503237114285497602818013477005066361057643482886499400238193162620575463010336501984658042884037828358786516173492435869436242202870425687847883247542213714793239393247984655911828761007328311155281344927484682202102974530718919851389742241393171916246970853750601863453399943321078066638307026402460925212897216910144184193601137403601159649852217660088838414201526918084853612765773664580532585350515758770465939136569672074513165980727573165474077768289456965093873505690667868607026893423845932592069393270229607827314048622003068741599295473376523948140961556388905271605645675514079675866078131149993952089559987059574006931880153445395764969030763610608156810922157104494382375897043312934312502986867579388236730395414460555536050939427701385005194148064905591422689770238147571135798223749607399136753209276463139022777341181108195687343790575170464279720565286686806275022589949695558098359629104594373627143067097059010812426355524695856628199794590172771723095971926734882475881288374242512936734999971297821565566046011192323299153487175022509326006781691827811405664100804873956182891966169881549302309272083460575106051267907455558823145055003265426245284381316048463356673438294899107506338940049270624151398245577217838142497881440120207925616627329408126105181031117333280121993514813184975191325074207868115932859464815437357649885344960744083721835629961199515154932003215017174187199156594383142614358375393907400830385821606923334328998232112594898283974569377042782770233609289235591970473229794877978634613625138018747177945978793056012676295974711218727189214282763584755921171940654682797407898979330546766515002608805416214920064291428382618183835669611007966222700621909980903432615686513069587906355920845198444100491946427822760632705543784777225459321176338619974597282296025037127185354926956683007054623348795585878286805107070538282243165641838692102112310155715797479037533410436234528348647592232886366989932166901670023926491851989746568592893915510098785766616443613584489199538113220027626435127144066323673827859694932583636084801696567398783114119279773175285983049875136795237218101196824445744939519966353009323495350951825160424595332524150928561195228436383293723660469390057905003899268818276845537248170074464103167775836574195786196730017322728225173730971654183472502410148136373865602644673112156705667560002566633873112145477916616520666488355336450857732854358698015787244548137863099446273404173399940351883356875729072925378092208933829709926610200489869163651539752217000817406890612902111916830352660304165795984788059987219586936211472187745329357034929774449098675073648652696798999350093608055848413908219153802378081316856273864291595920928782362286560091344523409124295575330759149784339836285712853338093121029398920519862704268601096395864794184430217635892949201061862811673674534101629355755891828613580474217440260257507806932712799339018685327599055651045154650109219070711927997259608342868437426104570894351875989048939660235426400654234209863414697554119065262977626600187301175150237669873982001723582081953963943323613026334024655966434118208827258864125828095080845268282647981210739168010035602078970067873228731736543629144709050844220009210599133432906941410741284709847652775272238841104393978401638101542790405018041042435047483883544729620187965329268596023186622915729464160611222183784407062786821506854676032890592455931200990029596145745239079996501332113580099614995036820841507362784350060101122322318673646413212723207640098297826869881723227302618554471197436445011453018797086334962065218212634809255333362730747577273178190969432651913996973398058385918490467581703122992146997939340761079569751011752711487747713925188840107596550184035473152797114848675763102399945173195934375782978287662705780278747613556001162107217962030448446269906967964591684546599730087090369823923766367301545494705035150287934909245302017740766473287373546351312237044146579067198210420198758520134291235549182098844529796542205291412022200418358190072309965231206860178508781987322781575812255717391391665566847964127517811605078425301639709602279551189088146192859244964111093205048792219688036445848858180900763463314791034050096519157782148638029444925055704821223323340472892109803043410013832013248473625115916906279610529621499529595318293910291776055932121041758265025198543345245522357197072036011455635688157923439318708955714449156687266949984972617956214451104407596280120602151761571592987860767850696494714121356988904766805309393056335469211763105179193506756633060774850827889250926345498214003865193434558370417641290128021923087984484171830598296766512916332139090147533420541886028606736706311167737684807445109165625758581110829464422745672619624774377723291250482146663913431365404120706031348005534872856757562853047407945156305463918086803928330988167785350945145368628660859397945863986471928881149789753460635562832117396145962288965719099926965060774266430679172241522070539030984627578101663654399384503000370451887423060402204471329392334981792543981906197935803680651347102452865998545817760590366639196883516934627454709639726749941673341206122514730252542228296223879880345728829174299362146344972465864553053816731440185107681414562123608028950747310607102679923422069688049556374203969145916005829320832665845991258361749848612434340892389210803022175887270194307290021443035526479282313529624404150260152617181222544126284558756128566700503813940789009757874959819545875639004028822521738291334846493495966563438768890940576296319109063133832929888332504302816900122408712656707771715509899483991040860115634300256594285107085153034812320834689656042602902851829548380839017289084542612067259586516102547429131737596662642790557843703406658230495583817141492535245416855535022260535145867612154908624365944022092450485177887736340729566070771858907288192714718528853972690439770851536307274419230859641226205461394147407061344954921248792467320141557967971343722154181222941738958923838056127442797637445735273207800084523782914254660132152166706582349662123601003682957877155790617380360430934124133869616231918410394467632873946842430725640063214145175221720767147074891803307033414715517895654066738601123039908160659312415670162745575966826057065752733493781885738109888267713004965537870623120241557262367953961872186641232086179426450639547282132424676165073042992578592713178908830050806607181622092105446354578003556478424067198121226174791529690412647727569448787962636058133843575689540007538066184919129187691839954446850831063726172813156021706546482990782869102534495192586714738009707608308283784862365770778638467262461547841571079067365730082036558551459989728233073471174443439040187154047443884893855319825884481651016365475007167271299024877530932838699155612214723106933399221700983879384531488227032831390863324524021542634630797877379490092005645784122793814962842333951458815036388295528200440236182929902580457102177185748173635897929131923513315295546434988728893118651588484908584715164626430305953721814219075587226638756312521952201903350034452409501235669547422087461131561994258480993948425446565637897551169543926573143449652511891073847601580512465647792534409475515371873333311984639422901504837096651104546160099039212435895895895843462079655953390087638808259149115809325552351819328141665928998603589720205925917887166436457433263349274834810697561322094110834610361763520998659174634550527284948917839220020857519604329393160716598748191174206499979325200632807877402476088734236006258520237370362560650988010778792883056650427646696187379617559009166320897490079405555810409880350498887889288386425964158823939393480761720419065492417635427692506490344484213500639960281882176741218097964798574308779447935890507839883502304806233635459133132837186482684622959249548508653358430044681833862999954963602256562393116553169093658641389478270991082508327905180436913060939420619175011395636235809367846747886549701720773330683802646463645806705996457912741325917923599048462874912455442891030566030263534830249775809212325602041633588103752434381684254065495925078588795720974956199447174971862549015581343592297212626513647221012559453958869599249177317655136916417814011938404973690861400375270717690530820626310788796116426681645567892353243814030110951625022691460075349874258369064236272001443769332438031066903388198555040278644418616263913949178091542755620500890943850135998205017781629407481238184489808223709120339619821925273062385057215933855384258058698481798242332061105992562236908291924624748070828425666341362419002459067458216956191848128954214135670025887251700856501396630980837329057517603090585493190648013055178856067932126544421050990830393739033494220531012856145115260848776513856034757506772290567008550745393766984686372636230718262281228982182821878188713025373954354328462169695432768980989512822547175563653700648992733499868320527777390835961153387986314972502722900138455081474047777950253263375700435411977002817085906730971070047027076156299259291325213260523693367057504391564553448070654233542032032965357226092381460142502551707981118320236284231563707739184474794195993793211006818177515825483324008514460860523973636553087752668558608697765746400860454362243742801256215118949820893083399683002868080365600624511901199990205413608508888186765152992381631801804555152077361494462155559585807773781918184630295981124261195622805011149086393138587700048929376754028962311194721461519731475193751164341321568924467163480166929954250284571301928434552975125464129665596057004815258047059300255400615559452338562486489484607835876762885732686308146298467598287878450860818830377938911487337224426615468846105721648071775255294177914753692908659408311435173504319682843130608980549781441790416416917587414479547560399910032603720007874375312142222205391766635871904115255017705796725661017303599895776477058602825985384819436898456492743397950234224188440825665780729561340790471125082574632599718599035090538812389199323883565543620511656240497352931429019548810164086921918880060488910970575276258998540998860130371583609703170012078648092439817919100877199071887469756008433528008435388394483484670513722948243156372328190483564348107846483355244321108662552258799409171024545945223861368492696031767624545764156030506676376059202714456238168395708251364812403780739306945342390706304085522226270188495376197392105255213119190458895675649938244273160208253002857955406663972567648919604420806592002953546312078394787121556417921811769052073322680535533853430343830524851537958296965488629180278985605149244432982357580140467211395685892332227306205352764178253499067715048964982670709363748114570487710120570400024154268987371019147439207369952691299312162778084838172148737847077508470677915270107233795464929314099753009217600288529498575424536077623456579522352065841645988101460704973413038663155642675138538141014832592552563592075317253823069370736233705307253213299855088989329428579271443051304675572549188454886726155340949307062385739638265543470227431143491284001405427624532180509832193861871683126536747006731467371393536013593028282935414991377677096089979564944244161922805835631402741143543967624014743252405643842523715264440497827820523573213610036094526472197837909241221859729953215023903507773977025610277976758033806389604307997947641719124240589110591796609290305196132022521763716135536534719231382003254295997768843219529921169301007388186255696667010626117909292060363415628798087832020363818831343944153442827340783858086473206468612857635250071381468166416194173957162412459330926767128964702878919463824171744492334935739118704657481064456227575039712113938645948105249834187940312518062482702505586923956755679063550572093843786070947667458624303609054465255979512920599094075032301226802326698390146358543220866655785152746853249170660927851173833915512665124613603911037984404399334692729861239431526083406222404451948331802195956180227379527310362381540073350965117298399758093901479569254061079964139035184930027479401111002464815520029718036023740800201636227483050989052174533202621525552712462657830435687780976218740454964751019633823319710282657363525416238235611163966558294978067887387382256365742109318279944558449739005151461055980205173212323581226778123292022457442182620001339947272638990504213347580302709674037713495335915314493408732051266069808456104576391583729384594967979717218575040743971741369948734428431400636038097371284354148081596719273827624509605677911732964845244259512391153954137263346989997228184574386657108361453263367274983765289672998912572236707577891872904380538574256540201209537815877057720271603304073498919672811044459109410356066408713238854445991823771330319273022417532193018313746144201643378998762550932785453725800128114993578779945850748177624907682738805473248451601730982385495503189159651573318371981113682259919827144580912835488400199196531123543885269025629792986085269117249444950433719781894831696745755992887098530835240045431294941519341252606243618761459020746112235107195772702282692205913220893302263476555195952826404929880860416692728496949437080408422902958654848653714281201092521800244344627699274992082527251407814943388333381208372336815045804057722929449316518393002952731038138894272858070682840363831318941263947415193645979380191911976028855260188037439853883354808998844290324711191439381601179322408954173488962576804812217735589442388568891777227641560722436618626888670813141901314564210986927315628404698453019589432525483539624873870618613647812618752322098523974132922479129937426649842172767330995695454902888175810458844780844070903459524124958652351211575711647240144158420684329426808234300607365472198860394815430791454491880443231921180194450070287025291140955460857401503863007389148567499105961730457105476899560119210799248636781873861406712898434972452165347324665764882762669343995009237064640428665441438251099905083429019979317755659364683654726725044532873630963297160182671458978303141143550634527776666972786055263401083831523110857593194655518917290798857082991775809004916730696181052136960665949123562309242108603174156749874532171477632460964773084040286278317272849342572369074813614204938138091285723264304453313571662225998185878859122049573359231225249550515445681145607444551920911436731851090778835299720532489199486773436667348051676408874428870600915094678996681817133592871517848623571830812076929129924503882654868134400653120061391788187407678124206689415638264346168826808996873869767451352337954223679589657780892474687307464072420460205863978666080877887829368746152026918246129509119144672264305797570745961224233616799175874890916657236517462123613139606844595843440427515613554158382332818083842859625893127057559363337008756637506946552165864184408762752950901142032071165580127325515962478700434736157774735922077505313318811847343219360379526392780451520513645595096518865671851808657341548403049657199383956492985928576391939613314075961278359868725986545235846506286279024973033030573648933463163167616346612107005076436456220149675963338283378496454035099004617846637703301337638264128577337045861321638236799305911595752184807520181454037941574187080437726164794376056795996233289220155127407744130715851877645378993401494423675084189377469496082615293985695811488900949139001127148251377677386803786901546726814582220400710472533116010292882086026271078681011010653207000905154567580062475235020258849480639517478735873065212416044225740412292412150436312754070804932231947048899705035915182658655340519383876405061369392074526959696622108950921784110003304004248529819627880737146413197622726843532128281284714776950965619330368990231969082204030539570727999980747162156906373924365661200029844412935511897284575759500281014129200604211991568563905388847439346004548046018605397019176056192720304117850990879604649062757497015294727938077083121806989484865835900533144336065780232927598824738800055065513071724053351283899685781990421317633920522674977757357177971203832754924098522902979738135801919928842821917098190664656762706799086516036415490984467599737166742743436305695054874410598606734961075687571550721124545314933232380825416465917015494242827498006895523501918300295547204522904442926713147641970584270431613942082108399935854252309661393127747928686294255874500928101669747827532485487902874817805701195639476995902256801970099588444617430306637698275908092089678236551767964665866628714254169607095237407294671619952046076158541620538356194328048341042093932357122629095984144761448242750454087362855227385150701667537004089644518968919043317652598643983146402017659520540463843435869392642646548238583019693179130290000770762909608457957916937963552328443326129955147466990069129751000060356760954343170535576797552127847285449750262061794016029274895445790584467712348673150789235133677750599111108667544708569992269853675226632189603209669640276544408404992134441025640349615308834991697668249981736241204211814811494576058724968728581932499305299947086732923480218052232346185723989456920724427890281223695258252287482051383155768527534986036856761159708811546316096890831069142104893371077863578731530203836944668408207435949996424698901065447275545884008106728121737009244280639358613354945459967312563936230216712742199865750921952987976431382640278727363446197954637183215541988327450175302596603320694115085310708924432922918641819921547483407440619848382990161676057770837904621822388135339995936230720394700599699363069561541174301621684465306348515548356302046351049732674197057929239049120877787767903398786549459487058938292265236093124712343696540017641461171228907413075404634665798678295730154248660369342994367771816415789504733938549344146519093772154410743614690302473202098975246120204455691377929611982139585165405130541571320424750173184080116464183443046251528570074768245850523927480491832458137058821773506397919561477199865485008846373818912016296115319915261178889767944729227946215460455872950492324262047910147102992007607086426245266297867368433071802223886469061874935012093072052774182365564730480276250813799500883960747894016504178928298561794543173742734209803287377272195810527095281287120973894582108309825423876556664447525499715335973877413570669781085129271769931766397224831384201557277481431835392626809700381605395936404949555009218071527776004497830555310385431391576487093784287026095804638264847511743936434024614514202064995963409138578182789885994439357428980549485429745997061881566118502934725179070460709996076086420159301808157869877016087387129761032043282755576361046726600137715899649566131730585749750549192245270108340315895942135036603272561788078307293813986460402865072709564124250671420388122745962928934532757636265874064377501877956576839589983281077234567411940171787906027490019914604549504681665647483418034116120490417232856470251176128345948536078710365465637083579183404540698610546792423806362631137856506177664390206987589087069252363441637057575861845468600996834358931863206770658838503036521643601870777884201185937546383129310195630353807141871015103946744820806648958774660192998356109150699159852346832091518514629675149062615691529342338481978341098667128327599332213796505734527117650308567371560723857252763761401877665890037704588600621546153512060492705876876377639470262850240764964539687346645493960965741077983844458275322246024880368198731918323365293052079852205823857185784036205055884943853820263722866296667743438424687855917020012502048909536057697843471677974304127069688739288557844564175691218229354086605090424743959306621173683468360364675856736117933078631046803715311136008355510053886523249270441620545012438327449054652669291795980650078194037734565205340980108710120389510870914217259829261725251680763064475645088596292300355934794150076050939317644966044824273805435751504705163478055107495182658912196179648376017731648136044471924158517147370210387262437086187760568619663641574224027261456029763830370957216863410120076319307212157020557812750197060189615828229146896744228070918544292740600178677168348728709733088612600727508505137953454924853522515006970038385559543896859695450808084111481377588583174306111935998436827604126892050151110518029134917403527615727837031493806647375295768201616357957339637979300452738072667620319109206885617088981121726061348779479102535157245498922965571080356693453480600769942252061617325398124434853338359625177868738963780981897984411205039924174772645681503313475496126715302381149594682306461379304210055972800304434146435648578531923785660742570303142431703246532759664584709075443488174602146372345118448014632152493872709537352845870712478736670018539155731882740455639912863192189194373626056124112032885958183323070782153135661027168885206086474480651430690422271413403903306284194835818611597721886539829643033892005934908279888425883125569438942130521944036188737490854214104024228885679752233956204951071714921781048173178009741389404290815515273830800456835105247111770185853062899752355448417013459267401510926069774780327863212151483488164534628016560058407054548005174215816807537756520739915041498273490290146439868315286467267371090336914359870451036999397788732948050948000415291557335953270839232925725174422444154159593820612256857524730084063895103455114321106063271977601765399817612062950183110518099026380834325287157330371007880699715364703395065195544202896694582162195516253038476350529617292970150129273082739264367719843347095483335210084789039238092744047870820282446463489678164295040059647374590501234754039830094347726012892763472188389725814934806298682850975121012465256998009406436824100846175371174610164943814095516344141308009081056333944445303741637522849404129676529050118466249940212599003687693562662058965570641638752050102353042662181619050740912375251767325605981119070249737905175586895523318721367000856756298233242217118713101633298120534627376237597218551991204382334050791093927803904947379298456295299394284528490473455107879859943221716077606159654381243577169532659138115181188082519665660791490081395185468184852682652878152066855589615319062222620832355103479830814801160623692668572539042582097354583899157256840058133475538115608504401632916259859605264276962739557610869652583291084457657701967566192476887569917899242707875286109008639738508807250778951359773121792363576332722514894289916801640555871099090737180587200775352110868751490965387803115107655676372293783774770054232917190033185860945472566586754409979748583155114807783996487031164504726773761450814060808391603915466789950937348939882411952181343560804010677280428341766631419128480420395036741631848015847617697535969103910064888848040911201959210862922110199731940754166484453559535423807654651705940536297028922391547276738764155178459007211977173577744619025509093877283479291235083241261745014685427658138405273781673185942351012023278139329406424123340639815193973819015081529525665923039315077172381451834983208553874419030865350426403870534209334216731546221929439975224282820289366157789811737700776308314526295899538582550234492472201862999826464330507060317694047834698445687430998587357420710008949151470406663823962242881964640867318472998152673287004149509670083410111225234142227390609157360139236092567373429073372254681155797058979421128383755335315138932377460012671181990829079114314717224025977095628531218810690358095173089651909342955835473440690276948586206722848522806135053170898630814630459276557404258410013216108614996497402495811233447331234285427243176651145378752761551782447015156111196782165045602050515642189106613466847780208474788552457455969714959306772384804778990980875625088369674151630760035595992741697991794886120744299063818596919586603407094644821190391759591996474444866593792023576390116769254725409850914466035273731185891907402271462756324169587609097397099958900468794672481697210802106180651061160791272966783178075132193624515164794728805757086969467974228059873263629842817844227242856095309187963035377417344072742151143599539771213614974085430283201170884961556998562102520187676684337936136950352628641759105589051869217408552753755035040634367558352857926212267234730752181814286551255981020282849422527398690616512658772052911632433071018109072774560803748161306506052532741142904042542774665605947852522327094194158810124586095226357149446503430040533650202759465767311360530686435609365193242035993801076188639419113631569197402876945637997996730353592395762271875956977223105294153275798746036454188889981301527667006226831135390042366230791428794042325200034295166954248059884084590647233904375475249949384662311611860007977595198020645181548837818496380366129482148760247852637435589793006082464089956280982909205445317006886881045438750350122235267501363158481092931852363677348926276062346379418759951657971407947437734658688405449173706715038610027396577156319567449581897017413904098285169993511428913850068515949033718855693263743378888084834640246673161206585832606717225107427966742001054402699721233799347718013223168707058439270725808649645908637658237813330035931615239034299149886732358598887040068507641908308085111142891487395384795493688860323623058286692116296114213391737749900063535403060168690084568310246801375035837564567973191163230808146819165242184517174921346030600872039671761407277485647319928826622315147714209295419995594488380541394874951116004979101200568689765043536322441874051783231564586377722726164304677916720166194777561814737269803735146695470583194010473453874235165895120356058432580106718207467356701477760476890611598894326226741207173848542557074792783825151691763380223794085147485547268995415634048450835056497149048021146776374896477018618238575698550102211203737999809971068167012504613462397791460002088572371400075508449136495451764441958016954121475152910782471907867997638539894454671390713065707017502912663471774996766535975665137934471174409374089141194533083071947924179126971216669927877106608235924464014896550589717265591950301237800975472935313129030501409100011902467770750354439120779384926895708280299177425205859702550183030577849632071571861522366281357507782728446358824069764736465016658839712085271495171871165570831142912237837994791636271785626200884952429205397254260709978599277560856311413903942281466930034865931740504124017889792328381873483412959744359613206617861574801351501725932506073825186775769765215812228909614965897501136258169455316650787903758891468199847726415925897937553975758125459773208679534272151082385540322295393709144179075646221087540403138485795805631535796210403899787658304965224751155238556754736849204032627953078267998660867393945857793298084786210798257311133931133568359433634436596127197914334811693698172879610564503002311575439090642454031190208766125569551898370529025487199056200953023020692625648693451690706092579475766958899805076629227898738677928509086582256414619837848377468520316868825505849715149666119953592377457096420187835864008051820422155993971586433184211987590475691958295300358483455070346792201748739146988715426627895399942582301526732249328613720804215139250006737354308726931517882831294569181904773376193833867962865760047137900590896899049992933930594979989627704776475096693202022445535697121616638255102592811651433989412654481089910665751820073728539868635844269728646521036294725998824005354546917141199166978904911466266106984182829252081949966523815829656648368017208202064204408157329142686619033357467101469201042730706400593924950951117868135309289280002843995826032319930416086244059359640370690082961549095401404117993919409606852428461836339193555265925280911946657336425117197545758275324721621837710256170245369194249171799730369050199296239964672070674902039417003823593468918288919425994603772312125500748967001936721773539052380342274870551176528862569403690325610109123407325536787014084385860081098407947750536910310232689533089228201754543387930207816113198149214017208746409967177534205212544787941987436238857489213388163391941268977477783974258106804489083007419403716494453614235739991388116006859495407030671075058408798830569240118399966128419496893367911698667052616258113150161186321249264582425638622515920508793859824497411784772181029112624736030102198535314834031053331540440864332190989787815619123126738557719708706147033657913740387377933320693133225857795781534084520369651715257475252731409757340939742676476208674976028082435258690402214382504566538639665111478484529118816785456698574696392615731670996616919639417829188355705376106959170429067162664715097337372154772094948136585341165853341544093494736280693080071391726037798800706714042639153109960494955866612354716172351005413856029331841624283610533431021888306206637126248257137442824443097841066215072227076327820593940094688923280346365830791092158009869567896739779898719587695687906514642622187975840201296880671021397257761727548807263039361246207347927008452573931661553968532649209646076611912213593092542199807116914344688577401103802914952216385565640844565160202061473062757307403518301315296500389791626977738975066945798866211596636279099003427631946935329693728939348769025003274001050339999140183332054635822393582609270759859232413956332413748951793333738919916223589107594558418299400221554331869801158862655453876759701540724388656255710014082102833725497662082282707421693055693332801298635241430959602934080734757083187988622664735698547753175859028531790319204638568254278736514581003727614128114068487052950739884258814674999181107078937616259630974369720542415496273707228645730945406720485916010923984164083036282665695899271295730640635584201438745706502361453315891269854441314490098142526981299251926421965780891825999094450654211211341950266827183312518875427485899393251449269497380750984341418104131770779531278767282844573657604830835370292794610388787307990284828585018567122072342977532944177826078845044149018393838153073507216097666106932399348955074141760951844980431527535766833806123150288152145656646219458730141415569859748602814033159644313492070583650868948437912714492386376642584759197785772498754955944779114343008260514600841185049268877962051963684290501419737583523826263946078951195989424773176321519978623949147040714751808442498565036554396122472598180664130548569562657401525569750050877063171753354118162484795848756222255176148254470777604713494694657029064743227144708238719260568316821058618273574836939045488577029973423083140721108403450184013265872898296132272420071094679759948154125575980267101841150918337701755105794218006584827845122111895771984631178688571950204785124754880777020518251712106576903592805544240686783229542969747753100337522285210871833829486351966466446946632524947970222773597927024628909170024995761164179494313535933184124205705681681863764028636184072619444777295977571123381473040167747833857018306241179120859880882040804326317702415444190431661332394616462313735490166093986694577777774882347590653476880328220344312939349228970510543345844231394545789459708879769362118314977089091863542913421197408630320670619887446891437578353150752211951325925735090957859295399344006569913946358915751391443094610479418837736618305634023676361363391482966675485475244509714634291405993550824128486614509382725142450607170997665928074012772217313529147056723963450780582651509722527511821891709138320103247271739768899955117881417525089310204020085364639541868696509230204239917805641489481120824352477582730153599233165534390483337726717296552201113812490611128332249549808087402367182036655226888020681965286916947805841611749703272767477427292255777801677813502395628645332641355485344787834345292541540458659255112459540062969420354935690482090187399991245937346731627861797418817589108515589098207094716919335441024956883382009593456460659733161416592064689811547141198325145268763794266356884073718988857817291043385214303614998569248926809696733008314362258253623852655491950961807422371889957624510317076333215504570591354197507735115231096227470461479832153413238854583677710418882718117276773555583334220255023655850069932495869481576880241204482919952916161836986194134041920900671680664412086092459461576399893478298572496641180753023091597565279866498641283988426291821915262449933831295953008802301690006426552225488754066226168957367400264350169357477645112706322968875586380972641349895771458299666194961735234946580324894404432209413901430927111258418290451355256707186825414132845122256606669821401026828282628698762088884252518994967608444235937816124424075901127995418527895798566555371896018131441655298532285326834144547561579098445747013581281391556655168037955164169557865674208029645848091690891663188313189533542896609340542909190458920297994428628097648996367499947703699480989531080321837300111632839340632440209640678532099191500906560891097088811005641504034650321800123976641739170068963843384143227292861402275660115565451506601558562474951519875490655244410505425922049425628106948660942556491187033243997059625663576825277439676112464785370345134223444973682552281141654139332813397753254490682793455187175032280846558967807109773226445146408969525146992151546148794221005744875413031190907147388400449761135553426973637088248143874871352806238222272812994362438330329378879949386760647137759156758494303077935696417628863100510293787593139893484825623814141104732888874435287530675531779862058877621224228524601965458061587486727183504710141783597723345130807102572131464809078227434133572554034637746756456785310640151249187253453678526046401728214607893871632749950104835833622150512192386078130257138433895071024919423215572259808144174673203963251632907747439075068728524734491670060913301253259548361614238633115437892669436278484412960256017857614528372197078516394874578496944431820636511643447992658640890807378166917399359455825001370584316439331071214300503489339938070755449694321592071328135053525097211668958576535868335707448314649207765152422330826555888009108726363980899958669935309238089978587652163238482257067060836054139453589613338436344161567498011525401247388310621261166339275054247033625833521553490267808099731159800050383244056689566194867430373805921851640973190754697381575943665752260311970143194527715247831799454665012301207516404738616258275432328291832585513605094055614427544793472664791201554945969324432416673497871563264432377035350496978441844101346806716203649911980964526873046443508967721413837134358335643019412668542930989740785781697766000177323295318722327607212827991224487472170182963737931304639621768727954488063910337272588233730296732435886224331110113562542656107474327549597372768350636295418349900865654216264395808879349666436937136989574438664425430224592039148749932162218813950550645169162858464456064724698710478109120713520106162521818956208822992088730492034363172511010115224402353178066573369486544775237806808501265890742961715811098207519907058827871513187004118507668326158893940013647536486423355791645504407760649570294071612264933153788097439282115009525958756218290303835229519069184393702688336429239506088878584684454729526496165886677591346604688338546717411003141188708888197355369345170991308791729962669040359905110851328365230642223703361125969955062519705873315343382133395900640678048523029449011152116547764678034863972817485946083761238896249672222573634319630397043240067551706382983340324608513020700046072694841101171904129708596165147499391344244646245509754044056968722937945153612584249633142988615430928096913174935551704173745464185603420483944183889032658707883693732615213317654322313870827317972863936551164206786226381830104972495890532843972207612298235197949487568046258018423626356279823734203471366690552142057978541967574890181863369951382796086934541368981371890176636413508312679633999190083695673990270007265336813059966794531101043819722757132084749170690207904904513566060704697701526133358915131384846386493096385195381610678519916316406989905020142034567633463381457437132023465298164170145304651163157393263441930819008939998101705315740238894937586986686938663526080658060738749168576756310824691875534979812582920805439100970530520305172549044983365003865927460071551216969007286592214239581368773455745468674403342526773753711071131512386458827978796387799290556056992971763140769970367303463638718880548597136727459928271043207021871247100466340634569488840903205920125032643890275365050982093110869351985510760602313288193407732461322182221953637546941371416333370799408330673803518495478879260469287908889756161891446350588256707641007348924933601132471368816836364476285037222826645294601267596292181956082395604230913655979813730935233662118799838914844967164650803255083083502269157877295822130020182911054028176412743570083333747581144201834415031812509773222983269662219798855062297594873539008406654942350529951767349195580012462721645468519165748396353202166674743770654776233013235534205034479723820178289370653510631261203440433889354479520107943826974624293353470156444847680558815541568011216096160435235837428268893318648920350040544259396574852793055417568598446650570915304748590451199114503352703946268334814182529648542754626557501100368353759392512233077533842737452860533167586079426789492539902109313781676509037540268058056534918685799327562942887449064894051783476887231694125680438052013066062880969595496629336367917272707259667251101468605225577338383760345733002498321205734894637259386531632194426451291851695267218621894335101048840419711211760226743673079285954146244841374545870970870602049879444855357283166049899056828218157389060955264894727563076266058408437192023733506188341509633530929486670310295732812797958305540875592930044432407054719669900332512289592559240108750490485366593290993952267499286948225252524427033611417413346222689653471100910630849508416887343114626845533107732344222547766144042099705290958264999828745969267046429655657224738182195915775922851128416613966613582919778086980209295295246248513708117182724417531043220424499453434889449129697250989189363307251697533568711903500860757628067320184868257624316196039926998168374454457696074419421232798105372504098048005526574028356476216949566575255038093298338942526353024863861119484257234111774960649867257888512382078047682992917948205937106027713717443315377156167500325214775166136296474766813122746277673424598538679306584689020514090291215252045009642251023761092823231821555637240635634754810419745689481618068158035104952341891492359447568817892374243127012348350503441044134359777454386109028680823151031366939013985191719150931340365458797930802395153164465655998804363914348087509335755482542604273800083314061111640269694810500741237404183335209596858626095665928294824681770946825888447080933460005367837732160632004561957875204490788235566941893290737590458436359402850743933181504522987903417037603961166147229130901520755342236864313375554714582025809765519897287403982431587676887458704363193379863631735185431774542540637027090692371212339819753501660096420014136830341231829477467621186793032372314189909281516834579289080451328333261803735379073869410218191450150754663701104062006083360588113537918234298271361956080811983052258341215448216260674600314783701974741421115131251362473538514927589413261817750188015443109686230910574006921416052354882950941450520486083082369621816910527527521944224938990142324017729529327655595033995917515771506368022787540279536120152999197908397368077954208861309183186912758430242304159320341817695653708054813088767784294071433840177791385127431412101089764332269883239179274311000141639905624271831716390863579639077724548572796615944696058385583571960303134095186426024058810824276335499457922669762607343640416967726472687353322191782541510952901647688084525795874561576536292594765568651313144736671233868106793662279316539898649430366506262124516354592646858738812920472581309269674519802371819734594526822372837320212601957481955495038454104723989707593439545162741201299352981015401741391782719139648904225074097949945138628727532486280115544498987297279757306377036512021667607991588167118350126085402374694318778637212075756035981893539810385246020907696495904190911200237404662801524162025494951465441375247114522436140248756186191563874317020154321068527445157420986083329433987337418473541122673582563572072040378371465700158988381701373929317318618155474361424636793800294135539412043872559816910586561257937017381583320524548216658892721859266350751002562802119581330814972511013707091108202904929688160363847641726899936092347536538185217614973738081657502722321628178624356215925689953005461047069266520629224098574094377511428451944532829741255700765614880706259846242633746738576823647083804340956513977692258775549429886708639113052393689370911641018323209478023380383656124765018497352946848515868201205537743129877564670974514189749765520519608225370531219084111622098714719303659734263337597377850168273637264311520614353173412459649143079515733184706476860180714252427299318460438116892328479732437149238421403469090639510174739440142520859347071987361482459038591152551599557927943794946754624358278113037652635191933506383318954865582505196075267449448576149241319562308027137594641972173244657144246657393621006154255199343232833792300817081228488478662636875518876252930130996832510878461088570796735444829487882680623299897997941273654193580789643146524017456643033023315240853246437128710716363715596642018811957438824558885894733085871805346561789377783467647710183499295605576638496712896114261357356864794134231488452842288999870463655556569834984743997568836931091370521896237347511939144480341379159580300147061548143945242718637691546835814234510822309235307064524184111117392332554575295719630368615313176048139338424879977085335786031110874507127785573996468100005363633596349585023679818460869052646109033352744682812928838272151579674388077816680174124047809483601429365331634177313449299093245670454653626111792251723510127012779828756734966279243200648524170889348538314763226926954113594843639598325720917812337619295731487720040210292001054870664271052770559410565130119562322165413635136710610582239229673756245777422251838952069248246758630705698808807943224400044760962434998937255095175617833420831789769788550297811775187995588029808486125888895181509561963896038827611922989869215853990806658150237990614270128890289903952871266787078252475585212204958731447638937411105416820445765341393291673908647858442171822469098247127705034140846163972147002670892432569106367016051690750918934946780852847157218495864644241925764838876457599305122165571692865466149781711117039423792542284416423451060698317066605154635074219205767776792120102807587190781495542096008429354133173850015750963627924737574509988725875034578197573436721001684387102792919799999423364123484290130497898431855616697334353384117306270632532026629347282230556693964097615149250490961551300523791246595164633061172289442337874889211744799082682920684273238678179671008509157994292786098465444586753717276294635272201584519335723176412101883645820521785163254702566901493646755511211024603252823880034242716414417866673151903889022437699822408440942990407230715541997161155210883789390711060384025201272735833819236322561963236786212527768792549952169670197649935918068694227374828843718613264922041425341926865845812109100373657360785408702270791287870697190598317185620392267284760836684157360468944016326042718298401156534930372019466808284055813583467238105934936887937985057362464572695350742704354512930175649175847029331223004787449393272609503031348619387465896727675851855682911637010088131277755677432545287896066772939401248649349695935258452958727075864197883254418234786654291415975726204227040823321964981198045874729651925206895637556173880643950467864591794859079403393705232037961307213450813106342885074786092730829657788457019135687699769238578081330027380256467809798114143295993791305509788277826031131357363374827495944509152508236900396844076826129765605586702480861396362967044731572691161232564015814548419153072763396364543883543614063038052959521946408625328660363518789652700169985876302302238596195007518283147194695860579567073770232512316179802394545885822551064553372860728084580196386505420443347189875247275822156672036999660127311549397940630806707368897167196812436117664283851640184218567722755423962598832127340396051224679155681857353997898980203366693106877433785937045197617636891059556500832199590021536578380776032082122401860732963368121905930088267078545161656867901784883693083692224888592404973921067663500788503266042264417517624202803587574056938214014966274625318046441355699127340611972556633223161934434047575971428348915079486113063238138188314638745532066358974700367040029241585438719347683548616018742512555920033772577684224723006707017310143085667527597252720474345664189392752537341893293988708015463377138115148763360939104373099032274810279225826872340102834548305166547035540916795043247032423094138484019404291945828107274177412238466327978202066796181930804910668947489536103030421909021119429306696207731207019254571178701063819565022347477860350554007940318088563014602112665366570662192607450797241999826313627070869514889282035402593239862785991179745051257318258943558333371393785562612883078239213800563073590118962615883766259506296030281969082684702934137527073095136536829055829867904964056418630684666961623611176361760860479905014005386076055542231537163315469328936880820450588172530584272031583692034594930771525202833051639085850653205554947119463550523750027213662284420192180505721197457028951033973190615022440001457817096321331887706529076431379044700544937858147933396906150317210121004452171355581182205097200781497970343283106548811047999959857577466233803303676667605322240532799559576340743089660479641339081012439480277380202718187522536017922626962574290967544881879537268423897623330666684172063563688351317961294211933977594646297160905606284899604227206713773445849500164265253994079344165052524101668460517684916667725695530489507809653024331582260042846135471543425585585088127878913825378354559149011629460349715641189522360485219349819061936855405017973574118368680890850074233653289986494008461229436721773363469959085995890571274408694979780100836529332806560306203861723878148950825039090882287133703209189777107044772490240595994004843464737085226997269809672200852681096049032644328131776859500307289733927501058649894583727410302702570143655312560849497831378418480112855965441894703905233547755607469563975117931803611780201454161681572961141445535792666123681943659888601171554319668987312287896958498088220784442440797840917578462434728031666228542977875659397464476292218116054191670155048487027131139014341739388612174034245069070022085977735789984485657799496886397367542882906645401795642796011489074619177397557514712497182581835318063979876032258836974569894309130113837717177700962447153752224951186190998886601505432224283275700746734657299352746981079093699059691480316760139159636978549387924589424497544363720302155980211724059874439508653676390109659340999112153412786241769993248871886637951999762392918765531125601851835139922127647587436189068457618594067009233650021024128958293984274954078247405471984829107764678816598784199853405383551851506509040988254204613500404210963290686009917572965233155173050005874357357200564273226602274563771749888063973045474537245462315506907265015982904977974918499203716201314997376167279497834134919936492339878385377929128072537176134209446501274685614251095208512120596091558935507935796213208048144860080325056965028240203193288070705470037459198978222803658537149690340160378768231393830649864560845682720340283152881522303547924767782827230734434213489584381484880090847455405863258145764299001684808725588215775517421099234621370120553367426449299822000950663074370134920837807900193880853506159855389070809149908640154423817360104767837448077216052561720049595175006188320056421598872972223934979588410931342162785070452051118532412169304761462595850064378767757160829264216742893450872852187358384163133962632416007938643285956627530530131552141578136621941257351184236283028724333072966818599882650120050557692808179415670536376385082630296675502165055171152259147512512856419593302620152221485376644202642575785458002594307894529319259086408720840737795146095038112984710664063166839968427531131704949571481216076095053712954781823220060341503204326727509413609746965680676882716021118019115348245755507122819467080178362194069508388736812139077448548361697736517920859585296416191121415895940010453940250389592491417461768397407336868863398270833079807104496651385516567269381099762165928709109306373717267238429561640314510146327565952492063062843932609257862652778566253269666905100512358269288827122873202918717999195718063014989789610391286148391595284082862298128079056340956144169799067835547234928398458412762403621651388088242534810223411278662006460645833984907056499579900328654568587021037968804073315049554666617929225280352189684095197009043519834422903336371459491556607924373825863102861798861912856583485297673158724275113344311729085577061454911598882388500771925030289183697914329504443760970284749096089563702099485008134307731672408765656968511942394897635290399751181454845395606330185733770289092818373018270310154887260535375801127231613671055546059824617948650012083748518672782237203699237424140805478460231562588926758667835752739235035558449000770064560699769549301035974288482402288578944178939347460446477544160479430164687154685325097239102111480021003698795438340632496005450499772882159434221790033607506263946714189940357721956877634422902568156498580315653036369754409704525742965500612017158926118125671999935441246359339752453964854548197992235183734172564456999925162654392414834439263324078205700059487468953778626422180832820636150925777794646060004224624553940460786574275767404725682801462508341879354586888002493584312001033971789433232541672705530992508424337808647522401974424947893952366875805519219231606601674277566350672209655806469558334728784387828689790612453366116295163388733206005585690631525006815496901488033443583059433920953405165320440069681209334625139478551986399320521799721892728024981313455104016556128239699709639271978390976389574535962182187945447071780058216706466025065871237313686182854469603848409997398598909018476734829861221882913866996802124186730469980184255203609706303082786217505085075014591144914418549846428120238738308509035097820185503639609666993409926079661187681311568702222169537077232436992381503805598784591686528227913127770916839747510383994095019540773139720870173062974089496123223639327554186061273868664267245920487592824217064682851678605818254300525301103626983316746126544271994528431701436888365785160208601013518963296687549742136327778507312898703114320898358117469282065712737300035778909685529567858569211852379655085279939036753681262204514036820240728653516553273363492826856093606250756146117735550329686144843714372665983927066011227399320224071293895860926821255293192918481305938145800058793543263398931911871971933403475507570005353399349413023883713935495268868646022826152579257899688714618301702743032462802488434854773349382045860387235591291635716026341085714037735911411111836122034491387907874881853723329886601967747616589871076354915897824085519771391152941926346196897860792497227170287161411251668291467250553453914540420169330670350842187697089808638857543887508343818700633468723494194672310648417545232374486148077261400355222983773061464021422878245105222986449016862235036789667293457226834301607107684159919405624468593765684153354397643173222949205252101826788478149627464560469214548824007607175120203317308396897078423827631942500859963249918505855733157209806020141377232720235079035746106157587457554765272723726301492668300109558399655997737578104464036304509877257564439686199309301198096229984916968234224875709023955846048347974897712296665011082066869132904498718391271738070695220117526154714378700087054497696255298285292304149898560721852135232589286819206047797199590146845163428778592941227299624158101202250328646856111804354731476334814362572171282750943782447380400795420346972046471759230056149554298044071164143347793560878992530579156497924572839820466889959845350659129692990107932535311227996688284313511504339867119921863579680653569634336990216336387514704569941257496897306408812726598813150687898244039157297814784671311921262299858349063672733398620558769149590609126602979623624267857844185270154701088748150509452306468297368072808232593900483481717531616959923957669209116812390260899187202754819303860980422784548049719059188534997976489108045243677385098613402094474479511114667504357412551223156098744294133267697354907760884745914934536534536096323426341467144883680494791364389476250655943570154490726270306369871853371725653485305062995233408389291682828295325815628908186570861025342302204073782106436309583379416458315289375691023920610461895161447484484959164347545857331486684517429786228972422189116327486765020546867738141832592711450562744914879365250343778901770792796683110161272009957410897289151384917665233782155793432749877444235795256873968155187303361302519805822961594926877327096030692224687017613702142283276289877247587782498017610263133089493781892367634014569557366719713402637893717183037323310860497098578075442298204285117687642143971859644695346349942773482185236810032269041061042801107993065921707054764331214305310003923038288134595438094427892444919619721007057306120970819103409885439138197482803334642868647383793914065788490735060353597384668041982317552758633108631429328442182134919290524555039237801090144682012882119013080067837062424415043583997358961182807601632191465456798750970837925909461208519089566233793668996939876724921779548748221284796883652290412343213381671213302881943425804007749869918272209944634704683387012789398920518549571898621995740551987136379226406475849155707677371143535231934584571777188944343768669784956828531388240710400031303658508468937426028373141562853301039491129554838714926872939731104584520447216792140065329477850780975647510547966579737805370377854509282583509102969584802683548823298323503637116231125875749155009594276708581370290343392926344707793994587195580804464005860434271021107305030669984108339761904672334801010232397226480432577139241147805231721361486083294229760653677639624942470448452387810756633594832155409953475046626984120172605162116716051925043931588712739640988437393751375598444908304349830421463790977583047471213551417754590867904984200625140297422498882390809634854354013599348369603431198423323664540585342328973285195280569063248706183172102727496192489505098659067427415813890169988904696415769401406131271129278700893561329135146887576553121627903872193412814427425054380360809003246941506016450389204368334740612354675655640344543180327371244530559523919088342676708860190711240623551098431051434329053901396203793494137822357605782282474967110615499818159148281600465353278266961166646942416681658880173066897859949499159741812820829438036715215731231900892090432546955203051077870925169313071940659296032851563618070935866541168624590606607183071689400026712138177896057642988737153288397848909069242538418251487702935397744044004782049395424386592028594074302369642137560838891150091274890960642739556637638312854862423217881498019695809584098442414429687817162235421142954022038370149831134839049856744362186148637087427068208091593460087881042125531704721773245551377768896277172253447628978882849733752438989953667929331485239094401084627711963693710348857246017368722931806504251707609257686914902639300417280390711822414425142349117360695882796268313121247826860284675153300651533884791762911616788151566915381641201743170634403521797560039661748261748648117511958599139060142118884600386801969407973211001032544539661954366452230099462487840536071253306877978049206434655348939602971970791864381205461599316613632815407709647727086157499121028263214303834984461541154916412415435197763011540513194177002321327758504761722089196823664173478310132375229943740068356620169653492344105600806234778406431813813228499748993866930918675578046860218336050446348731456418273644453970527650146990439743717247573734406549063595897946944802798531685498326963258235641500885507410173190926002532178616588002544712387294417044851839875491540622940258241410160911502308129530894414284727446138197105127733216740258336583617485954424235386975665198434351843178664366479444660164544828555448356256202985954809901784518946021238272559854424323859740772373328977386716428878262589437983161496901683041980325307624987966433755926423397624859737003436144756183824170199040770280350934415421921390362110424392136985439508494662064523586741524310699908792697630554417026517272268952457883746231017260700286658933337287296809267766496414619971367242867694197676657416712075617972231707240910014936933708309581122744019283732431119615335139393047776954846287331575847595761483916935533706585874787220079157472213590912004971371238996099111304331353643120179385378378466809311606723936451480607556713200795176718989782618612361993703828799424053305465772417014868487744527838042853104557080746658583416149296653039841603807414015297679890146434756508433353956745478556659620174954038037546291022128028233412160539024784420225758538813188704916603896717265159669256786795705023804937064146334940402280932968638015436135987675016272924652776217226272651221473459030858384438943556887204816211261763583486180341851885995053629992789248866891361633992849356252035455802703031042593883754485939236850625913154377807150921455846776565353167169298782175048388573787494990569067226083095969612855333968356104545802655831262890577888498744848244143384132096229958859301094037307323955339224691631348576372238336524904165767186733507570303596816818088102999169605208948942898271429161492909324837528267119931607969300491043957513247132951295144340992018295996100466212229572725024240120104759744787770956657795198277441563986221328688359986234678685085825237706698454405066257898419920488972668557824489771455435273877010298716213016369459211717498924878137882189481715741241198852439362694300415113160707295858669356381961549974486360088749441970055536389355522539052503624557636056733183184523674630684193828861387400356318663253650701699952874147888595926595407630885695971275767561166975112534121841189158875285854755949996262261887532888894118606193004089834156907511607929906650989977577170824251168268898742536771037548686932636870583174932864155056049573373046515602704649678418573974272753889136974386537300055104329466001390551731145483962465737780837413245269074665745679718909215223944152540883750577784018197583705460925760786050454093505649636219750565132663795003733915048850265993872559580490034184652165351250445518206354240679369556422797303436315921556313111575788554077274165432558143548978118112796023357509592171855629379443842405899949441922462739547304585317554332577983328932147267340380888574658531763824587239892747578815320386459968218748592359325394490095555690819742823331771414513428983494913588918939484753174814805301439341578017242789960763932219461770870446711597983819173700107369650405109190106339600353949288087001789220368541237322036850823091621710050988234236981570198463000128123634047267022212328835406506009327234528856466757465068196344785845978847567287621887631995047786492496844379775895796641244811605869974236552035432879818789294086730095277365567731286511769170713020010124241987843803100245092109618010711447602369312302340785052648937369317891566440764565243984978262301001759245443096591366973017549641634068310583603587502427133014330554142768130690017567546247863944523051312978841036094692639261566645615811984836525844584691386768923334231643073638063694980699171604021053355089389212368109744579547392397400602795860348635803164555325794344345879001523604354849843999882744848469300613335947000089095720189075081395900306993586698749822481461429113339615319206652238031419663520590648534091682250799351221708614075111042571722964631042042768491255064406352457915044348691436577693197682757007915841268512008632228939605611568666128024330176887947626922362354196485954630311768266893450606815226387352709053691359558597518330181943974398796361051450835257985000356504668068490519986501241904533118052187489401801012646268913535395723971472615054982705752922340260540774465959341621788658056629414700470030411316727209234047948600459173842551524509246841055338935162298208305610756858118762837059206684062533354098006383210415544257936638314690951612296096789046128855144901156495348296426835882500037268921375638129126444565476168265132791303017447696134799435796605133054359144951194813283227972778640191915589635430753088618294919807550920010087838547619947610990374253699371369718704481895894428903490486286525964069877429884048266853994615077174638814937495627582233590069843333252175707796225752062291158640433797946393660970279695797606375342760872612229313209440039538307410152818777216339766725013059700968493299618192258207622908172361904823428051232843319346005357958230507157978106542470267306307608661512717113144133661843365904699419217702144414224377067787206075259639785497559439628419748347661480000653607821530707176649561339531541753104214822798188525833541778182322569814815017814099092861514351315681038596824676957158389283051268016613137738765722260814759099222093467991441203836700248627385728206049305088254886763868702388148381401622694160133662746321699445163473944230066164446554873365181939084235082079236314147640194905802891566975661449595738370710635796990931291844554486484284237595756820035327372158026791106952327504660537712666197131809965595865128814832192490871843553157158882889587712074130381938650073757639756841134222935127654172258643885928577929550218493962314083725463615334637204054706842129986270585941767621874122769144164400632287396455767620758470624836396613444539670563019305293068405343996923456263530406256787734917538558863124139688541128983440590932803954446247513038522491664101893332806841121809407056697566763016862996132969272490607260571978351928788797944323611937980936229030328523569780142533979002260006135829832281446337797076499745239136358759944261336710234632743197322917659504885108566927250866849161203950928129031664685383269388840138036797532455732891690802815831884349124302543548028368505077504667816959447763029494150499120719735448765532743214760785765038480288010920089179353338289266664172463997909792264218142741157176562000909749567193150197229679974403723155903408883172466311937642160853157723687034504945105766814304693033334954275672007555403636055514312892381188674651264592042154626488236418888224578646238848164461408130717767828969270608191918151050135122175269657423497054040763969080247450715000368448202679604422065597675017695698940245365252541349702297010837397806833047611083169586225350208801387332012693571791607054960568159122091435941031118496961210862018486773724805393116448051321151170151214102656785681391805149095654694653301363820810528155263556923868784167833587973341136436534963767311851390274996694572428219516869453650554322637349968155030130776320847521551768398546038676491884909974697643718499878422278166182275553364119252206042961480410653892974376600557007095241462204714601445763633718413738489965730266807591618250739982740884863444134358991814961210006637176034530397014787847356934888553034175962491671212683610155409429409969457199228231769743952649732014644621638546574386255377582276998130082431933790254687179677472895139575381660581437652586439593689059296554200359084719166367004461924048985151260195446672203578623578619282446660008313018476297761685549975254452123495490380127366500156497604411052696788825477049416581992617468554626084991953602470429876011971123507770017024425103125718252199575554661673058311958742326132073631047174792613104237518842792762403265452898426086798662025612860173484890952761468900508661551501377156323793051005707478535470304825230765708508447904523579554762500803448443807975501027918629685971073891879548485466813445842567817387041482713170039826291613650811133498876142221772094162298770291544193891792826052304124987325117991848454180780452327338554582577252951969445996343494473595255115401288177373027356322613061951177674921200095229375666290869101319715220739088912763610552866332409756299369878025598446268528208002065267249434994302542098151673414848227584265728434002531103223103889434147251493456336541310196920019172783992476160819817338263022535167135624125208002760846907803177390717570408061189817124696961112806455811924988882974498563480295102240494195449576301397377414442815532777964469435480188686870336725537537677771575668120638728477096647519692407166190061122729431247737100537763716823267928552791134896308411319573439443666900509382745293852042694074232754328735495664338787855183988185705547514725594110540002807136060737565295001062574453414652944614351786384322591449538234921699872749948005552464127352464732493866484096036312365014504157452805115826754553108461406116529291995954225257912379192848203716995390735179519432446780697556183165186103470580718300265910968421304893629699805813774983096238239248861352356568341708176239888952307942652908852407275191568195024848727761674597694490253774828802701393211360353051825320146336421704278934742432186336919597347767669204289918858638023313872267522892187943223504614125565963737229873893065299327117416124557165368102940217636347145306539157050865272154264307484320019745228723494306961626291911763172836937004968606806158094775300454937130595469678611600105990133404584688631438386024758158182711242235786532724864056372780756306276195469535921359241785423667909028081082065692887701813451154950135717812940970464512743754500555051688066249830864671889353522495649031358547462228238625754466071512955781630963179437636005262254964896565528626802679092973925603782495632345797306862536728756925374626316185231920199547969621211178827137076065511942694415483446231843646991686684516066382988535750645511057470551687429655883392838186451490578746971386757577269317767086215745281557284012197105121416820532694893684765002933163258857264351667007353965530521251322609968760749487970306538487302586763795200951645615670901649286809900061596456508221265143090801548683399190239690560811471600294503120302016258212433747008835517515104408408351550678547357609369796706968318324668066155705975983541661406238253942657142065299875855919171118693036044115076996772595770137891231674343350402117894580663926882371770427289058804941097960693247856226656689283077955034617119146996712087251043719231899887732326744632728627548266649757311068714092512907983613244883285615848924392717169058582962236796819700888105239089020186199768541774091480755353789485209255679109024788198452879246296333543502526185512349501142266651824691335246281721918705505844698033857635625134283783924301501164364842468084097142141398107840690298731462450831104150115795150616121990795487409452499862957741236350539594795599851674661223282391004546227019550466750021554959549334769676659591640824206197772619553689911046070514828465585578908494904962463299385679230971892182646725995676495531339495305460079002519370592303394066983666620619013126998251976634088777521769978280691210940053291511938896924695861021034705323403405656874179462618520518096934530547203427250154932055838297902255083947287308866537918079673875029400318133461925797657362138400016942037218963478464954704000554366022719689845389185090569177524088505079785948464625086712557119823429490138649932771830509400658110461724501424040908441795145114834426001779311568070449960001206384769602589758240128838960881630440728854487005245602802181366105674305285475864987822883886165677608770391828819422227432425775881672085329344973989242734857276936827509609441738668802112250448578606774424477406925595346257890431122532156323318568986115887510985623162998852009363024600561703169503343274874204781482145630626551512133117489884349390405197840921787611885851784796737910543723082285975568585223484496081780085284268529768843757049899253545158291000032966978062491034470200407219676742177327953860482310531186016082112991429146396803302870912882965282298810328773104788863785456234798569465901782698785855634257036288601813806770692234081930205928863576351099666985663154676358236753862060745484176293949363411440390902393732635453927230301124489357416470970247862040827202164409276528287422677667494571194555479632072497605203641660518037565164047048284580755325950892315184631646927504984280045693953822506985386025469648411649356321636749884851218642967378743832897897829741304285156275683089582333140766508006351373937660890193156458128178982746843591847014144238888949020021031476102370667867685933224095899751790655168975614996385356978932019795965521057671652875643143032286709038487039095003206855573042330679016069205396779178784755939438083889367904419216143443453624880895179465130136132529291000450056256157819663080240574497611923957926423924322999392036717061980632843008410690981387952030779146202016194603235692738328753461749472615173145565141548664304488886293276598220123794461919600399475763146770394346538503552018031581217426317604438782469708892389371005385497343466628561961705947616118392433399649413310425438219916887870390158542988243623370629948782704916992404526173811993371170262660163226761102837552692265255184688359068157571803026472622071871873135601097116322910685076277176537827362570288860349930448286775604495000073688838847719113720451954607358016793658281266658570614543799173814075703562651642387441901996434724434469803292492127535637080958415252429101734658214320361461133178689374422712583774053112206881251415357194407889140278593388837151705205777086836758496002748274844676233311220158297741084343297921078816680228064481365926886047497811096744280449857956138122178455204882945416283076647567405583348099390574324338322444215015388897997812466082815784747748847233576046413319851041784551134041994218590628814718904998492122343742314429132298523355646260201582171447115795471244586449603635730990523598012903211029942102678428611285024420782424330174741990410986775632006225787344534420955954056519613408207355420283670290785389157524689481436952514805130784566424127472324096476026204283949049059683204237511845417303267971454649618089245983922104359735917409354558062329243003498931632012677688975439910847691545517100446459393046424980010817101977597077597755501689316698134799391016919251731544179538942016248238830067242197948279074475041483709351671392179621388072683981184535638991513733339807009992093503716843786900775195959654888861421356322239923086676454710988607661190640477807312417361108395936428008408763366796169752858170554634090549934083111654150165245428888554984483730229339051659391808742474110968935480409391078904756062771643635977257259328716296957985766796164825561991669417164853848067986227410625543755776394506005059204652042164176605665240882376875208358578160759016875155303862302484641996286953749436221347009687332292112400008650186382476593985829976770233185943590638035350220073810476720198692182098333801771490723664609338985438979347182858092345411717011920437526844158682815056847517056136718949723753296630410834368880450730575693370523265501415401228127605121325473449309706839953249267418318631384207025936615322727967192087511865114360313759581580300400092421621443839188296324168116442482361626501352806207245240759882912663500431464063542066281053410037756039023976954570742795859882805935724633683190406453462999114565278566135831392242655447170603364370061857696956059286170736090856934196824720162118245769417461290113123647704984801219524481652778482465190276116316999173886136023702634730806914460520562006204549187633977905940239851828965029633319248140773871534925764854884840525034958432963013475618540201841995625402856968729587105315366682042747460288969010086393311588624171615943248463221848445202685969129573800282828680512462698146720439009709539157477651362629459872384566025077710968851506152495051703036726132357104189931705022990779812207037635655652498823740365863439021223094121648712706426511145095232665614651442622283485663224932654710556728319252860965131474593409563033120209062514753879076861555834603699020753007834713556870672745137883237330810862790261302212686065129177830105905350079698941956689896014087486223244967093135078868288078884831194390768909115653487576913966486686714245371487862308773360982421955943843716395295807341033182602439301585015110766389174182517394561386732403531491978068792218198588052228643804575038319844356994873336377112851024548928095304860175095088685400230860343715309434136745253484524485200414558177329984931793481209340005614588971799014809863206344482628644746461360962092242755446182624088037096553128177125577259846620035310536590163279059675885959872377911986667238506803565787190585498150109727070461049235271649489577943244633089101236703246288764400281500812104121958360053177496932866970450504800607360669943661220675963840391641369121328945162832885537283418519694479289125141372128103164136845533877826140151150138060998463473531951999729960336448439115594976814639925444974115456009936512883282932835904674309229528183266972544708984570632115474827978284919107765866386201442307881932516644062731273648440994296388712096750580409409309414784052010051099431614836850515746021326333561266695221510412744561907416335619749122530070244439647263614891771951967804653158583470859998744976266583943544046632395240421057696665041192647297113241810155296070961900351798392673880654664110822541174575549698969344142762379959091945655499408009101492894361670289365173953671439528284350351515809678543490580077206491562239139777109957096981496527622425796978344253442611800241643776758131991037039401948618019219210905986023151276514434697401400242489923478132446126928298714143173479548529588971587473798887848997186059682860952153534554285210025370860809208791385805897410025114737782443548688309368349733900721476806646023361213205589498843525042860617458220557092296227315192130377266281159852444818331789154368006051574095555190244602416966781972413653638618511654308598823401485062357851847890955713701357065972295504724773041924731799557490614159278040650243206351573219581492084982482667120028041723520102351739082198167569113038831615400061613512115100385955988021539189430719624008021888765727376112839029239821414430315873550787757031512831552233214781248897550658542957283236510192873147112167350616698409976240282638329596811068309656572167332150739190496229728001911449689050401856991396522777710308386447695740638639982408821916987825747524701462849272473884848360185258367876845208274547734964829932740030044857929831040677800041353655010961692593188391302354383373903986900171658975190481904362054117195385006411126939757764291676317016073190080151124745076213767577333399140930555698842211373442954186107578158544069401529928980900850833555678177570033816531171397882873412978270690398212088160142375277085039298874607714495673236004372491383712110952548746526584118812588523070206503998018556948342185212014857095026605489013156993867418119801569049602253894429710012395968803998447240304078878943312819653827294626348692039624689204330449530993954995776141264527670781627668871891253942804891709259079373629514269542478939727837420970837753747216347912244178333529736725465172687798071386710351505122030902251818566678913679285922153945203616851032549875535780279354870821482083880613990721361579652069214204110721206197904178389933280774148609316621801486195258529881888419333117318171278247558823394444381482046114705847024625733112968656789012396389441409062247270134675728124121427705606983808610385406507775683847824111615948005535481749100655953006886707741560582660483095928094829947842919647997479124836494907973928799148668472418338710572880660929524656108320690656179740960284792546805458668669265654556817691473292013587849606768040876893975200503221592742404331803157660050633003718982924019324167023906756886945405384950651844872097322346528689865515265458347444301324326895831560978828318589405450715137457289152439600260463248953798110662812229989324808989131088147626444924666817802540688797401223906099405972328545599924640443453493775749176903623076104630734485234789844527694645856933294960575161726297055673863764504369482162329234086814664248015890417649628192914015548248316808877313861138784057640586755993940347878716668655827689515994495282888457014038206962557680857187087103742238058374766411625941482431534331374250619894248497380912221612648559448682816401035435623924993086798891082791469622364301195323357790298199546113069008497230611336756391600971324649643505301506932865897449690457557607911798551144420639898723711382889924834351283026067881292607062131676974337882025931809655459620538204319327243637942918676150107823518729924464093251345622949180779922146949775658121210912836266427586807334480756753031517024988525480750758108866845470805913453884569032463150227414962248083669814606684787840836585680905315179752609307937436476066975310938146758076736034217287064745701629407096324639047873081697495139375834328777754492120911917921980930621800236999309310563305458851389022830548415889212332772759827668472082259968618334342573559228581385089704966872998596494078104992850790764555723215435475977374446161053367404218993208426612228797201778963307706816302524396775777933615451206889452942079984887633928979545869610215350403785353362451313377903231315660386855697375030131511621383804736611130113627499999727702185073914585980308475089980226116421555287859451806698151000424861699327114012140339811074630737692317541980441703081529626817560147520207171211041179733958693349148344099501921846020033245264883061297498259941520079856085366669772300459725405263890988127828803032591728894340993807701738540533289802857526864459086519650418597996715417442760252611774489336546944732000251222807040445666968530846728048550682309340419112926677532650106058364125167503229895265244489914641086793163324440846863169775749551917851498452797207858944744156967712177266580128327452648434336896807080364626001698469159708656711185991367662423354038498813211609674984966010727782128684790919370203747749450712400153555554999617963334204982234473800338772981539541737114769313867769950187901227402657133148791165213084009440223018556525749358137544957413123643216638883383730869813048194320606165308873510298027450514076104120083094253212001225772171727077259783242823204419602264537037138949506389436650897555616553146623833403683740180667983468801193497524129919510924757906349306172803249482542880819535335592318747758025441012705544171584187319550379864387085364529166378299952107271311219035024696562076440446702383624423859418095176759138937610986159600398863473660936699090049330887372921370997319699024830008036488479770722662879279905407226268208630184644951289312107563089101041165685682966603274808590391763207654599827236233909796489543114793809782412993800317959429689185481939068465967542765799014039867645619549269946148330104614769127494631945539988348627379353258371697946827712228328784476541573685307995088226301765958631465226769275130137309460612198941957362169743985973458469369283670811402603934209462589984093838956181304024884493653746876710111662222227860787154582775857903909223805262959313986764795726407082393651832789146108129912465649051947967737377223134423208823732749567627249419744206811039258502483271820462923398359368370895166976542476124652126040521289638966278150388943776840635912336288757251099882991072266361511331345968994924592507362473761688286772412159012638907905313512686444646457238231651947137478375540997906357237805406843758854077245027266496799307064282141382471838661847216867013898516789006762331072175280158821515839123576581868374740002186154552195654817622595400680696131345666866341820093796263039975316844471632454512983037161121935669217469783895381153275362025845783120870142598881920932290503069806414914758979037063079418985132818199124495021018534610468455759186594285979297120825150521717500380474129011891402500031184823125672899908677162149655512771085740265812950735428644023078300941044192011102031068386463974449243517374746116065336857228631370399168796239928169306058239319170283948201611406497154791481709260351488431257059472809715666651793050261595685971799864297867084543062491286598966669762074329236746588487497644451489357065038693331612930034045807029310292199267197106473011620042202637943051752381691129099813216579670788572098568332349351535850267574946184796508606197516263464204522109552324638423036071553530282512581180947171207597049953300124913278928063330303367780347915124280094829145175239233803059559350729990031268488080148594707436677127966028715828610172162003883975703678380364390835777504217559505104719122172960780331975742713139365606970685337719407567683239547954886414111884520319407746570696385507961708747732970123569876096694390956393432427754643698304475248879821393587313807069836566557254971305360698895614999809357793297857729990474802285716735587593635821699698297197640936411148534384140828085750637717653077594229098433708692721617474392767592161074227483789623284862886288371761379160146041566305380509174658987135082835597678203018730753980331933275918254976978926194200260837438227964307909528908590269768131725447660662502440525625322757590819805307188617045677927799479212423711687313840352013648842657073552489236238867044391527759006016773185504293132546661437638295364939067196257334771639257856798279434710206910709666441620842414266790315307926404883257214780819574556266701988319983099731755036276988535810021588600875777763028961776004512227861065996282760545271710312128469355604647354007938674937927514939383668132999852182242128916176661492968697995293169963714988748617164934762203706277580569064221306908789784080901391114441684684777533424149869289700817993895392934621556079970409970457442897045542605977084953026512964517243350045228521881162808292791254904882841585790640505378574183433108925028536368342198638111343576094193004558965106918451489673996910208321189571769121124977502829044630913574824684591407217710688498255167707048468193251996451331975082247249966632379415170732979407664672327054929334715505910442961198460858122528768608279245789311279939705626863637666619620977998131225266242925751046133230499086079918403661932614514440896548597853510531164446939098410243123877723196765511962571717090086466985350080081387502310312523765474225093626755998630727637720181068601443495661872200417830727766246209698664011636738962900462543545759471122508547275202466746155043482105071449010687849922971557636456771434175365101511107101371419013224118820705293091072520858438332202847730374920005804115131323361261735508066189843096932599838351938494011926193859359301746382272764363478587821480325483608263928424030105435074627145544467166376032018545259712704050096258831559170489516636063615212154385660347076110151011288720205920588292581091749339047807959345058811054522782853078963493309349088497806531680519381169175046547178185435395051785703649775324356165304048912553326747908414565592601044976198159768479283137134672415545657550242859394120668221483552598396779010257981921502624348133441862218727158273754465215523560170808669711772297460300897623104298441665992957803496053172758901455040145618605787591872491873390545858815320226304815411365585281936373205436657633703355003363511308043930739316563122134789640414661807622431911158474190200952489724235671607803731209336421262052448424546600511215690670819765480810251699801307317292804969361385383590264448309218948669744208205944038852474058400106617710424742793453484489962330360583876949532331695611979169379722341219615821991009263788377673979756043482301399014697733371722616262767107794003857349546415094636763414525267393058257550489709435147784430042019239939875707433856778566549834316986501609355439891728620725573138834704980120997128123028273952895475406137769111902807182257364793990364143497457843891665424823654854389163535066587962252206458828999427246111689853394037722934792896385627026316952386489990688653670061911142300625268976096562540898553192931090329489300881685743717856929925641673147072235064311701250192207279950893307602004948197644929000987074732598304628777921354853761508172539461462796808116678728564490481744341805184589993935380978042121064834182083614442121296850413132776471549590340364658601447675619710761472848070570942957376835996662773475952489440392147819625152079560948699443229302844428382897946861759107412479527563551267744939334893129571624193848967335832354298425597917420637430820243696684325288372610121510983185401178722673407650977092396218850975868794166076413578653058640129289183260084951310125484709066733906877248574920159074210708006144256632184701935647044298041100653325402871645313254031446515504048884820586424625847233690915762826647397473525935711504344857872789549930210180340211285392475377038344047524150768855943938764398235828268637580278990384445951021792353499128094759284478521329686939106672637041807331170742379034534770656361177950182369008922710266039827188518414359017958128659895308322209800121323877237020440426169237136420709783130508163869454189317872577661964125005399280743343642661178890626895508318891908017077329702249721505815342530476888512606940991545993639872788914034229294193517088673021224724993213912871760021732198789322930767657470531222884180312801595764207897664552406653739370435031929682872380547778602403785855754282375218429546412277237658739322249562139640983366638409805082323993158243893088668318029641470458459487952871420735086838262378338058272643467776290992608396842838440642442548646809403342012669050771940353575131828221961645844401492391171821270633516180648053531384985565723459429457735282757068191126504594393998805102886637493112291669378591381538730018855543522492932227224012431440759508285113325422237780228033150413769790713223754165672279935053423704174833146753184387421887401630686624317339177012568113307055964038498256580046351883068823032337779877390660423116909927082944570433708736712151594824396642311023614568479563582814119283712744642365210796025501560387171522208597574279630916793831483125570407822891645627298506957637615393509410697256513950420402376939705685932449727034083803198370860364248799545608058995219310717715226046847330646894845420290197144307510399725254395411156259488778595919988272072432934265771140083297524950215669794122893284321554650747534442451844486265837651361648503255326168466476094728222709723023355232165186792386751508345732383332313387031141383053632237729589005127985291157426193183377062624017054106623208935794548924514872424993259297342736694689205989164649525946983472204378508764369991084759440448924608537645826349416554394833370073588824268448331200158119000382984928206688371285611182511881439525968804192660514117477100302874788016831424561673226513965525418997128351334667542869804769133158904961030093855267479469147939211737934189862128000175154790740101531674204550143787229739385225674673604524372890397390735542638242005186751274351646063436422850876345901939438869338539544404003949024122771942382813368097458263424759398799622645416734984861072666451788639906573226134910832299514779588834437006374204318714170695025597311208838182031821432723509916687073583319883300773519762211124647030647457140960786171507384685321071269079530847485600970348912061934108135397364168963196282064741507219501164825828797267636042603546737499494347039990360116054135045676083353353222487249036460630275868007118272298744901019251414457807139674368085353397192617648719666187584887712116972087913464391783128662019302279200345871135286008499868651475411433564650907129074456121197071231544908255234505241668152692190714450901151131097516538853853610711032285573847450349401787315148540249466288381474605853091744392026399235719480154562313318445334953330084761303426302669543079103255428256091445511409094550054490755365553009092678454502025269472108354123260704181982876349110009085571390470133323765101780920752811492767626073665042018554050053132186606940902591817230193130317992219339533314794523245155352516443553218458198048533288569491552641787540035258847879206335340615314897517342465147592632941518123633269909279564376260148150695720240775272192788689785800967933215826431576327338235346781565673441802149342498211251702324675018085708991713650922032979255617757655837295660104314193034301215677707539586836429709020279924734799652262410673674235705994723081209083261280730482544288585152204289316175390623792095976886281469808193280643079709740209686724927387288725296306579943661839163125064503038652528677701703652324653621731083033330151765977003022703338563276780994866763791894851270427199194068345532236568389651276453970717626823673310572973391575263811593781969099665183671619657484680182632328841102426559687522742551100014815695182274655515859718426685840389156751254340971195884269907743073520788461234935285645095728528819628706592155281608150348176084599378516166702668444225527836851700727980062659553428273069184504237183808231832569295648255677510683598504555333641835597879593766753320519146504639315333402687030901557431908043519768101790409623932483828590417049339058553255147875985530848150076804639272083098031680940458688908398767423895323025793389377859716852843365698013450749235635573987523373961662327543119353231065931732134138405163704284666068728712596356574834885506279642077489803800886302941478246790691332397052733053682665854190978415443399829364066187828547604490547706059427401220165481388231964523881256391547080693626711184467950414453007862938203449418956474863304916275790179816202009894245503056366235377482602615555758242400554150391215202383128338465386017542346573998534798896809932815037260893920419543442453223349990796054553369562771281671440283676711370856720090915894404762417624696518191246716309305237627292415762638501354461336615049949745999640171201720424352999235894344203156352048419819815952113664285566342406938595384939730657503131306011233221279388098138702743814627126018466360659086509261582755938846873174500605569044924113287630790918060749813613930150793502731810012921448773235328301967746910388523843472396852897826558792294340574300581307459226430058870416322371713974040582278961861957061482016711626404711839090668183425085521757883124536548335292201094553713863584740407990350488814660402106846125233925087521623584032263673158897995053044856528827948128285237568409893085980419744388206570940431232965586000467688774306454045275110378386248384744599847085282044261779995155068735862988736019979852506193054139652556226637624742669709665569454275876200483847513997382334675386048304221314758949167240795104707278922340910646691523082838176790016861175623224853217491271272444897732209712415399946514241337029934211472636878105149151071080950393907037355372781016444856169956177705632691147295248186508039692122406009740519915050338231035292647318492179841028158851167498689334844126025321711749061903349587661411596328553644744500114480722155857194253631149116661172820860086636388557431257238604608964824358921546996250305031868495168099575011062068347170646279453613351483426832219745097245441269558431087130347559497241994628584563611515095826277392685611130639333716621975358516227624499049348840814207064155154107456394654068624937232851485206836892498706218389419421338588195758944485515575191025102878747948044462826405817916128642544467272684887872658502098057104794850468257306263515241504728512119385989541286100852680113126374109222578804249146538480329519884835487494718539819076827207747518775306071064281209029133220970921111674082722283745918981746854716992266098863009835499090434378588115735416379437160562082770271166861628210262581857729607898237863268659126395307815306112368953092466678644433945161342111512500853348283159686269701143754565595743873232548106068817087916384402967413908663458638442286963405380351854744235962722489866084535557387991797425582419261320813188989380072150864797203682577035184530368939203121914170894959653960403180800867949124247115638547547592221812755546910636108144002072878448700541534327322535666017856412734412234203781422069650595552252977017937705302809481494123650889808254858160663306138641442687131255399584026478637768053658516684158574661635244013475389506705088215526264060689234467512646531306553784052897418232063310196995733501863726789255331757735275887042654575025888415822607123104669851893528460741822679384874194505095484242984915925076854326296477470795521448491398061656135232840143270663331851095180023112980278537831099906157362600260424038661186421098209842667925316368663584142366655931907971409679289874982701183223588026881341233037763983751797087763486567817596005725723153765008314015185639781744834453321513187510759212256153463260011948292020316446736191397593211416206761095333941448072428075441418610423068572185268002896624026491909565550715956405825886546552835719446045772854498452935806840843953713644046899914034769726424975091369986586174427267358828302410898708133592449287262796541205057200093037725700773870597914822153981485548802403785837539144385049266790617138187240996732819524735243329341187479748708635088051683633890839072449252157586901127422217463517355125222222929199350958741755022456536178162276986414167628141684519714894728277683004332848180099698400564238466315621210200187804190512014591316013845868407196861514238976690605106732391920515703058197346653266863796300507853406317752673703730760685003379912106923114394379132777299629912960273467581532553765780205902255504874108562874123623139674633678808368877210602866421154769762108791181849892775319173114419306005139238848837336531258323429425269330216821520514173381452929524973010830117316463417439400065821548579465643665641109728630249009621350559454006268338139138934279231295822810021157964303959220201062939053406762136268450123708475630352446804585552371980451661422575680849303092226206324855127033646740085326085896446250980550914076163989388910831817265176720888644636278108177028777220880444710384827591087753205537406938609323845538060297634748227658828560885338020385100015240647563156188963483338523100859540422227580337866670021835930494903912147363650915653540498692699894214592375316082908918227418958926711939548042610120427698937914184289618678784451526107545538249247274679732227200164824165170525487933562892137599254006515265056782700237913262649299655177688734626000155792059527355563046789338358356152402830210469440618033221619290076159312446112836618268881927096603475339330601454878238696618288581082481977598154437159129973737348603739479498826860373536385048694660823888270451720167420967689016437083806721954759894001599391966164476858091306480642229409960599980611874780016618136855916788818896408154796390376079199208064057860628278963213902936537135444653299047403275004204365239818568743737219012331365638408797630223074341980066103352741706733057894376536270953443266063693982252090535691876905990118464275481117567907551978862706637971890230605220212744079185767890911153988736223357840310253188099404160273594913507417386486859365839636884858434229358429659224645689555671631261000806514780080085007243748916963609698116649136837898772754035715863564953029068385498782389517402495860347673814386051129254354364591838844044751820774068136833431799508994341435938050831924033374743150373176849992340920407846840783816714291423031835531879596331174819332479632709228842660234301098581830922109281290774119133549804250430378819859314066784028619619085687795089357552762962233680139909511791003476049649698636178461367260290448660078543469879284244316251502996706489842479104897726708600162099706474573600831087254294599726996330552444190050377295489935409968792199961732898001860423330236122995830814147092970639373630092980391083215651315161426651819279224312387020446117273666783767850653464830365608558415428065224172354291603407963404234717335840180456704760109765710089815408746160511085203061495199006818225308733537775944947014545855856995465023373378604471016610328994991771095437119408432179911969024002518739161865414177519574078796837652620788211241187351199813738270555005804236584647632928611817819988131233648139658468608120378079875764535739629070146882836945087011255252127325062443699822879597361485131349854364337578808653054213879647031777451647793028892909767771441122327200455701468972400374410144487654342532219071628635011070586527159286580136356692128228002481724035502101035660487480196490904355846048778722831716587086713912904872689816855292422007912708875697659878669816557686305410399290288443297239044742363157254524403854111257281581069139606747249724639309216275606777694165163587767738747658787346634838387262142660679532349157265625127867210496347568900107617679259853118348654722635850504845438807249848429686219101504262353409423104974860307743557768555275911687764968957033759591476519274791403139384245209773224614909461669323489971923446605037024134424371465633827954385858147298652081283413970035713724046397071207466325721324747296177365661098545884728768540044997429412945013825871698724447540436323347444352914702520984670840983393954077575394232442057056009551248091342789710535372924870423269316524836715017262505113073221665248454209801357051407066331144015659164232340621727618577314419227372921760177576124835213074475273168246106875633669086872358025034844619498741757241790239978259990483975152380051678534414604135400177585690276811305587121621946620563481018140593634453314717821910457601319875715259698098067000194141402335439489579915383482673172779644883423777891074138730271188918166006068381443168549364560387879155731773660548169569327023523417633388409418586104983101007842567015066462200517073404724588801722050873755339898446260171069294540306231690704541166167167569352052001991523480471054818710027007900389015547519922678411329200008246567836120505274119459142059373755868432403165102368096268737242268774839780276350199252378973534611963849931949084825545375976647445242454447914926925745868416823190437114885839273901976785198322679951826618949793242194694312773402178364055265743538397526459148586296972288181020683126328051327671722076040161758277264447847791938324682211778774692535278303525111577803788304410670040666953120543927477363642122071075066807025136956129929241919826747930096983752621771403852691982512713536967179529419597423158896829543115886559868331661276277646363574368438257156763153130541398138805517118661767674575827317762747671134713512513478521860116861021160535411026027464109839078601602503541085046405187739803678268443688314067997673214089218068050709598143838036976412077416957639516187067942226369044898753942030870653749271730974221179137939989200428886380438363367472652002986210029278351428372055018258124941920540711859909268720755108911148558076175689773394165102534934051933489214445231298227591162721697749969643199046520788932764091125156879477205088894565796650919507574201367736658647507332863241694790817029199315515178520974682766650336995719622266846357729314273135518911105761681098138204750887813453846473138509938712791153803777750935906828068380751694317344122207735077793075219270863039823982557449286408601038510366227801159113479784961210849117475143606319943755800469825769185407091838880106075366403031221350763831552724574747789610205603419339844774176473593318862801001283331599382797572349524204007192438587223441495613180233422223022297287713366950941372767027497365241920617506879680889598778771841058817999171735192303936666487442904209120510383454674904667362816745258191869695733110806489243180560059184278149628499175176854261650073148271884614695379361707880246998951874096675304573723802743517001005830057145002452727640001320941796532794411306031622210455695390497706103909629700530321711967172953659537854803931684589693982825748694646029888624150686152243290075398708150026937960647128276670306396655133995587742466284417310981015877573750888674197052520097805387435010104699346313674645453380916698290137225770914396952615184142700504762822896349500082662808824198443379516598141866231053915240851304027689901541987745306274131992047939838428239819258453743080885589650045475120225355546062218791939399469708689697830718765482178775523099915411955559702146777126182522993167351578875264686422974035380954519399775062038871914334776906324814361731531457349594043802676944447048456454176692255113553328493029023914082467059611025017546060620890238529526326462777683437849441977854104460891330236953913158782815867471513592109050953058652835440793055204846037108549457634899427892463855649561613284344144354337842604570571191151208662171740080631664808691093292550617272836949143810795959802469122579630007772506658874356497872211980699439771555011670479219485333362392077031070782376190708646968771812759041124900169749531129773704226099349220309995648758280545673997208343512474198406623703639707405726993776994157861234362125297576047432096541204016080620814841857937531468261647719201522114335221769896166980058796093557857129440984833156124255912368725399034743320783128541303886322709769762975570453673918418024851007523553635435420922715346763278893072249606109155595868489482774194656850314100782959506635244186105420754152967478486492282344733133624782941046963268617085035597297785595763161076154627175595449063561316109167916753709007852157563437992717064362714542463519925297742055285917945909385571044858245937273237415476764391022094553798266406663396354192954437770774352181888285249141158035814433663553811215117745876568035607802647187260310076715856323685539445704341277047739806986409803007413167870535011323228969788552134817320724070118053129038413024439154985864601891591634105992238785785362082638059808403945910801053578186251720593573891720828419081223642785113485590782918982520787036270757178909258294674069497569739154951743666341482635076367403206430392778566176396887562474571388721237154850504731154566347381848209800842495967511603936088998753039612627310676263553274621508271158291777860412631133333133335553922650080739673471784080880574500864898433626862759182924667278138367012478802919279120673449609955707801541272476100441691494425879408098591321212771240725161379702978670816566287076100687752621820687010866661487235716515004365792274627709698226179023723649263190989221436245195392678003782876628905251071380206410037466835016164702095934955390892198764532032515947594794236936514785311566058765343414261511807819095474900082997494383602848208123234731938381339917135816611836281668029850020110782597122575976966278930001729840497134479724763976042937915902446908760327388535443803663463217387390655375606077745053137831853227336903135567223352490105029005020417190686476084578791832073776538541156238670512328914622177945352381251389839187528794725783412140452132908142080762852357077348540700279556885750625342948279834103031481203044966493637856438976556361471918909395031533131044252462913090649884628721920554496919678447711644994513982792100217430068411807331521718910714491142414191783429259968995816448321031775300201587310446096037778098836558989411607730620005385443653247843721146941789576390685312158354529912758537054440758602635266431650169462123335134182487891685633610915412989082232253497505378285418432630515409425427790984703976963624622151034386394339319967205302596227777176584945408909939594955937138981054709303298131706466875450637193809955108358145705257688741899962009417812529969394521909976724644597890049128910372614568330850467004400453256690180295309422865690399066849648617565410011573381994244995339770604203763991983326883766017035690808060509794542915990362078528857729641761503124149593233440028430532676311640365047064161341641625867145555114030698510290289419398758519319495998984793972792190781459839894714881404813433258412315338074286517385544455511715098464693293167439805738049771424882632560399086752168144479168600508283012265760610716466973443937817095210770991941997294618121730636966013782169715871287965209873169112244836828016881574187459671538742494086343858193007169751083086113702626101679227063743067739929260795396474837012339085273610101626451644375815967224703645065684517557820953417644707709398042761884536837547383825520078373431840349258246181050597916163977735040998244167815203154317007272735383165569168147082740343615607449769528926884915644340166285298207804254301646290352657764975727963038076050718905685039718105238212241303119365872179982434574490677713989616823462654688422985713664007851966450922310409214858877907722185421462291008718594193183894069316380466163560475931094757043512584192123107009812844873537800056250985942671220737197165925292827303143090821335286095818019643750824511419867798015699711644186066438538062274558485478803384610136570339361185596094111676211077181282601932851823535915536857555275283076348086169894324389798467394744207061983490962092364789022229293723829769947197256781295970543468286470348404495481868134377871957943015080402452341965334148618161442603035719737156423997040309233256730538028679484659290699840339483791304075535038144713165724129426867559088979764679347462253734391547784831860989110555335306094804241477545132910155475975139077700518349513979215101519015890338413274764385141896341916664586845975549570477767503452608653358923064586390464546368399269034238631601934115190130646582203085347747639277715273820832681309188753457812161135336181996075447306290786646028950341872986093336264624809251155549448726686750143454815190131372055237697133389987302304152053210855929070860640806139432611422180567788182667439513119829035011332066717245384368309133408686812734270030353266579216566558152184049110494251710405430343020678051123728040781744425506702287096216354072705592975801961076890193142991853822304739283603305592975386239540476375871504717716167066517515207508059628605176690281947788509270662562678628249422587099216995926594735978460344767551487777116347837990005826127265013431585620032691036042734589627253718775315438382814786589116347988038121147256555568481430509325297208515432965335842437396247618144481888930830765609708411396540928439315141422636935260298721370355079774735693088896037103813681598568375021042100873164800846683126779371213869128356008382256248602724382606236626843207892294525754605889690273396545391170875409365412102985421094240184575667020700717432256238543690199560313985302839986413187133442121319540659601374375514464812715452685687266150661069776255265874603819729725688666275370524273724612147673739838198975115503866600351923296571557197102169856182477279563095219164072954337032024268682839980003683134866866315930144418847166342665167750816461072939356979844492815503184664173347914403116744080406941359193884930073163901826339184043786956683749022637620002964497415718997531974547197688508124298400137209450302160077703691658810992276634712171815675274105736914601689542450583486124094675069106344715699477265685404290899320269065510020261945531768534364907593049194256464520943373738194515129619979335774895649557524083845979658578768662485599488114256900976027529923357650015585823519516992795092082593316041373471793196664576062915481628451643239593471021093762906296450310492610773936460286275574039049524610779002743295419269292086319792193478481250344239741102364205557538067129372478963497717611796260821082858951696009863233215413257711436989514121997743095493496873557339793892773311736611558226577937489717924166990545637774624693734732724876796191191344209584624968168457116868263660442775357935328291769641709517320497902662592721808792705045132760138381147385980192977930444834493369508190541403552335418679077293205898494465149360387425163830997535524529411976104299440259723665586624388010644964428401917582880505729542138596550602661793642498112672685854971744105730347698063008447928224057632650407067812378894202494814584246512259450025547366252501197844862757310770465137805261069907774108001951275605509021753003904683317938754392151690388605256863270973468488893116174500623729532599069866085224257386320376962930726283962623493253342584929800223315414249541114726713501128927065697538168009127898400368549790478163287802518683264865686163284090111524319416262196302930676451309280318002959468114441086266231622206220074688686642088803022126058259140801965500709567326447266069045943493891775601949965777758482883374541764016782794016421148644804863031138932913026852447445235034547718907915347287025190290153678712994778976176338918751395927618190460798820062489191441728013185296060709377215470996946190065214528420407529467970326229856339351828151809719594033923630004944972175999465977370375778993281868070872185613809000887171913827681674244726533279473892405815230775754885342404430718787793282082335676597646366874701077531556226748772578901346614318639706844080962025521615867706506249581937004841513255555873282384532359408648709458403343576281985079496810100718554817935753650117574038245197150294092205511703822504249648026745722206997915344618050281579053864000656725494997335343658346586006153666521713732096991274474609026568319847777468095554558221460025786979105028170619401955308405702772804883317221461455686505548969514494607268973087113944320662253702089826598618102762722055139273025749655547040014215145030732682655432650570849358673124074670704068953432933675810575882957034385215131014771262813461263159542004593696020048044567181662769562218248009980544286850573374128783578906040383078117964397166162727924766774201623136101941045379922262400830527323705590837715582846350516935645964726423143851844429601634496590157201284184189908120841014022803579606691590619546634306379000514851137514829186456333793450321949779747187113155311466218897061557209297816241588770754464274130002367211242025166594706648290310444827865331192918018860611276439389525706811788183891382587350866271258850382414835042480508936793248859416190802157562344176538671532958563634605071417726114182426469109601245376683658168235580710954742471589926849836989008549646426177934365047321113343245288165324407287470571780589551242465419748724202628485499904414133736799859438951512380701351836194523006534651443272677469923796096231102840346089802626326513940045816340332731312560559529902271532481998896744337135020509145549400651660983019708772984972295830145603417709064641485759716436806127012733684802961611123488098182556939113699043309535881190158353494914064142468124110665912409941840410514467798609503758831620475094698230535158559420894089207513230089226670222048344034779296557117973576979579595007498034106032014419150366327847590843998691583035591231317645803679033680674432902010358523106372198188831584738619835164875372673362686274568580269032929001336581644043391610624155550227613838692174164631972178332807255065926022552693919862314812901864343143809047872759650511467199617538272666921694581649069595686807242091689752608296370753621181081658314034304965398890226772251856958076818724936836003448675844289414294314509948067990527591711936280677738810789533077905954105351208243980769428158674797929036207786836308034595566445476709707071666088314363081769563086833387620103635796082866716270494651519445688779506720205393513085619357184476182213636629750635421875526220321765685872297531276335756252974113471893605511616860581332008844796797526274114877256151548791556296942033751178599234057217650115307369050198682715442322439516930722586982266883704841680711203314266443199326486993405728464181198038007675509777351619499218396104837070705602633245180815099317380299730223185181628121532991483653876258954406616556852571472610680492433564406771915527462130139229319902897858760899268751158939324423972286693081588097155592476601760004661708467633391193175977327175170908728816993087326801817148351588745376118690820466694148420400029274288227812238701580271542465024889794240931364655339344517047479242395781253592648612734297356142159351231855662873606610413306898178766661169158079407363086703421970527731892028021665909868223905357549538368607846693385995392267275638246922136660316717814722713141594296214484392835797185700323368896448751426932416106324643805690424616908737984988471002727702892196371681748571950825691830798416889116735014263191051576949322743235949584884221394660757021649943112955671402295756048365058750549088816838798815541091280703805054929437032201554225923945989464711590728643071631716546134285035489920343095627499039601824886515758909177329404827276803508574185666749640358265167788795256147003883976759029546489669326865034591492185656233821979687827371744811683512758015994154648213769769766684027102237079519844279856462212399350582057513255455410592235562071905821256332444344583083809944795195122920957935491328140944625978644419656055792867194308729409616611299277431775271461182808564539265016754996893778276528655687268487980656759802028926444739394342118353638815315883973865795859224767533991438674528069173085338225832634172194822868480618600583052189160694996040778126247339708425255690324661977551670875308710002035197872168430296052510828310479444362544207672809789740746540016330675846842893951660583605680548600542060346395862828386589451993716377671989692365872650933136341932122423598286339700261666806941581104919898230040662293464786927143296603481147657116055953738831364178482864776870153692402115025352202384509931291225521477380488892272368118841767683682675782812604084445674515269214146542290759224965356485057577099999110735463604294246665239609741944879779147911344715295278523698204057990796423170856777013685585146037373788491081694257776522969727952326050433377657246524575010774666298186961341724874488492139025265664143093426438773125666436638762894399737166605643838635008564282742939644966078747486891614134808595508342786966638987394858034719101123372548923896383391510466043656857183805453759117560057563622534303862855585595360828004902709726045724711938479372102578756405114099278677066287682830089455970777737439280530244897973080297487871277827611474346800706713493308127945880565454411981738596698448899692403581255960986116972985840308721093112623586396016579429572072004903275746932572656239885214923229599041359139288010999310971455230783901667284884362438771333539810796821934115629043822300696768457010691227915288202492764425660484660086042217212005114388386090514325116324014916845924386657023480406792221277522188114486053414079905325468702335054192803857177894824757255051322642712653784065906599268762137432199429577685963605908893025816515624809654022490831915866286184461707417479071788992772702224678455718086441036915937522846721761460267219129203304777492207029660019074869954112655416704245363709052135414572033012798611331243788699214915416733080935383543505986836024142265726656183321821179691660613353586117191393949917004865122845644949550904777040738460408643294988014718853772537181680549009139638548383836506966555455485849973110988233642225781033471943994518043136821224096803359039599856088458202610961443906883851646619807645994037431544563161487984902089569726983815580866704705323179240330432621711097623487563111226600454728744058647888289529365380267603082302549867656884456554511598524347282824173351224178334867476440501615086237979438618879167832409372418166135359834073689924448237362657389080969054842504088425398601874247807347255468189548345206805056150758819457971321707727902770792392584937175246988291865955539435690928377801722219408981052655747288838000560228109552498309198123074455552654393091762151689352928728497579625669027489275565665811010019894449862401326476685869279775045636976209783855225724809908655347676669431828932179453767065399173144024681642490865251862707797206108863370617532929343302649405226940885286501156403796463584120964227536101039040774980709779607435767346439525203933748708276930221030643174477610305497748978373259673050864426147798860094301892066185965511924871233909710840652386839140279065949648144777775472254049030851593204752618985125254302181966651284115494810063787839825399741329308146738015827479505488882587537774414070464389235278716741939368112412293036926372166665263625720550731177007440118227458191225127153634474560655893951770411097429549311522215992460807167228857307814914382566906460081601690893775181698299973939832603977870150676408589422418359189305509807257591722159625746841424836920137535097777299488184160531315893542494603661975056449833178189393385379473327400950904111326205669609647004996944423652881278533484812183869411060160563766019096203277267127129957871548827057403525692114254071359983786079114179676290061019241885861206556143618268385757753011373673866964304076737540701116925032070307951489025990454096201234164583506860170066709021494390758229390515725583417836491918181267548116388284618277319952868725700761627413122912112451466762107435591694432289209265512872943991549424740512845969009700076266518727575459607363056386977809500800916375689876720269425963971776980526071192594837672325187837464594758840269520768834595527850494923302030445928547476266916139125934683918522552300510566628338461822501896385941790898859634316364958541183657391716017752439767397816657018655159511556396170321980047165088532006275322551627196566964389430527937083078513273256790860648010655195730570827946229520928201134435238650640204167818065715852668518693638435335911597259062546799105761773309610671364396752043896512983670853083425288858529423756336598093686047927234636309027768416511867651861207037305306798609028200946079562180209806982533657440034883886807027183743454669684314248708606274897370067710486550497380426653732982965532948661836625412963224887396229659152826793647065734599438083258200085418375259326360076069934187537773688378517243828360038309399077192834647351507636054096854039726847491989800731461060280685667073079022638188977300306774457313205249320371976596197916924564816543378720552379688889895494832799423732954461333932229959356973518036590176107753558080097451520257947398345459098878139231571053628921872238626247168420723016148466060065648462280742078179447370453820978467458176405035113568728771628595369048000689051704747519072037186978079351022279941825926787939106962054247820491711424404589664729852069381947428682030045238323277353808266896787792054723002540864947572206479457552981520510422323053305076716999648413480290676910363931007931014198709214842644985931932420975649885034988423079185885779975113088349083836120102186851460416158826026511951450274776092969437139410048505647813642294231546926543174207939112082655320387776881265570664758565746311515304005978308321975565304686744502599940414683249154823598780180721822445827026003624046481403089849888878869960393311959800599328740606067642998971406553579609795192500465221070474441804393142716977992704507451065464850872205961165439506706621512947944185702516528056450328220815823151032171115458294541398652484498444636358241162165584293566046904431499561671146860608568911158035687956604601848362219248866420169571422849270062323166817673303504511255416004602608828687640202223577861846243122355383442419462166418564337179072526731461765388928024615328412600945197050190831980298963198726108099899183949453984593866623047515161381571525910400573016564855433971997861159304476111171273307355398249198732070284879212977657324681293295835356825819975672890455520281390531338293136176644148278994029846767529737898673895009227230061635635871672252225910757874395104891210738485664574811754607442113795751804158651292083896196036004100720790615977307835099370433179529724812594490086782237185295527808329530681480840587957827466212728846013294278992597551026249917397537786872223110807929736054267430739880428394803709381309818358137025290398395431896747610756887991725745035980201341366570809472310896129542386992061543800265646481778829272620965772708563371006189132202951867559345196104359015935846076163364056892465642776713744327497656142685911971530296668712112388752143209882576614169817225544831762196893452698164974462639850795070689359691478904303584677447212873945620020739489928324708882637929623528711271566638373122796365226686611916447015583724118460737680868040747841471229961031924897836286037089982905045198832333521403699827310717792010493985027285273749160691353997560624092535428121544032750064804859153793665288038538909542270647400513141761963866997915146343089233103997447704739454748466934137259645720517891043227671332029940370787482952405847044474683574626030188869568836398666581706318973413588605312398454386861385712467167464702845884496651227003539165811985666192002230142984663463043607593425989012117871035082783824468433530233757362977644821741693300229211919513243499027537364103430770498164551305473381971501813778836115214295656635952096276317809637859977320134974628359970752024521273829640550338912159404944668108237641225846215025058065520271944829048201994109193678977733940410107920814477198240773073863825613525345361370675185544055329410127012766735041522721329686774495531161634387644245368757621284170525031335093227982247623708108896750150193232288094054795124182780975619102960272343439239686922035354584951125115028329820130548146609374782326078292426994171621040657104151340954017976071282255886267499681106201817393432969377217898904722326839704643602257680314897848235048397474618435855804099447362369488329725217977616179560264321623221101499309553462650438450406132030608361650677384895037308872071371418413358038686285568507209090424589371208223931980545717310936244081913583696638383031776041959087427405528870096214573336667761486218808695828905785038817818961959446682527560397093920252822675527760018737769788105014072787007078196286336299230819082781302174799108226288940090800706083762755015458043899046789956253352190192074140410407132551278771385988603615115786229223641307515247446432244605683575209727726472597707004423150729777189662833716472763293585167139352031647414841677824698899643666443471143573403229875686835516948733227124470950823792853720159263486622562416263595219921238696696180624938931909375121662233213124342646553500651638324883503017425823705242517986570310484076159455015745163406892147211840487888702537478756837210199607364957310053523892465917001280611299928499054690719778340774696088669011357322820109911526067403596421622789416721550517465546220400796165799501269512707055304726784617787872225231694197940727197189972551883534425036859860529685605129663299337857238675011410201972894084626428935905762625148731697169502844802965200137329981871673794444025976225463952151247467321207463322657243138209535496793329945447778264616178686531637592409613004221119093883572954816055390055227604881495697763700078008280768329009856023771689876495689951274711841014388610015178264430807606240110551112945241597805739788897197998104839449874659260918064855716722725057267743479379429913227530731545538859658440478251660341998051489741138900118903165601466511155996893795201420549266840657852365136793793364678511872554599203946071058200290115744584189810715356971980606641189764514306960351849333186654370344482195530445071760170964075487790235840335386992127548223448598511301484305118569699423341324300495134289251084721250832650265637372224002862778119895981426581128337845648734917402518819558124875601627383958602611699887993519911093655799782076566107708233352176507082196120705056541093288446420022046574624334700273821353244418923071602345258509138287812342581363576663999929095749521670789783711896533054702464645797543771350907622381573629720971049345238140229328246252926909960650271997329069541272592655248002369008813080319784082931234708966699823723017883533169552820055146413590736040682818403950063532577966354245485986166642033067738523623797921421428384252725010208715641776298375046029733475940179520744126045017942266276572232785139536109948413677604141268088809289677859764320736332385834642781127553444457370566876381113880683667494969570543918338501625520818435344039392067334277420203259550421194230986427467421578438490420882390375739161573949825762195546185801053941715613347550355462425914816521812422713117119337049122338373264169006676637465759166090053109422225303407037899064596001720824104633284776493598752253157317336021893360880122326489177567219467840005307024655641304821703852519795089218562649802980418082271431242686299244898548024153105940502270313593216997568873832529103004351826665304366879187673884725676910218062410419705249520180010311794926455385844619093802334612366779022056763579858027947819802375803312714185943581175317654055151456610841843737349773468717728739407782804440362645484023249495010716986620750986437992982604909471031218163243570499174507578990209119321820561099966357039271141231156210851013814889461629709422943348029633674775430718561503508477182810897493400752456788166738194588681041991874191759251499868651238835715473850611417349310174739943588504567808426315608299651574601302982356439244536810549227428430605055267973146446579656280527106278045737042794395214086130666727046660315933446954443762168400896196947861665920697013633424251600184844023024802850381467536754106110413156152171819402369435057948993963413267184104874844436356619706347567633259466980840184780507775702369803527916108840210992540947517927443722717128143523788013648787973625345432415523255857149777842263890189415655867340560561554354738475282766149149135932049314956016113046450526612488269941234831866908960839145091328870761329875955456684799523082356790331125994319856158542211074336138850876466910589364563361526996498084842527479350514461095470228944988653682466636494536004061300905759145045681059433726729247148683834918171248854638616844163341803061399470523036765878060075844406416900236559571098043553479576172532054111347148053344999320073607913665885847881366103468198539850626969952973329306412610871854951846312520823819235632408690441860065001805669493984926756787470163090158243397857089404872335133204777223495902944237388912449146013918920259443475076284794332870305261794424732678045909654250460149683506825825918761147784797808819808044440414825637660526337360262540698759403789891423585265299436706756413926031430191794880295451561970231614348043577702620289681787985658927184471230618161804884838203952736724251279619117486891894747346699177628269570118886094751445275087974460583117110849160925980921290959418790944673831057364334155293861570224058887378125286019423458148447690151295722200134416589213840832464630381871104853909611596079510342064025623687715764789732783743132822114900183542376102686064396718428492573579316196026314183922389205173698465686741123067911154944306816392774584081405339626766047722675531186601129485268840271556210215801951490609029403444793104513040450816395587219221459071763454758598196617671986117924153687854665840429900548131153597448626964736710622556325209525210667047223104066393084316164328093800682226584999857977245845118202966088664022459754888488158466495191813800546458183768478051153415285236705908617593437650539978423797195349092886965468255239073431838379981532629249832101989786204099003824673340328184068112706249995369931745179268328354548142645938150755864297833016180094553932712971060742182977009365275617052523738741608391502607563525244370038252076571255881886051970784566202184152836991541072317405102339348446804745056627932256421527489820751520680792854625769100253297800445168696904584607152369522217989699375765970108135300327341041987164456843415615005390051243183860484467117268561965386542738966896718106983031971155001163922032315168134990786345471189982076754333309147764925143689059704022310479216666901704499221077557828270220893940757894692216370704926791850946655253586467203294081223916935808241803665624474314840769202590118131276259875182176270620425541998115233068781292045909860664878534885168108690800900398150880811025946873966997069718269023266939701247108720738564687271288324734433000097114350329285644187173998056504194015906081939560541997978260833348350388185079419412055386045634035885905203843654243236256207833795218324094300888733003321441236587930502531262650162155296277574307396537243285910261874928463340249687595727254052962030435573497537991971025179080459464082451027286408912940065502252982893985782539335022011270916637793605014042561660812305069473487962007911616018867237025267409756391219347605720745888206462813492304591197853957130256403275166487029012149908611033137664227902668194387273589924864275874557523630561519126042956806214630665345078713212055157898700471814055649688409978308842847116278723321140799494328925615833068919397725055883808238175613365756490073626663777803181223152565610699349720095487481473639638515360710892836024748339908596031908789048648415512746282955413731100968907752710238865277821583313100360748029170460259307385289885544047159654836288179184568543166756220337500478681121680016600569022090908165074099478438256556769006873792415677063494768190246336859687280468431043787073440490624244024933465319476487413225648261426529318847420332433288515849195359524975124191071238500299699510773159992328511139445870525094629904932725910502668386488304933560528850598614254613994182051972341010096215785606819471491444378077895844779036099515203760487428604356579926802041646403121495070758111869553772981447331361518824313952224916286161610745650117515755409218422461420552330835857917700303837338257506299751161736641102970564248604621315387987721481566405212951429674637741976317168316933727543580940452147729768930276225779143900963682181617632252763697318871596357834668320400605943444822815117981209529123864470119070499156404607973952450451489356329597659305054443524326164353616924913303857307295248300233300981516399611097927103877299311931503786657600599523866620723476156779402307802881854033648745715959205769605229139515788226635354491477397343483546010353748427952593642168655152335924525215235837378128780808610543924615156816690242270698584595800280732725711819119180097525197374675825486706835788777536897122272896248208554254724777172543176021061040407477418894041013069222389642356217651056116114203033792502055139565769560002722687061026668694245717400745329720206707671654552535057826109087975145604323137594385236408201498461301758711878788413015285676779843597574811997159607113413554720660509660409015580614932184873455412090046045384020530127664678491976138409523378090657729230338586215777579302453571168252357318073836300569324924094071349623224753233892892229139805597005180263397340200793345746185927000613041895228171768579055246784830538187122121203697898062047983270857786573605276273437414866538120749781049779181656828739508027306331750361928154413621417576821932146891947797242768458470274435039129084305917171343386156396444984726615011248534123517119447191426581326797163981129900280070491345552544130127932657575041807820549040089392048827084426556895927419680208091387325893510424259811473129272402483744775305281257412336215280980182801139016678478118305537493320700706788003029199198892578587597420443982807205550033780089959466770362678187631904545006795601588728062686465341401106512561038700390246902697464485909294137788955421635840260590707060794309318262734408640249256674997336823213857828552983733398339282237110690661920012893264006004572116699224694051914208599167536576598189912850971832855267840620667734158240177767118055745528291304608438399048644100790093575858573801648688212867805501181699399482358172413865193032578635437527629841204774240568584882523713047850507397757270903573861386477071613500379173290454819388960348393667216282773824927153382356679834100683679100568740974823803990297743271470557017140512896452049404069013656502691992692611671376488399539192376818969918907798032042422995123619506778945052729586419326392350684495896944552537679060554688373199973518288875962744788769654194176918974623603704409112933936101233078684023554806409928615947406332892480727455204280738187201091624284336190952997474834309426028108870384442114318158772728265788521977994717237729493677381395009774428261848788730401461997811816201364251459682601765888448789169302729819056119151370973508329525201494322343924408581394198517951840631478062893307289103331219050278610597218520996972235342681151654091125433862656236134946815011286940655764015786160221649055262605804667903613322837126494265743063746817642390641915973915903198203677455911469340374610054856246178464150756400777176085840455802540197820053975780355891746349325090540322778010035113767632609556997948572020602040808207671979473100964888527157412965549817947544045662328877855444615646311812582051293612562421303985953524063995006254450980687675920563660786429544365485976695866634122685540679189671459576928141291816138710682535336960800741796406487137472954233705829626060818409573169878299776605060575615193212758793824530613550250548482739494732991225849801468058842527487319100395809419101953315378794720940342120658332340931896377375972027892765222098933794535114288772959973988020954703959122276397148252089239061231664291486621262624497937828702599759550416650447051345337495862786134633378837201751974099343015774287149375793265226337339387387482873949910766702310694102839392612109412393734222517457548008550107538874019273299212482144824390379528976376042648054632532546644321494208774749918267790120380799517450833292314475112559970969888437870557681855263454783941294413968256055216535851980097377842872001383240297747174843107305582433227951687583685511890206789973652285787054522362410706882868771659315104282717349255980087421073862973915276335632334545527099538185157869886524558303117610241944181894462132697232488427242542642458075428746170546786649074560749930396845089920198317324263824943589808095295398951018292145425896315865242928862020661280168833619608961006534750649996602544037210535343157011575333240960627401885822123572559867802013848075472244552088369686405803680821825906646023575002610324646228817256746889411693179091279461364609858781701838297325070822596952931583403283980833689425222994554921173089928074058698889016716191215645095095682237560351362321183038547209039966719255922562411802717869696409966045543232605097925563413177683509108063263777223390544907263900342069300250488784136429481245795125657671736204704781021238776361354209326976992446662758942459809907284619593980405609696279545615167123280875882458997602583225330680486190613185906609928326154827919749209511339895378675251743509708859374819576990647764746220989987995518149528903013692487888780238434341847314304551993910950156962980895527967370343075723656836772124315620613656497663729561004314237450937932145059741456238652537149575561254279473024669215012383207320216851632969646073738129889924937072785349072976227193310662629142650312480808623652626579749083277361502865834342614341876573671559111166650813217362657347016200248127992191908528009332072518320411124313609841921703006168657864015052505824529101746030221150949952399224089142448762587990576546113621400665026421792870751370620060600943201782822883185576824416818193354550358240134922077844008845898119098827358333326353752409423891988486397271965977778208715483727571201917186978423234424981462701639945028077524538422131435862790347796884057243537990665191401292581857174726156387283261144330094901965923644736540040256638663470791365304941730630198898508073693900981919899701107804072341481504784492119487787702420555598793735469362285537738891323607128998274038571198644371125203041477335668204122318997337183310812017101512839611750884638332638619080454074710545766448836927174780915304707114690402611721376870138589955364643346552685541887958789342212192201932644096393985789404962576089291452226902190747811986164405152746552910405611856681022828192777770900044226748866178423008238439611401604299594362403073832614590841927178767557404162151451477743487957480477823345719501421112694925674863202143035702104560140061281108526534257200698186763531102652534433114508545197372463153485260079445677384368957904856948015181269543710094913738283864460504402899293002554367413628817226598231238375802634491114399182972543466991605803913172018264857519919168173201823454782512467699117096423653960363029233618232723037489942737108367341060068222786460128964320443409724819334769564584356707247168874705288467304905973058893779007557510504140353196899557860522625836859025630605503830226471630837890100191220740235492282870907869776272694526654700509161905874677429687470085529743292047916679335971182385275979056437072630692771088822448314330134511326339966301984017590317499341059636905303031593839400619887870605130530007361859955107582691521773705015768442553732388691264115999162652345921020485324976824879763158429959393416056661230323517244493697322364203524563589813273619196708431449376335377628144422633980918310940104367883892080843392439493257661464757669844959447670760251310855333900197128821467523622996170333296567025892288133397781229698877321519160592744563525830401768627197014211350443300232731158959213205705983171508768228361479046625598267908712398127268579441023876821511475817863011147572740360140146406506017907432241131213624705915759834696548022039279469565123146725750973029330860338430987756831332928146735457536768116436526976746730868625307075701893929526175797231915821496021440786563215969761211330476788070311506379378495024301787656076857183874664923687876139907422144142105218883944665824445875665921547178914814510682237626602329438697236664565476225542978242450326673138110276591898940451601050174368442093881310509599621837330177974021571010818436766768816475462914571280472365949916567809468162206279136834068051888962525911790617948973466633716928056644214804345417428574596974489675795919462714147138886145132301519801017569218398998713365511092883008651393335495408575834038076907750354638375344265664303693485434443826346663791765275373194995388295433128950199245876392555823131013022067730144295522985334505253210375282994417394475157351570604451352975509693299614725636026852036251712291328176232550772547444023899671665350998052104247293910510270490737061537476978628081233029848739701097675405151575180173857945090969679384453411326861765507437763726708758667373435994647122048025232260371655946247987402388923002125660272192837125869312654472053826813735893521227313477982379748119991375692385268499436139554723413555911182262821258557217879878649262847590986008362848853949932973272702080723882952130772840124033087832382879490343296609757157824297311818351391284494473282619857630257461884944607080806337540834322811661673244658666434286819027073017502472061036390616676549737341543283709621449357361445148864849832608384728759269762470445940159174303187214921540863349135942433205824614683119808482843384198495226019835306518329536759565705841671218342038576860933377928709652947045020160048368617947678354219597342203424450038274999581699103078708605561882995056135593557914923397734240312883571696086672043548825542654143230858879000785398377162336583776173474058990302068226237709787994610702026536403244953039858538179440544816736081849356584869150891910018352967447441075105410559679357186670120630182293791445420017205605267130795879969711476529137844087770592858352344262316218620445127364615526526119402933876303250249619278713339345095709370531482838472862679178158597182070252544108414909587239053406949351212274798665351963798072044631957221245380159232974731431063856671132049164613082179917729921787912477313601892431443467582288612376539058719296295112790063715812353851557009525823967041975559613293943934893876432015690840565009616589393900416014394018059175765661621729114901807157580497095984898181501572026698919564376045286910747318568288587420080514548306640969976800374653290196482201963582523590018195138398070951691783779360336258048620353918365206541193551981585398590819326707321279075184709851228645901008156224054437425598887785343913804794653199003175779875035562040414005159828311170233658054022062854163993199213182529894553165361215503141151809275836383432144629789045679324970646870956112710169655988581852219793539764048774315778671034682756387629731501895154750470333779562228079140939450813487797142094890576975574976450509231252927780684490766053364712334849624775315846534398809861106706011424614819216046735918242285098225538274987670947260888285117307525595873001736577109660538246387815419763496837736615620679676077461807410533445776842108937511652055643434181374919131143932976153691429906742157087249364705877489287465123796993483531963804842925346432252695580823950418428968876375428759011524595666775366110202637772291080777184738817640394609111250551513494472354545199971681904700772663156982824560713887963854730402370509609864113037044624559425725695691258448709499756801308921953770086101747438019156919683012733156560955575714430262908505777374339747435568098548553238375576711456801804485244390145498489404716633021864962629845707825819831509180267676920800484197121961984138157042880937875429127316926675171575683960403828923589541438036030259593861372095258158394347224497547614971274429028975625518143942969856070706340538203507731880532931981301151366947823131307741334114164747603207374774386791135228807974631811863432250500442515634774860713360695229498038160846841124901441734192019976385024310879752323476284135563277698127904640560814410911837704572337803012682762593363827838338920921127131393351376429274317206447086198609687002803843738983577435317643198774980955264154976832706520929049875593011549435434907091002649797620526521827953709923330289452827222843001377008685920940582028277543124200249335048324781622620629042397194354427569167052300493970947104448665731526820161201190947100728657079780931526938972415609846413543140750584898199779405347270411454505987752103625304603240952249170222807891442505905611729108479902287644530328007445965717796488846888213416013752046434946666740851295293952037655316058932880262918736484692478826855706480428735102395451885112900794128398255531859100233945325656507318580666498738647061866769100775845228290164610836404348458850262904610424871502823456539654568953281572234547020550428676373818137565399439705671042217545360013419236308969665840420244352374973033999030971636887814873697066838449401513784121836654670094757385727397949644953670874449111173544482822505259771464620356852982600141156287423863258835693620769039491516081139322605999579963936257509059213712942695070731479692586379578413852771877453662855301928079680754720766115617278007736059150350651215685559656194456494629771832967977017300776631151511457726962139686672518419472421061271355304362781914146788882721877639954655359685939540364984980427598379698423271342760421331716470336204939860902442595908470097305740667421723334008928957840026400134003881340022871913681150003315594767828909044007011523596071076754041855321448957695532844412610010452352154416554837117459412833403424929194280862199027938980735514132759190962681603079448002606440767229654411438683169663670799766223383589949581927653823743825028638179450102919038984866822026191957272624626576543824973044922739702229373013265697097985524435490242042058980952763858468830219939206509636205961196238481186180522064080222450548916760968575858027778925635555718332856013149245618571385484754581176412315037111889159475343975834699188227320068320169116802273470635517578247089371742661208358323368405018379442692062746095627480357669051497203032727454220791912189850189516814021243909409034334867686956562721852956845742703720608215835614867317124767642866204933223363179890446839081423919729152483280174813922013114138006959673774931540887155282733861908481740350170213565796465378100673625350720188568243427444390588088391170506133272400809454579599218539144952154182060120041541530232705711790446684348740879359311549494962829982860224679296601749922740867139630528719759942964827099779823060168457468786352844632345197186173860388456074237693769050771101666047765645326390032696016215858675454714167806156687032373519285449285273320124607455532994823673638446881959033075480208246255272892336165618123802181385641093011810394556498605283531215435034776934338016356867993216547642632222499737160439101831345520502638364785332154779757752037581851787958350998859942317714245776761484329793439454656408763958354955708591563950584498999193258636260122443947815881867285578613884951701966547507245555057895485614039937628515882863052712523118231969074070294356892980384838260035026110387561540633730901236703315661324139880513468668546144793170020703442698319403404407200084494055766694042816668301316150992778422323222036823558219888410859128914155483863040077662190131486126925394837953256664009219734624950173112987249514554989736105136661707934289656161906289418120442090057492941495928381837224380504033789616111687603714695289474844119770802763030724615534982424664754025390128662687914262298428574874451151252731975228029778102239261684338994302750474591595985999392897869302369156383809816190321734608123788990938312973291380886294531401131682217815466168083895459782033372747082842853123491640941659838712817976501348306471741438298469798885478668336219411628956266673214884525215163850748217846300364435159500847065330612526709440421994690695735170747261846641009716917601845268467236986161656707107700649544852636744595843548735412777540728959799707191035564677806052451004554309637563670379476624822305261200357206102287289927521389535621685780267454032875619767443536891019585910081833203491864989525737829070775201741308814412484529377896126838361098186107814498298638654070667179775341039291919013169588002711864932517342307758799395881507263762817849109265432282049219795384345617536273943178213445448290715953396858368833508883601346121630504090694617178926996481645975247457424480270526712582790735608347057531685366314309109112399801973396492406629267128125374184940319691060456855112793072547057352382604115427941451522127866891327378341194539953012952555280806969902689395993021371747489541304491405947032082394208261962682541453841233363477292518810481864731548679331938447232402193100964044555615539140352311871072910240174228276866095231069549074682810468220022312109067258762945102408511644131435284443738332337950896806346070715294926345128174325741453902716437320694018153277335520306520629518077491790568763624139390110668707156497174626315875814878040456245422495223594433416476681421102350014814081502635314854615768186372912698421506113271659713600231888562879080176915604741207561994516063468238612946189770183693760789647740969928505027338324337681566068449550976785905486995321429133874893664786895354411724044850336965629316155853176218300294918728161998478026308393815950038162650946713190249899184674598627284052344458815761514018213144160434736057337073840894121146759780385846426706776610766853356320502598725456315138004043092904838499291378220520410281029316858458343920065035202203744873044398934615033817396600416404569271278470313294590076170022641857859762605148256843667023617169010369257497019137868986334531079594102793111113442907181044846295269221236017081935906132125461774512982162507405140477383338160453508553491734129615712160431695573463463775616867889684251225639740171006327114984672882897747226687255699452374098833789088564970118187113330963831572423018353420902028016562582634588044767007160572361380921540881728112533266130237615221705433538003411054791788179979944071492062551333730664247353126243544282526507164120866318301907760372456907107584127625079549071092200351849233649330483048483118830943370389985311215125857765048816237593911266823526859453667654972335783001321061797773006468095499519191890293209662759530782738101855000844189824253721148212276436708747500420159224628930604298835864201905912596377897317475618760732275168053962303595118391161109756685210328559756654274388577424378065174170451132450853892463475104927865116296805109975658394795146436970932299432466639583111970536420735467084812447659829694187664833635832599931651867785169977603910693491320235512070264316343695018139749406850643870184399376595094321801986455774120216458546414081698597360989831880896224102068694939563987414078639340821813534310745681697632512460549182969016480426855351625083725884900792476450164517196442856906531058811275282796427284836438126840590344238173777261312904068248230636714303619024955091835012592247445994383981694636185287815996586926069660205440630412874085980414906881633250797829722593828871327817178982443292693420113182198151106842277988880464067440319759083776735954371438030237030195194002624737995471393764120597706867724292232958250217259788763456053040217886850575608874046117000485170198499771054855025833247096983371352023900684338815162815699263739276246827923854899216698903779285408237719303351316721053193115936139532898432445779003883152312523577254075602734856231992712014922565917930614618816394123112221997275849142853384233484289200905421258173318773274392638562625879256094228788204418609767869504999473281567570819732576163494052148891631503900058434916059313050319244230209449010803349742193615179647116384448622018415755252644619820578373143159761779178319975836363875099542396788569583040164272231293457831407516998411199451342510086731269009007024945563260708873181569332735127672133275477648516034536369072205807842765185935674062654081849693471820483127025751194422452510514828574273481076474960978019451291793677640982771214050944509051190092648053299926151422186068106818891473556576849103289158083198992715530366102438491829128417557608866469242685133376616280109952537486980163518539133789896579652323040025449690860905040074096215406522235625746471713524582210302327860874525888866291645235076980253582040016275613013381519303337669663139748535736648312803505141086436769085347773516988006495660975013324994710247539421818563858174222231781435075770157800794283351962473073339438605122224204782572548560985805416203324266523982920766898998746048751150431127062613517434768129181883359722056063003298820327364267775201222359624090984863467497126598122529278117967262486042398282773520423098644850442313692261995563411213837179562067502678179121938392019755960522283864011572979908548440514784645240626631105051873495013697677138214118647847862489328461191121658917470230657952146431779744697664776298908434858633511390472086921477312894416417390898260623525976099764556458081725667955063737883995372440791058169502099996133358348378392484305208181849972304905529616133161310229609379207712329521516063454933889100557924371671683323352269081666777217282161125707856947496028755610423527039794034371954344135522620753214030285034023468955606408006666033651678661562481947848501747435309375319776119480454669299525827098333470556810249481055047926991043824049681218196973757844251652488229413878773084573890417949673294233206743833679884860267812459078490841767660885617938238136388165534452253318969571612378355973363914462638919757512867360445810652450899310670791398803318928854029505206389544666104683404541171562589184728797264905164800961153293833897660683992356022047746578113287603124126866956878096934067082373427477640024818963291077206444615854377650435452236382009861589733876988019498272509597013910168675117524775780933081374162713661664030527686472925407215809168206883640817765456274437456291226250818026817441692615523308257928124005934810700075455764570496282143578254043778528809842625409059163057841172039507967156345413226052925710399407967627713672279966472682970480264365382959596672534963180006034439806987428964042743141173050039409993779619528031592578134390578048639221889593947470582578781717193076953957131414316273138363064558283906834656445413394569085862821688152142419818067564536222618077436303133285491397958913703009749503252019201196871885776235116408783578399056565044938607652647613821236447181162770105057248016727151110239395422391235363488780259290454434637575486448444128054951368710674619565792108105850695288626003160174679984083698814284516105505672006901947216931933254886337481224824119623791652344351045377209830268855723683364837684719667882995297864898654587668106276988124464264482830245041151636887983648552649098414686366144668946659452298138020119861862691153792015954809887295931932417590684305760099987191310076492610561951757970290036128615461684976297396059295556199457567165327856319184017327825119459226401116305628816239691611152838273761947996333365073685792273399479351290934313512174712093333330437948713701786245947758800334844680506862867593266226675356304359152089248609087344557664745347434841165674188075864945850978107150573255177888585471361482338475191842125248773482511150934555081697662915309161852094834359787763981295678080971889040114221332605241702563547311849218775853764434486846739671855856895697286485295223337171286948423224686438467401216380020477532640563167020806105304851467767199135199066782397385120927157912112928801582669954433904063408040258915819414827807422505249834033807677026768542642038737800847323519682013882195009413134957564361193908872696121022893133357781354772037570021240598417814070453935347918199909766402144963122697887871156580650417199244036573015902231840263090333447154804209197733548695018319728706190225209718981818790708917173320348084003128030670650176906842044870646288344152886641529019144615971350510103779998220230875617892669687307751515571274596132625672512646752004973122163817381256179642599417496793605251593583645625576937434439385225352149194615674184517623263297460937831475730223760943397957257462431389743718140853973050308204940357796800589299882126252186340305708961363487334422098293825611463087638545662423097287001608836830618928704795923148426495484166610458148041938397048210052665244410698723980728974345533346233896081608129741827982253018396291490945467478076472036656701606786117399136721840824410656412932815668476730741977121249090337026554709937185534663631409169256472823742219389179813780516064993299558215874063217519946897552973515857572702622808762471191491901390802903139217317960600815036865337908232225848706802770341705195936127867603250896421607914219949625652887786599409285258272129105762859997770914987747738015995066517166752774088579966650075135442540543212534265892833399396430910205327959579192844231132794772639540885924557291836568445546917798299628791612563166418666460027970703458297323939044232765901022888378955411026022181773297659484506506394253493710553921458256049096435005724390185081698519236326744461956863498119500552830126222163743920038036508931044247541274756470012325205577132028265230635757663347498637259794268311926713622688168866872300630029052280979856801428228113620131048459521473068143799897308008368054122621019187419670312076060275893089719675769347840613937218866069397645604067344177170060438112319237607442444521520135026003016617953316123549275012718338167093983208201954111484017346923947422738982543995842654656794781791441492090561168012487123176207449938811971860760468233881308184740285419472401161083535306940592227769304329946134835119444185530678571965949976258406383092501184250208780044267183146784319672607960790893574015094620312471183342988953410598432063086748244155425501925161898787916366730244964751627459553323327144006674023486110864247880907837122897179840065177934246722386318313145369904246912138903615750003626976020914450576404278165762625872362939173586001207851404000237999685752552754343804790201551652941234299150993446539342697199041275104464283226599127465586503966681020123058709574696305696596743117469372465406238489230396946466624861834012652343950814484632560094452666287297739308239943091179334531260092273453146402232991749483010709507189667185691424536285024780475513942084117761231066719299745211973183349379931466439815428207728845510593456706034077112551780725427599370212878992079177161727070424713125601884637654764841152915713512134734761751240658584182455078471413774621254607792855628346610720983173008039689370202959669191003909693118029416034227242041219709860784189689190961459007021848737434241034913820369121204398964892438751835602184313027236155785330652556300713071824099445182914823665137581997494445351169518386086370289328976855640667097564026087519754664715025253108331758126038621825271112013590084862858206768423365329101994924529997288003407347186717044360998182702694563111880636875723854728748926285927849565220240001997312181296033343973853433478785344589234548099687220837727183540467970249133901365600123469063773167242139132452061352120413861968432291166998464354998985721782691299384359332612753345507594559062017049037028580345224249988249752196138277689488622686398868211873522334255642710792359489356516231097937144504680996337741086867693683613388036376036276613886548384058184738661086700302478897002905817319013004690517045889342105627035822097235205133207139956000255788445281721513279264566074833637133932919807608508694510235200455133442802977801317662082952157834965697236229002202795390534968713754150187835979824557094061233708580102717946036283608492178284466807723640326513559192772865613986291120355174000390939324413773527998882939786027189569794551289176096394944540017764876948258112267172055988162811808555743672486513215332451662959248260641988567688566736310686791106828461538388595025950626540875432636371207308611920772746854400544152006259476558250272169507702391950948657221811672289368655300462644727169269622735143157705204493169536671647760165752664183501138140941754080442404218113311548543104217419061555425728136501978305552602368227843074843918138728013269584562263522699381408490191381517848329220566328082931485498091576582956647281177015934935120385678144371793133389290774269515839751084871759007991211556636898513874800083455306471931223216277401910960935502777239772623103490380195719871215622644289264177936718594653017929330065899577700355261331842755953266051565695401410094040257809001811789133763525654025723177693854165734770768747650136369056333512091348675527800810225540537756001380903670904530922806693384706242875603622566021935510635946878722299042778421280048815683870821847213386070972455252748147679570074858879708738817943557419361609527619522405983755188144007910386764841199789657403893786352580408005646675164126144472026588153358282291802258579679979096761338990081405799161289328990927221943712702284875127907627867617994998199952742032509338761531843378268081483444537280383692448419064683260734924194539287705173694236086842379481413371128173505146916978757088881036200926935340928465475827932901814562876078360009891668906276106147612712923176730361671744751622016657725056830245664895493244699332882482967742879656012145506644158590067800476947953282944126240550901137612411248379988218710778239900481959884683691608393779048008137395277630397895349193628554673193271811273039471433071228094217640638214984154575410538684643046195524685295791824276455739567204568678587267429923284806847919423325502493370505764201707619375816707822578237250582329892702285353591281555588001023648666772356487148128982510172734804396969170177167814841948402235130011248262372698279028312000558912997717678751321741231011342603733560546056965379454734165706535281420999439831102449415367394054438734549920185401619333075509243761632266395616098702032163320789112049162606848963866493918523021231785333913773400505007791409326824591127012825154183219335001638401533411542467189691672290512423315606000425625167192901660258209931361377908405356021773667244322358251853248167352013373690763763482473858031227429695244288720800632350574339133599542457919102929515042558045740316487412753397839935937637556449113285305863524898929951425866109213491579996330625196557264761083689191863517485518842883897276515501914969028756546574953428519931475130318125028988300172514703112928746946083886201505518915542263644544628906572200809203436999138776301796776995034841165516931987237422183123591103302638481183621735232345993663270581505751811007455304749317708228340343776522013583705896642997228716652559995367783118870529228321833843542647064545080069477204397978794650418536556693002339222905884391393877705451532682184981420875955802464096251889334918709184584525703150476228525069989511475178576803398831961472729209125650051155791199094020345672615987108131487800829099124079914816070331761327052543551751664458972645594669434492976408573199052498012645480752896031892184640487256751043051208368861490487057562709791897437694949675730334292973650935883559994902436133118203256120010874200013601372231801083645175619228449254567962427968491543710267719044987278211027112535030039899459877840570494223178305854312388273251850980806668371088414131503068617572344318597090828383711159500309857090600248789110209288529805568535229045367955193221864273945454201557947516792507376384749528799261788307125946275148515846249764130910355192986866838924292840060559141685041832013777434844028868665245823908575717362947205642652622248690901987371194746650857312420196261966055431398919963141541276804875247896893893293150745210105891805376901111817634602762841164863320383301063208084681246264674266064341157669710474239729812081211831617401435595175320215724749550649371905024094588234696230096955439886853696563514606557577056301199433700771482123699485947845254435944336632790893597641537312852289984807679901524449218146566053365319736286808289672475863625362835253392103097885921693778637767253743030857194768689999915358676200152150686575539709865803471719527501187003030787756906067891159189197522334277992153500919071645297922370847517029459078917455969878952873473753837610265746794034742450373345102271231027933109273533314202947170934487913883331012305490086486995375475136398578003910116858949623003199448080390701900686847859752176428976333993654577310429396358147465534856849947810847912303698211467059331347252843962260468153019842905778365811919207023661193335238521903443545511957938065755426817201581712269720093816028449673096081782508805091571015390286229288015424615670340133766812791074588102503517686360793517254081670367255494372207311075921641984980883023465747405946097062784009712175512143621964817561377224492096830679050240378254616938255549762189000463572924127891660019207355280667718368049850392211331781714768113072694415481959684969720059485539525672183981288399518611437388967014387062037004806139844366469684617259943089379862870812484996797322427439401069925508766998146952154626558104538645950514833748871613746517386850454706585314742336836264770215798177544064800735767491180244554522876101087868309759173382707318842547197985741665157506667243736013764745847134045245952825799229615097896225265340086226673236955698610109456596533604516696448058366325930190434621538222270059285693209814424108915858112733032170310878350095761356990672145326302493458689822230966640401001727131429158201558490566673389426563874048720028579400207783276949213832597420242493901386327685778005186162902913287345806059402300423565078255048849532289189120877145824361275818446722926373904980727929431461069203828087546676857669562141144774733781727225006508880289646031804585519983430604074075643072107803745476983092358389247569651060166702355880734063835883285206960279513793813596762457581594456236511462386567285274163251482312585561717338055278840626089948389550749931514697845134966514447694404141716198888344084013471304266860148006991488536615862551244154387638850410893251277944765860759631928790319326743136011473932398331613336260236735396046458482182156311065980823497157093524186727488614777538354627857742820239096558505892155392699912244307457900854168763467604528147203529670509719722467365114837329491010017616941668356263368126238051663729930649314078835624684811202796309412401357524228309363758895585102839580162123008722388283005445011996217856295983951028510356346121073347405146663430776918184428166609994217043316723435869617271068708982686494048861493800523782049152350787446263922446477898705623862184490552101830297101016843276748250666148258145057992874958839138814154248755020657200281928432548764249865354442858733305362894399324783730646522683741573957276011245633034186827571084213480909946205649365836879471235621285466263681862966438326734251592848736289409632356448442079517428646348532349094180629624561362884698266264665746315798155780858190124087872738841110691094311807061792149984550532526645296909505756037148541852657005409062336926693164358527678034928589687376324462880854989670983330366120600617956421528243478888147739976176926861859911149997155417227456405849046275659421758154789490220619682482798620137840619891155314702337623159195320696276496406678198095201873450380744462768869645258498327831254168735062669201070687450092739145094192208939374506980122231571714979600171863126168623095218349261683225307572211613926993547161391129530410084793527374819587133510985340646945818194227082459723300623768871678190344503404552052774439765366318560977870722385691326956637585333232717551390274386996103935427067826891030897823872202961132194235328945618174900258739807035879104180588681960704371799777733506339862153516837811958464840942535087834000841759705346250600077079863816642279922717053295960645231396519242717816846114031512686774813911281636381398451872098272104385798738757297099527206414710081249423195696226390021487112257970772842404824594900958829567596590753883622912349661519774015967848483434969474651791100810805706764877946749626830302092537531676464607242563285655809666321149277205426024821227254874216394022801491720901353509326962305616474408988460287572012784219977703504475521478380062357893893336873206660944752791797588159625720910456744300448859618368890115120595350704299967836386560637546130267902691774234490401121623952478286470159213588848795327069055905006949638393731346301555902010590780908163747857894229056757118907689941505825309232993200373831691571385102717894423767757961576271557523379876650965435816276952432483083353341631528038942788350092165256691838299854737467040083097878396249620800361504428495294072047875936383593950010039427403836180301326553313086298226414639338800704635179577719637682799565444269963293312024840130096155889126558774227257331679623819883493155860339465789435814101568165492327302737800132222090052202211929765019284151253944297885199898180910830543065859335896627731078253320033748641716480696176371770469751636399488022540241347522524648780082284672412229303273190644015128211296279562036961364225694679540555274956264642054884643634249165292866728311476116619550949244691185402447260102938612610400142124290073775296065226310253483870983313282148403969174261288032105890608408329246848015624846313632495485966221323498945928655233516966743845365271545209957739838382247923239311533000834751247365171279913824019878149511329810038314419898129861386891070632403948630660734428001781831849208656684385458798751853707728517827551301601475450734969809178353316747286265305545826170410287310540915957890005130310300903125955356459239345338448080697786555839155981588459235722636879299502252696222548850123062116527895036682861453313473377813558344373860596680491803029275340612223850017190416880830177322323377692905613899225002762572923322368845295307559221456437094177383070896948526470077605543435863080937422822311694866545705051480160398183515570115302577457246187564269282331531437627285815613030093103764684245788206986932072610805154491970926957243896526858614218574584907059714107974405950210284846231555919808760097054254298216278645141994706023550952974947623647284950378245153372648033869735718311017688818261426842628848107685642799067923326219194507939746499183113841887503597116949976497207209641787232978017524880633630182442219698813300784967589738306951819944567968502345192648556702367227627325725882950110587139629453110240514528821975470721984562085480004125056305312240907885746545546945529194675700310240026411272024481924810044840108347179455956449022890751676648343014186629185545897394389312556748827441414027699125533950072151534050407187889604811802657458198101958715163382986426361064885856113363380003199839975119781830388797563012835205814362872645286187698104331844474236475573672858624624229285485224497398815709759918710900212734743920870183755154381401143188098333130838874449905516354649781478928099024933353425767579091833913247120277883493786212615045913014506542095518573248028127187629226704129814722959596225875338020475537019564081380249248729860527259709626025410842850481524342556648618344212742365692147787159736682158311792636554239390783471403723273575497881352683352860676094807741992542173604166114238936939463092161458995578874226481649151914188246120500152916931867348454302149087833118394935162935422033915170365630047463362887961193995540594557099777044005570365101675498245113460039584948430183737987279237954819123489947261826627622729183700912419429244283243160955839170375026604394332637354783085196359518295944357897765283967401775368854313234147608561395351679877943730277801425354196138912889135746725899376801913574073529421641962222728956052989631674168828696767267478740029893113426728520156159185121717016553441912403375260085819239662922425781585788436478519032017847036163676981668109378645092236615224194511912569174848536256333759375833697958415618020329714637136830899134361652879725352058732278423890504494855584836679808601298270859648768778917297861770405369259565063481617292594509081624788069499958660792548079603480471243442428800405190062289387499970709736834530494768294881004020307279136625348644855446388411283782537900788359121447933123440439750012547598580296434896742510521875188053867199299018355062038816467756607671844811281596352227284890576493057728981189594568706304429628986161512371745818572001395556692405194173913447398420785218511851279329808194610208716958354092008343458571972443654980343656919866651202798963558565998066025458502990883243486914036908884149026485187894704594973364476814987723790553007565494588439830028802278969234096051553124716771929741587672006778136555362415072459767091238202448326904233022043832990802051309805502961011430825356990934320063985841201933655508331434345015357853606639337848178911237532342696022392715833779957901056495838258874044959099614415942891508993737803393582085735473713009802909486432745782887090880117282077857546282946760366985826576034786063966122030912383385284975109915280614327974047468654056121559796566514425562744874665644250978839957759027797763580977250531692725617634195276414622090697648547553749980485835813416434919477481075726538908471531430302867792860383905060102440999623552669677906541213355148733862415258951300571212971919161652505444785836956958387358841909459006942532243090810299371196866470345798013063642555948041143473965924918612881277015464564955944848647382085870631355166888969432197062454575455742267690007557168023968314627856252316515334149704872517493491382367410624229400730998167981400049511637160509515616353689601972696042635717899900564539163197511460667624874177397235086303019866477569651902064602772641361164366670427848889247108917553054331493783336197286497046645034570001072182347936028672410129315117041851400860545375054077196735687854645927112253941603241375651233630289290291176893109713863656825348193263201392030129452885957019094867529850721857190220524116875101138073006194009588636541858986619594454080025370402209749419480322818453603736529596021298520404128359179346784509075470979343328276620840672118332222619386682699682599345753673736434851312670944575927551975720607072196270926186228137852292052491115968969999298130892719730172320957395226152712947542658795094093866168402460875797605936889819269515742805442994527709797052422388471197698350801455450683673248510746139620332565030812401671691196406643516748985464606667854620841015440473773485843742834217079455894492839586569292244627562715967834953282218181275686213888587736966449954217757408195264269060825343203463974053593125622942509726155135988806380117053496405545509007296902396359633797343456126535368033745580179303435770535178194533656312387166438295309891054095427842334011075896278279544392627319274490491137453288983533333865124018960749352739350753113434676054890686362835614149272909642067985552848867978690846264313057028583325333253329062132297826352770147463395739830969475769059720209661472647216701082101034844959451077808321931151937804149092603321512426531063342208759642459500068756358725475261260175754087572813774218515086042418368463657562285439706974742812975828232287186538894145606328418435753831845048407500037962012096597451832268941644947758901195844646723278572060864029272036722128977017209459361682413582548380661632464784601869254442687728182021397260037203039224204281095598745219845784915543743165948046385359101042490609782768501778313714098807661839003281887024488546445071868410040041621242213850361777994127203236147681834728160304606929859735657386445725800363736141714445745636833614046516702105051552707333368777233185684754887191659176925627105085746698305504534285908031340744929503609213648830390594803234543150552505845721718590024684209468679093571117782552386533680803711928798158462284102455195733112693757897569306994762773065353522202717606816114799789713067834546008594879689412931345575246589476256467971756847882659660082151010078577332239459763013732280598715808069711334112731046027761015805675924126142737122056750111578863881762870180679756100033775001091072665196879459941932411203806598712384971363675188617673157670060654030865330912490673039991133306805829212013760216718577020602601351497052005918223820147005489337160032115881001861165073053349350566762939839187630897360880712456605853271926969615811766548356125045053077031959411484115769529675164958861130466278505243485538477955510889484546889988574427846791282489359271433081779393470449340875264328622849420960136754697670512291126848831009823470973343247801719180913027017163520503512079727710009448558812910541814080637833744616041410808026394513746507613146824072047971747467834130773005285412801284466398734315883980321239435987257366070359715372023709469216655578732694068961149908330818910787926300077336544620502107707223572336336242240099807239396830553147657236753285624046601295083200092020687252745646460829104889754551253551087364934963518951174375086603997162120580554906065666678116823245746401611363629502161415193176011128145287693765896184020626567667389063192171625686662162329239693006031197123943037748637020582019060534829209606824299495334611826814798294644314058759719578816612045358287411888777120958459978571168449253912740659909821483841703354092929063025565618581080581378617692364044446059757793439611325932484949161964454500243960896435333355988919287838110149643356511046275872511022351414274784533073479148745738439867044907766712149555848943730082042844884941760617403469075219436646984907412310957377182018281264814821438265524589237901726196085993796254130731974089075767899732951377227433063056300547890130473271472347876125317986479679327209211188123024394363838469932467037344869201179053441349630125700931123734979442207178227070565835118957278726591529484122180364733875863187108402606869189199407806167473321155274039533909555360966980810427839121968236389291350478720020814070432844929190492172250235111538928044201703606148350153431611943929609018673285855662863971098584402400952431685999905882484444731087510226519842657393029219646807906163394004800176019159664993110173131797660966077150318499053417998585597687311990588929549874354240574188712820040459434621486001264550300061069862283561603654296659372979977878944065526372346993439519340929609214498856416346243561766565409045822515977542290941833175023865095562442350272969920177326365096426952079204028040049141260978488331620544209803628720330346189248401627032229605042775974911118593404090105718832919716859838605212069714983263574994124157729804066182009697372485792493018112552028495358793363549071776744839999073213129063571592785738979463104287418197224543695641235414430394889577210789219450588375873977838274350731045977920177323908687041120925166725353907957775106051730906582801744969567960777403064222388024922871527143329492603881517744246574255891776130848539302954302192212441442395834630806226615047522809285383439545127461126895272329997052963444504649346363298632411682592969775093184865877255257515557098305571987212303675128859714745303583254676402736067127875220362353582524065995360500427885164897867132235747634606732236464296645174403549717400702400801322048767694476262296448369443526383031200498980072903951905685411832762724361973954518580535551052023092372126408936323476997958005024939664137383326928093576403770904112281963392433495102139096040575400745118759417522153556696944165324801513812201219165651984722468530204829008020438444790869584975353870633129901046486448989706397321464175746435976623094285339836653780832963625777870902328703507199315294803905139475225666931944418010493199956737546705251951347299782222241634703743213903068140987062268647478117261190739742854563010743155199759123548144866793871934106855082394261019030917794729234008217475786904290264819303635340851129495121202085930042502827008520584926692271941041605303039847275292617582561803714071315455925079153191194114675578553977558404321842693797247002388769294858610411556223388228006189506776978586800705527715703797479374930135736025162592003765239857784625389480147021957465013483124413606732827409261728446962280368808315428382601893094850940003055306334814469658477010447146169565839148097450237204580301685877378243343391138941644532705278364336765641186537511941230156584902585370465294510593529944611598582276143836567247987826247876531138656326222655195835364810863389634284828183968143809058285373927287568537360292329626721752202354548931317035959704011493461865653283129404834534006079992002884178893821187530501549404319441997457586752475548157056083920361845232952029379922655639517670837962711072048405011090974035125839933848788315117723108305017144517491084387327244315011716917636319349041095365673988887643617452780784957338842674872904814669877081124924159140622171847850299930513778958569435394532252739472456308824275495951038624910396153015453527069534375328939378434688622177289038304541785508552776566343139993160567574101680957605531630341003047207185292183480819673344186411039758843728011793769540633169246197896077414920306015938331581807614911689186195643941953093033011517373948870982350312702699288974635710840546620211820418729387836461605693275290610900532823066194955314916852843195850448016040935717665305963022215754426633459835488178533025176538075952602684697882350956786567736975653072342258501508901604028861663439146930779669483189070946586131250624820456115999967771318238266011000071401717304704167251980989770287767380328661002368893933443403932565932543902472636757608741240188491696077527530721377814595344675692204284280510698081665771301531130132975902968533675203977448888995873825983968113669772387677836558786561473159193441850079102013755489056953003168319328160566386770717818219317819537643428109009851687701359026089464060512494813503573778923561084379445297379143498385576299262547065401863347028865387956991073661080902284261785156327473771271978880512944603993615861834680875253523192469033954554160029541220955196774112072929776514078936820743113424261605893873283234835488428969259479206278359320784705880422595147181488977316870639720097323304674018090821048482693211497147519419277977060775341926225626421292520761994117046099085910101322266148518832367153772240390463528114678805983306206327387586856231947409048972672255288471705954259008250701316735888434722658632270093253853333478727417373074010656639189426693768687876536420159870355354769385801214522830008717346371215078061131717318944391343993418431596903784205750394641391170763638840816726750238116209280375089110023474583793479397925634695241247022156428882542228400696660404297106244688482782033593596226720064156634542953239731826443165194508884757123257446241183756801418340352152997614626266333386433751315536236250557717581238180720964037106484477588351450234341087847875465520081622881337676286846512455941320169484269687692207912316409393211737451356292356346931144409709533962340955832710839256297188500142820255129864458279572769150097885484710583826395287248017319644914328221638479709291709030592932805842462419619947426770422138998245691828163644849355289651568190047471970095216312238369799806629278620744762419508849086903473589070353321732429041778079409972555348396502689253176062941230432559347494539124168432357273890320921446069559530251712323610085857276465406173817368775314801333135196134539651446651210557039718287479944573984572733114285310276242640718899810668324218510515814322277267341660774939964380482266449116239450848188444226491522424570479744061001289234533134503605319176187608074083462482645619235429877110111142272119623029087709406558923364619466977701113112590036888100898486552089603614127288447659976150100599807057066865982935241808521436298856295609887218891982056322742888700846065574596223563974722620255884480491495885449807797058904254475376713946798648221622263515100637498987955260376251618431876698891811373496678948231062167778953552414415368952911256330184380128165296116966668815511168914647706375143398226581885311914975923539889254341979950162440005059547077458943330225081220271108568777909034968456012549630721006697611815603003124186992343162962096111050266860306166698296686114816296006435201128249794675107858656531446674149853452678547291459458219167000637915772418672033545459555908131144493671646766172542522512118068764616786613618296664895520595327343846050425865643250209513437753194494204854841990531773821088488376131852162491042164117560028073839056696191754791333904971096178869892452079597607767356671072528958335638777159469631214006411083855003784354430867303250458465714924583658159502158844158074498356480356663626096970254168726607774911857195574040970758542475198991022761016097288740899891421750765928238502749186153174383931988490729463334096491695686283646351042985689411463597971380646385938469202118601957384643737620704432156898461948398257529592918346512434352886399455440136371212603443545475668875282464590770987230825662057736025142613225353161034697477660861157107534235996667068340239951839307744823324404908197686284208497428698446519542361366000791067105973536162202507028041997801570585563815978547148873094664195822345444607110291290674642587657068513897070562117321376768127083416388337626097432131523989623675002262968077776988008378854722510978334116922207730869383548270854739659694228463887082372457911157792473778890718690578686302412193328108539111876200678731888353995543888326595004660601391411673809038648250948906643107484918363807777781725481592319947155438527108407168613434305870071862318990614223322051535525214698569815294053024104330138674271097213488992489893015584011720814680690387712242399247008876055078061849687065589940257963965415642463038790172939026349024831992074507548345926092576277959524629550048727320218490953658744836218245289496103071600924634140629836104079307544699507911635093066368985629305693147337215014964339081425757998915451919176078005538774328127435848302145134192710264750053988081476204528299339325358385238426331879990376164456275553154856841408664561337039863202081906205886082332262907484499291704061182344676869693048587460168580598531241794713063765559257354206904733373770127891973864948201182952896632794450787205953915817245609601280490779911518230868314656226059965105812332779181352956987426606400746071225805109317516664249282836305887731724195790968664439805764665328594827999769030437772787409271970962904092372517744644546325905425109375153803822992727336640659476917882369414749947216197217418976940571450482126725661663178938977439490577219261645343371210549530555828125184514459162864450125032691910100149042957294575260339486774167470038652122634274357175989766508246806534521827441696326168294361360319333893584181874047999733685654105916897029584030549334292366754510205775643013314664765906686867735793651627552454100131564855068681343432027017453416304802212437831583240124601305585958059734675061634246107657604835493140553814997402583424391702570630100173698720666312893142528463626508433719034146675244875342192221562600821933385881791933304552625760084088002871792868598429342658344387338014529539558036901649901203422999844425963504774618834157128670023232018150091294876412248074576956641085602142103785354429607632319463481219688761026115284976288794525206245785282402582143838944981892159466416920683798750088820696227542095796536500706480049093352651893009959064533697791224089732866144332592987298507513014647197436451754546111993006937683332315838599238840651675719748680000990039649062643885765353896164453094273695029135957882690006727339091730531412769265745267681103671756062781205999408174828632024525340755690874341736375806886102772443017586399381466147997798586249187947171838580847582460112755376827053563823346419444307421249551533249412403315699393853701635865497931380715786820145358382139264822581033363760447896480837577307131280012036106616132122245432553765576086824200931950933780071083166151107445143409643960235321599682645963003799941123665811389043942341055458028472011688077707750600765575471554648064447888778727281484138147952669413861271124048850559142841905549910857583614172211279519987968133856871262448479083620852193581530383773562370080353798946856297189512370317681687738424177003196832814716351198140974496375016373649090624642684889469989794499384838431258898794332536233811282392762554891924727463383086628065066783827177653320104474878120564300074577478242177606148576204807406802900574724303643693425798860305553283050124528818422124543297348457761146082023764635174331108416277414627028439906715733252915508771497436506746541895051150536362953247426448693975850779378948923416329915902495936893195528403129782115551579531535245858721680940734702768434059890853295046642482075355189363597326680635420319886194545115402934101347185819508988902698110478237971206757425643224163330462930995351791297497571935578731285803927077554857762555816437440103969290458332730256171225481525448753822974391091153170713614720339331888695847774810368807829235862206758789018162253886686954511113890929415881756981543004499740292266136528159339844236609894462179303836549276573045231978014448407108728838396157526443203323886940682503816421277055094270498957267996954040790919831253397843451461895950423013198760256499350101664996380326915364942690161597298393640783110421101725412758661533711350751205831086185354976793032798451187032950198597819991010095750561035887103058803711768601644239882343048330298222498900419603430446492368984229964820201675827814287558479676315433965161548799441669496175582751669308702829326850005537266869262629844105796591009549155742131986798213281276308382126725034621903303360668817991347550952120250549453631145970934146702285819698789962162615201678393433180092253237217271871345178259080689521319211595448973909409675833941294804300415407078363779403903217429001363223896756135165415625517584365721688061996182438843896275414608625936515761936397059841877510878018570336465989347674867198983560725135714550040382206251167067611372071958816285777492477394621450127351300714671134481412369659012120434396960386407474849191783798417367266728662404499982201688833852770317123203081854725260205049254016242505836107674030694031313307869878648449146573338533027748101417351996795815048515541557596953228171729221802524248737218723741967437532857852504606777276741196861318138534707171412212227803934754356064091037944342222255137054367368302973921313788003579557350867247766845186072454479681648584617089184774805769428666523712572558337573942436776924368329635649609320564635601000764480508442904361425145282466768403214026179613498550347783158850371409983546795479576668935153195955396239195561628803382598466170950396612629152763616091406465759453095258289398748125372660826200617834102672306126547519070131259124623029482786422379295239357416725842711701288238345975294426516980887847272718209134481531880562397895911558808350046344093884417771887213780342750902370051484692615372235360692597294150048549267663962089646258424596097020317710418895845475009672021739536164750121996311316459266428514016544111357747984661802512677267329017873216951756391152821496765255855907645085164040747070573181816105028736289397524724150240454486174438952623023292064189144248404343963417597397320658747055341558451672733453432022010836090806715904624760014728901676866238429490877652498842954036512079422313596019147091597083226152566422897804607324317553715246465302950261480745068865022669883626993695848528222729002257558663012624044678339999305974259006051416729840053804428558201577966523880345595013095581882370529033579568812532186878200516072200163871736222449557320296226383823418759918590422530541062122920586418385179561364728971876043658687678048105587494072528898069522040221828464533636179865340574262939299861824826778332611976374814500480035576239525585849083508775400156761269127455783254938657418339382263485799412158931838618924947569395354979387322923263613928785091555179575566710693824565260224260126697801191094040969199677266394120013212799127004848112343337965986696311144615693815022384500207465592692550758953631787193150212523213668979062734541537592407999122205613568123781174271699404930267883976014676962761106551126084143463072619724430701916161409092906711564518766989998806863260906215355301217923605621103270156888666181042855074126647836408012343463975922878232177214380772946880699576728221774873183169377535210681660204930242877831578046418946064007819603120184910873685711472579369925592399759541164915282282180157026799091504257859824729843332289598622240715368302990802476877931633455255630304353610378867220579914369614370901605566952813250614410747975789483392851862564739951929547617489441529944947206753385017782456924346771112230604578885387475499782688363213587147946757200164633659707560920377276515563405915920011976363870121335938335930469351002970624473750983662491631052388409022660234325083423344544303913709569400247929956740069847224956506171433068827029358024177452679370522255932500017469292601544302486661798344860609765337208085479469492337485931624920570558085144841250819161175337825645127418736629025686894376123801080629126254321048210981274710960022485351893125285895604039377673797946498063197278092269298927140197938896659081040887834799183717770977125814737360247830124316838453288112718355747982328714622713246965676402677946195514037046083354212663026250431961440517527154170522578840340350787906012876827565245801749543111841410925047925093997150160174134248287919031867716191143758072837387538687296336560411399932231650400133489673609295682501097172576829893174604393152658450847730355286656850672064600629094597086713937354433367267330726001998164523835617228720009672039213586956377572565958119617481262838927269957233262955242214787839322618057571439127773995023614812712291231586428286452361111690870826849058675854679356865967583724848395475870322715226531667948362132065359832270384169286164932572577516546897035621704084624589741907474749097425628992390090577011182589275669337204964184140411488285441526587451648412254055875551675825085597228502703799725631076774026187779720109553665241659853053075936816592645162395466715749385423194003304912865812252957193618989393383163367552660904585393432156698305389826729225918262169592995526072349998588916602873223621598324140016671188173585432992646817407745904807384451475990489382456325096236917664099334253912295699347147442266606542445027048833964491065075522893092290235958496266716737369512343772111868610416374374887547806798197056955569002693772505903103544947573106351512489258819946277390248726730034197435353119406345610932050427291661292960060981999536411352358244393505322204235327860223344246215946319568338526108973539603472782278995898341125601737799702270798023115395714441438470248088775331580633855766895633103122956929764272205214910909769417433824133512544787517663330954848164074187496054895684264977319013235904054247149454251094095800195485587803103143997378045359085524353864457626630784041290649387535648213078437425639044389918609368887531984983241014809093255323724384434788213593227054982210695213818553946803690417942675312136980319447775886925869666902290256690159737428751621607647371507208970702589752587306263845389638172662556532413758932320527820219376150137943642352575426094517824956557669792116347139116632659683136144104485441995129175228831032252448679952355333808428577782122910880558029600531921993813986706990053985006415669250150235361128962812622194664920608470990760076702936563682227256921093208913179573106405575037319280379684338080142193426709396994248414531009003510324317448349233638604812092011299362170783890241813454691785075624551973554342111266343597149603331110466884349015091558121580929544827385522734324788261590441988617000314296500489161950538100512177377094414387668667794169568807196268474132565990969800819674114763753447516385888303959050295854116036994842019114749963938777402069789061185734766318228320448186575208131022267823884825848739635850362338665359022153762254368755061271007510552307181217567340711569204142951094582727840477058289562454020076802552734527863623311240737617222336639709254860775775594880835074208241989423661947304420052590119216895254989320211322242861563870806612581440598411601953382330789457260626025981696633822467437141029849444917279145911517675081289416160498482582511338877787361583682914456440919100251642329086547295088271443010768717713499164253453886815127926358350628369097048399441605386705493746898422051583427923782312403595878378784746467930981261071359758424048971496488637079178606678572089844136700802446994952961567034683702857913960707159296473358907238253733589752483973570268467358972987524456251725974269447202354077685655562070720841660858028573219836945123084054391614348404726287607892097295268267034567165039245480952279938020778144101377625269804499630918214555102898583594711134619016201203072281141406378124906837161624885109146139958436586946535622940462597487426268167909368592741084867057542860041040590360176453393080458086597525189881453855826037211529474837888491326660344087059600699907260054379184639556120292331223902086306899294390574284540485651861428130622426289288860196492992650898010892937121225612850986894522988533661583540052828620267631385665472165296969452566797763459906017067056738957671511176113128218732758766577937774814684284621168599752352883960453930852222014016969197772843877184348527880206085484503650732419477255624269779675303383094230475372261832546471542154566560538803443909014548643859122069401885760897314460337064793314973138854533294499015914272243784132574110601962722084546084090420686997210872913174391467600959432264260112401778427563864763899222912900795850133993939134597599452372797397491633586001427367106029763577636529377071549083012269552834759436886006406711954732111543177608834277552896734227851511988007007757970570128877703596717528928123021092360094684891799577843783819096325875715814307884190686159211596821159020373008041581162320673192375831130409949280658930572457028122740229152021650948903076453331386481644404664596925304249179536802621020712153723380528334400449724067449079007223129506620319166109483531071235982160357763737868535675113747853354808864391141480247836501989230108053293530065431665247307257720346406506875354389809002621704658630238553125855507673190110699514311735206647840398973999989119486378560666010737562561526040600183281295525229272201730395075639928570758625080929218468236732437418498912694078742728566319675907596625894349524327979425945483216828912294179569425665984481320256615701982689439481048468470902604224856913536988098128309636711935407271749663721971968702693942175857153841865534649595028945081161292896076575007439577528491044896419149473890269462503596517502820611452272493811080141416891835733239428358864875675912673645793429389367653861707449840169207219543699199850914873359460945453379049690656226242204716451132858539137155615404892299060360332833852660138160749586977279267126932364193045173053368390384044321666756887735937312166439202714690886900345528279408005341505080442500092645101665552621300878039702055529312238297104601703593359352948536140376590693984772506103386091286934118629761398598018364008541877663388287035524003914256620335153380500510372871545236901309424722615514051168948784146376318806691976340078958616338314115825680658342767212463071314979386082552350659336641545515933905302589052570520826266456661838194616526042652407554234868725353134410991873551995883527895803950137081872996686663105234175588233484963450495151370675531614903638446696708502998809590553372966310445633372950608866108994437918374674198639025239394540924436811286625468823805062690463130515275729911211031164294811176940508851875147282862767799536982009300510695246061689789314909379434143204242074210971880677303015027102902273512385951320850353834496214654251296646414673130191257700276195119625629775042614341437455395594477478952021604617489250450457628271664663894567055711536458752953640966076502918257931699607120061803518865295490593005320418660279349458699815139117010170903298322136293526181326943076197378542119477637658302514132328040605983921923181558585275353680682186651022910711637692499731494853549878377433317582195647204429457524410167311247772404997178693201093191184859777343352067433827556414019490288970722118836804645352063059824674591077210645857237889165239351614791231732380656371416003722288458222628338944854072948658950411440954159345099594678934777143179918333959012162703384662672479852763236309041095934702144343875181489230374646809074472840538745325285899855655178824649696697623426584840878743192036388013382865561557615644470680015448154372925775077171679859358736197865550920294632074130694534019628016824398370253898416723883116265986103141963612562606914065166493812589963119745460864394827837037047860827170437722331544790249128946402305152657774876283779153930029996092288771914654180993160134923156384960201869647915301828125753228809861289053645539841969133880970979710355720983773522962213845079531976791699894054409883978297935459159159181067071290220324464306862434544755899381630466934566710627175575366714922230902352403486532413683658577988159587197782589328769014029679802591625872285918633292180093434167116934005590384511430939792789404583584829628863635327972305414601277790792813719728921578133663167739235246202019990982112546541380945919768779049975623463419679824677485825871218316701059205837079192579900825433453323012737561249312257783266144072671954431724194464824256805162530583997823979731606869910836866587751676549545524029476535608344656294561313991614447364326726723374502002642260597840705518809249391584130673669255072243140290042241324918639279483940041101522329320325665042444950878330172307414974907268235303989669379989944337005404041237591109476338693072709503739622024441340531455428733367425546600278462982531840377055472127093756711474556881186038693459152213868237907503531171686692550004346717782417961338331141700137984604999184542027034021251936627663904164698819887875729525602866812557364312150544707863476570785968547956006662152439718526863486621691743921136124044766245702194115062668847524026546142294122543601317563148373545350260217442806403029469892640804697354362921732665421282271489980935298450565565584673386648431175421558751625829757040243375260031805808215821094737745846291036539751000417055875187051694564394777559715803370876109593147719740493463024175447183761880743085086923227075960213415220662855402834135858284468849929599277994119798334897407946624516664749382884201518161216595446699794742304203955223460380821256407497458362908016187864389909197803282779450739583615543100097213332654526516596770251251152654608028957783154647385447424624466498943534584968626101270137943130779152765832971920938825246435321019817537191520021120843287812883349381162404319666899330099901308518101035447079295759103306251650615188409092804082465445119417431153344111085177996786740135352290443976447668559611858071334797870513698004332644245105128939373908523457411656646830650195945853270913628416948902084525512984932185234795451504777812885688921584124273174483682694623366703670541968392969509367235184653707304484274882497027016245870881350326810733397317166228556970453456842558933678874332087942013555236976615618580148472184195597729673809219492663389455118403708875680302522148517700020697700398617636104200186678950449492758568935249981314925796342343752413208476569998295093054868722403183782098424310012467050129726604763328556830149301276418435361118813105434824024888011119358886546237925347464796961317323193553521072989710599736036449224004096166139362119347249515494254683956674541818479164242487890755716411416006833737342505746718062676238130651074722693230903860778563864367292850909422004346298409638812436215289460894117380804223559277115607473535764447627575581750801666567307773554285313619072252087887648116380727527152346037979308486728287022778817249196711612626152727586032124213612794455447173044286855862332052631726546784479684526470531913700073227951227174449756005506419652160978451500424735972214174997733911906211445970137428889881036579917685887729784159064140710347905517211875011647273834461693037081680543251419261499808407722562001621294560876465169164973068097660347654804307112121330645371933500414470582172999647784508181065137510113736929236171313543768667433040515470345121997404354630057708078222397805937644772346620268974933466391096130594072955307033254991080916708560450618540439343273639014040717714723806707686773668015100466260984831603369172755661744331966782113193287326466198688891598577938985737415593245620424885638031648938188217530889369447141385015091362306080208914493221234749456331108266327277794143110167433968471669462317464402991695693635564443476306400522459504846633980135474186069565865133640114854292474509348361507249766444589672678061385822894338348123490480696735002691280236709921004350710248607373549090259937826673156347404271580181288806542282946401375720629143016368021036291302398931605585979981480538300083132035380268018380254832148013497288123542176473216393490713006697884145686186735156221960686272565462352257283940681766949573336001860737890921667801822368772019121694317430264175639034787139839031147695738564322214197955418347986928432795934740958800662489650384003941025656565398761325643606179871459362375660702910124094495071030935398595957855715306511674460678940070135993948878493420577397577306488732684015556121415732479642178709898536725406103892475945835713076216399751599911854478893560900141853735445317589253669150127413940606640429128074643402341205058694750753371347389682779380683802411965253585936565347153633251434688808036064620680948994632753316302787865130118776351880070376589307454655147103707328877998170681882029480911165930262723897944634894987047038136549800736835891899591157103429391165242507307533190662799114511187798373420904187894670499368331153278136371451107324759535837999227348042744339788538788726658500650431906084328661695154584578907814391684849146116293137329701829498703182311845259653071313860619893065386386603616010402501736694492983905408652174840313872411596362017019671897081237595256607685356286382238571376573627287374268222947789756748307908629938796047229857241998628669908779276050068426320918295885817074442589126125735632208280125428394242428200942305031084798859526698725805406070229457297576762683688252627936264212322683451687300115738156784409235208731551904514588649921629647483259803675448071412281575477553981182519746901532977318191353060166394880417021415863564541795040513829245333833967455996120851574988654589796236562043999733309259954023586770308720061022250007413374321042055216262252368771011138345170953909807917784356724293416376894924323513038795794069564878555284049155042394079269201525757600842442574350601303675988773657552837202648656688835113744949117882190300950941453937719366038042341223394425321342823831011076444928457545214514051867872801602308154863663212311636800878338838790176744693584341255711099591595053637579175766366853804776107877180669787872738450069391696740693758517482311254062401066016123113481034015063999062346385843366602969864757140533139143348869836243522168720449159298859213562280403990740913188974971035951224939628872025076701790004323323416599865060884050604922907192783716247490255258460282043855263016573840067586613682402877959376947630731078929737682399667954559318360734206266000971032681947048672752219442873844794393447875149781485381646745243984173826825836006719448709581510775050531512949078183396019186717528689876765442488483516337569692263446824094384534921228891664231590285799568307841487293236002020170641438871433300420349339143719331755142747675094767399459297806901088878963491584873563640802195191022307679547471887707147782115841022326445612822396794776829979831609074849266437350013421924635421553797292524608314487427448900038689533363573016157466774748143131867540449595975937038219138176150065143332822470016279341110015018718705500070147513415657515273085978398713225691759754246859943862743271325854545571863855632841528829677797808198130038726960598910656497380189574257985901368725352487432527190219158040410309509581994778985152206651784562568646517134300210457658727172381230970033180796480659005753028901725993402570010729156794155964465995709023674468735335356775599127702084784324423224057110807953112112124821748236965580509883172853540118638305006214159295177260399356077578830009373526426009086766812178895242233360023363871017263950233267056466761577194931292472410446382327844628701145313820723948803964869678515538005692393433541074440419360097152962072281902746012032387917906463374290507385561462602737472507332340345493967160866054760318852950613241759442471285275922663005378598975138934073268533470378134004235123816148247991506255536794746065631770797278702128160106106342646997800822489272729328891955315654058821221245409219055951668723498112932631178906574951760651715681631897941802228287919258948712877542294106628633488675736134547965407259484088216904252867131894587465911968103611052316401538476050181277614452078755816222680843891359291053746139493338000415913216927097336083913941177799102479655258867969376922891102576815212476088250289517064839981048443442266054447512346069195412021041206430374198767295222069427700263430402658610614720727089176233024084675883797544667777194395032437943982221001250095307058698055326001437921134543567600359160879007937409890196364973673732626193595938549326989425773615787430342532112262632488270621831485594083940842073436076453596438582239064518296589397584637719742295438753071791956064433462358108763359657339197138094520813490825883025554095880877583553276308056315633102663974848491959479973110101569568704474959757808543344782057692552133130709308412786299331176689725263252966838134359774060136326756950724361868257497692853907626589014310842167474069405942632945367733791704856056068848774230557811960002445695334684601486952542441218275587037588525184099644950451428585685245876517592478970137096173448000554667132779755930865673223167066275516910023429698007602729446120205716659203142881233907674508485414461851575494535439454464987015642002182882259787619607398489251838724769824115807212104964980118915690273031549509480900990464343655456071547060711827656216032978940392272870032603723911955353989589534202187997421561473825331386077627132218092575825606182174049627565263282497762889564583631389683205839290626766395628881295757682622356216948649769710529619399448226404618153209078195021294190867995617577719300034028703561538579207295501383286220572057352548284812138446932154226151045345774603220971357226788823475314150598919017737676403354503962701048473306799512890293136330992203333682116407581777662073984993794005146836119807407093285164215576241405145547588632309441953887341501676135167713734904283023284990890677154651445977777328072616181555112412158081561236455790153420805608513893738556492215011609359913630295512309192951026026398731783333716280193031516797670384513925455534335168663368342590593624078780945128542586650819181343383028850911023235323708103558437313856993861315696828261486703687211853564419416539682398324390041897613924597444751960555776220619817928256804228163327708216162329985466330620013174191516360200918582170693479188308565626812433851275370882308698459182259730598365991997794096809268320611670058040431440142664640996165012449615414390849623854864386524984276515148302774335085680676501639231383067706337787203155642522902955323501911392026701460902476877085534103594348721661037960842812951515917458136299481362299976877335531535800445314009619213136351377323141480499970518149605228367210485304285296282356081863683918539918227369793501917665348603182487944741384436933951401799908974202841633743165012610564260681034415978133364913753689709711404816393555538623670148630292604556844075345933932922789401016488901240276851075982601992701925199137671892479452529568386802158668381402749110605362781382066740895942448763811719673440609554637845900696904306567308602039668024078067545394419241154561921358744829499652305725410768547196853847869836042057587958765628830702544884626202549891379614905843564089829319726120626632826297482141053826179356686310038323051145082342033725377678320903149411664117020117301217984026336042202914426568966820204912241420406559437351335190037481164917106908071588219702131754450986693304557821858457737819561130482051675599077726497294677390666466049135772628679897696248515508395356039369264403033818504169153112779862487459522209583926950731619118345407256500621574905549570426224946627982097897531021341868213579813835287836886973637430591858722617141499557108792449346266110348545360147980429111386312770980268691699463307920415156432305210708373704651069905611202783897569104505270005489428055792973481670548766849988350408828088172105658584548084451048195836645092724782507739618117371210954997619597480511810038251255980508729782270045936654724864004654096157876536425728625132186607945407695363268912121653888989673753116922212560306635678982207715937186903716108916368793069729876629873907224065947086842516658458429264263932073963621933790691973648056902232016491131287891273720050877670040858238000222274520154106794521985588500109430766516990397684039162819021603235253774204615117418143772473080711716784717440907484292621478099765353203222738630762892054493534682782109649778875322216596250609867731652429850241086008203008350104003016126644405311089112326052661244281914724599803821291835134279138952850532477103243873679217092791037963300646619414582812850066380346467515850568585997665309623686439079388328789468793565486710897886564485281567542145449898695071180047446461234999120911418109853312886033561809721385702762279590529153121790472853876305646080601250492047484109787575219396725180047297941568645667940090385499388362461516362327328613458824509175592267549721407784185594538220096644658367375883687531825681126430759872013039937940132853115352299114229140882252411953416209657250628157589237744243583594271668620676492719593906884893412009406172055561004961837545374574077811052304235419406443459656552862811836165704475463253626910378602733531877675205681010324758562816905573107535187672585141463166451431264621044012983241961429721039641338048113185050712210837478004066215801735084974637410024070440570525612781252406554479564949891151875316891906708737555626976068211801014145795467348989035994386610177591510375896581878132517280105180868377357128709333898402839580973329641434503960895957497184485323298196907155712035917557001278062130929885445579262817777097712345613077646320477903735336393107855008047971278829004815891903122214933948335955346741205245885927513493500408036582267250166705722004873371242187824006202287110482858629227182184090374015631810233085757612273106882544972639098683025715285015041979640989141800428720378125444540131066133439604078640639649337185857666931885159479453248202585289316033026290167646324240810358046963244924784559398203029515018508136680073113284552949665765434629430021573207174417919643914595804906924696875292192638221548162613506195762465600113483317189338429401112726136545600530081335838540767114446216279643936834362651745913617907939617704220110044455283985996201135648882929393932478454274569555663960197855549188607146717504572608078149490029485569760506833929303423324636420430263274808711796070506511327539157404558742856278000918765254217508328425354344801722422983358965716638434069134549777866359831855581968544650109509519109055860355331440180208688890212305569105959319544825286926040247875471537254409337956561960627982490339427386711914400681029452093483432043879581825388566600649514586968569900226143854904453103709818780119486446690269609079841568035567730387862025315384931923647770719813244261331210085717780405970416038512088631797963580463419778365156727212720765792686574183301161604534195259820792358936949925243516592652009817889447113310563684128904697802864201921703378030074411590156173564455706026927745042005394363963160461157860342035622750739370186177195054771066259590258323776130746492663109514958340287235473686038903053938106814254213016897288345205889726319223828320071073556350323958279013598559040440442130695514260410858711390243183338798295507390359928249066756555432553671407297383356111830487077889460776795883971563566206398167744107168295884756625664410674675156446406115602378253732613804358666945914786661457387394345542930813325916549427375298242354271736652655486576662549071825097652305409763590441544830889369220336575216922354437399218830111393606825438986584900534371817843956574403473493420246974747210118539639087477235424662329505740076669414377447492451282841051643551166747756557270376898240814578712502780625341667461955749689110005297313174656353728789367876902597495315831144825454327528227171351117506377881216974425176804154126328364547224743785432812622847747599434371210999807627820697439184545454377378533889321260509933773370125786788753698713158204166891489084147383414716452091411517760978717981840105435399725510741719090869416756770137934980830880680129310964459971528993227591317498977602147872021574629145134577273926573323830874995132396291465343376662387940917168310292571598768045095570332855005004710147473922268193454304521549770890869687927630857103373989601584307683832923574750626045726049969190355136098945839591895317001567752450430374646589016837366405375881403033655878726341120483943185467645581777359383843104584262848918304485784500673275585887810553239550929724707589613950693644906681232203926335296130658094285148539524585671562107537403352115955621161583936994804842386151745700687250700200609724874545587933861981721086292924444151653960026161978422009907921546699389114481493542240792263380335311132077831166880785528499948634003953091393904615434669087563148115519556357809264457589693886058609402658062955897037582424684944304123827357041739431600540798928304868417252779820318030767102208376302406169720987500401006670021434700681517152860643660926779840573394864595156150001910731267901485024799356904425770173526160583539410611783295207263843068432854308261568060618638602513299067151476641430573534288337789732760875452186177093923669462826055449617182731900655061319520457794391605495820723258798435223240474637014198571577801690337184588638052684505710313912766128629692754573707055909566174461873247000459697543394357516059055691439568637724940933593047727608172924514710573982728544561655914803681110802030767684209399181338961672995314438953926863176191189431998743601063086755317229971274126761156395052005163036961496969625788369486342673964094640446442681531079207738430762408447292573330589352821766617247913381067190385436617010749775778556186561759387884239475437883485345917442858088947346964195396692551715454078803534747838404500063938833029950343589101637014715096811838075915990643704294884258592305215583782193512955003022704031353762781329906895597547045146507889794744687187519372823653756761494269038226332290370538350786097177805895920732503834196199741296043053637999063567521526733543395672368647281322966938158563270456220832321046364607533424320295465517147441488738034596404531883066365053041197239567801286865426700326974373214620934252616653335503956799147054977960325047383561782069082467472479785841832671973065848711890120879777363233906093804472396561766939961017126136116458314455008519536063068104567020383882608703609997984710260938042586962062337805463576629783691804423408896601078155131433747447216608774939616200599428967969511966396379020638852395591667995298299860260096355136208204626656446404049965339387431434297208289211695555385317121253467390472282406900521958675997622619363512881906692933412479346798701542418867998643998876909226024440642757601062752753138464216815974006495957079949699353451454869799027417519492711573271915098228059842001342865956359945627588790182679533281202579482777121607819714689080794385391236592765742976489773017749913328412701368478105054032617297485341341712245678897238210795702835592082647748397184639438595443904641141197970719157510135094431365504138946645959113468023457947720540110801240447109079343700805827221815686584160566872388660407272139886768310765194876942484976204074698886514766633114647599599883946083852956279221493342516697894617111685860638152264274933397035688682555473940637196415005418239361873257293185446307096645375552929849957398063153904361317786404049039303059642884271191932239969414116392424282575132273794069946471230267720945915844953523708574138559861512962295073147049613635141529670300133445171038275535124652006625582961060259687987199400081368623090488182167988639675865459487026768318451400779264141738035371744792966375389395175186118846672766776067759117271154196412180786958329069058312440388458757489996048401048729807435902234619260962460105088251396963554609198877070284354897735330398105373262746341878682775782452185267318145886201990760045605844787272485662101215420159051700630151999912732885255133902976484754571012927452555064253707456790154001593893601731289167620314920876802898625940806355175938750735423310854754062717708606368582067176974342739103633167853865073938797204462326446210429612704833211389495710884661445011630664622984565105491901119821859485479445619275341995940366228223473489461870749678214743359344917965962894368153065385461498742874670503896940280391841763905461529117567549008453693525114651003780982503965085564110301414408488642153436929658117329302380182665872340013793350026531454924266969693415134129884633704056576297228110205569566447031304130348128152126313396888870933776076762770531583362438976546217753627262852661365335037620213119559750813339986803613082074097770250782957140159986261549446575132184199558784530290527453322807255638491457402090366384506663027807688275009711886551270822212199590964077973015718423031777738847495562127765717739021201073424814051224644875524493092481330778988098153053504649657146699752451784373428862260975255556072540725550818182383531192968647353620488388578763707032627633443572899304868949088051469037606361337737166501955673956967409609565455892712134016148436827564391226481690851374138474051864227339055626268920860395557663054216716344869504752779071829217924488474735058547061249733699551829870317278319800640761753415017580832868820427011580274553749870070978382508236575240828570776342393318199010409330051367945103311222295790280797381185630884360989013459617773164536938201920442214002928643907924342684791792703516847836230625238731192450964817707538579162110885983639056003108964235516202631543543734446018022704978517630022234821628822107323655819431816364830599970572142089007637502709737473139683354264658549966705748654075215726485361512760770476600846532742003359326361980459215868257655607814151660302435210549846344320128119735426424469122184243452304337404947945089547556251595559715340205211446649004615796542487417887456664060776190010890404689357947516309918480964723402652880048620438521652067744844077756167252017672819064056152873672373695419700483066100314830070482317359856679376661124537393926135971219859468714172212502986452861975181994270132647560107466150894856418421722072196385576408107336959358064279732360900225998458431165721194335758823357403969148955938261947920494127643317992698381737780876503272580943871261578922231574372066433304250684270524694958263560874587578178830093713297762366790421616271797023656571384396409679360705965629180648894976874718823538664647665701483915952717886551368260776719754017306290369165002353879839410400450463026626653259182171884956493742891480696085557898857812572095654693947315403249026320172697610981462686313018522472759692793576294286266763961091976941479808035732548682636361180418253081801654595361933508238776819288922874070673603035956761010072655305985373745517700624858008911195054457006085614307438724871699721964013283445277907322954998713289744156131418809641476329142020795325675650464947703551365553955850773361626623012745504616310211853661625301979108841989848590533909297724708429145048792606229056893309595600029043931720640934071922168153621490376308747768066452714046763839183013078600497230173930220548236859851161574276704743972630065630738255387583374184739340139096562600754498774620378425692125799324607927278363449359755550433026115694806698140064620369314471534797215726824077078914546922394341435154685656643371742411149389505849633581887213777008423070057665134657235100763205006543717724635184214220998386678062090649628250316785824895990200809445682199922198243189251210799036439846957023210732799570714327827443621574756154870787660348489760272040468101410694127709761278473137721212122623431770665301305779579176759867574734189323680500916679493991913595762409827287408854724216787196283973198935193954123769545729530785417573059204315650897787259698608898433034821644510147382855158695850359343064389975443167699647007418175158848250098202022235366563834675376680381633538904884263534373646668360568764412014444245147963618061434496245033201554054767133527485910572710431885901990841013329967417276998014946652653260263735830178668143061622109024376119792531397810851709337467823769539738566152047066851718713504393778321042560282189298355222396009282604363994447974944285305205376825110839283879746151221442444114457230164986077313799983316559669290603368763121758465791116873856818763776233606146839463502789079296904535650561164254584000252283202808376877093169861096926704042728902897304609031198931650189649404056817001306656303198593484017126801258434740673659967011254357700878552305745271737796475216281203579605411360808668155035578550012974242886169991462881607836736168057157224365595929990489992359861995031231642779191940757730855809061128260792036546908340473032506041185572366666881998980184181698292076636499338461073007907781109368729332795650305265045959503923859662027599535495454119967018667748445278996704578825401488029704736622680101524258556392727207379018627771306525488498470288262823696685031756325650923555215412593769870000522023163437522384412075175387151250848311316983338850199779273596157874038333361720747951712171200155943740376464558466107281350668866937618115607880319078386740704297254961682787076352331013174985972749074362209200869206217483783092455533397640487705017929898158172799070190963924075360205286284872250545534463227107027659293384051207450102480682443903587964579473410306283076060924519164638000223199062194239832876171728237042630890874995266045088077324819794569066520674853454824164107659165708252868218320293251015937084672684077201933294024803691566292003830244788229718956042554847858843542589122994889243949970866660988984657316854196767140315521744461769926713196029800231566544519252021425689781659312120387894468081199181845154730176540052267220584223538436483330150696529764147210202633773235519390832434489200686028348714936622447939848532410182432763937977574527210325063209407554869180407794809782310198239542573040176921523532193571876163509687612822635475721707020883116810493494451008808777494734760531187327520555561754290274956473944153525253203856192234630849219097926620501580631030047309957416981068190821606389065266851594166981725477614544772967713027947701481812108396394976110805794309540562043344336241982907885332005017053844086323969104663057888522782496716477149281847909871165523016513451205698009929552427842523374003789847938471422730372717395845386900351783768793124460503215769542805835922983966452094074978311842697253188324440971001666541235312733905483303895874537537952078831572768419057943147800400507153405465870813702228897090437675068675140711770593798590177913532807370666111947948470320257075289483411137971694291302214167101438576260205616949282447365711086317271909073117997961375376631064190408926858089117270758752924701307752136337416144674915602428797982048337510642338692330466132984530571432490217660015015515661688500708541605294510946747852059498227036726732858711237940127104873063778689278386205369952721957590361968863327763483539947675748869886718933818621372249144720166932979963998447765326035789140302562691801186983161662007077003438421883696570179893302941135712151730621362492946077878623447753570464900602871732466713121018342103707159901530126930233615973283514390511598451413596045634332066791026785378709862666828966263469403017152820944616969289408958310045574530309654202778386190284111754839868475087775393459568800277072547861477750089226402324989586390051514430901055088875809006064234664874996437391131602408631604831669654660866052979701578609766979307817559646305361369736519974490739402140066101664887607941500917838915198906810804683748763993053168912745919835574893716787339700252388593200281948706298519866963189286370237030459695633353151955361787846937918216655546646380231268900533914053617401118495169850013899906338368169643359182316947633124362564140578691529786209690101968932932688255456794704879211945515602020271140880523354018269411636298590154323390646665613999054852842055656427397239980963561635420514724218438914623341846121480790859740646544054062425716195965229025024720904510531546994909936249915664965271780284836349577733414235320983607239185254722756032986485169996277788786006894669817223809906944129370737388488292140066432180377991548106446263318076648996219014132515512798598553117081154103127599635370404032069690983512730885703352740046089596419044381394170934144233876012662151543048819579151038511231776367288141972885389994345640089879828247065173564609287674581908398303739225732700004372665706120448205061570501515091661480533651660091183901644446591965844572124572062329579378790550510209432734754914474977370297534991703710546155863515259790283027952209625030534273860408436139404886422790195834560435979662620869313615839828407902354026839615096692179808818232884521107000424580539792707912366231810094920741956279686853545891392574661288261740657956609870345927163589243902090453321373955178842015225870370511834756827043179502864414879847668809231849398019520230991910562072514045152915351206164296258134274770450048936365683283622119593560291024278577996931979033540862708182279404633912466564398763382687521226050171142114471783033778647565781791000789230952133154633271656645089001795865027032074432649150438857823605483360325331561056124700927400059832690279505350104573317658419058196551194442196418696236903703239223509819240742884709650518951684643712730547108941714961265912409417947187158962919467677059961706964350426820265653431999522234476232050620496973043088477307937308315131365923013979634815757523033439691902502806141727257430448148932217333787923166831119083460633610940436710856337653052088929982143650909764204418320082594296079753746847164958772239201393565641745368032659414985652545287667583505611053283431392516420573217223459580914775495848804346235484416862829981672184414578768973132572975207849238854410239450961394966612579343310879872062217156114054529187662203472006746012253588936997879319554965512700714339607479661120727868310687823722503543018232320961741728202226455413673749735983584220760936129107311017101934127999295507045203114144026386701407300791536958136804960406097511141310312612694676049846379719909485081380793550387396759461393940728870309203854643593216482918518985066139409657307638978682974887371156624267428634280020923695798164583954810045328170145893972710997857656330022898112328218329421053441337843125267336307472570391940134877202138749539678562466156149393656673859975729609625733017344430702151569046005767781012884296591317180811002686601781219870282817845139369194538408222703967548737662596505071145461111982787867888392434599608483420708274738650779621525242964973753856146130662511979224633319619059926446499302677715980088140003977001729763077412552945857534591989101818655383708829731615691963544073836965509966810362222362175343980759757691800356086479182351475507515978149150743788102329076047760297932473180844760352444332041837647990613083785311547311741394107228729623805216388401684212133912253895536114123824303837300205164880474068896842055981844528727142945775465900200876222914709993701413639094835441385857433367663463031579460866731105138566486097933360557543892803679033027021865482021375917225038793871054081353293662288119503838877819080275133945786249242856383806794837062796975967949113852993795769456430397049627329373612481150695554415446076226230247425649055862968814815474086051050549257471655912234605382672662117833120411323277756268316686863702898413624732812042142302091084809537220240611649594112937266699871509212772638065603768833265478672702493488936329864511663146682789215035859618172201424255230638444386106787892098622810455179724364097486151898931371299157058638800283036920846608615731646169623151572713043348826911456336479789531902947722904182722052024323974295222194277101517655803445461184603495483467896305295326274170764049771768222973503955481550743497926204438696856664677429215686484372218380090263902847360477209732897289700432914496897977778956197846891200192257717629830193113860574002463665941615347297969883326840317397865030887372713645570667984011681365622839163221516218384564652397902125623502867704047583404081776651801855804989111772830310391670295022744521553145361974237778905661026234062057617261039230136677502773776945056295004145270246640399553207960758983162136837721088983982268116722197019880116307905469689170469434643418806826803966694846654216862249726891374626266298668071051800298746120860584873407639797922716626401727404989362347793217971939225900223996659304445504312715021952524448440881150113955186168052176057172120766480438033032708125294737531667275536572406877579089231265368562981266271193885939932414931565411627829824644810325937026630761789446669727911086328993848567903938447280385866783000356860101309198477852002475171056450142770917716747493536952572575902213980959157651922309939358151862563535397242959393242462619881640830369296934314729174414665772883683839830138901332915385756478942369950700113940829898446804647458522857136495116805156692665086861054804717482622598443241974157112588201956908622337292365615351532766418406660488680797172446416059748334639442486990689646840311017821815539558339374912788831362069525147593965014350099044701741691712690782160210304108846666075820583898595516223574206806846889599280835403960154237462453269193786183639206129617502465961470065913869457245722137174410116253964148680846172085444733143165473237892185353289994606197895749512945112930315383596566152537723684510125922783872316857698536414838553705054126602564380182619341892019847939490103944005090629430787895753767067696527913030435549741279131615913503288496367517481668349982164913042687665938471724033197862768410620980998020073452873820936850793012725403698764350689752047102139758041316550460423521675364171247573766433608187877830087408561195064611409598882694873021905201682002123170120038266756643737042063697247558833907909791696996055109739960929973365467924321722526968949840933830324598130505295903527149514601948141212746790048406589662225586952235121884121573464542315819431538618079181658958849276182487491705349895345310320921737944421727981877037259277557251957997108491064833606345614135454493103140166158805542182982539674144025973458141361517363630696296627516725480606814096554656172917117067340097136714589378375794125984613295355324294607416468156668400692208527291768491401912500682424412586832774443077266487299599337564952000626309471241545350185637005238220185738527212723364155553795158916361665545161315477329020709191618666248996180517390835314020504146427647938251271488700359427225787532594817674131748496401481196294936125425192585561794859220705057831811763470409195160144836318200081723566780571485358209909815025239850142035556545099214290720698813207733398940858603291566968658587474513272906197934337369855983856529701915114009797309754190456076815856787820132411849008311823050534242822585776879333728647899992089404643426516756747949144435440534719091764811185432686419430824444349617695409872279057950867301149713157834036962881998655926075521111231842364353721866904170604297087435148168101341811594068470821952630812402845878377002903989294880575852413958449422192472516736705102654667824690726514560240144708519348232585044504255128782006677597311912509090230383258506768183166486911352228423129970774403539821773063542226652434628988851718527078669302849709142125353461143201647754551479951040543943635553784961294088032840604881462504477645215003907105144566873411066074939395762157671408416213502007929465369953063808905875453783801718771539853144418270629612154552890522049860722907032896053443266311868208505402136385137702161544852677606576758711940984881099943939368737602680269047558794870842296619097461466718543380346684518202762750967660359390875939025400126267663010140927838662008942246074469313863193406803161575785809355250286732902606645607432534522382781201090484901913952148710846473396851649930097193131862887716516401199146086520509830221305072954212749564860070137555175999321679480006073282402705587522294932134845598214706018013001655342843562605585969926563924354360468840622441056698110845695779743196132557779522145676836476474726133988671649154381321498388291949699071182847472681751290219790964987260793864826843698394589166196775105968573886242827352167516552004483583626590921321319406984185687553259675120326737590239502240494037859881266614107879916146682769127999134682666870864349884520900344313022466414554522038860976891620412019282337465697205014082051776426370380128880931432368178530360795505340699204304091241404508006592704421896304521738328068668999757344823839737476208398137325736734563996200049752051297165351427427757123034051405815537536953626593833892660929209170370469828051885524546188179610600451265524461833336977344668635887677249037319306628866540604246189916557299002162003246656517506403824512411478324984593016943783751253097839134057323621695838151079993830337687904890568018414503072685787023225620824681870068297287155490729041143409633163883791541202045367072777217995138428302251335699450072675665256127449364168465147574137847114179407138562104639496603416189135345542167361301449716122284874323256080899739450692408214679558838697869099981108620034923041302354158112867919979612579575076435588824814830374071569153820230889083636088379104674238214049081664448138656722023010854162132697522699094544339969371690234610027840490880564958924906104201246015190345390398060766345393528326710880766493154998044134141432470547776239266352219060567371526048169863269679006434000120548186077866459651565751393057866927810965503982892402901063764312949928126598061251467876364258400023059936456926741285377071434827416290436134567576190077613553689331608330653128199057156565803742601577743426652170776801936527541390637659644764447369693236486040409075767487309229050361780677092549841252042346069325519250879958520526390528778738555156458437955434637486082809614793079671066818537117983092938083516117921854163946217837605184059895841648903486611263489196652176839754398909362351344603983893988642347695425814452791970949232658094016535150813677093858150432220403200078587554166501169647611354474031648490277718027332809505637706632972655668811774523534571100935080996724324210721483117834313073376146177618947786007472187477717360788809523999025328092090178902171639040585627077080452316886537300666837750852938335520170249630194863913396089089018516897291124814562188683125564633566936153401207037696230556230468180417564301916643061198584006326084895426049279605554471362049327106852020706236164303325200730428912572206052459795197899129802605133215558074831239131966339277069231829334607248845581659595591081985697694342695024278226121954512778827392621066700946049036507080000431147880092357065053383546364310221932210114633042645295720260661021250763348558549344674159863724305130517691935471576131204188809935676723323138235516040850581366568637445920796070136026878338764746741018690308346419718892112572602293632803906801878678573369332141776700043719477136013142527302979275180458921071507631946161763322438753817810214571408455086588956580615117302967180187074978620154852348676040786335815924715133100326106240596834592298964734219383461108805725259254370824488269873305443132365435539508493143389748925718667502905120642272375055252894645089862139811224177976655239673253147066429096492231490875232809871596425159479247041431257022675556276620597125647427848917280724351881678988726634733792805573968772238262517657021932630532644737030967084135211398861275888633613033617149663215596834504580626499632409194650312195567689062622568841493327846312777442872254659072951684563626983787592079825795105513548735179315598188509994785511159725279389153702496218989081209698678878973649136621530574572301681722652616841084693420668775833407180691433596560405847706545373219459678848029304178536092571426485970946922241463434315570330162085984756330137746561465415068265840716767137896210451777575693080444121955743538860622469377307591240264698373567424556473366558844864841013222388052403811729354640893517867411075731364774302998610863348026298387201752508286156673609437511269496582759708610097453125681160272608383237035938273020255378699652760922488637630360242550747055489850276169431514766307303119824968729453640217371187334394479764805643809275647435842580360565508921670706188614957069278606015215444073864554253578225841208699224904393756631663296131592796593929617427116607075076195855885957537716486045086355220695400161434449261117367485741362386990433035044525802292166792366166981096708595558583869955868021400583670740753367407006288866041973907598198450577862912310019981234344427274392817231997635550551505947651906866790777894723920018454406641715772355958284997577906035655579683221616638223569649005490044248430226519851907848594568314473267148752678090485092371398948137237504848559028438283542234154980177915864334862905716786534471090588535622369285232301022810261141706517930572968179650880851788704994938938256104159121318523249809960509003275737972955962134579222289409135881760273475966427288927462167370475462746974904707166880769353119447317553428167792168247752926057658972039338204793548008544708849852614659026309793786525051152376710204063296590568850609402563153965246628845558163314153453682822350034002256028248333281528591127644207607885027493576018975039697813868306583227502662819150090788433117862103106595719910700792162320552506043735215644750998713228440229783547097812421566877941188547352667979857549484289266001351663016989902943832725195980227746931759417541371475050982658526393247172140463979322705419273764500584474948656540138567532887233669229087857178807472629143735771736210310451092804634121187759746486783635618445672974392067680370434417448361213828610760534023638751857658761127020169235678591150271728361470241850920699388643783026896032865356435949866485677319114367218304450820634115524872292485806725943746074730277387318671034821112699093996552963633552015826246949939765160029220385974771598816753345577682635991697505181898145580796812654984909869337300848818939215980565001295746925967736478616841010838309994490337669402698008227627991844525464418083504481003847179763858360112457405886985425946659392394755499991830307242565257711284589067491532769860629475020709795845663962654111658569773708586954142493253023219401992637163618055855436544927669969191837880194412150176407013967950301820256942525948689976342945004697302579086070090402256428968762255484657008307542686694056130795920252438950883682939815333621110648250234923068095727523872271974958070370136111146750650898450355889417446570716868914761812367051288551569692353001971865001080827519263055553397796131918510066626677668211171593835377287303122477845617363155559621416150189085636478090061327445581171002512672456748466575599382434742868450321033710297800452429281796177449749650991042038096154426054072658430490435294585589533127358839525659678065046353721125277862481029877690141769708871213020722850190923706653855203064511226578205243534748451154748218595712464454581485407598949382801149187319947819810182775544013543661691928630068231254542496657902291993044405366144220425370876134419117810011847744528188798232692452292130830696552960081717833135787579151988957422433600375507891187495476188174828342653128040164210261614493204124049581887948376337962143524089761524868662861173846592516444125960097752341618483090352594526123039551987289836656954156211587418653719447058377749590004566645148711728720533816954229732583129950017885444532962679167415285693083241742850847447127959455570652751494032258321619040116480110002641438354126586635792193764115595565877360854596540595676213776358200361924203926320697067477274094914346349424845458077976174112951492098458492731597735661648779130537967107814711143241365442607335663570126703863553830572179900102107683610350476792713675895058659339648336132367063397163830291851047640946513240419183415084932872310835022164375896907166446293009845034006141499762657105576385396452486406604516011608840716878240522588021480007937792925758769018610659547316614901273275018604722195020617544285052275930212679166457439936562871336077849729554472582622471790337406877260286539313030602708985217550705069583011910420146969080014825096960087929290364981542300497981621052899113871103348738496631281265421662794049350482266044941250799825344659932345379874288235944307945295508116101823315753941276090954466810036348176446315141032597703969416095869330559610262464566015064840903021535261887768332676129546695509132061736655737799507193136557948149256334640376578775920392624769794379154266415347692737660284462972035750260301840193091801576772179719371749372442247588599548428948638113847427725990436502485140024355555808068828981189849078743749850325752079395885317425357906358956630135431812075039958314633806798579283217357529965912836430111199626540122441977796313984639294004709979565732250480243292145095467346556107950221218143997159967266802274948732912947019263664882836504045864771858192544459986496793623009281717778430213877205046779891580684856923997913422928229922100449118358029954386183795943631918844484537655140808829238373462249487286158847018888722673644770697482173512645403691482405981153621543011809237183818363818382628899207003980662146240602251547845834636678801704664631659663791063398532764415779022158046369727989854628742762795419333857042017802744952541982245694766798516115043559147158972952788160562554392056515252808127697011767039327746209398429372614542440586202744655659064744052407672783263194228222217225363137232327431752062088791465023990798334773265482672104238256395455913153384191053071017145117379051063103997895017395144781431074232127264919810225639871919886002211192407371407792931145522019649186956008757895525320932687061509960325365280307025801533433942862779936227675247010862922322572354098395995154601675802533721919324870214167682080616506635745532530120333995425153112972632927155100194673485064871246159434361202044786445156318416969654148555457815041790125483102237199036529762540546040826852920256838085649903640801147817601526202416682484763876172188065651837293305007404793237379705857548541374743412235201877836420533046861793102892916106305935218388084103672332785979490752349725521330925207543610249370655694214855077624390666164656533091967255220659626422950231105088845024733131512316268948243884366215630798078991180481524407442664152168816993030242635147650224735877176649325268466856982428529286136821017606055701840893768557554654354132449377922966226952922443726159606452022511307709891465382544563448859386969291362317493034778550545896494330571132106581550191148283327132030975547736812082977573778787682993574312976786586057694873291071019811194615508790644960469477933166412339678799964197651068572508767483769286458989601024355770550574197680109672365315742537789771601343971845949522730487558403614395655380004549129583114180663684407221478303171665486226668111781479887216087826023484244675195412174042461721615918272996395683399078917259275830666027092677616158878544233500509351594293940606597396086515485388834297854223228173308486606095836446792510567233600869769302816415689254893707994645622825366928872819504358093494409416262653187099668880480415483730600247435800306430017404769335300724058816556175146093694059576542153030486780897065468919709113429699166483139409226221122880746102842179635709974551365583367953822526268585990820728839781402913043390142527639490875439264240872105243084869266470213003259082404505167976718888180514976230122500448261648399436225162248014374053478151714153177495003664128174780791840892989819959596990566981275365244013107645964907608070310994653977811324823067756204867927109116248599752681974019385711947829934593230856997670285981126490373698598622471793335994449468569488036405915012080971998957414932656005558320046015009926707365541479962293833848833009566904476992246389606439035201334834179345285573530509340440464916974727171153326232970331725933954630363692366376276924913757226383969102926245043498658046336636160670346881842077703397400820958953771850395946711398232325597172699209506423285564492842984008103377545987796309847976792914071464609336039552523048214125241487135645089521510681320918456858467844984271178549515570950040038090310890549885511886055323064924297854456215751497187363295165191679026028964409237452606026339477075337286923507332798532373485237197436684422233452671480014381394667306949418596526641282898624750730806756943134997213184357935027140176453297320584420867442956629367965575149581805959733895852155738999674116351902467796943070659808335030195751134438902292440833358784950556935698586473004038081011849053429784839575094951313200273708516236148002699061475977181909358169149687859971915325873214542172149427995470943532135385457797411882052596104318476643965373014309236523475466320120729130800022152503563489319288068424561385935582102085316203326890127168740186520250496404030139574259587190061857007422796174514226058784131459127894834706330151484217045036449098741665356334181004621202831192837867749185153034899373319759001981698545260812459397976121541735489776768566315539484775138707831400492417085953079874902150290463980968176699504510141617053156277037773829476276708676405438461134403154264862187524803189798635801233404182919946112034742448724417428739469207256750743950738011081315521312345370880055215872227519414429548649708249043750711183830780115448380525106658670405951776073797216901833234134752751833497351429347940026654916430890610958779833512339150255926328455229896459643271212656845212081672468333491912943585772168440275063694169042694538964978945143966440307788694182962725679771305757805013995411600576918275560086433045703647045340812802693649763564592399861270761032250491115190138056322767157051612853439016240259706994909521595946073030519299861245915903192494157993801840134659527668668659575351034050509820132393273905870808838900686838305988126367531271689562841272256020756739845786614213484518226716318637732208440875358455607782011398810651836328829786825204954643167248462390636005520644094597274672619662656738762948748054952378669069657252481061631671539086549304605534221326286361798014595789144320835833234260425151465648176330678073190978307892994535746070329097277039121576827890596757483617273639904565701017036698349709340576016220255959209782256819383823629273418490957800774906743845818288699005434532168327131459210651099288563496615027207713320898560916135456953886597974258932350295499716681368211916322588380244042230332127844430914760665051010806250699614154989077775545736691734970880974959637909606747917283176625818449678189188111418973444693649730528846612511772206014027650062466078221476269715025197301474020680901891744456604898832632422324262225895589685091331538918510808445399172637020082293487148864197567610733267275480857171910307685001203597530292295077810497967874025878815818492235907959994036000026177026446594163738272194763100843499952822649436756242004799742597017276666708828629497283894506929701890008527872950018446035832710889978783316342689519164776533989497435602921333981817468383797341124636889027097705732158326104299507928486124571423398966709915222854105850688323145169367843644552688230693539495214730379684197211763733433606272592912082783269008426128106037825657564570637637202362599581587388078029925733442431579631373570060253819917826366351305328458712007825059105370452133749270445936457894346799679059112951982484669302700138355184376418012783274586337970211247264410959155803685127088032625417267608158406106640912673397476698013114104366849239147000865918872836541927071181564315880632545950485592671837168572453088691131173447221987975063041680821566092123876498535321614632915713117935013538507434893151782214072252157141652798465750797803606831676515119151739971987927525387543797385505316818516048540696289287219605801393216007600515308711994818439335009141848065584671029589644942249621863659003732933644070406479450495595880625399383143125592235886483470497369583553625292253350142353012780568617322095564007699387857387383057406243585346455485020678065774844160790108524673274414802256834711066312264028726727954856890212833376855106090793301587936861200684692819647331776164119769144567471774810938710287363808193583601763351874871004390620085634968093186361167103383859460596877039430068411267447280534319237044915926190907266233082395815231131838566518732861548067045637068942564985023408001609645584492980953668401166893025364346346962497475385244301470909838179264707637974765562673785031472304862143033192321879578730342291103218106150221671277506710093554336611449196226417773410549750616158627508791944204336280816923334790441594682899056187330251694823911130295398229612291673158528249952297817483285918640155863217575714953613231460652298597575814467142633140605169291092622813280728629436166651652796494410353031041078451677825726087204289756745360704057000836660052372418832308478683708759100655560890290827760231122741904541836388683494992158785047812061761112272925375954844823042076174849870384726791033467813337713723409264820663022502256971453622442079494111946882847334444876081494641831120809478843889712162027563735463938940422865146829550776532001050926892757682063431778599985438136352122218001673873355039704968530999343364632088544544145931610938081195719324528501433815307567918300587354713166978393929339909315872213295549551930325705951442610355265316731227446683028156259783976510995062912447713914938553005700413056031518822521179844179697149371753938911062763591852401171104079179924857219531974077392398880732145194830965894295656474086291471464543307150950008695996071249930780148446745047211670252711367891004438483101642373958143757136950304719584700920755954882072787858600728695529358149266217499241816207790877556070701544497194217953260770910700144614225674245737967977534625221747175441687575423500504407409751478561297272411478765584940479915293985239764794621594375622286766416122869602850277559759467967014918715358612246133791754969604701365542367464472803598614681125090100889438430828796824016575687387380620096488757011721121043745942961447573364811662830978948618772494755052074233576859800902025273270610622293398604686131983195404287314396347217093546740659852059767829927984929091825864556443540786105158288211103799899638573762362399206781003261854677764892247372936417188993273557674710075672719243652160144388336063742889963163244506057592518206293522090600910376613381837604542427288388191319490563951403059527266820577981417964108486498821215405589490081390264241932311852566261204081249411871466771105843087855839218115921373418301235562287540372588038584992088161045137252841476237827582217329360041287766659401159310214354509191215230272943065214473167161450632077604213388008165051670033360073572989347376298159255430353824684385636316175033004827209884433786744863308015894782425486348120320156997580262311742099894086129896398455631091784161613667822972516661484793316654690309723228989515915689247660470179058956967820579011351501751911725163988722790211877605130621549244887333191297229554941471484495648312114578707423884541123184873239231007752351837630689111625975988646341555650151444797873367539695323017260026726471780712046531545466931342850038880569712212823009705820829213360227740746030982436149013712025452883301301019882193980939622574989111914458830555626318806629938773220648226288310139676202994229614779607411465201062478158735935310019712144070422853173539098660714641724035551161454216225207519577362660354821720000319996209426015309748582302637633896915125392023420731555426035229574822366692287006537356583057019077384794549976227978625447085036420096217417861547309421680360287237226096594463036675092155242507145338271365723927655075165592405491649092371649937037503765454848434290272571551163210535155063587460729689213838330620493791149279012892096458452167655582733059203666783869927389867351990509365031072614432039488759459547994826267276256419262536014783367304064210364466097113697580593425355534314773711994263028810349920401385565372563616817864775043339564092859930812242955323666650563585885135607715361649748946651179608103285090955115294766706113778202909190617764079083603012812822290059982744003751597641501546897019245556914292467623095846174214248875743749061802942703315508038553057810117379249048700382144882221470512918125138810701705597337370661276701190704096472062624064450746414266738830842134715659345319051556558480267580239362271549847192188536623733639531061971538920701672901958035903058015215372204089480147775904782021797777664784694205081123717930503553674036300355583507470914827652692105045573903378244119901212632014355721543622387869381106071714100993363043214464146801954021042684288378583056678718710543123996341184144302677322297716939627072232744892238644847992208967493562725058695041104540120852698599758035194570695535772923610406582571050129695876162741145043912205648366308470893551955298756421411403349331165647800141656726270747545417347736791866658533334945239991038625970594003095197196800266848332271593120680528001696485633909091603705810155468167722740437013328062784419825013310450458680136791342606323026200162703285940795484789361810223341522471128045406664760304457716477343947008355675070686162423549913547397787303350513143829470638355161125020264698396643082470694625718484864829401183297994800507460096302941854682435498139350881719893964037297270355365720443146308407848647334034415364186391824940754851733512550923402307090834070343883336962375089702072841883895759214920086188732908095245055691742628570909501988326450777313421580182028623587065834115526297740203773435458523020773260610857290536166653391373421274990397421686978953256039734313944158728934157538273629192992360554866034936777540449254902336739752786666100974808675943040187985553382847307923347566130704323582994270542791248286381106849893374177918490317710637061584917177429985047682989864761504333710243380544737913516389173545416464333905889473693842259391067902335404984469774355219050942312065446988278458645665313863169950825478358343659849222188663308145309413948141025334095611937265308537210261085382614802526866415360246525850734865282171019191420461236089526287265936561920848915576840905119621645126438805825303828013134403599152801991098080445441128861402591597461397353026238454155048340607127417717570979293417092979909692144403638140027983151433325273563894536267754889306737803253415433137400807242126080092892646438149917718590254147977785930725113217604486889717396220615794563760889037243840126356152037146891156008536027430880940219301171703617207401671771021934533091829892034943109062195008998995203093901259442225704579767943403521966809052802130001584058241861022077589905683532291457333913415070581096246278171337761481750732123567377431609277375962078089260353577130639983795512834509227804598382823375267111866986285738011736739696623126824801857955660328642609607251005105104464439997754079539742514776267710750573912495705338887794868437486626992825293326425578396462976331754923173207446165708554609260427450590783946832429366587679796936272884851908325849454439777037877459798417877116147650484558057216292056988646096217024895225335126002510426409863831739276530847868569505273494930528298926085736098749554524619375340696368799252537887373076603716543937864064505374887017213561571554289441243216009156536834008065149388512744186090698760640561487643051111126793727492910704569430023840597073443152319937317597284759252475516521976529371697649621589769640864145932298423689091105037087382994299790249458767263462011304481513297686883106864947710932182858954546477790529129344312768915679070283500055618616122163106986866736949511091842642682658927087628814518895559758931779061106542817132735636474455731774924963272448245805091022006693615413671389546789441632930606106036263279174343735084693741191023139781990542214827162390290831994038454201203639353708435448165567845406559880802283200930945749021448074488792964077122952316719743544731177120568514202776824121749621130927197918197853554275539871118049835296407731314179394300060130002628437310631243411271262608344643173855735090952455292831237540871665901424779905742832023196636983665188913857974318147232107871123383571279830066531263531148821567719106655481047483879622269854000424498337351931013293984409555671015338890546336811191336242505056151963547022451427527801586199318445236354033082196098469443360101798951249480244025028802818192366832733263148871712147369548890880603235118734885267049348427550870166212200142219975385543370207997915390707557906569884446271619914065784486880633011717295282618361372164553993608196712650458873918491852465084894042332893178691777790737027820755852233407876806885980392008946741995714761364194380893517779209810964992912153074161109794816452606294765177723633434599194760086425549415655070863028433636899106431065105570442186589729620876940380573828030785589592115949878311603099230694388073342407941053869676305459240763149514675389555611042988060278962167937913736688218116030564657810416498462031265398314312635095440049277398518209160617843452907980345791508429272778176686399205989876676529516078448898988605081409338577340184173365065604494212476140260004747292338381420571498154208852825358536455134771094296513848382084196269223052222821165745473831143329995378415574479322414523004710438981922804698536330201581862341585253445708888542699292568395137617538872235991635259778056593865782974839958539139478820017817043185968408875814251135349391314331201567265184774985614988316433340849588307273475062828102197271641669799872786896266448411428389812813042977884464773090076544495277287126074979826238572816728508057460287128933630317656684876486259928834517579787231293900292761732729926234264611925434732262519461117213071818504969608720118713993626378505982024702001440222596662039994485106144749552598914737140818243585455412128296928395437028777133600671406134934125914632598846924766277662822150679475143332399461055502455915237084409034595157680574875686762223731345067207201307340777331504792336959830000800857079322604341028456316154003925731092033251985393250899908714893162235213050147564363549260259465890645816533454477217045593508872409281165221954079959807187888824445333885809750115456886642287358364591009016377143782854466269282684589957922850185984582054493689188871400955719743684052795597417690376680996458169900465082864701899240197904392494587499284996487043030162865733212230873629562418693770307428425251701660243070578674313984583201852920295558948262269381425092476248028698326617289855672146793369343014484710431209636628638993137545744447415691560183653532846451679884125077223922331742303199021237677593987421415519598925593319488717951584954430151532365427161195020686657207872096161487687685379777754411463214598034835514592608711143824120464994151630249440571288445429128628790791267972748536044392761883303226309480141356131538111961003560362319079875753915491653665938392138924395671970092009233734374182233624793152717281799698256186529841480327385969021338591307519131442466733293888617357713279458904843796790328147948586788010063946839773694415363131856729865743127729173003064687591818019841805714647844251155833863659000039395747755501358569847131777179742399565083802835730303679937868134572868670403037579839676503863613828570894211857750458630953262964445722363197596513707216679842602342195924656019836972850116383003066708390021922183103640745732062356399351904193487399094898966486861115158208385360308362431665089711162579102787235154221438313134739355513579801649499563668275100957306272864585028241647606938201577637045980069442856132212103411363583348336591367918074238550522421878360616067253343545826817655620015012236802747977538646984915470614224567810111313272187893579170252381344433431006714410003572557383314379398704385798668327053991926150166455772370398293176828811631040177215704826059018822803788678649171334166413632044099977639725914046034972438443209638868764280807579142452954973007570113108947981819187505809012387567462514623450654947119005589967451350306976235273209369043482993017698834024357088356309706233539301155125752627980834417286130145178411589977921092646042248787706775241880965963765281341846937726711455928053887128436546170611345123461184439314466327768100664367594135146426730455890277632298694371069741210015335205982591158811141940796532079980935310961325819891716902472089419721494920020395258129421927770141541259957276619421896123086832975938616110923057469110291888555026604688427506355324892850046922833911959267577451652445585804493987027306989673023173511485532741307411546573359706345350706197458683785460540885070344149614461776495565243903078624984665239350139826184632364672199990466573106269780241633911969499363432659692369018786114821048006200476408445065993991072565903247390700193571856012294191729331313421896901442467958967762513589359748040106060297122552601872726246522653015734688811362378792145310914131281096377758413991865844757274231856213799617558878059918950505010041596191722402934408975738692763599816408881745396914560224791002500778068409208106112096418037426693218983894415288674719284264089974870662298059096273933368221707586384326908574487005832604834043833883759501204910694108424314915910481372869256020718907147429647185642521758073340248234439003310658975543650574251177018331874918696160931438351885804758156033509421136730120731995553000073023272389440692161452929200807362627977258276479842083007794672646416913014679256509959189797810275537399900308070111053915082800284958400017176722794321488048053792346217329091582111156719728788556917779474998366800836338680519584786610213613389926928678492844609218482687315733420841991634337094266817434493387442048242374244639491507794803096892186985878554799967401685372127369501482914214531188839196587466313965625171529453654952374339083071398140260024973984990853649943321842974140743983445368791294239504291397715251289373996480991380967463530187496365328290040559949464493280510455313326144958410863342509137120574491812754594076128385004349236327126432595003118202159784330472627314972838805842995371874593554558065919074498621216289097486772284842926588118705214618493756213993229895313609961794738224240866045719627203924717145783260069023497425115790844845351293008256154840964459150523487791885713478205888977194746483158143739260226851618555186959131472443900527145769108348014949808175830033384749275900839406598266686726824708947797186856989360560827828055660964817648495230806011431074598474591000777954249057558254145774473185618938819999012050128778146357347098302443347103098919027126401226724308306957628308447211190507946560318927725122153329058755551492105481510939213452145498618421914995028943446969045848612476746800069519366059737978874021173567690401129955214881581935580145860092683524663697074648421167955256363441950790443762004852476886008742414913995701235503492058500616772462624507193707331047467292448769339866040953736929737260174817211765108820842598668465825256275302326197835340374990266634909920669811951057371277357116173897780596450164479913389092316647038040159193657743758110364057522362820888038657808395598250476165856513203438322966751005768877872734493251432301737290330521096554045795699590848808939948416666591487249751358990398827216821351093087427296629008887522370251487296673479775672155224572589763121399710517279219667834109238262441205252824809377894680068942986170329371734706085315277708785431823471815331789347232985792162110238550128499654155402255369803949971214181103203215179350160166544053739132501393557978235958322554868819286319256356497187011740450261586965180275940702968040849945072471146633134031081202483242270672241675347711880285622760785602871247782247937880430980086729234698581508354162677509012822982343787556611198070280213776318830583213742472080294463088625274561717920423187782429265067088356506723997359678210513305944089856922513069094959220416085434851539188389161208159961005038515252789442555158546942480591944596179991552711086274538613172305613521663879195566215956337283569911831950070107542699691037645745024018375528880555391030602309944526702945558185661500381350973551702967104686244800676475923806538221291367620189245856142945193332581085735793675827330696485015374026262504588650804841424088996071939247524019269941236756625528257927847561822466710832441829700370774597150760359306942788776123093198754987958483947027103275316961895306688620395784403057661026213596555873688807702073160341653227728545481945194155300313619517918363010778719179026626435935957732095382488321543017086375507180482799906225680877232857164959027257315361468640382152861976297696223012662321688311135381381065206772351991363961219345900176430195043457603301830194025877505836148017986419415024817566015650276228106491656042011958876284809820024525433983607904163666278871015571634778165383424764460555167543429006005284511942531852903571106444154138408190083120093103363888125365692040608299001807313801101048058361883173163085061478199241107256784328391658163552261547912566573006496256676243170141849368374221083493642316161440057483311797534462318285212951760329264520489929571614250167806642442293803169901296226144851741784483648954498323603473988894908303228971254988399373725348271787963433122568547333191809713578646351427593656394955349608533110285857724296714990321084807881141063816102950260316749304877282738494446518432905836148410954434937712106731608166320985791911239182553875893952280446537780767961173617384640939571626011884394850303161120501327052537800936390439891070536486798779799386995381872163380301240005539832000837774488021867313997199895876154122673649909196488713790888671453276376995123750293319318421580022513693845030130766803319648874599692854310214588184027294835572145212094263814195507245133168223936801539689798746500193030599152038361536780904319954824914397185421862658120436672326563724364124182266605979326937006471457634614094324623494383558879129546359341658692645115590316389189847092544427190765725167019561611645146719067231965311867255222582906259314804832172526360600544527773552102440538904634646460551932451139589288413834489109581063529808582151256045371827945940286574026168765618365636045123639011850068650821372314782942263952324002399358123974665535253357656339740126994404958790966189505526448466688547877618714987820427183019196027231116608379482003017386070095168694917087128415686383705935149683523064734544250524684921513900530517598807449474905581966933764625862851430368209572943333045401036425036048638914752617382828327587103385929322500336810646215788233849657421552197711234584966754093096345996263240548626653175306034693362454330492952888100203132218419506765942232792318478301563409625997544067396615527243002924210143402394047731376701485797384317845481686605393798628511422852068926570851706307119360352603116486226060407995549904041551849811560828574112849664563827059540767021281938163940464211827539966926025341926151560364436420942191815236155649593936089651221860323109498119647358980554416264806787082287431247736475677329551280392138193379582032433909220335319168207903030226342580426621479346267808240474549435546925317129349244560723537886182499229163676765630858109439859156392383680936075249416375924150842515131078655285533626017781352006712294386007705383325689541710115104835542867478710162360550226499412290861086868236127863578060605001012844471240592576317958484217782178831457577868097950508449338324708105427021489047543735950624448624831395038204119138697038197316796928657222385787710830902579502045283377838522714112047337048666312013910154404885300672662246705559126313321531452218864294557047896287372499553605173844813761962772635838602398904384575509293590567467507838727496091353115707354355480372184921905235174768231291302869898663946645217759042715129232295934217286199749574821639476879675464123360199117422935479815255655297471910876494433324650148532961915154676402037497087178077396375374686461189458715338744457373906887978406562198057653612027614020330114731064204648227663621261879862698706606635903234101346577067905392198627291317374433185058837438967014805908304297609828379003712687773434692192486598656669618967936763794292883911568980554996701283490434397752627343940122910615438278987540395698917811229173602478292745919213994206854180934376921832122246078977941224839923246474553283597561935263047633315453832267031320669592564884484712755318020083345427384289845403607646866733662453345787224095335492724980100423733232262712987136512606435597775112934897083589177884775423180553530003237443651942647731488454143797480006838687793649822473140845347132866262300060264574256453306132583471838881399053255927591987926097970879213962523016636267882448346113877276223390677861146454074431103495242408894412288160340345328610072113431405897608892937828601756990499934868648390648509445597184799810454454871919950618046985588206330950401855693879063676955630781865885663272262042191037222593136052101338659844102085010773218389401576153366229135286350285286921921113619458107650044142836789598590527007161685075819605323083073523202826578911251621918567101163312775190841063759117867016388077936395869190027870555639549660863033621645049681942688365823410112797002826958794731214187661642117493266517400815430788434719125841914071683448121277421919700595635151904297636273206594304019939577311224572425586090595037583314112903869712388849029854081978872418134929120875217253865734683766273340204992389264135607401465317189276357886687580502603023985723484604277685440153731511765975188039504462961557810300371812173496131489463641563227022931394803441027156520157658163045423701187683151235506290935081624826117304716669477256068235856547419737545421862835657104648969229006274996388589481364089651393321897018168025297083552334804169463645221346817333962187591170510801033065632547625917569473299543952339982201078317911372065184837946688865867870408714518946849577542545455572674404053033089243587105300173339980849145547695612379962885738386537389433278416892492287658380809281143524793389215672432834766901954605664551066936509502629949870198047559850764703459418473185742808416482482695366674377774738205607987706831439651436347751144611206647044875861849399047622017121118758748824696451598817600301378287222505047008280800208247487622766982344927590197770928563223983068501770074339212665972231464629170358500430319355714118387098155743221770374962541662206896720583875776221729668803791170834317949209247858848406277788646056106629972801289110700737223464500625571149669227859332953146291599257556673599447603500666497347880497695702442967172861646657534370014617126950165811185977969513511836409188704851602802551999237230086519852798339018280356376685431596871174306729371263831427979033502781693500784665263719780666443241566514127170001964410549970838613071955558968743244957274974653806033435641683466655897013579244903327553326146852526825886290390834000009730487806584820731544052356880530183603850230442466933906618258360062150587396987236930901113802158174774382887751917500733257210063150328628993169867227927421634260905806930178184602272761737003999314463751646812413954048472930978981208674596399998244429987278363098744500594987177016402869637725762897822206703899530891604465797794477752612720573410737438914766066104455123712329745686195826732077333139976065663250886929669723910603767843662828095835136711601984234711716794679329963312139148709400554313868022132590983845519558536267832540307710906424005976803519342358213637439102413459650376820401088477572061443053849584328020212811934118575908622739186157017576952615050862251229679406581283967214809348725466900998529190415552163218571779022222923072897104725432549708260719930015432395528677240696061840787654725802491407518314687160542342701589253495405603551179731698531638634771565612038207982688360171400013366897086498509126500809968734272826449710305818735757734742663974529944543246955039696489588371420410306699918593084730091377018441682923023529875114895975548524420397340151491111516170263565753865786737208916547073163260126007725442177676203344947022547227467623569937037573929357354204671430738513095796097269221007520385247631355291593856754269242959388259857832347733106423669203958086305741167688353892455166297708429021596244135367910685997917623308559204657429369631353432895269757526151118807073305623459117364935712337961268143918621767016199382555240171584642897176138712391039000600514123783998977574801624246466128444288021368932756864644721874286642527831777070160933243160661900036054566516403400415721771977398419116274715465355256187921928747430493353118216921472146094804506963735667334583526408980199492273889166364939463072946620500584097233200542328500127837856214523400723303767065696289890331730565451542315094762309643566015930019811642874166172268928013985626842245326612341406463150780546530034979909362914525978303184123807829313300647252959192083657355971085345541897210517528763791198116084896049449882809273173396680794830982705877444340201012921224548854678384334082810112242986256037467802157383815757765868031592988833686267262275113194959069423274792976118536518721153779868580467449941660219114537500027972480590786384269662972206945434302818165162613877468694752463648446605838500783308703034198678185492006709749901231647310641951784261826616849867450163994485021849469180356104224876315404848158423327000781799635964956973432371900317549693161195077715939906090391697030428735348887194220133949123614972542701122743514386941135265250712374379155373661303838929514733937415901486669213921032433261358731144466714730464820487053319897606260465336638584172433711286607815961569818175311887602447862520598051136078227282596721957105637729104019826570746114984587840840809970596079871388819510127405762892679825359397650969387571531378749582233192105593716232492719388342416710107320976374917289486876491873175236498081574553186784891929646096443724494850020351031247358914684140710883374748373238801566009066571259405142631557425432544859354417076867673142901410692647926588865708102982470894615435496334592406476372912465983759104793817639893476588267232756242835317525093853953726114324629213186448894898293500955390669218566833343870542714224344368722121362203219948713607381177513294765698096495571252522614843853562731412210516744595167710573522860766584577215592469614011095094663758709400810276778128306683242233009087174532939283706745918300584561893516878088812456030507942309381047498948556243643725991407100807742839546127755080921536324001675493356368980265039672138836107902893908830906305156895050863752684132541928690759816906335067696581137483253820903257683947613559500438084240058413396874042243794856506206974612811032770917473228438984087638960996650443737550614347656527641907802882548232356344934027511331905381889223843200790711459126618344347836286927302555779094139675081390028424263513422511872248484130225930081971810311172586400748484480688081140706059444494330644874086679064809723198220264411666370152371186758380391479882031690139345965488546723145451170237730873105401668149659268113272088089494277706000858944338140075390619114700407382829542915569245523314523929370081307213391517111990389461880324722686273701910075788779087158042753508097408580806802304339627476965561895626514719820340384608030444884805623141003465459727077564397757096384966244576249654968912958031699798529546879153508629456531005247604248699045367373612039993875788209903429463281759990501769328579956789116265036818738853275574490395182494878445727096554533322072300434307363595231031315941216867295601228679150043007388438348993542340975379492493077005601725847277376116386086291038171266460083432695833073466597800862626803880245964428218742519196235492423253731535717053409673360127420724818412640352333467466587624763951181843445332114527346308185158113435793182871721989103983718093155592946220507694968444309811813059417526552346050418862824650971862169760032083675625171146010405740965056037984964635512871037872511455512605509308277131585271323578954719642803287905197610087932486289013452094094338560483789571470308793754838293471755114686005548615744428754731113538594070893783875369147354644099032205630750441009104150140089459999753960219358059919941061943119921344579391528413086218845143904119980858942562439801045137461469808780859295358138873208414476817710546263576766528491528687352255799977982143154633506542381458132663752354245510106797373301210005124678406282954138724263831735800708560547537723437867784245196990865981591583663645054751100864847501315137248100052730877609144926154552191122412733783611981761807880202566525825708573819511490856788850210406062703648137442571713146627937930570189103934223933586893843724894302771498671191576781475093772596502862453210181266455179706290960177537658088596605980673616071829789239197158428845446622286334492464323752363370036669159330214360708232161426308835850037487435423786649015310768502891669650123342355082368114348695445440478714592215325028308017266082343388092610630960238292464873165558452951479881870645505632455734544662199133043908551336011362941304392642292025696377218732818171550794670817596210742873417552346631624700967165114473068987298047282447553903386074693885228108094314846823076835353386946836776993262675925209609732228652613048820897236604181046591470795179157922949502392308249133753641815321846058413620788199290969041199798267052371451168409540934373030152267777030945793928780268825361715414661089378477158378793010304164188649015714408195628638367360621338322414088656392657964612049355471255539728796943510276519766090989892049709273330068594023492145384742544988344827784339921692332162618787504555018392412939320063898463691677798181313114264338662511206538156997045573275750396018682968893290765155910452665559455857054632299504715144497326810124685015109810136989077205611851806103563148363295892336338074712428875845050192835291536699083674138705634056759011191637797738529481044676333224739140376622521374286757185200750334257072602263275420804899616157314681108942825121169555193579027912476680861003657384511842735116821640777390871348861593869542480259608995022492798425401759398977134372375515186835428978264487999627734795498023377588026848841079361462373085308752715792206806213012825396408732069206681835445035586462976459469981325733822169219992190849708328294776761875423231401529156031595327908275650807576503509106532574929634187043521845939002195617756734659154337592953679758406207537342693533956115700424585340062202330028164945166111826163281775425731339642022658726422079884300661053751483787965335473427446484919184802512545784563570540618112804538281087861235252430577839032436477348588502333679366968004748621294824933668778767260753922389154968488291245129545168435005639903180235491481004812354779972916903940755020620738236989059998816262299609095247694538663154080491122216764756295746189506604184674183936115634106218288997345279252151061071372694827873671946628653299895226344956491437784127506726908358446028454809249738802995640980969207662767083221307790690614497764746567939702193171120157374720429109160975815836325698197153415400031235270655755550489857135825829922755613569890912264390032876814605618611977860471505618784732097015408686452457301112551343025597967525154632241113736627232936679835894620225915958339339510625961726162138510335564490504746501069794486296883979340594674291659214517745149140491554616867863499033409401552792910021372414128240721540511024528875646560734771001750177300313148585459439304864961604347133698771931578898379407067831684980660719846863177009621980330862251127722357511208024939564753414219439816265417583959666674733048865007620358890458499378930691433091498538385096050844631384414544042407201571793543852268823552753293666293869410698470143369196933237206943542941161835543209039081457145169443371894108673976318518259237110413361831145304979629038605693389579365887876245179184213548516323074476708282734786115510613549381710458609673384574562230803933894751128499142052523224889113720574208798666032030817035935627971098645771263392768417561182591330994188010072996073265447529526795876034379890318098230822882916102390331054591338306114370414907707335145192193340299141062678806156015033676417755528701342551790309637117798980271079469519100799188596285973630443088028702909215352270709281349764358485446269800307697129740936160654817001674052465452709766962124970472581140870472316630851823774074051412812770744921991854223000237772390294820194586734977582427230837347201503583709394660426084618753264368290755071496191512641856290037397778868188562054360625261122097978877974958841479779065425261391479372115542119079406039422983380725331470268793651909197387826284445372511796443847943329229355633834282751369299513286114997018789970583083000201203770926357398294262706843735647975328420008931716372031836598624877868460867432539715628803726301772116091800357628147245801428694084022576213884781149393723930308970595117119306367027642714182260060189312521236607138245359314051188112520754630454378406097503739277897841434317009496232868038260606244402013290754603329331670414045901547252861388408083548701422033192325147484830787465762337741783662595745832466579277532681039006233012348655277393281215146862502248435106284503403631010753957327092960528605098621072682343550234510525995569711434825849374906320169301024745110904326174419561430386592955852012266163396785199541212402581534245779579333086394209925737351166731121816614759548590161773526468715735591317866293832548853515984744309653372732339133616251485350870541271982773680996931995447225141120006351247990956797180094573862368585465631425423370583556021072239379294535328016981750465434805542379054386531211894171313683030850503241738372435576946591326922713681661209278233259828521460040523510112950923206679719530445285074385673775968071920844818006417241628764771186763092010831145419115602957143035639812580736755224441968933086205815927902503162163126001404028756752186096491381933197369368173060755674150135350152450590209275005302280963655207421765638421152357687760075568456852969135989441167195852743870128442163573597047259144150631616801320267171245672023717106594801337365847367321572554088564970340792215847510293432812715250594703456366991401831797909843463316436956282295551708171011333895295029364845019657853830208786641979013732029115014618404170023061538703680168202491737349171393600479617067433801756067186913979299959926060421801812158349234955492317787422576500361743607924050489691999198438555279564440139234543743633836690671468217718443753186943440944304235257345414692897997647201689136319276435421713308057929020590880056848623313403006825601328759427246939807606601931129239573601494934575394266974227561106276550210517231082616247924890745152589898590583122842489129817225680282718140392288494244316080462847491763814565908622521524035425757422456924644459215177102775768643737043334736826016262461141939756078709019963128698150579096659675226503445259355474614118550355639895582953175747452483655987989055866226231388396950493595520713876931207233438620614996273235337990888419598973815300436816074421786418388221479082870370968465856495245839536032302052802676763191307981820864693397970386773194944269424577026825421082933855271581757228995620368988557368088621681945529016328259134738719022829837040840380770897410994494956124547374848691648139735039777543012259077580964848928148817764571391394547998232302991063496644677796606380689059053697537721021989296588030701503313675580551104729909593678720409549760653418765637046335003629323290186298592422216312443617225537820288863450047890598867699397523170593179765555592695067368082179564594917005602298108474942863731383838262072903085847217156269098075412416563144162865847560536365927704784630798050848063802661967928059651901824232093936882225661414224414439292959038564083683083098895121129414022696475906014274386785804678547304075933179604467405763943810651480462898152856724104644007683374620830428908073022850275695446988781547158499704945553414225035888124954813499561921188239597536997352475778055833470015706035129628612906604534101061638862975776895765591745378649797699248642675719466882363507415615314299531257123422505496250312400383832609665411143663756015574479478860879935909764533134561726091495622142806841366106737457193267874384329743695429016211923591947475751595438523763371137388348154994835324430138123252108022625305709689604437921538923123695023979327271203029038579346613222454871312284821954090074311972628156169780801897704653497171757058426452731673330256546790148033477040500513265509159534762261020917196276387926266279493949845851765450797807909959209713173329841069068260120754676678174716832772505507518028341699538650166769698440652096541841467119409327412204792731255272967023751154834078847559954915064905621904099665555975650363996575589498423433226863111292084753314070677743222003088306923242599970494168074999988589315878818952720027869505641241420008912058707491441731550385616462219900766489736121515231183788653481350705448040633608573276989461030614350511924729862247732529880525717646133725327466642099832654856913097684733898220171633464992809163896000265470278253445105439621593903864008651813990208779074359057921579614222803892064306596476786730840498840177669758817369219849172728201542339038517394971497115806515115654518088235060797986992576991925066932040877678246995629201105727753101395018772794227060087269975048949886684070823804353399912196359353355636736291064060210012867266187744458974399423011169158539261918737989903626115931404138847129132763855504514783298086843612059225647445778352031096451232807841779326210168445502654537338834807709585034700376145768980895647128987179196355232529106293948985083414588247394379909317555021214438145347588430817763866400668304374753166521651339120166463994448588671073184233542254321407110731740013372196518999417733361491828543795261943124180415458364316665154744777989979422275081920077662806394033881220322694922968526015536979137931608572173413875145285385232326307202366172350742107683174374284552931778825591419605823189740633100055192126032666674812621551514635700395525326019298625125922946188706968166655648503763281987352164876651171380589026066084410078218605825188923746522337585507179743411950408383334628762734842394056438796916365451734840932157812279767436099109838430772810888013586516201417557179914432481178492507772189625147020232793639171841413204799445885038915237662048599726505929004187524887322504736156182846049356897689267142295020463060401651092614239731089286364413668675285010057328801321221554330898242921811044937361253401654483948088916691679008567037223455900180130551134230117326339252703655705265431271239071245597790892871047231220107080301737765654945081084650039086446118111364326288763055594203429913422240947433447676209937511760579960185178806246912527343603990712855710270151384239926959638941796760655439321262917430932043492061382958430965470575376425075598035526827216955135625075673825737493634679440561881569386042899810584012589932326172480338108750362814629865578779566730988230169893217106420626482530556380360190268145193884379084298089570455480157013730254217166401174444865908944967559126449568072664342519097245821455279296831950086688659508505379341511559170704927845518060272350609143745849495981064458388566585120297574802794224736708780364872381363530765965759615613238421484864583912271131492322695662197241321996945909229699823908551611566966013108166999383305825643441264555590582793256786135295308283002219089618585455092939701828693180083257534725262131008433719710038721220462308823679721769620379802533246947918748334701680916309144198035065921304200233335939018725704269029657058389424631514224886144105047573561258050049430318943194965721016424081973749645858287742075157601644712840007019673415978068305751377960859472551181917992932249038944668480295878184963779727920344041588365699912397827263779955018905023588490227496606890890194532020344009264509487164918518040627473303521331297898898522358202982243617394317341935225749976592999047028581845827450664092456275543720572161437751400118396969596927125040672826663459326323477635442807048263522178168350816775101763601619626130839184800567551564540842730728534815437876685157246301391879204889056907971627416085843675106857293411815721892532943357561139959713095240413542535100147520441694206114573740518801325225324385407202942919818739387838747656524805528458037322250533589001305162514392175052337574725119309354985283021394919322504622767534097489260560458662356363370608333611899038725106684775606492216970536554322204114628715296179029951008073378671439901135816995282127617228706595028874590522748652637873828046907294657012682375816803762354491092360717471765010873216947103867500907552623837625985907014125833672374882816644558379231982395107910043093196665321334473020450471788906216277847921859386157171365750237487979455190510596719035349954147238177654158322970036684923046303464317634187667096243107605740516803925193760057582295369664768573683499532176860269612526680531139022236411778183010904811778890054119741184100860309597000748636919643042273941648351638331650878800192383824290564398104718648471388170404963557196684671380242555865363235861962227745635457854894313462850645522482975486325657955160128206570874321810083378338812908800714732044098923771660586070901525461787368554612204863904612783988634210335190295489488071161915642247153313632193559243860981177047878613531168879419323530196703216610705261471986770502359302013522226468629180147566867429841356506685017082784477332198787462864522863292653784122274002742181892759804562605144650976783843877653424982416856161287179584648530401159438929157985793288458752247120768142276919431418208604585744373416622347935370970917784771406198784539347945180176184664906673482922081855678972441479915096438964070785909878633409895049851118284605828625990443219608488221648191210921027279358758889304135820402528401149623990093794738224100031906065100898262117573031802027196386080155752376431436390230535709539436537379584880153377146319014814471105737497283378618400932646844149140070279753466053279021518679654130347454138377690736266144434811140387678158620900477340546388480921558791459699727395146947825772159215488838424151436546538157886562678925681396420311416835317180686313917209170916098903970879903783807557547844615929599305280189882238236068422329527240216010952087155646868482886866080306149202957522950377652224404919932377226479751233082817870207124205911638825984988750738910512116355796958030571190103520739690567236671834897209625775665222519595274518876434777217536994564167265917529716922086258536400085478912018353136146611974393752434564462371866877497966751535749080762677675516062176631950551364668674401090062070397793243776806284776702817893870553399874255759114073235554712524462713468743924345652172585428863646459155939929050885662122583389247242376128817032500870651474015310842468821867117044945844879209073426313605690794319591757691062631926346282647485660404281750309838019991394370232814275401986505758412758205021702216180141618817180965609941764912302816510374231660778071976527958361765319386471195082219471746262555401061929693193477105871308684627556405337193525065920594504343054523017720390481604303321586620958918092947346853281961300561278961472149059394204789086177366209728093032067798478388371879092767454166428330482315003232578401231731297849311679531437406403973680212478730845380661571664055321680441655212407648721104603129861377193453634229542327046914884128084686741571709525425024272284933300684226745643108179065947355290300962240313154585688041078608903315207285390129109452786533604008257600552057313998099719679824827772480483607848553572247756988265633441726216321268874542556003715042282187421460682721794434887506628482041351619633168496151658534742996843674934107758465899640719139832006032578709172066467437195331215532726502227999973137644711732014216193700341571145597860330175283118783123939638687861527619896852155296220750148505841435698800549184849287833913746958935599421422884359083319599311676730763537031164140391368830912919887517346603047799244696114957272058240546808702548308757691766735408558478761378332271397645512205123226716289068283570783034921294107259396496015182858046224443916708830680531317085833548483454234335087997092277028050032689907113236905669288386187556295136695248042084063545052057106909130152320319359871598650395001896153505665241084066246821497998861469480439811576120316053937967031878272281996988755719288201572626701296344837663096367231187406299563417487233971585109531990098975945811194174362654495930794835550029132501002998637367934778244535442581246300445335586885852918155301268790043348018848583151091246421458431618448532881857321227282819523189585747481820264874394615126063683023523532985610937571141878162283911794015560428015035291107880334297962187721789811584117823773141750193641201439624840973138711696737440668977437456664278103073953717237202527387373345612545300791530264834426412656431774636187037979023213128318642683374999474791465336945744017605428273095878945916953361396165594867174653834724104541465380946218705419454168962154866346106362150306554584193836836905498784277143406835513966423206724183846809910281940093673930990872962530614865083057143372292353207855972012771773361515712068649106123754147014649068346826135098511439410648465299448472881411463434902439155050356173881102408387616626729780051908199781518259083358405551311391829236835929855516283294262550173565531555920599109124062753577527221280321980564348471937628462769191512896136903957897044465208613414448049910632359267234281359074187281736254016144344071367552682954856272661896526144262468738158092344437239518063047267986640849923115574818491125954912021438187562384368556836940564520024491977532573326154458384909883375507720959799315875065437230257181938711203845034259939999317111267927182581932239411756698872584095846250692565775973242101252851746161609352942655320794136521066564349534615838677327550815086005477131909440172583853093498320405075770055640002422299813335842146892941012524388285263781169637185106901287845265051772605143067742364178859325264232488966498361119703070640819066975477004382184845916543095666718822296415945850479404377825550446262405061905871559631809518417500253623380972502067034542036160977126242301861176339234739677231994808719010456176620549276065464864093744934970085889964607095617232617436996823319148120264277548146684633981445297910840318040105011810621006687627139294265707326452931500686238733055010214440612973896378626849712119774508591844227566035834636350594421056308792323109355294112755727967963835906077525368594579044624304277109291893074658022739501657142704693689366424846406202972209887754989893091416371408633470555530896503645605171576344875359833296468879269447199499681767161955365129082376652451778358770094015645995531325307047479532032205555647653178640805953339474967320459974505456172453742088493983038090242225669448120340403047332373373671015713796215589801488569933324533388268970944351528536169604828650649951371953298968803666222692919550175334539995913883794918743286831287717714244957503223942898568111723621133016376709293609643119715781501499034456640952028721612296188316177470438851076703707058410039362357217183003630533840448468026062873136918291306633936440380924785313820072190524074499618201181289455717086815068112540358679874781709620280239145882124439884908780814838532246782645803237265671656558123011651241839761364933035779582199837988113086159690199353594053314154323546054883425356552508336757274643791691345368164662822043391637623262599230259727590608090050448547176223790523868978507509277449797225985180078239357345638836906073951154947813051691819219140298704886287327960002465699633382082994725879257938091087669189580679377676891356453878798494951446118087031638093113272787241670225167455669648103569627703803816965032408039711461048571398744398581449452569804594422221340197288378029780809928131444916035214275856960378641664256420273510838624135789193543545536150390762920808869415686410933168433718170682067203485799074333322629873586982615551345002207661581640154907735002916216105409984543521577122120938149934860804026641782785535553106436489056009603472119649723373746260052789680768999287151122721028835173815923057888026207502815767222112051820219341418680788476784657144621638502858896496183468697147634293735198425970092576614613103044167311545483915166171343101526158034462418004267318406413541744076111241796191119437000514473313072177745394669760733034702229629013121692200250602941384828901473552610777589668949598344472109014616503923404485877240238162469434398192056929047732016712113744074203576035400792668430689962477530276785906976738770047143072475098028506813175002226559799664979748612783647755668819411174204210244893718479654235392046671379138574727576729340912943715654441039503477230772452525083830338118419724021701771097131395896178528092921832613784814872740226735536254721971112661645574629579072550463873041654946432082235293267966641068461437351785398904122970792462076298915507759086621410256358624592172040874560281724982578131608277477412327060808115553024378892800751150366993683127330702983231696354723846995875035164386104284792869594682275543891647179591498996294798479425337804639051519912953186770257501872741484709471255066541117643511317523170967399810262530666743745764267988235951026854084162332385248767930630365879248622017679788813918607920179786804181359618088840099757192021328087883245690889593730038012524644846955692906822975288212568539744099148047838315782114450867747872327987188699144092082975001825228017677346422092125622442246061064203946855559071136890376193831677544949793375496221161798065141436173630210920662058827299795369892626059954080761356411252296799067916840060905996630908867570969332957374125216139036773215875191988917314146870269562719959145767356364774731513600361712695053350791172544251646948576390881688133644905807615805166488308805766287119916119910197203104455472310667364354194866283987654310872003645711335347803877912758199708896130375679260482650902344251109819234364784364704641271195372029930221299604930505707875648249769896137597661976900511579354858138216393088836699126702854353499088661799290300145421263780696072455332103645070195312453585049189413836516681114556571150475076897386418745693215452017230057223818849917324929499840415838095770713724481474792752233818525619251084954081571816276190728891991008339122642034497130141039816354317827061058823498561929304021385919034549715467122236327942308730501538769342899033008950642429574159190867742183250975054326879479490121432650642044159298389544941825417766733719251773105538257603498678725637002101979269423580920287903340479666700369453754301603889676255698822395333646733369092506870854723023047043661167147010891234041737778215914157613883058027035190300168390177380559946454952567450450940674513643010529251237136599716749919414753516255953943361483263422321885157445279099996463974093262703119195752440740658759351783040541913110793189901744460330370636429809864563962766799997195698513653425327701257497072994615413870534758968943240582234263260307663938611575217606637526722220548493182248844921694420915930178568764667768166364464674260217269737843661820210027075325995889538005073832937894692985972328025368935518462980241665890181092041266682240898404211568184409754913683424926949250401468778781662662168318428816474384934603018488737417262232338630666841286860159507039274869050971358815925281316152413122050549382856988517892706165219530426538977357999368901882789219093313445535341561195436264997927611300874618245029797304410033718135446982934772519047374303229745713896835088270665954883116817596000115406022494854980713471059092567485116007879285910793535510080328805231166693286039388662225936117424153824462669413062773221283894530905887476996144748572780663025817139904781928439591204889559727623641345364258839732415503916777874343815138110856221412933848048319190021874397046284526644659870014449478811688206863440704677247785145991461807277367749609090508125993973690569816846763223004115690222377571149336845274724427906831406863527848762666664963847759214731835131030405910545337827996685593227871255829041073353127716895097365127770043432393932326711410469931344043742776642065975846229962226693702571399721893423552469927819844937559382638822237734451828464810875110601393972163316034684048466784270149302847918274322929812058184413376237328047239602624305523140470895539043699544008017780209703415945585358171318363575300021648585503184461830098876647787363319366739917531109586875772495517729501237188026144160526364601011761184144881518308908688101353710616013315513030897924008203487395803676082280535419411187244135501626073897481032496260725533757850222702297409032132606022533272434369064289615249264438244387129445089090407703370164711309534280987797419677173967705223874731206160925334321541505861989533593981352872809974822224709150619773202816422759307054804740569461201049680668509181413501676990065056254435956211128915476382257293575357785286693251438974094826903352258994477914821053779178378786150743372529411635090818693202704531470692074117494032845107640343217599128183196529830023753567483265816583236786288460645445826605105071539767841829228657101365932074572903914209057294755271883218799086779284371890336714504492469610067334475758015415144684674781985566669829269826225666514519086806943744108298177237408267795728121524722823932223326218044695108022243842982014312257258045106748689426101523983325212347396675640775630206684071898042926858582020363525849179314250815862631452149944489009827396620788020568000539869276853974185350844822484823805208642960812221542695903265976382324355153116459067286240404605627220931045579531842748073265843961279468949245744591556808891099987006966579951480455988442022896283924357382701966581660130456940462744714598978024133569680143482934321716518516894011092508268783050723186664343097936465999684518927913023486420043072018400457921403221653948247804495348049025132227415156905208160256303594515559470386890805339604269575987200262177719281410379168017211166074872533991375509382562118215646123748831466999096177055891020104557994340945985236753695726606103442201677679238635121139515241617928113614735023417337157992207709426066799256670810521747401175555010663828687924868804003630653878277667394955268133340088235835828893993689402883420503413795561203299141372312029602625169092329035201353147196847113860228473067148597645039103874931365078880746619825763783288803413971641984350156494767402953998076960720324408668923962415434232679433102639899665789150648731609387043641947409140354186882348859132776477146094508730175255276938620381285570669382511654046906776585889668143480488890254009997181562083651284857919196445869054730871131054393741535188235205289644838782169307000941243149835904574054523989716371341293733759106136550838189065804731295371226793910686586295428259429046942644925437021423715162733436568109036093341592499796505576126568457770343644781684509595238906284203387887522507193039152025630515871168071168226729623479121795913110618386396399189584006410297215524911491624900646246867364447135625619019122551985796331512055291684035386992701665187494934963776213507214399515452852445991664021722842759529152229416263340296686415149908866730291020563549438302718199160580731940445459496516671634247763570863157631451964635036710218304355152884933971448410315264412860977181667687884018245773229031297321896923769911559508852778095031202758569675111663901133706803763912578783495265220381374195754694051878097966766525556946762690378653557680314237741066471672665055454729063389131546311039515427611631588563436317650688233620689449697326518107651341968320008713297109469174145487949025393794813722164068067222748452864242990342756643343014678260831606627292549725266279480399866863824009057299512146468801911473628320744569142940687855877808135766898191500989851722398072112531179437866195940285998081092088476049379575182420420756611816409742853938385663160081252799023546695776205962836587580122441557087275605313038676103133729169700967876923582970736912056014292159928699974685703991083596790166991591116116680534726090546125462634320513561539361557187150517427519422267610979380344177856552911861669219736355522471720098244511608088310355574738519578644983925545378382844133460585912147586730734886551353319160500373986918369689401796659469494143459850157819667991968824115466113466042579994693288850811539400237118463429600811132881566876505409054300673904302648300367611061025846694200660462971910961643015616581223349896513014847111431228665356228859637914755802632237264924685410920962194318235388480886096356287366331840462850027565143632246153946205008864500321549320636941994765798216991909288124552147258722159445540377183096624949331303749659941226315200421858834565451379464692169572267743042568531756400913214155849541991299287281984477772388222930305471163772745745719708009868885782188989616913876100674361675771793888253307948597709982926272863729196726368143062956966339505075705322985870249857091388695517359610420650195716241097898528963882675367773184437823280681695029041272103150889223140174447922896434919745622257968615468886305026314424873228936488491168038147560429734572238397946237807027415592287135325936937727497959955803334894569303932521191345819564798626985175019884548954103063428577344898474276913811242643780074465090161761000295381999549937773068305207544475302535972668373920191893379982557304205685302829692812745738353274146112269752074732885560657858228993613701495109627684421658628383996226524065675087668487392816646834977331565812533194249364737874630749694943872474819114027577674575044374310615383209376967532333569626394379138583808765610109980408331253850886798172893512456732048590366277751684476558984911594203369193760735050616433187522633624565259411803617768124333701643147166060335281036259419550473261425568088231889271206805365289609332747146011600939106676115411152370730441871687030170749614868355851141108764916232980984909835938363228536292944320281414533444587664913705078835127066991660827181088024483457550877413572337717983883281050945083290126685410833876188829031816535035769520935009336605156352816152582693464045511193173508179236328562698040886964744343996883417467481824149929890531136156411306209609595091222238104888030619164717279108312161763056882414991438011877738097332927401276632442737450192943660108145984396887220683513271820988461096842256101643218067700380285582470920939825949867281903921381134985708781139257436594601383526257774492383726577718034004291411972609843394204364812149380300357250584881997485254978250022944949247264063992559155622574182451946228247015125450940173545154137020430762699818817310762368889530219381376551973506017103703177277974714973415391875032577011201824370041498816736487026560944607840519813052542140823335355269822315792302744278397340966686350211693630675899204227004315902991353683230795899228541938722868480138997164566103678135630405245135106746875199064317232568891288992875148978117188274962363042714469073548056575046620004642658672301476040273065882282800686329964231463479725630766070782987956443127309973832028340174486691670975216001392656879342246138822618596000506064197347797826360674740206066768105616022119634075009983463380450451503107222320756384822182514453645071887449931624773181843209189205766975928015637954870987651441093428790742801063841853710870613648494071268336718520609989193662604322966555712266091139441476297923401969236623899831410665335300287693851242079652766417764116575482527698909862939792321298269322234665433735969162370537354635426022212793829916516951812458156332875029309475861864832168036100050684932051323686962439401100944004871265954611222869195293918298741697091202940217012624743773740148047930434880134071996076206889627032919201156290056223944458975488823958272890827271586188049920186011372483381756327215922613814282547241496280166471628230996575712196158214419296400086835417490475762050678827999453665870843998179254756247574113241947052697226359458344281409022114490984414855569834297629938200395791006851978251540789452314570447907846861738739035952122495917999251152125073023231919454082716137250995492890065646929969177053754403161004107606648499501527450732239934843135782403617590614285301057992517522243272031340432045384994001374965677885681782586249039633702438346599857051000446079985345310537427878082033314479469315560364887808095700589961919492646188503072675968887234011820013935895382591655378531635733867036255266873164729663536585780148491679124537568536641826097474439390748437681957455067687627862408815501104337210128622102586348091049795026629847755288520841498350253231571894967132787218336878914286739460764674714329043077466543172375228166232820913884399502748621033244884425815993522603720688916246933559712596290308854837987831187868603985299672778991079194705125065188916836957707461266803346409297571621273669744579792376166400993141509871047098014489821366875393582701296978592154047490293441788218964277315837731306115365888019978171463316989357497529161027110112210229265091992908474464694880616076535676447419623056985214838307439160070084217044228919280276525638525333188931359296835029201436911640739135542613326443397328865822054622277266958360983210330499784973220324230873320067860146402577106548567110805023347712003458910169334492562568765617655486579861554108533686715130859077144662301168795686570036876007921899778586773024926380927849226922519842612373476134794841479562268489111125050096009836460550381100895738304207617829263104483621436696954914116286057176613974405479023838493649202708529014952370238218792057137559925021298882360011516119974306963274797700497220639150489715849524442202405468072654008510997204365377387979322510445448909187401239537372774939346594186504224103896401025469738341700399513377996692666168809287772746124901970482873235299212811234532121585183365957455157634612861698690926914532829967962395560308357630248236402488547338102968250214871140698407074867099464424147175828203426933273399352625981519240218223003618342376675978223685409948659045729063215123015821575747869016937260098364849333036989231829592842580565252536159251895484470383744606063272804177514085899790759945506122186376092319766772352137065608957792786445641304796634400569225630912361921883397316155168349835471150661214128014104268010495816242523956564058750234400027717022901478785855144665057994549426204805773442463406216901226094792018124684574968911323103400665638865627168914333341933078667443408556814341315622457712282650842405344218680041959472074894493122585544959235125511663699811060268402682547786783870697856237379076790708916121928040489004566611280632387416626440972666135653552906467342943691621994033284162737746395809327744679937741833344360766991156614920873993136808260185941340839649310583151582472842118041605466701734110999312228979975233632368778554572470835743170279201441482167089269601148796525346656559365678924221818917304853543775279216885908667679384187718926428542773287140964975643534321810192119612290653585239097053384019118838857181055938537750686962235208555585703170999159790925266501418995385877687419913109867293094386367637488722195748926053676983607290834299459214245454448719391808058132146299768068714474136240549531246264433210996309825784372179553083806530729228948423063345663464749124784432838597648482659473110661548743070816312076147906314572526098837163937978219264099542056094540152413592024719513733098854872454872752957958532886239816290903784761302764992350074297537529935736413343256229411536278768080824828264272490469821579364691602956601056091693214118079983445576263331809752806461684404362393577976149279263786365154503649254602137267330680538012543743899428278674033313823815825038742048618703955266076078538582279692160084890067378533302823854778358984936504024506971817239289067662820806870644998574940919383353779225564524511879897855096075118298871133070259417606504811875737975967907582332109183841096353700715240281290845315644631933732191252913346539650484894459463405464846498542392909208235888751661274668353480926977404440224647404828035895961446057306418132302032157447585970408454045475472768211594329164298428039721579943321694516844446012282414053858039983126001529098883539797524549360505125732721470371865012417277799011545522531887253686358984942767736291879520823504509490873831452054639047056626487397288414699034470868995887502314624376041295685425835460211648343997876594456168780476124077785686917329208614910733430442244352741221187947185204006741412739082551612516788695945273189772386318111934976538362209538145794078865470723398987166853829298164980456605055945263872216482430395165609298074641222810153401139528091296822501577788058441320125310745926999809547401937524822811766567354884555975298861236560524774449017768601395318337958789651821537173480818662481548994383504313603462136816376903163723044967185070080520676270661703821716472422802457671745489214425263275774078609480551943509945635529904771265565794069179829802505618195967937692155599097331113827689594793278209085808258133207856019005895129466031932463058527579808878619702172077676583577172550937596160585448895946438674608919674059847710754401077334513697499375399252876635184573901378792234353823245184298855863553027545883990018538329870887397182633835442626813022351786848223021747193615391732973755279476163520262398540028118687830194200502895266423674635635706561203452738844616692808706708603514977324265125777953884844181385119607484514723517402138410313887926247034849808275282514588226380922228971865227503720061392531050213797655590673918917044297857294306548148864831286297614814023073596865000446927602383175826622372023814193297051991784696054853905840565921385383114144075675505439722082322886284461352008861676656637130595886989219857784841934422704049642181768295224020717144357102382366426573214715800515465999947987797058676715197653437455173041501478686250327759756181008652572366189288642862614152404878778583889999123994611854642296585744455437788260353237159375111165764784324088126586398013370306591086255216985661849917545752433489945065979075700834781559461155085278105579627466428387393275784036309531165181585051221384785174290978437592807034950502674555453351925178759210510086466391791704584737491650375390212139045836383633819259031238319773302861041492638293915083776117301866788063477727337376598487588034143179342972259825216806289280792944728302567217356230123823452511273037556951793830347743876770904857311407957736681346184245002789910104375804350290055849623214706208793192548167233507845381246933960942199173514988622377025526944027660957719635722926438774041969509921957860099895512034930760456295217547578944110717549044393098204524645804282166028271326320849853715255223747428238656624971157278814232984831084818514924908283855098024111684714372530670989168289396649446389433984214280700249877371525838425351532214164088736563585565889808334829083590411100930518337253153957446875001907272639996681006259095091499142619487297816473051655417838067523690801779863670484882134869692272321757342824387868163155026507514776528841434991000673785633041248526080217710891257570203600877356702662975905188237345428502914501952462331628454798107974659590803716410148858325750939318563506543375383004180034230602862559379538735706987852186860418215366901191352618730162880988494194562153458192482673706113753546004292889378277832159314732645479345878462129934844216861901054055272880080673852205188147509808295037968007017827890763382714819716075997699261722328454883308842016501821011380010624034003956427653851615495598265003761915279905852961449070460286945783764260454649522576996342687213451430806272694603912382304961598983615447916270097225047475067713922256323109305048677377941277156025530229135290014474226428896060043985664414764074598314471196394714544256522527101983119706980637153792545030897990969614787286443092713121195313548819409091198605714672416796039412756059565954023207437912463835690859742740332585333109011611336579183205668518870554819621274761115824475149207923889545136008125718247328745887472423884561901941218845239040757130600114635318165799096931539712631279223303563272447091463619491757732213629265259483932694112595720793281412279421396184652343647057185678800471699166981329943998217734148466627755175910092112208940908095425320241481407162873446384097145834401020837859461826345147686796795581425930369560712827909731976532721520920193342245890327028754601235004520731194747382881426024889679985469893928185650365575259496445684396107228558611709126007436094792799251070074206647484676058112206660857391155748179570342728585720719789571924963278731045890219071742602401260460404926243004996129010249946765826762163389226098826697541205828989516586854302976752809557547830008864999712531148607008240385114914662804919200758271936669677266983090037068822452071478327772021220947934493097615114353790468174899755880282933315429832329783108126043773953570086764861455703720538836456220634573481513139552406967146972508345041689443723304957458718691770366806936088008543704686330932520337718282859029437067182372024424345411636942802139090168869038101719443200157075777039954328634968981954714846085387735447940193550302588701513360138563230119299234143648494236142549218614040446956599050281119065123891124584174459850639719090236338510570552364913459557088357938538529295980353246693511722286815965407635160650917657890560699467500092552412558721607552137897755758864811220252770062359137779451454037553434727200174030699796229060565984809625487688940951520255380527196557509594644311904449216009943567379341819700796801131699340512257212966792111081023547290173499366834186877740850886692260272079072368318626168911683641646693281139245149345091357417087506602866841531074866137804523981543192475897912737724151402035540816636151749866329066989235114478854012372376899671232934243382185194761378094534500885925774086734096159821530613327692489747978003400103030864212724684462800359752575076815874552001242982628219611552986283791593493804929241953303940298857420782042667450648064046150439828431988278511878655854349367555203248835293355215154325836143540368847642475528321205455251425089005885813825464264531408227445364506442471875026577970432766249021658157189934713903836506221118185871529248816689281149387336933063265223576837948287384567629346836748157946242296437809593305675229464700774132154346811753248862277472126314368628757177207460404659861078224578663294960642719680677800693995031326292440786160523153600732848144667204979432007068885203466503138316702153973618210825316997084095777072709453076447270714861176547722844800461443476194317086882881846211207206536192094331472014676941250039725836495172681331271628190852450762374938373999237382094234931777576742973222070180253385390752161764873189975899235669062570751871119981824737568746117695045775067265918320964522742527202700737368073396689493335212455296754987737947786617794012532027004765263500214598010490473071696472001797273210352931043093416740130153644864430225764815166778356665190999686900847143768161763671186942754994961830095019404715952949569467429974158835660610173178089955815217178964606084840907120996055420750406481316780732756528335754638385637128300890479853097194453365680127658327414964826876484920669863271803304110607679989499363051117569087384596457287125826433701538888272292242924280810373148107415856758115028377214199929997998904070178431721536099689657865215652281535099852044154958314511034855780262953228187622703639266456908158950018176257967369788688975720528407974568388071848368147756164373711101422830660359739643106341017962410780126415023185953119919851743733252046567072904187949141070289044286881452888542030925536539711180732681703233852138162377402496469293326268756942209135315849042718714101983711972320624877631627281593772139327020868808041611210642506836250721282153770727960471341665344040394008323500477555600335231884501277666401332184925466478025859916591224106676422606329586464925952339249211291194129167915426329097450876914127196844937514121402557869217281505518551057196586626936254110441149842726625530172093590183784032096465381355645559457663401466843815760556173396548723077297955611767545558655806136397790809796160476681955235964491998122923268453642304933212848523172995277043446064457991817956594281810112611645555068166214179875051432948927914112547739309698522897275630673627453010721841133979782604125098825651108512241173954037468109388632925069721244333513761793639377078097343802679717515972517433466304403424023631362771608043305708768546403557785204130889108659664282338820341159023982380359596192921319870474489978881427549984709245324283334804993339064636317462621621325241213408733172487588359119817387336674969606547336116493054936259385086156473261238942061098314666893239146814200280911115835471912901180643791812226696398134337661145706651617765859011866290230510362062430746540383934130833578357945911232136381468961001601747496040508132259762643698195033225077134359686836084061790405175696852209660703807942150844547674241555862206593902988875025563851587824168159211645301004785382149623559895091129780453291777433231614724512010782550132781981942660016692641401400215073208009869618329330913317224933172468022119222110967780179402136786648285127430292131087098971756162741431825024563123865593420989740357341043045445347102323385382062638159005077296415509464395384667495036516241521365928675270191142046939388620131491696283488810816859315406031687039794442916172590847205472572244817909839770915564434603128817393687883760543922746504553704951313298498075493097630638608709908567129551679511866151469079886094090035014234372438528892653052292200269215467563869358590108366654492381165070705117363649523422222430864100235528035077519034537563781257756012210449772571078058185578993734854731890920875564305892093363569576982505499118120782681929220676684969100497988672349180347517417173001860052028136061329046212841392380364889316430246131013896114620886733643012881016741510380436271162140235652847230906544515146384616911544352636807056111998500076333526138163054897087195566319027309871970568211213808122290173158879764606508033573076351815627272072798394455472878843069650461330209845962116508260543442131550217426892838014014442907110813428410111144602552206516074991284182540018977015669159198040044058346037801099592437547877412808517787092820107167400677757379352797418495266553221275351305102591141086942620118962337584490872226656984750341000089416148776799116302840593880332537735475602620946647606295503241037579645616739629113531884880642970213845840077022393637063816492150528889224593556098272367931061097505073006326066364429399493167209926320818434644059583166232214172354608819586603632359692296333375700469585384363612896848364631604733027751710131450401348804570362392962972293056245243172660551832380281613172879581874177873999191615945554280381523080932808431171831162480366500187218537243364183309612460917611485700472308725684543201333591777870875805720062416723156886378244810654283636749495661688872340483788700850952802671856874911817610963697642623790694585596292681144627189181090119345182663086231101668622322242656395245907330976361827554274738179940329337848495441040036927521030198144415956359254987593663163117759750950318428746782724536045709191977508833834826226008105044459492071862887851124000207370643740482307835103024978522131520316143133621041150735439864461303981440768398567810342747879888294790895519733293219906879449329576227408443567083182091495561818139709580300183988900926498295130007851093303034735490001263905525666703815662471805074832653483464017861562110082604627763068659002022290061248110032277835659480491741685803346860185942630960537341849441254621912820850328720220099719703085846903831815948378108052969111234469900213449621201510935033606364441360718473163265117253048612910774552877370924873115059379975594764797653547512264018363499312658669636252044143301133275948856122896908807955554357570224361123792471663437165994322890474386977371615483312654240274917975823017938088828120570725157721882393627360178684359714455397097846286336542902175766762667067058755361487032452691979711807191462629400374556520641940362638601156151897767431827755315025551659161769421411944306656483729755971205158847077805100609451142478486030762233183024046634731998241091927647081293140201281074229638519565836744225957334477035048488934124662689117179833412261995751204982080235261891126509728918305167593551132495837256606684192746685641942542312812604249459385036463290224053132378819969151463990607907566284799498132610457113811124816592073876912404228718957214864917435185652768775972405472005055676155263077374595050569380445927254629227624282324022639144710260743129093548535329166409440745328503206373257744348081768495921203051277380909653143607993798560497922401209042526482027545063679013034224090557131786088902009578053944587278710309879281209442228406174613851015703425208896442653035593433017151825178195656376461353976999422254757320843799673961312122703443217810136366770416022280324283584541410186757343687134412708622727603655822151188126088263855549838533299360877122095589764555831894440605034963593240618047530171543863406330719220355009400853621943193015828068618463525715192813415657359614565927022864599950374124560802757250782288568279283981889787056682892316839292341154551571063557941578345542754671041907713916991536452240986580152521413950221909311300401834210950573310986636707259358101031661051309385773212232095568401212113664802117657989887637395303419815197285218303767014775187941118263364757701645801416722595612094617256492786234960888581258908644261565904196340953866080360992211416773775811794461588783351477137131582248796967330389315547900407560732175482920217791498519081651390644034481054631926638618449779541967535553629314344098339016568499456976282743694094226990253567338274717209805478534273689844358823220889167761686762635213660852155379217308292988677168494320820112265250465147465761540995851734643176948212768832549954618378229313278894235947403091059189540050540174162309671222230231286251382960330168664269701184879847550103734096891644767658518494215591999289038729772633994782605607909250958602919684314517131364664767663269809659372362527485683213423767748819489550121684502552311076608663094120819444126425765640078347991130533756597661595693095533188042424858906964919004167862793984360569197158850108763413668648751580548662038795134796072363633200742142471607248950331033130438478727721455169137937528823668773579955523359540360006958767663769273382891200792219978014671308161082846648986240229377522316216588963361078642136208401846207076333289733357525412953537149613333637024697832691838063814341468953470110380107658109521073881571380690747949565670069211321400898778081118793090183329606822272218706776234242253132463973009807109699834552876562974753035523583826338507291144038786945008214480736946929410362266958083561278665309320342632944111933568454005929288467895084872566222537402556910086178636725266868578871581790795595763838518774174938632857356098756247626594893651329666857434286562476712948978912053221314928485361437557874581636810339620121496689958155701910814159984610959259125886530038768462364175410358525466364963437003817037478488475056899453167903255220680972912654617412046515512308224726746189431694976606347251017760176509624012256430240794185113473502772040668911272235298153310706763247263346122794462680977600261235372402565342428891315618314103502068905713456642443898791550598544333357842643457924822720923765689860455144150714293395988191525202272036426613604735167788938306744743692275397684135551341739820719761997349560899397158176834518702536011244942292503017704919088143197527543596857581249579873961312302438014656390262379234159301289864890050697270811638044917047952989380161532679720060006954292141354840074490174957068257965917633587876418310811656791437355492870390589195417384434888575236729000495511887143268158751819196854027947028789372917762833977133823527271605594047833645204454216193327767266997537908889656941017195173433373639035893498021821141044889526166903430278970182777397256016243155481836735288850934557390770176879974316674177873595353691865484473733453467983284082615866174396648448587655899105222384933531464790605365613981712820795158980458944870745012625178190522586618319538305996147966209354881036709247259905779883001121774083613747162613121718718121765918923725503169603025414059775634033677284812621022726172795448569259440639531946034983949244187188728214847278051019219061632650746974690563617713456076560151056544887260016912140576965152937923112593847280301215116409815639859353671516208463294111782313780665435606290204759804490515185340614653193221565531661077287894780949320822438512792216942493980183066827204689626918852409794592035031501384065186999468436802138883745479740611551219137006335335838742554205225201253167839664943039059136161897824615455736496989748284897511175971660700776640476529493327146374833969267481030636618865885871357459065369738557104206235512983683473717518637296882680429023092437819052448203633749491033780472111007430387589226718305121672641937445022189565016859222379229644103487856501876362826244972613567332718185293673326778924025355624558506285944995173920352607063143453475125045473988800771973479300044511085394258296090663186426236522540133110607203816779232140281816655551493003637674778817612929243525334273392804853555644449770313892660688513595443032771249273885364550419277659045526569203023630628086737313386779020526821493028558215031560195310225202008446952317410091935202563505136351728807216165619756089415389352562731065514333142994814866223728514220971179301807674221427318769123225599068305643040168965703654593137035012069926370580742670717858305791802759271418274045851158944773725958366871953693370091349163145631497231502982604044228629648052259439533294319510685652623769935960886317889753164041289936604300170084314649910520273326986690544495492144123643649516368199267875158903308008021729192450018455925980685943127884890009117679595631340321587246856244771865906155486527065333060690497691864000835326260821184691142126654682952073416264592823253984524925667375189970909193260923829415974504534031352530649063052048817616810084352407937617831108050356349548415317746508583333482385238626349674721498226317987606417203486962881649471610837297410429357625231160922996036520244022925852994727208338382541710605328519696853929697901431251965472382482369212346941935794485798227892215572798829686161906338745217934061118233498053873133571611922425811256831815601388107647829228127649566336217442237622314979122980981675696084718536270039724123417896471681761828191623821286688564738436683561266123250021179258554834879793399274828586590326426412008238270639521886842428936689921893920643586517856615445446066716003622868934277000864849826848140740152568437652973191932003902752740685386148852109868250640511424599581373971884237911845286263780490556479772369669602802579334461191760806085717929282518443201475396260056795859983622274443298979555522286098935275090123248614824025321562635919276285779582229617575851161126936084259479761243396355657250860606279469979907581601044739998880525188594337741793338560959287775956717010974967431887861297191498821025474987140028456316522186923752430098895112024364905143122765311337692011041183916334483877092060762713207154467434392457898241526630435419894247571068936309922601893061031941877965230055016237811876134973097426088184771523558854391942714792636158913979696133057904816103821706143126109814433296628421355860690183679289336314744946165601951125734223218561156723224471684084891412009310803508347465591303235811419456953034375339151047445312759012246655643310311006406250286141237465757595515062345272406449339679189423074715780517872804476518405136015863853167217502722041241633981285716960361864306419009648811214289824387891527247249912607209329666572289719737572799987057261586604351332158646254582068057275420062514394389076091061506010184045003513550435595492481794988741059133038743643006541472385362902469074484677635837103782658807690695936783071957363772663557731730829922825702355589418181360726208594843357253982255284596643183798950892722725575361692285819288585302752222111763240570368803029179880213985853218017473059855415834949737063438349203222681064505797853910058950588000796901970989024891398100153535735263455966653841180246374300523407017886728484700971799201082930957830211016099910194888850208786044268607730761356444059302839253190746479591034481998876865161629020179308077214142814445120638378789981909871863298391966349540666796352643214623307874636895977770467290614618493672816768568865892469692587289574612383976428609152678216721485521931098286876215129108390268480687453151509897621485946520612933109826642660318529838192558395997796498785638233711720935669251206175993658616734652260780679839202041348201758667517117266166059099935689134403981502783169912967542286338500768263412926721520244354394385577433875835531732630087877844567588686017060504993866860556398708572736148432570475951361297527699607603796087875593017004644800422638247983724292620453039397686540514323787850470500044021489876342281945387810591918948996717789082464375942890359060779570779044371697572217205545617612001998220776146006083715672949666611775485959701111341440660916193302056635102726465186709383095928780274298468220592227382286069180600071251491390960388794766715245311215979106896793675580510017223646727870814118907296129708671044891204401494372497559386070410665008123874348975894796883117801922218011304565118032811400841399513276234007473549530561303913712135807144370908285956196744487113480226944038875015037167616653006630016841887138764776039073252411141338529784590362522120728282642170292686414044680503737906641672178621142624929411900059254907688755409145373865613875888021542897822157404182744052420426584116066764587677528168315410733295441994197880239120939492892679672006211874523773799263268144366445143056902659858112238093365803242001669926478304950512132384293150753574050082271689269202251123790538809472083622740462713200374761951786930579663857608211057617651422494035358568003496758488556317864603891909281274844180241809960421559266969744549991523306027449577078598580049244125588256947353929803430757781324304668129608771328934221916708504676658970648639555368263857811637826545406221675205391436231758186287523978325183642346122171197155445903464431548693645854983935014639115354062362508265996565996574928909906763771224153050999170909645382714612267628962808761600058886865264840523676602001811020029268057711060740152467205030733639081896966501298555392959073063974665003289458841421022456907059901654644715549935172373020619006525961319964255182712156619001621112039830005835536254635080013743162670783858898468626001974673781667157486734024477015066246280227019499845483416036676808226850251451161090759933246102963531780200139714343318923771978910221895169461912605479145889214030626210437657487287528971248784476434308476295603780169694054177952244554269833483205281090071443046323794691557379985433902686001506610465906437588288519499498532708001699927658897242648326185755292767050108485908876473459547240247500038575830361160236617231999829470085415801026894201694209130297267170196473234809271194486039573858666094441301344504114403173792890425365019948094908125664058309493293422076804978134204279920041716246683593378344014381552908846234249514542169962672694597372330449491677365010486287252916130051267069350899986230321358067453095495523031167747481839868964360836274027326534782493039144653861997544083534698038889777542364850135378877710337738781550143493939435798272584987922836460505860220852460146303349050322999650509644409302519184409779796342156162118812350354258475341972820991880714123745705980161748726004790417147645969544569728597968478683896619836418205083085079168820085607614258391574334028288195947907852926290314993083274645394449908587274267259586840923612081263792660879526986277427453078618590455064328222763968005275771600590806563088995911374333944225434014435179306963796152125874041898058826881742369503455487787785778810612390564302203040137388352020282152697736938528912885765951799965500403307834397139199216916201272384564847735666711959152905445338792918029016216873169517682143805612291799700960064587200458821196022672957545961304722078109712992675821053985458275135708477866267123536553418407290541183420968557246887926881282586668483810861621481319559417096515183882541529060558998606327349592744379345564571040094708242114459522083747721194094486914391686749666551550188317057019959085981144427184679376391753616085593155014826254838220839766210207314324848197857148150499261429341277017396833483178190286041050066252505429985523030947636102783498263157094333359354541981625674129702512672065789295075695928036473787674426939246110954213639553497960349978214267151907973101871544107445277389034442183976188864385801733116633082014133741636078878736131472323993592564688988330178080411818676113965634393372826854076261819238516800223336649758321723526938728660263011443118473102404119190712202990093099452682316436748507875311510026835931494678378666116913926356349149602454495242259559645872956778383863255604897493876721924949634397553709798854560722075312261650837381430231462167137484642371818406057029238042308456873343722160875828878846638016440836990711238236893156800757425173249444160017599582623755663928770230759109756877985150072219622795761089020023464476063021019729947881616859137462768518276653123778261289240304568233372250623650726631693737709492178134027528291276186530176757101664049889127846330481523272568918235957086021553475529720855676809987740951025717352592971533402437146524922719523981648403314975618025218346121841461424936110075332205910532881862255522857375590425225894127876747287070706472997904879688544894763370160952864529887411827739713690913150289460859813852783657049369807346098851071026975681097464736024279859589417328797754841722737391201410078019315401861881273795831564229021894871018867008084877176970612156972767462435572122469623183351727412779726908831433272597466421488646000990123772682401548546008589085722025246200517559795112057654487739639509786442916663712669959002859198392615186715630740302843465687637481606900828983168287418309777666659736210128009834445845537537198200397686854892689263397800641044602372962214731278707729171549222732497631394842877992319385566378536907933583689257216323412814714311361673445303643203594917678267930504159580547559415028090489383490698667161400988547411006507578028641549444294895243913959009087659705420187887297611764564948308385762701575365427444825870241879954560344155063310307309316475598555437388965468589386670234700407684559906496871755345687323250060651526905495550136115160518930403981910450313163155363833157997485682674362108402541808797808285485055514056662761538464329633145963804751336052950600098614239625804724327988123015835569843294745940213875182564073937618708526157057365511244149523340311156461284747279965698799687420191399796372279831027181462169608386217023894408455364645551649997285642599493028105009756357275004324076752867478705448629402641790397571939375115530436587772417427481627870310213183317445314229311383037433365323696490018182936639853587746729219687687359249205135412846690839836447861870242374176332283132216012185622798929352099748736455012531119989686769602947529326138721072722503193291054807060751275482952271737571026320092415322065782521619969091839301683503566529181222305326234052222527450957149362945587366483886575999629494018636968266334703233033550783951872265433429994505706214668840674400636474399012322657450219636874572214077061924908595843441688360373216743898202429759760651701968222482349044414341315846524908829765438574305262446038870827668826720735473928535260829615325828851986736201086521749451050836644062086394419203302693594956558760411736397592309463311223000619699437093044324315963271529712485248897182174399641868531374025595658114038268522556809701045580416613698235648410371349163092801855896974585312980208852193244136377830359146773669019742878025629608590895119246106551873849837394664761115520896514557591373335527487329888514026680594336492453008529465084872121302174691927089235611143603221264908604704695950023167431740773949991611089553081982816434473424028899900648434250743115414449508091566368849257782538853711200356279582019533438117368677502168841130789968506671663551371492563210786004916252993733195427303542836839299459472058493555738394881503389746952611542556744762674299217705434540399453968017660565824446634431296204569809428332407770091333730506034529730506378508693273881245116181956504497142845498306486911099502101151768195587041443562964544851011287244724271450238909793851825656007262218955389738650280879159022711347874221062455276554283298870108892052451846004149971192580874619631378827515515088277022821983150444544838800739235964342620776150104822895149039458388633518753763722385050603118630865744061908590694036548027587828876152738062031480723764341544561179786160594731981423535358836885658889386121817265046019602651295090787828597893329871016748184980277155100471166837306241804294325783723613621489133077946414785751294904878853844348442913866907497059854713624507282184579970869797423088140647682603688423945163543735505906589115197486592975761238300572086878685739795843944294583797599776596916025346200900190869656784144623781293219204100280973755237862532658410815504436782972955730190435068871596438317876501652696166562530281853810180791698670648041668587038715610491649205838078392973017881880738474363060839544106356002645300772217887090301519039308723977726972070642175306871742577276491211382212956718559787188888852601047317764645551740775779430959747113600206175556964906634501433855818901715164082268298265931537353300580768470201007629339366756983659243469371185917120246431527510924270306531341181854132648071546328946402583958755678845873509957987550553766280643819709625059791919549302568162415570861716858590615714803779326293490091098857356595285622641095077342816844842700151302579520624651433113964438422502072461231972236030176638670159103846258942877324928366261982564604299298773173500792185032648866638822985840172634943808862284451623515854936180561409939780045600799543833809071039820166791102283863480010075373229998528590316371243972958218141501589491636204432231498284907698678587894014873054591828400667632731582967625906771682177083592951616745703522453332901407296138823177158845070454321866205296809936549288473460481370458537359350018382959456663179864914218506168709826047702382279664739576492247761135908320657050978102313040840664034396172940332445821568409752404474169745483443118502647270712429727591419360006004044966755135531684518746896383979205307713684662852789129523041429175699437477963538044015379328039592536380909978858752540250096808196869283520424884823900351804902742761911659360299429280396831964143479986786796028508942188723573981467239472949738509083037704472345626442417757025489706794901137116174524020594671702498461339526100452581992979128470692492773629390771961704237266016160528865656534348934555735197616934475128967773433492435642688223894361198459128298433370970074260737314860175243368012050393853298342877177298817047543741719445213090096019894884800402159474553827652677705068572883772154494088903252862291433724583716110367040437276536347662454282712801653647819983089012893006204141903054677116677540154368673994292198130608230821853483420243912895726698267321065476508444483618917537177811507982769257260479113210021970959073421021950607855730030359292427800246012058511318638538765855700746602278013899315696038232919555163237763865747780055880985920123293936299829092270887814364122285816813883720509435059664580555464625858798387734434909923441026730770185449766433059460806841819620752144585457319196377345260060992618887142127103983663021867974690055194869283216809381190893243684577911799337090479246975398581186889162083336285270447440630410364847201584318706318852648976776135696409893390872970548094491663712484302447404738660629275951649154576030606498503306654938612700925249570824140862197944077739511766688816582386811610003041271398159288454566851286406273052238241565861211991659836862098920164383082741977264092612976282559648353577659565349031976863031801970686880054057596195262039622938876554029644644396040638313752326787995436792423616805002817056130581982681393938713565816614401052937156713556662509867984780667433268712004319922978974704934842305554638923154680018116101248662883052324236833963467391098886805184715743990680523455903422032688421059704206856368257838936390183992967783904789391143850279561770020550318493368559829426299273626318850528482770058977287917380930946625103353231522652220272256000896570724172838120558679330843160860651488645195939490791402615514018408920360494946351757837196894631038000009138255190238527349655369209632122262840145861092249465257336976403934318377992472857869392673113524797542556592785266973779049240082359130310973815743617675004006822359028549593533602311092104246329102152045170746942154374155867680899290999214785873850045004406667400048913654949026185266762242560496081359348262082487670415362235568172135133739180170571957057978282864842387941576049184554741054101622333306027693655046116895422526879464337731958285124842935316816795237844168794470668057839058514108844423281876336593750734720487250458202804581030877973755832788827910993414575114675817259237239585497732101218605672379038119170550630065221253132848469734538729421925635977802767895796203599697730944551630176524576143318673845685972930929847594507967143090896774466165747916630857697544482874081237413771807545386154968158094607119793370983467394107538448202093698372483631608130423849910426862169531124791404435526573407888651445640730163112072476786903423849940486521486223755362321256694293108278989991182451358923505044477739382486478751592932254889735282611301988162274443989194247263103215511004091216720029668518461188779233209651306068238308259353691060750758751531067492207643347453310256259915142973043548639845351998449694180171141270469514355988559227539512890407658695238066425372736254206262699514070305014498353693449289132900376867382362713663498804069312259733634968178624476293102741957924868941846583470657625489005462212396621480240501340593990885004089323647108260526087069745377982497522413139131824528587153146067391215949091345394321951292277542789723256007713892127042039621551578025287640121965650941098296912740104036763032281262723027447310906743550735236792803335531434322411568157697660725696253649615162250800418131018893925330728995293684741469774023066811570010641904778024606383676777737319283657983804586383791529368590217841063696451552242619645885639689373532335570546476274480204593770290716000631810381922436865980266661959340529774158286681729755799542502427647733812629052669436706938185718609083202725073510656477529577409745863593419251506269663283299329134903075777421893741647201139421496893774759652196812050655403030241210756659755326206803890505880416253290840623149183055690995062395536159662174667320301074467708517136657093965789072879608503788285984569401752995847443899183547799787091048954317892876627144912180481359914438064918139154724184629155583827268680942751849475551865248952582179338568097325913786548340771989748927295603209636508914931374022112682670091586415596720811285493657573767027053224690870148444383316122221662267791923259491858761435246251450823927269696339391409046688008408525791861759063040279651570509325358067413204542856679574838911402810957164511643818470826309095181813105248160153179457892061189745727506783009970422371079465499105420856354573131806233637978681249180534213645982906393707599181213994757357986040222313450066631030967253025940160028973099744328684483103329766344272261323704219555387012216194298847969027102523637885692439741490373446409498569129406940893891049337874847246687283703895121827352117735623597647587057350790824296324460642170196695345808470132209529875323190093141794155791931732402742589057466512566590284528975207218202485354963428274237218135522223583228118285332051335039025523900514090873073338503117604404019601949063600626281862643321480017567408608142137142624956386065475175149672818376982851383733912753819545092338814266662631152395536615761892640712491859712961702196504039955861665289664446361853205463887377219391862852041380278798147873226804157805295529406095523462102490889877000848390336592910103425502393818687668863096620166070382909197660490188787897256022699334381604306374120546324958676853277187841187224366799800165560351677667200192285652343352711315826955599045488592677738154524126439244025823102078270892228410788692747771139375921449243768721709567090831795360599491576964144132484617062852358327014634542841361863533317754378609876366832040159469676917062063401883895465420307651368117872645690165319752294768197865703680846124504816416411803327594082403476858210707034921728845237052706056271636083366937424680429387103026018996334892823254553955173015815826207776800188495920734306102462267937180662204064468177376216989402276750796472013136465591913723027290840013311619900372495453341651683169506434217458891397423361908092193436829179908804773236358252955958538408514786509635690930117850426154199607077427696684448480060278846486020300855597615257396630262808795731891448507699993049831230421874268122905394505654163945710132708301373080833240731794978049706353243125650986439586987431940731008610079021664384473454964911083999814366062311733661681319014731522933913089923045263722840111491669934610784003508337927520065589930011661425736824845940490891131706868759211261651950995260113869335273103963018259274243993964790943134697973996163287483300390353432427209238143559377161712833372619009889670081836018309123666648302802726676151034305838375651330151911504131612604198743513901222363199270612565293046650125468859479733352747470116239702059655345508694377659629530550567334843385411245738013893472337228620931144992532578728353893256573918772156041107111608760738866473443951613141993526771560152324692145459044268029645384284547662631090882707214454961417101291572616671289065611198059136097553573616321623547575997106301885242200523466919858532254344497876920496701820974512253475340948502689960536972183180350849534057124122455249728304147058636385297966095023795382097447729486393643497605861998313145761175737923948603622334097970334615026980177511582804313379253738677692186934268554647782732264966215387454832148131473919783752732841724837325922430106673138625177034150014527202212249691501910517423332691162331794406874847610798092133915496938927760021014020158482468302031679659958782735244621621817669470259564452919016942425030166809544677598242229775473204424519369953234491339824175056423218371641575625126125118578643813895353842593457064955841507414619660207389715268224185554120579878216057514373468648903402305109578455228918730700924579306072778716632276538473359256656051019939855671732198173421185862706626005887443837507248543774559942491382388880990245575513272060408159365032696028705057608747434809606241348430194725991220359282505114632691568288325141133199543516592369313088698038494310799996752418931218242077997154132200292884610999162606332441493486207036151017169983803364909719181771796729262592314780304305707403514555219650317636917927135909047047861730343427812855688447041613395423459019898908603756874784795881145947082636259906986858548442954188638917372196841746752277881589497749739137801308006365739204737886687509258012627928833901968289692191536737274103894063876461603595294656598757932564180290094266720382140128025144883813153469027822966314080896166717086610894810833415228104634363189791211869754805739198713737376868154220285417576127933244659381571426088412909120648428052717283111721248314378394731140508719589904235483697908970482405505732775106057525704688634080962624231434278108752477358499411263453040371826855596373669713463740906008991282431568504299045278859063832498782336123992174781159440279038105160780233097095936492478253691492257931977548988630212806796749407206361555019134216546008478404546757676500445340403094843017621622858010275454845443978875776666116372486761667447433019039900433790793046673537908414270803571561011547296466499353359893802802106995873332795176012560879124009766184971023966304572896472897974697301335489678543865936567151991982601814083928720524012645744572996466820040438023395128475540617146976611287085649761569080854290599760952106783952638041012215963143251748343390730986781494152933092974143292249178363986446234345925333583502150385876784133825852159423473076997645050137550343310954806828883201748594531950881267991799567214695338031053991418041916516109697374890570627194921103032671720556313996044759983280181513670128472218465347509355456099875804921178442335272604623151142748623338287065986643541108115354497776043481852993535820750407521313352635124850741623197096323352905212906081920067345290045979781412897059264295683964039662931628589982974141959492244145526393114325202930521143344595402696797462048587357366944340623057519354096644437926852656052207703727055621630116828021434071492959540427946384856483184005309103328262770110538990227915070461914456309171083164857113809857019852075659271534119210254719403476822858279695649536910413633008289762387381183454912848138274865101920330865639258836964169816429512021631740651089266529426733734600314502282614156682391908795625278259969661982713238202888567111083093294655436762321470233686452468478580999055346705374815816522479086780118409885658181414963745674762785075245212307004590598065922377933181006255485445155716310239563712404879228593388716263287874725074053025188550134573205333137000243880755696627311692891083542957498366178028088008212103671585210844943896003320074937802054242513374584234530521157676044173309835028885143381243546989024042112524208653786062173007491373282734511939955029499337635430474709211847093239050115270246906410349302719008099452135744407879263805538850478236544932470530825560262877555914059385026208517422666741199596451289776174881584726522478126496850987921084538832355731323215396884399461965273584115825492290191857298993140276716321491624072279672068917104554705607128735301105911767762019951765990950740860255995083886239013156132811780016007871165226647833947607370877202975488687063987319062046419002851700822624850908207747185316140391322712808004025665629373924223244152197732087834161160827979077413483367589497317743309405157247969612208025381396071552887517069480293473737597989804314158079777680994517954926954303534599902485844849407436348055375062167725988964188112579799272481056400922116049012892355688977108329710349521234927449277418993789778222615442386304442448433899387895830607836195068449325102276388231342479349400387717023321905205083608185385583060670098760541225345779878497571465004222441705863896514857651635537336687284827738964867652015452388028071658227866945875367341216127632573813511666899701185807122860476352070148561549401717012888765872213126717089573886340492484840050224288052558340087376397162483830862634167965228659698409922795126679890251976291843380029728535407118571841164766977812930177413390690926035111818730734073234418143049645503583173704582599490223818702735831497541576995800421445742420674280439805678354901433525612172389092066075376111294462462781745777816533422706616805950002469148744092777427532717600269637810761155904398889329581509966374014275303737321129191412217783939618010490868616496307427390726065609768194993460630325818283360833020952247560414901015266343603975205007319280369235312014542668382794200938489993848982498886996530277217703703333610272675523121967276610181655310842978516127352352289555238895345910719967266079355888081034441232950445932375968355896640333241845581968524390238739592861270330605288505140908944630775029638891071320651072620769373867368944399808653389444709644254142141384435521880576516952937499609642815333528535421426122047431672783259969675059744612441122775176701234978981045946422535940826889949608715222657894980512980042896224869460433948102165922423774342562888979281915089401863276015575129501993947090631974976284964442387386495079742432455914774158290102005235060072766423266860651705526029264153105275424213027049038762541548608329733161981106721319488741518271743613821134425512400294598038659135063820997747702480938892970620914626424337279197110961697435594993210412384853961276649756138937055474723249593657358869671464804331987285638136354293651275009578105167739014923887320347821155074599726472927456223926438908460226754853161877391367018998055676734805311178080422005948531165456713024536126447744675059026138708167976463041971768848983117175187225102066264830994504557817497088425673807638014598676294181056456634614480741419528390942243189516610543308133076865038751682328112254009131732672464822674752588937416611377911221125674517442782656759527166183335057800814222128053040252134672433181925348045090844836076139724878736039573923323565944278840913873300517822654465730074654203334238343590960797407527030977253416047865392998781072044045206107896991005008623915047701358718627842050192958624573319585589246715780643985834024508457410312226595141951583037719232685310702668024607799588324139386449600971507579209097473679507739198518977459654413906454051291011413341618388615920171423832137534225633543978002914265827008804007759746797975836211704198689187873651452027572519367730352939798774182278223867290088562947373353368697342911519515999129256361768834644547886777623671217983992087941473883140416754458923839630655476290836362419591372958337941946841170628639997040904376579595251869719913615641894818518037287630751508848467169362131470074921317942048325141947488184084610527954795818974730512530094821951309940795837812265315901395725209922991336188697811838502581096116399629234403614087318678152934643593408344308635017787241786927119427859304991291453906651235471862478980630543977771660239205062441994102855213958973343817645605943312841738710698298676583038820437934846888362007812433711622187047950230525169402453773228134562404963782833746588517811219501811191049060308822343196741630533110224477566792668224903317114100048997642170817382804284131819720134698739498697565657513030093397235024443915611656303108982467939869414290623296986389553966264553811522109451058662963981332291497723446256567952523476847744158582090120679863674556789241828952308733168635760463500603341517681419003319295843273112918013466169206379307872273634461300007296230596461717621181307813536379102460815030148209056466539256987618947856411694393872874386074912923715958345631677276762292415943355837023763867832839741152912878398814872682657191615666941475808892159837158973625847914063406792188781099477613067168230414993056573056437618780586828806259909387980795496183635281017130849450464243488897368054146757388489739965154856233664724232235379385400161073444371254636315144100732012656194774754593052123392993834099600120819270016022565753090934365250740672756511868487878727137700443980356937080556717925418283172521351969220981803335863814773357571476961293534619002879185235682940692547840986770556878827102602581351934547083712452578392561633710512677254177663951054438384411732427918153266142388046584661231368078374146740761030709151728699818889467532247164829978536339138736196113310754594078176053878322118729952239488481735611137046979202150356595763366392745746225126630191236999722457973286141747915182646765941088636185542337779228672685622389100577023509612490210147755428082263629125486202632044496318571783483811647243013802796782207700201364701980389288493581258704172714673999444987179104886707341157684642188497417891082520030877483996646942202831038283623119120826618317617516437926574246263303927676358969135560627401805448566910814833637472096892423572057063852389896183368848051408421913951624834115917535947202654703883168970967744909257515119219996494740647635734378306709716293371607932753092339028086669540561266071988418520191060663387529799374402573444870120990156481627837467396587457004788545720991847052858540535450381499137164955847452532902145079440022463311043009713470879992349151411735479901815554538228093719428790028954164164615292257688608858929208658395242408084981770368296917161546301551982285477983042712097614392530171537485668240421167227105662947304704459046139417183748829697977623262726647272444965209742951120522885494960650054059128392769439539408219760587358772433614487971551624988070196222039835203460830749387579618179673571302973282001690717109818180950521626499257278916749635965372223488037798831440535100946137897985770970191338192331802588292383325766047820012590082873909290529283219669990330489170166614986494332608298429682947983082578631875375756918941317178329828729507702201530296622744846875713612035418769939713513891657873934967553368298896533378232429645440971948398861394450576339621326609851074673065258590547519889569582825312201281337455767360110392224330593532837169883048594589835744199136935901037636051440842634612431082471412264438195479630694814461307683372303144494849109535388323298876374914009284280824050883420790730232166073702103754556948526397089296693304490191413782408973392806827785878483217239302832661461906848872992413712336811321158489598108980742860916347097549853053644055119263719990833795093863877626678978228050717970570701991671439894327485216542340517578379689047277940279808876913779618329067392732495032068613522596133333470372161158246331587875891861732540018038123259195006963762338663830855414108339204887948077410320615291356322409668990944825032368257015083541970918054340928805252213849341622623828735489166027687334086615688583529403147145684750429127198716360366459399457715491576888905552223242914930570208686086254089082969993175458351555780889549739274164742278352711389865762135218155109851340119259629942111973652509084115948676331757051444496679442729561879294314828390240169191313374967091928021518387459178420848950536517212877158816264525077712268493100782423473037718492902124042413283316444115386822977439659379719725102023060455932409801942757121368838275569109502733982847487239286668764775879252780631990352380966877969524596380827343161175135246626617630131133952729511870139760642495937255371118037197867822702187293643191522283775674988891365418006225932570498398570789352962627344057709025485560406115849716157647472177871303764044064871693434775667401418577459710405006048191780842778061115779994799686191965820606065068248074792027642339837354944092528219956789491700834261157161672764766786713255522232363990870865509743055160246235372710005680366341913507234735324525835044178327421266046615864502300199052420031259320189920501791273607621449014009992025102459472276864825081523617855820963022310536232841627211209552607080953621915859384135434880752358598577598810172351837398861712273969514103272234396707712042696807897828940244567236243129196421206404720888048327423894357264722421099671583352576094635587882152965912832077179837054304401236545346449469722736021795502825105982582129253098601542660612780755488323093456607789416138893922642614012688897858212514410521193861544075287109233211047416487803583113723975502617353487571532232665890670314459470479863089712851346118844222244097079951478353468394055285298505759780461923981492012600572036356818186311961761694627909170670208935160257654225246088409056381329031168532111608301409179810567255937779078183203833145792194728743588463669081215601363364055004136667907417474400408260427091465040873805427485436753358541497453374421232872206451729156115174516999251328588945154479177508854764308876395215379379727225220287364746303920269880473177896835162482849188348431804661209503832847323062906023351056959660875637683706979855998334363199091491166701086120916868897153962868885364834371544612956313964586940625219826256119675861477532103236768882633535908888132451057081372801984110538701688409383472084615082525912290488078639118160901421863125138758149863517388002254608247098916074806723629078656287954844905413884145120697388292253246744668295019290496580053223148149121724014806542131447309629833706314514368159273791733834213923734957025247883734799246882115081004779091242397438558080523857163693712077992653774807032321749827286509751846515445608430283823666785829170584817907289293911269994039629563777692912275681878604460342946922935534716230563796248566982374836600973838553413618411453039190723107946285731606124943566166394605628842676035295231007111596545791854588689720284265108861393403268503235902731342067888364380609129409402578369380443207706943807806642866853832724785018229652344587791766726006023859881242494150269263806665662926341289067356675447688103501670860955638508354191039846258923532170693457993642354172151027635125482905731664624151091753844994312845616000176880124438301682090973362216967510663740616970199710062815274867039390500885195930290382304016632234947183991600323932769093910222032313041438567218794602013274090543702425141873060585857859831182086691826213113385579706484425076799192804266045708440604940285678487592100177594463873907170329137147515250810944303603664685738091168251747399049568223640978885187705015144663021791822676162256513625449918007293603059456552167636115824452053837874657025935270809122654565582442842226668315325503954340122248506436369805093353041061914015966722252135349088944581379495998777182081626677214602375384228501213726219811268644999134090081338348576779165256868726432793980875812012471417161470754180097776639028807392826998963160157408271894761506840025973637101559253628400036703439449213493060013435734537459885514557618512781321272716110591874821753574515021366361180577911975070617505571486376051994545273987998849605456531465437977555621704712641760025964863865622616477059660307099766502720752331133344754119041961633421496579918614180277664987881729676225886279426742532262471034281379711487922264142229539327209729443152247048504446449128285128926656146714439986075605602076616630965456517360525061855049819544836994456438325193010070643454848689646690916894955245296007317981440643224123603878286819917533051658921610355527466270738660485538571269483004567630471589795750462298634355347583661080451507237899228431087496375836291647478495585851697440803796279239140641317886557750632760135493448820576213717996658693224814716773050018330445276488904583707291984995045856100954216325712818600168705704788712596609902656848858459925581795924417298760414987180230872922505168132153312658953083448448242649607151576472327237368060325799620764195443043227963343234691849703735992521249203145963023744328848746467656754793337093569307045872244664544249051179264427124811982547701209328908023463068727030199507471677285422171044269357649206580557576284584783297163973879463145793474389098935154905918589821556149351197653484893417411968135704833048482213905683707134773794046998491763243481938857390995552643263945190936289904760422176019445750853621206679292201278442753279193156417154443459514276818562332258675875146162528781912553883207140105597559779658262585476110494308616112392906159157512872010310782608689830730564907458010613033304516200087006220834021410647170595571386352659961729803775436173309516354494714555812168708826720102358758784386854276357071057215744575214242674555505786215194781819123708285296301433230460367626237159773911539799590047763629246687681283732977028452994836071090205781569838777977306007300910271627321872815648203444822480677274564540565865732753850655216876487766395191576725625552008415598860286987082062720238162522027322523246338733760632004302016346506539030293572886339502654969612624290891474075045128657722315016359755491991364368072861587314975645766491851679096589500567035832441809101482173022766523733626761138747758219266786069267098057878314487723056780781630454489041014718300868683138471204302455809867474930131910621452645232931266831350364585239986403548916820148404634049579360760533141834346980540875652610650379266764873060133535795740091512807393265906478255748790229764829267931417773547972578934364211675942523019990008637448178912096657549187205620507406246921607131719588805623965915858654553545503724158570840177757002736541124560343399567114044076286250003474586303500204055303125670046544702594417370406554256136786284617610846188661585525292117902568691173034673898456496257185627475731646423912596535616901552136126249855719391492530511562450743749093409115940637151320806282561557399217132368882752789596164943495671812759506084396311702311729749154374853465391649635372550355720053855315154932930363976670799782472722139942596738529309963506845431409277494110612326678067374855564278286325327765405122241198388156262407264861142809857502211710145364899487111422380123649945337149993532660390299104825514378227893096677266185878687025987295000766585594675594259800641918939957011853838663636784180766746131702646078975228457707587200410749711442013778907429249068479907727110873412857413273651151349545075145456126646077970146326646584727299075115015912129391844672885837702928672339224920045613001067127521262879090423855719576401090191711158564632500138098702312873680581240178724318521934342235120621255525351288291546454651141054870039763493518366703645389062271336433692228649718049055178342227232756809014819634025693657309081218560846440472703505865140976094092924781729221987444823270523925301417788879824537546795950727661937990279890009277051086822324449518410787687975935572612957918728402995486584071099683979898385501084127196164165628840202709534588479501890380299565522408089896155344140884352156893919499917555857195346246291108569656683772458101925140970682407921905307638570720020930439654593112835149173496063803101279048451334279688048917446341403244648626729100785126624208364358423193725520166185077803228942156602415757838310666139930499712304245492785774635143800093990888477457741383818825277583104864884150393690326900854241063437378813861174261377596814844878239787166414936876454449617429753008167466985188939682890875186729679051038741007924637793502745579812113674017569286926541362127515149299919793134574046658194920231490886230088425712360822484976151429345358666857874832208328258856659491634030618007321371077738746746888152322116503997609755135435038922311622120761935243400086351205061093521040011697818713993270527379337277444565156398893684109282388348791476764014672175312305069705628202060949983417233645075698112533665473825598174220195016109682724381670257570025404940635268590228530466408647808320847310392797323259181118661929604993911432078787306072476264048275693627060757116473447520548266336369878543738848347267619695264191120940824377093183162726360239018267028873696642659626293021647539695064724232840525574582100367104142373648610771712269287991739126330246840550604411305395858060226980789826594283946393998930844274692516544850466425833820146024226493224508604676207992546439757716262603435895089165704475198299567827049902635143385511332312412351356001214865615436080633792311700285648277981737355683737940956884856591345124641259616373550181088111525863341341258381773168431908354707709920026369218186772959958921430306858787110326665266678641117410991536939029391352133854801575245559186026667245284401490794098620771010579140665500289837526716072067325335824806245301978541221440637253427851122168106296656696594314666085471728512685752815380264305551364534593406055689211111145465005897627652610556977200009668296668556912252888015125342140187561704284025475825334917649480764348366268516917546329649925628174056972410719599658772124358593235237905930771328480270777019523832805936105329267987775740063675083658808704768620293490322658115699538535037204520729762613361013922614093162908684691186379507090983386639850778164602659924127298463052766738314947328187203134747132973801793464809921019983701557303646940303856040750673824073989833828679980090179136764533889640221743443236211833880056490086597966646738839486700861234689370900131770037498502640363928781649771098219720865782235683675511981956014449038575906228408331449540054718809446262520069650052127040466819294847342921757110636949332204654142397535125103854719581023430401972336983660978954108507590498252705546884710017741494013586654741984326744494794526144149601862856993501060428618426489798881900730714114398837235690468317637037452174830559238231598842249628196002377351097130538719092232671036920853827340961718534932261611183029125420645064425695510120366541539557934449072146044707533293624366830190890972122739509463976580538587794388508979108087755712208468978320647857404760221167239665603238241281888468908371577968290918865054596333716236491329332342801236837230760621066121125944878543903860226238681731285598160703881894791948409936952506901764066712946788187412278628449794066932922554188328482561957711765732361010163496845837465579281030053549392292444029146511958969314359661522057327361573609861531047770753169063502418746995358369942355026403001600399532747185527342360752200186927002696026360041651822332305234483257028791960496009603486972463411885214573778337841000144990806524474590080401872833577231702230314349998696734206608219446062780736962275962943349668103278318345656551805955356583468949836088702431297976210414388480220194432888454806465138499809126597838506208379030395592258252511321145533493275439344195681573354406671359810179049445588854563964033546362381807761320969420110164624401974889829083724626650599137412171239494181424739996171225918350212800075251791143103776873248586885320488757824113211615702965302049203988539709244270130062476828912283726642148095207256128863277630550382665271462133660452789585329741403146768007286486378812601143714391490489856270838382340333018744094373133793144896364578999967860604673042198423191192507631020043429934823848804638176107112780133487569164662071464835021681521744941846184595122162623979596571839340229478767758255787527965984449169613684972898275633229528440111550799777681653706667320535516188870545750442970127008655670488291836192093823106828243113594582042634208333402767218177119693836838166133458950115747059964936350663891420783770281723854153190751287441210271838106803567642893685859255773369210103040495834509656337308999566458240519320446762429210636083549657592964801363179296842298728989436088604393580854334390515653823903251761487597878981980826056462543293158519113998375503829975880725997316793103552079071801778784796116280042206261122204597944211889149340451261953212563784077592459461824263065051677399978834721403057821190791688929740262623528905621099457771515147122302077403972166355314989339227682500142742451305497114277929534669322639920603472478989840286180302676737362008183344673916243457562095035207552594750385147863657680253852460312485440920041627982218215278766571662598278049571420306326679885798671883275090851225979794864159896904079473319050728522603541412889303917900898859921204549371309251159991468613918322871446279960615795577845680244544913976647315093784678006022498701559346038276377974498688590199724355521354813797784996168492406982350421174496971558665542579297902014711219216097320331242884671165204538367769623351116061632243216395436310446673427444903275408320931987078373051028671834065424801227265917415255335124149849699217681137804445085463054170161841837151536922612630323426955598201290443092722328367015002692023746721341818130819871104902419951427509666797954707378516107852421110299490985402195836981555618338462572685761263355035067106883004924623692139637788702037587840041748703886257417079982080890893767400213264655101564403104083418293247771753914062138092842515517589401937780082969827051455912085406417649710270327712682530838864112299038238102543566214917358178540487993844468980959309956227148386765239288227529610177757630722455055867010137735277050538705617772134572933622249383452648206245289645959019841785415873693224203539917442534562440809153152831815849669531732778965447035857820884975818702309231786902389788020811632780293360110196942969989769732685328058969544758238520222596667738755218069909813919638626484342268485199787481579850191828521939043823235581306470964547746218178720647950025190290381247427299117636075313269047170206686353214470938363510481615202268365824017430056996896216199915904401739524723049859182876818611873207575141640165466760537080604484965326844368430248772892866421955783667270869841442221828964729674048320192925388125395411629202613500293657489699630944692154728877852636544624629404367324076845679264815220937177455135361097764491159158449504965005350031243500227158521721072084608036541177842018001289619764492709099281449689747453380415325351416856790811795600814573317289379405299387777261995328999990962380948750711529865839737420886680542707993295079824374575283466957384350668052583399131721251323572839859483405368760698455411240937347904836717379115653329736246751658985525440975896614787543255590444313820103242630791688276310332538799880347900549052662597800125337113349021311255192530423009720549830723951255209019795550900379140553683677651661141786615657997680010797338080955883517864041048489270479337611946312222666036593210433699735644098257953781049387029291634027195268180780019760141479143810181119723857722475860022654181410060350214206938621240109853471797217071474463800115041405783222118497086926101244875202225801316501553353454132071021507739598095515552632668033585770376962738219341036083207881490842828432829748371074771941466796972797525869403905616617099534454810388014720386676760506088857835313064558820092989567777269747098717747137090266544119580722682811999602321637787774482819158626530063800514567603886973921493983791411708707415450168359346380737517533632195691345345799283404528505051296793219802478931556252063766348428805859815971415745305165365571541110459804005835708909634114169932474811776871169825960885546354002633665216181942977659922196640629829027769149318137550916841165015915468952366696216272315476548204129212728798882058863399882354967117152981957125076581525608028281631137717603346432153330331163365252977814506173738889191610764778995347981298338140662197219664300018554594292023902614681573330487753027575829583420412819375853351853390370753578663421135443153629509598458433998216452287328615856860698487218588873125784876331383769622603991496243728064116386891860954163891943952222479015484814707360934911301746178020722884892458711419449061365415006442734579480262280082070291115664119710858340198065259753598182534185547567647940619930760961661764415328852323875087973681315895662128025919350769906306504704681138184384649525133257799494670994558676677174750350150258924817485998017175956341271609331800340084242191747253847969669485748449655987157570975012101002961527501854027267376064401202276199712311306022827405322203085776275908246025934898044740027860347466497415321052179768722434800403963964986504186739269798314711991723796810510926773444951132339129702096180901471955670801971800373298994533742201499752916645678410821928198902841504840107407142650843201368013276702599834339035335182380260457824240196794358555596751653831916290133798550799576870840511882006860263761896205329664756560845384431183673616948981980790443478960322549373092916839336797004241997339938422569330673581383944499442873417841244816512460905764265791620421585639935202361085982840338290776590045710686382033864942020272632600237524945869931416015428649356061680010631671824014109994809570594907236900019317092939796646727527225502447605833036343911640070688981262561438131049039343147201889611936505462533357625999767864180607518820899366444708664753226547320952316826094438813630954629085544546857031846651998182704713544011497711569637269686899320818262514102360050325253850852651023636280746450914110286103572762699686402991820153459912962537790332680372992205843577558350942420550139709019398676692396964440709453151148289629892349780538917154826598115552327707437758628151456100062341287942657509555472339941672942092003764752377031342776143452731937440436765452355143281474222477752624151850900965721552441349934061125088858935709276403837882405280093761864578821253518528386326436774171531694507304563314740899701971133539557368608280660223225064324828793803375498917736025781909215980307258637626754914873204223865174926954067682208067939001168851573239422017773800613025421518320095742466565164452232174607998977787729635929906394576219356045101736953369117332256970442530567805414096335834036211633599365684060520922762392651218211338471906538058829780448887724102818731722388482549308675805003760670362782558401846658932592052505936882402019347033464619703754882349378396497045928302041040901048533399709935625713568907368791867725975481951578082634491780027128390731100449806326948184239054587792115883925797204711026927918262524635480510831868519778797107389291622925632321942518181661951937199852548138564495597306370699367042855109060969338340038887964408181741140297920841539315209785430959231281043926768734766554075317553292430620617609880155220755163303631716686897019842116525929562585072588026847647982917134537487957330288043525412931499421396642682599996443848730691315908584774018927442413741151699188907834811303169519848026193073440278756086464133430094993414360341651623965424096280951089211501877290726850870536549252952718127353951602394751932783035523720570044201535439431049392671019581048738368080830494391710202271383172870744894017274172050239267745186998254239943037981818520724173133846865193566799285471351181672391061075574950028826916468951182127387080159782987666934376468643275944820079308136162780073645974540230798666375987516226324131408831605511189336311994030487114898512970968867271090425184389792438264624776338385443193152880568457531982553466421638063936883286107369558779775523814046584222331899473794260325020677161136555840453240188456178299908447308352845535390189920051873114700791716769366288027775676623174124112875182358691480481072154926561167020546274498494521050109705149312167722958609028881509848912401721874460223721852335781713689310657773524669326702063542470792899558214587342772588758310504283013995001424016983712686370127312401918916190479442071741614759851815006242812180117484118084954103289792593529211158930169067450576110144327841510251924349697852781416131619503176886555928423649500423644807245902859310908104085588714938373521121420528644685562644481752616145841583340606316892411796197624539057694049804956962973370139551290036860820396429271276937603096495713444971839356441268509334651849537906130274169845482581615015524059623032303591678346372477692748103470015366049536024673019831270325918151869148333968520577394054785753297643001123313097746338146576644503757527834232734632313858605244036222956705243682087930076342962013110869246920646287136007700932969029183022162083836691299256474060836072855531484873229815282360173065177329396164989839838898951244310317892958355651016436889520359310148050984569038138877290019897021887736985074703713756575736857558156001302930482013497162456648323670898370716473945843868216842303155747033392666065289391229463969636207531306410479934023772697466858452686135365761084942884108796941435472418276319172476805054585450908729605317720898015008772987706587111064306119213799300560875349766864074255835989674158423625136303260553197159111622911868383635813314178496499615191980689252393706912232724238489629760988175739898690846555248688845196524152633323155895684109702948456147272538771825000042402016023061184312090208375486761215940512451288561438697233335347241511857934247881362043874226017751597476009827512623600454342333865268869240354642453139814780253666743169455456287907959144982682285573852305630151360295783873309658367214162507142674442193416606501923647406337502171230483734557326098536095634682207626556157367666936942638700691150546966273112782571231270911823369044345897007897140621451510300399022237190063811976064923130947854174730662072254753613934780498980284636068278082123353010296294527740270264989795436727415766501301825841335976964688237390216238695646730170771503370575010877099895333725990163291536860678784544931422398718642456627999760860939024627054648707041894288762824699951649405554824939190678524290702621389133090671045798734674399214317643972338580507693975695709500805680080454178102770514842934564026764442920564868861536714233055977662400412795811569070203520512883120042364425490401230496662376606675986123275212283252506886474203998532806413743745445561665975655347355664167001537094891927299542211413829281640868397067172744126734145959920655936087483815075469777253335865517475621922857807703195262941105450631075111856745782950054615346294114474256557073648486119160923217408217648694629695841690820979531345719323039841916518280955374652368876887019259057295945380512108249578806156469232228493511454279277557016546291702165974545172860574774720307280078865111421079776854782619277569782988986800352031322802844241378596213361614367247409322405257207130152273963476817482837551559356104353459100575049675908277219587240355444258663265628676788064461232195508605520581602568805134922579995867411700865113900788303870592421412435896857170466483802463488079070279966806665030259316537728640471624909534979457058094048617452027414028479522833604889168485322856417311364902387441591957526715649781558813447924979431724145364020487353688559161401879434417626191155143084411073263227930370409272753985045432498418620589689715491390037521648634547307920872507197541484720520629827816427687626163937773996033362198262718489022200511684211221383449255229602180024541733826833341464899542483288104302745418874349471020923220595791426887971538510309025317102624580362982143985012227747811211064833344439362260149465091693185657346688490790741949671778555176644137695812643264392901394551959629531671852369952692931213966921654760872545710844152419343964184175738427864353509456631121868783378219121085584076046369628870333254704821301568614415266363628297781737278238599798517811615029727340853244161922669271258157695815469685143467022279633670609968078308890456710456001888918315791610605519398730463049060981840595120881449320644664312747129385797794408585199799453566689546821933200762295453365930643893655295757122688233501836274834209745701818218940584721100431672849092714018994281361519043859371561919818899186905425530719832863525839966764829797310199505461462508535255806168915998214031495440275773202874528320014895719682808553941332184129407613772830820158552408201018026001624486530461203552120445637854085474165550957551291269737236919040871961202581646747635899290465918281928090695255926253149827702937493485111937495572073396342312767632867911344868897706246027725260389660277238233535117457795629560640979596490665398661349738204972427497589170210335471654398499082210444423416717693321340682671348478082283417110402524467513274000713669342444817278981348889870498111589653400328684613468068616879968615918994042620170815623045219994730057544527719089853883231679946176138559820040613778988140935311373838837151292049889891019283922701757783218497509859226701677492658224430447866908112960335505845974718523352205142585296889092631567023182031521364126982035946995913793567572063366368276197484079593820419674642778685579043399089985597555941114230141171760161019853040283553175282641417685625681600636480352169344841517605463749145956168169157057933447813226045190157100749300559940494165995036846443654377505648190575436038699056926904847268994350426627085560290692658807252039994999328049235446115454630814446620107160301200828846929206632900562347453742112824422371361856739731666299968738813933489246839110997627138327167519071369141121309416074628369273349423002290638096519945872806154583157432346861582610376881832229186224874629458018200042662411616066464321645816902228772566893924129213087547882617512481271943686653870283234690466521597239860635384194292422355138628958794417073583061725650057608032169536086263473278724860452489051047712347893506807356212183042619721961004479967669966538625071071107491691931401668075005845827813497902307464522740792583212686232311776719637259751856989808415419556151502703333568270656959927167236400942858148411021648833370173949281767266708311181771341244570658716861993311353197456491230978385997635338804096442240781319369704741753134092967817266035631002150981042650657877694036509307982891991303942696313655689104823804847327163695001666070922709894211219620308075908399572371091489894566897788536316218626715988485938670968416692837134230748710566260547968326899825478373939859581309784365880408550898897234022705984748820507640678525776675620578939654119911716832257352502561397069361642896131090345467800198723805866411037212374864916426397618276099371482872631289041449979936366270909933920014107598559001353538586209170411259964192607078337909934863321369220862871137666860257441445173128712989225997292459124058621390319724772169260269290598994558134119563195568977008459401706775891425484418132036100529283547398271800856914792165834458394963289590515652713505218870779255169798435518845840482188971615507878229320650684583354281035593627304795924252635241600384804771171651505371277237206050042490270500871856462475026207157554916204903972148608501662624967166369262987602574587220681092268428788313029268933530106395462776529149079696478964438411396002907774802096240794464566294114473347489528361763007183515196932687543740936275321578352170431068409453244173411166160666355074934200401072282949153836858326931845639227385680232545093034353844220604046987398714419792515970880746089731771481894331144726208257862492784780042738979563153970382424397149692978865930955724554766921627871586194546863251421521711915011100545126829624034961305494676607807914040232969187241208798816054774299133299439143654368285027395355458751251706181972952934649906067646396628823740926611705986476365642269233166531995733424244773931889584500728528495973730318255033286164469292455679144929729015416160282519627821921576976116910493292442599623367494112557099740600865234775439555953673808820402216908881111802086365529855515577745778276777757417372926492587217953300906869314980480138943738958237038181231805800443837351121970433577406053561084113334855607633690898944052798482305784842581111287815866661476841530539209357942598461827339798292174126811836337325817614660306273387482822389734893041354407090213211088637076221420644355625039074733955318021419555526922722617684268437048555804451614732406222027419394550406256429751820616185163218231464393521457027761017961850574700759239406759404979205749850552733543056947277115575312856025898699178223577800311006325176666568668010311103349166377692594296382768258697873330388436502646081051844290063296097106852458560668858359896348346370558756760379593761203310670348220793201304011250763431755996496492387146618057094108789922289554126925933475829135043433239918081378078362270220514160222328369363117336051820058857507212704298147680393159841458662240005500237709382306317169836572622450462928903467399345717297194917134218997631607028513569748057487513316520844159577733433426364377071943458835570697393607275001611330884437784809941059981488579515412835107841198298676562872405344361066388564747422859759090925809316554024329057108893450069918452214984136310280819491196451184497424709477048172324086062549488475214294258435791307470529820957318643306084092461265029530762325507718435322622128777507132539113250535127030710195692421247493768968933534213523127342123362609428039277744811482722663385641493745591883229185616958356710181758837580872003076316355848830894699878627216548479841094407473283208229252586306142749228180858733118967036778031812166405635264429180556097853635582515920816809989762498156098354571713363731840824025521127084409978883498508300426496737761907981794611136074456545867995336614940749042843616823905493510663439425494404061633281741390396199870865612201598374970001829829314857730266475581640391267090243002500246301302877438208355234160434530313440191345304361338536397588291193698400536800538394193683306029219101178071186101448453515546193853307365802667985608024566413117408590815671298778237152969386694026286720033852670854187756775648949970793789250430439918767480948583853977196594679767073046176865981809212435354118131233325345429567941540729878962419441986804179397534082938590230754936930374275509634348768358304668908688871751325531464589397759787939980358390020003403865638183334903984214554146361854965514747816870992182505692996620379453231247178429849772417474043461496772425845451582079822260141346542904783344831757992017909747099029086288199197339161573469675431572999331800265143667321201180646128750867920571575481230289256142479521411712876924703453102418975767950056951210650551521996261224750965618558522111783985643785747732808722096245656404387093240535285498066677406544038592662833450965661612283792751788230992814860445926026751664977413361074297461146183930880705687749281776119134858526288199248476232909648653133324012720737168871145883812054316295539341089971086163371899350413941818600400680783070973771642688355482761421086306545363546278448554308621758498301620598654004898518103603952765780612380891916338063215221724372544063831538379796926401373149134256753494501955599715275218972921233913886579120291282511705719271180935931584520797357169731852178261134737772289420795892896911035854018895021388612084839815858007330841549832666627090601417482095037807326169097944053720329626482446144396885147852782111115323588602418893001008240327422588428883646123293999321973612368409814772252692159304525650250813555867863230206574328025448413908765310366258321502749152512698801401138180954737597495967908583219225817587939218163880733247356847335823101092607889678671781025078539117580200974390636983316076907935276237993577232793079114896719705981380757383786979059143373277813543700298949589424070706160831239128530160590133621524162278449930119431064978402723837863599403145749948728745294473645104935342682309148495464745676435282561186933091693270225458176152559312791114340379284065306407918263550341995718715200551720349946188589674552499823228408569531165369369064377399520083716225827156129262731530222545711113921172019246358755117739595512850833744699413086549894135885659418403405898961825679850536429210298878235009294500864792409041443177280499162933364098920731879960212665398210184220865131457878993566470302491578438462737442092545990033964403507575299196750927495524664902884345493376021107029697340552047028162739429894757534150733869652958246137013075831038372686320167543994925525070241254026104497338215733281024015305913159414617560647691579990641868080609188456924478306666029614644470495347435031385407377214280444859726959869702267368384182442415842732209816748848557290383848444511424040773602050258935714571683954687509193466909163806428216995971157388215064610470059384045071175585375483581622094820375988551503717493737057188258326756747967035367599344757042121582031943632936662557009965490710996503064315910494942574647162602028830678161061841669498873318851630115335485083153661737096708257066456970258719985008171810721346069930589688182341790868517050781753706568278548549796493054318393552601759248318995006726823682829543162929987055741796145737833686894578053881213498861784021151563611788969886545965685707574319252047260246500155769954852280415305094642839158515375834787033108072718171693887932337674726707755210702104229483652457568593315105654888704619801809651307666303884756675104483923725833427556474002191091261486843040204794482457977087435081010945555900039716869082270168410531915486896319620752454282298719200623145918873544049911584855104830563926628499269451400256380070108779686722141057897535879179382249915771191404090193351000497600571042008531917808310381207499181876168155843361366038591966656294508569893129155705111230633959460353802485996831051889848036542097990770613281317490574754692669886841591103890902372378549929482147156083889072626440521146749613403510951255312474975659927597471875727413745951152747024831888834142570898049585652573056038022579729827271964161933177579786009600643828870707486188681407812403809032500386912825506074397935058190167977857538572725279290526463060365599081974082774044698475826079964904007711774230575486369863032979510312599002408554635378752300154192088993242482785543653303286626243993899914616696099316046204662141678042066722055790820649477829270662438650639849043493047573064885643840387981840974052807982488217629113873213475209841806083266932172393616776923298277040865183471958918102018728772178426625470515333035140002903472920561607098767891281790565234151438725543299808658150579449140250117870724089423064037245043371335838362215210925762102907126903791897539017625278939194470124156381935933081266556631149025034497105519351816106682428451888069400420725163693361023151263337446130610379997725283207371134477382315049716941530462771834357301860856476704265533704016571763906645315361968641088188062947742213908625943617420138963186146830240022943110747222905351837225091177885709952968835462353998956667767403050435654304270764221742052502021351504870350805358833729277796734536168408278033535304680909294083482154997513282573624957661509282122380537397339573716002055081130464784131503544416457090770610596050948996470840692625803804254008889490370344446165820424190448961511859254466882277148075740095514338562608551866101218595927754670692886076452460468306253982035856357792212386507923061626971970208475783239083103883783933085993053401971566456746127239906769487821605212391290092631774902002903288285737963274062361085933940308107662474772266031121910791157112127071392384065396858465181808016817561090549767243113831242083996383006745969220797762956773814129310612120154741082921689730961826047462894436483263542558930146498928972075167613920038435378585172950825318612863493083830668589669260396093706864008258929416017409174502778440969323806943288392620613048014075412549537033640446675894792980396267834621092740358511013083078310306443744765208020972328218183946835697573136579504634656912663311318225694470215963035242403356272421049736308103970307955392880195367647833768895863390899354931973512716838815598011346134843201923830229875666993175450774734334049876885328669115149010527594674659871412061270334656743930242241632624460646361727000378345613550558902312400210088634733124521816536644626829284047126515451152269592295035733476980809694775601124941129539129527757930521078322029037135109133593048138807748471464461246972219531244207862430721933462400867906333503542992264469853632995097971976463660090883988301482130152873614878599759049050652931335583635323389707761320120380883764562532134769404970126445218280543419034721960358524461709298856413153222422961400638129389667053276578700144622228123350505763119546779056063678763479316353255785684419310981310355327233455430419312178420188923995046819102400022886894841252735523587417677244572528088011590719513711223496347227591332246169525074869751713173392911555589062690723699747646118896335905548706043406936221899062323929493735653482097612959246531309184914445207017325468373435721054709361123854979271098576531752871839715559525825478345958163501428565528247267243093865514005111590736953943968190409034060301221799639294431038237457978591469591083977687789422005550878160247563430964996578284674008960229223732122212416901913800217289687105923522887762462460497991940546917235060706501255830111222303147691861982249110430841678501590550201318838592526345412121606623263664964203102860847355574608133288193000325935093060688981115606600683855470403574576339606671721013366942419408992180699347011345973907881430465735633747198765945703662590925928739677978806003373853054940804128217935575341777511467788744360061152598550503745046295538023307694221452963168187050108452997040584521284907090405386265567426855421908741177298361933521916147802086038325299090059857315307769662227221914212628356876315319097299366939814638878800669250322545487052004353584345757031943241302297972729624255807087960568238559178544244538831936021633188824236651496176204547623576326263302629190156274298038631196175634777825011743805290704575945022221767604164131719623810348005322899709533697536621494290612301616767766777212825964380697708601976648010018530088641144073052317866217599012025248006773008114471209489369959397381882158282061570169866072801967716938525107609523056422915732042518166952362580406469937459068313536810639788489953548526184210336547457475084573584575010588016568826533080962764561686737119675589437552205038862183419359853065664793321554809802631439944881447481303234113657179159579152479244337605992023646840237859799792741096754003496555845237992695000257190825989067497563604717074777043988547196779446531209739078029612000292441818522681878743590765319501436347479863622523788348695915863271142025132674715086510130106233637380482784347772395474877360001804783643022695377599079588703945893239127373083421907457728376147642831941837831607262122175392680848835359663815153307773435177553843686373510051701147758637373250510150133066567548076730339433353118631004555555545645150553850761848555257967077472564871924306497382482752161112442801115094375188957646683712149331993212461157823548711370999799322447593890324873585261150183395266787768117087642231341941250764703588132541215375895770588764020743180222599129832896560616041500618874695536009661988187300700648263115216979893503076381086721093722910031003255693477848213924893404033879369982292583581617035643820990905747679809555465559697748234567771314921888400196982767234877090039168265948215504532224559440975581115014549631748851973201264846046246203513464727804887767283195189408497023835373802824061927158522102904338332279902428978325281222752501705009933994210100394362029623402149911739939458189765226546111173347811424127465261381156660298477089999484758382325888673947812626428333273119785331101436150801322346554763902260429576354769911412809407936930115063615738599213530624241910150962080095216805742832191242908857314045042866816228018680781144544066513471189264661557629091872624734640765783681858665703416907820617256094824228320448265136735326730034466173071171055655207137156548074959854904026751126291131715545975140083081227229700026643331113183403110359511889070929186293306252045675796037608343156435313033674643613648887757921944392959573027698836855621146861562787815723459230106710844062009075013313891590044710973799871250719492944841389781836458827086601973565231358769670541534500156416710111861315267575886451250470221861654375129713134083703294135554882292460318418899332205796911457328759286901252610333276119604905091881046805470656626167955018931702962082662995593878539112295906343998276504287672182740985984065144456806523454542847624559321387157816124996431283147333956094343956865874710256662383210801736245277216891781557817609941227810709940905717514056602782688452820283227825846545873823256070484714389162798572275917950560006675332175275430476955118376775228549024000888505862848687549134845405679745561066751364733882459358475283402844638333536523820826835534397470645049406266800402743608653103292067098920774020745300565661117281321631647029342279992951148475689367642956307252906994564870855745078707350350853121662237924425934868174621079186186595375174485014248154177869558427771757610456561115012185724373597493231762290271890038250254466592581907533833113090062530710259949355024100337526225781373439435278151737152768069869456859893576017692684376015593048107132349396555739005890852545843478685406629790871798617374864715326280254656991956325569600249329670294427680269006061097668488046644752139838802271859057220766790369405235937903025801413794364686718659606553935722350303666323253004864644327548303825084331534623358901702186271230470851374043318073370803860631301498019689671206652122576475185906589436648469662353619660500135969373944885925468012885775310647933065365552030439511891267130835709613600036589699092401294434204487324763918732807860357091311231279841207203666086973518938520344502413063152208394506029424820413864361238408992142333742559921531467036529773450114044107171417952768218889347640157735071970769037091837080619422834123326465004775052691690327555162889082709250389471042538498806779679258674339832764830580838422686874535454651407400873801364867566813264253566758636122766369234819100411090495336481362506552008065105890586206646938925786816575594928649198231575651905466951620694198202818888416160810070858955708818907192780549308668743953303335968908668762591364654169113518208720911545094584340183169556428173419242977159781380049619484673462426382691924311663839052780719118679400007926985072477618394352484966378600821222113209648210823173488144063189353052019551091868012010827785480038361566239963440923195355463111304564401492260237785212113750729878221872878304067637605584722261645993185596753328753027618423353743690200169178063268492634599074506858227050313380900698294354149014324585701038790516454877424273859889950471762907159202832775021582556424084487402454352690869800975334068530827095235193637203467677057871549377786179269080945664032593503410312239109169927518409373155348056814503628941091123080743014458730989781628616842805739595520363829788695962636557073964919031643955527694267951856959292299835368199109871928685340258609355962213797726831559349105552847280070071091297431695940370767689196489772783852719253356965232285153115542247238752993608442185091145612466758245564061645926363718102900149634152756550616794825740848403724066855829427167340591814927163536219765704058993637276213825301299956488545118714639538228475551715566273968817666859847416908238199487222678089128665988856496696405386743115203992650686394170070465753362727840701897469825574519896973996334969661729048082647473683607447225534719830227044370912165095610097309034663169385189787805265838865415951477953163490151541622218833539148719059442686682978260196221090709175027089534949540970083360245600168908503596189585253146122787704802451809214383631692134817658647459044066477129387323775902821683905109536517869779983338283690955782008529670170730923719999659553984002032611489557020654327693388655118328152221421966842447557150733473937891909244066015360375622176455739155028842208078084663616309896977679570428722467447104843335983593534925562125069174989088682241355102939165832371369890334939621951640203726781705548170791215456977295764434237982277407122985715946807071529744386382339855842803227515604870577690775896897161485514528744868520836366567013420698041758748563538405238704792807158287543546308222258077265646144845594574117488675791693923311188786576348456613886806053339092978621968140139605290548569576380043828104337360396214761278146304730968286950048838431759008240237836047002635590978743011435780149814381580474916273229603687366943217866537727136461603797029597459088137454959295368096698458388703193374699508090830071849035418884356333642623032994684429615625228932191023473433344150627132386454478911824359817046170947265495104724898116662286917577589053068280912385824926712163362669538905881143221802508536126200753789474194639585920304939973899031740484349587874736208603506913949005931991321928581775753896561646540747100921695460829909737840903632504754881232493313465289455879592600499948153168683216160196330894967528131290669227390896957991757181990735024054395579024011543686796167544945943998760386139643400845904146270735712009485343791388205921829526154807078655904801163658069304201593348224549785065966090229908969616141844664862202341461199372731124220394410323223072437150880481027025821747925791950404906270482965449611365594192594383658033215089545969560922190798149007131835468581547082291835233162310941452632059509178006737786029524383068832169099680169531527386062656643756260318461685505341481770965230697524366824612428979958863994752998482460422453255718214359124920737803797906240135581098343326615534642789919677873109185407555026793113133177473703263985047484305306222971640430776784897416991181784948753529378006776621402931732444568884327261346472102336546061079039738458694069639156816421483317456227123845746454021891677637930901011899343337612103395400129996852631703062195889321755265170579954669472274142893023427652868638468886149971365119827589791211431642137893477168859392349252244916610854818629755555497164116542653796278526899259894206946902045271944089168657785923323613290955155032073033210920791373873979739604916475848025149593097400552443816661982184173665510635784635468790651079763711054190338523809235936263798580862848664915461262484599049041319654001339853350447429167198138581407673298463588196860262831509312484052139485917826316849977967754061244678477839092263387990351995545308782121880224635464498623645178007980934190815951852213697589774581149682383161895173772772151083809277645894251427711055352318152623954057319827600727752711308786832956428995159331774531667993186959744177691266179401679236490214448811358420193864858162530623984931255683854613253642904787730158259017625635372067976479057596382352235855874521145514366327474549065736924094139868990546244142756990933127499071983683616010045388036960178282960086248474638288568032952690846175427392544143181336950782757011322152349482177066852212419793244863073340001518157707827547452595411793945224442753691542631435021019359495296765996253260764205514730863483878111524791993861682457249579281838733357874340791251656047039275987659547869780131045246384804596455121803262480663567235951680308344698673960059937479152930448094376301698904808758276290035889584460041842079294289646858227277884643314383949015324386955126084322090036334165720452049071967660936755609919504743029377450522872258486050675099629024297190315648294659430714023762253890755603075338247291827123260371886965289869916511514378444462922043920205348997564990151493040476678509729819870433843758081355457200782479267101897515183218929132929756658490104806536743796721294345437410071405373982484524740188205386463297972559465699493426327893929340161176080970168934830570576878871125802610019192366843139906057336445314545423530525550946611366702849654203911714352025891414035530274361492874808289191321831728580543992703645359245600087475527209354598447590569658232747503425899767063872445039925095192895544305069979379509677675147174517588113015718735270571252337572244481970962280692558571776417898440907437597740093477057193155794701370270540325445462348930962198175255591323791167464463584641671231700229245003405656829260713208049127486497991627975927770902985446445755572460453073160577080386536063640296823985732243679899018513668732168187129966391971565867037088567116726875354427995517108274717655663985602200430024331151683051679163755429870924020935763834911230316783992054369398046347097038118891939126159150496720222904818725856637028197281083345658690302656580928485014140291251279178915940694073934005808983123463452916857930503181634282918738666447942383003263960145342296723536442535989827065092222498442214647271838367691523761451032084512815435194804572838201769645642519375001980833307419252215965842753277543666532467480780776906858087152946336960257662522962542937528598716406500598413232041861925293959967718608025746820850908559249799594366683643637574780159281030273675118810847666521641047233445909159540109093908047837562086263114244198167188778289668662287570968879463685361171568795840679350168622518676082227833162243060708060264435124234657961326958004604002751460269677728702735677976660625394973208973062006572095868931021762441786118272465524541508533476206553614402353554769643064661453620898951986056451428498987149978917144737687253328841775704370927761236170350441810286147959870170448058635207739983414925660177137069316805163786603774989699364595952803881208978593941943800178535111912462551253187221291475816829375138629256391762242752887343791607111418502208077440184978713907086400354235116094067218472792870585932259414856153663989196956173532502059461632161940067850199960480566614710170917298999720365406094261491260106373098121467591958247020756251077685900319938265176897567525369084329082989198319038450278874765140587991128993909190315645468464254797663875667565679567874554916127781307622223962326593944295488558465033458424715667934938894420936933566005021180411963198079183459425741214775442795781554169501652115749381684876806253624992145667368951970857673003070417484862855592107063829113617497584382093895437181779916735018321746332665014038272900761230441322433697892446547360913715629904001810161442639695748963036037997769078940679179599193148618408695313174321779365567788698023855432691846705895401388305778811920566378579282892685929485238724291339531920330716232387446875677178038665750794864852879313084528556438210386365758696762083771557873004424321573494449246032127073204122377903722211671086798774356870403204277014266947797138519227864692246291236846445458519691864565209923209747107628211984494648281192277984764259647691731292099157165813514703964155721205059953408782525578310395951211948764175820290661148299072583990636759833820311000571169831599056889466793810800016837342858027768269161905863925410900319584717164062964431791684889224065266149727260476604747680166058221430822911687645007383146136197631740867439100019746978574376269341252522782511969488478177627109560614408584442317904067366996039573652245430112876458906874680774933510171361837481236151919576089169519810073690229106605386391544463835706960006924640148260924219848250835267769512659252256006138199212291700069216863682253663798935946664355848035209358090171413342219652378820854120851927764870279355572287512664235452617472860604632413439693782107010693228157426005828636995922942138715493662700272029004581743971071775746529297776015993577888136360073264216504027930440789187947769872822199222689096248470760653928112577273489173160896830960853986138397798756883846980815213826211491285412029470255008970041491529212796993189027132901356377105247291352372249771034847805437955897042100512877316464990032335344839152119449115398329228087488319633800197012025707623216979781834448560865827810587442589243899543419435869853268163618577350087714795084753907425107555287219520757137062353223562144779641295995131483139875740811648590679682581184018137205290014787578800818759889286874203976618874403463810600450273056576445940294275597730667037423483059608788751703086391613640386207986264968502345339512153355506653488492892715361206332915385809076715046942918254566462207651221370450141435916489546282613082331319395370052626142446290111745724949549463014466069778577620656754485922507687331597890771949625561991320654252573691010759777495381549472636049985489030790407813127959339062802932035869140013130678568002470257992132300855530871106420923219906972842566329104660245560928367498739312965394985606090915232412669786996490947220823425067856746299667355515962101275920137267933148805649582917707047254722327065342473639082948249404043883876583600587244115644552846332624423235516537382780483463712889577669474733636954890595567705139477844423445510534824262774113358840089129680772146560952960489920742690357887418930020526038794042627797464439210442675319460653109936079360364880952027365282916450029278272872510517903766444776395278377967226485412080065302247104634053218906568737902142200220544765505813541338358749867056696651696660479592777586923996617774194118141442638555512561483313790272750217388324700598297567107314939984043301144465527616255932975724998441693486868678601378856387761632908476775204128538196907562307625485746046078097033733519290867229162986086589146096344585891090925393445109714360447597148337729671627464541069488805647415979346911886410810352433139646775579303985168348638134539821073516114670495613079128468752393826655076444947132095274263343331681962110562378400870454891706767337575447278178824640687811840545045174760897423882424027439684377021568224774594861655750655484394283533179338571756540708832632016442953536474554573043302136308160784541299974810880784364163973887006388571174820786131553471007636021259952103275272687770579098591956568242557599515585417311227773201790130434504795542169955483445258263041223423501251006020754952857546634462937174381636420124064119533698380547358445287368132882437735235111144020618093521635795182726442912499467724790996175350096542358447362879604450169149433230840143630196655568083391863357498284761940996529811699349811462249517787045565842626487203198344262254949102057491620894092502633503406726272923812139565874418604951841392572672963748008673421302707507604162337747682886772646570560522248550866420170570710895500782582547803213653746624998567578749334485431884317872225558661149448662989153785669432685084209834564070885533704733317316555945286276418845651065291765347520514487074174204945494456694856227868214231671312921502664102229328936721961132159403443742824718169951608623016579581817757693230817979253222290064439440604187534878930062505344981557190221453591206435658447074329564150637764906551589509495025113324182835400970835889026544860427541623837658552051872955935476851519645144130099051574842572627844228183764142326129291119513051702914663261875871404446457696183073499484983399592216834107545108738695995976712934016478487385926610185575248701615094346801528635654684001526129822570911518287775555188594010855971965943491972320142400102141038756796720523476853961275925759618468734466016538644632307222277657457601109397243243199861573457868234968877905396897851397905924699600589206438407270012330195532315840772687671585756223794641644198166295718027885106841207059558412272631352718400546290812290279324265090608657760051173759502076509004152062261694660965614602599548169266678729733362179992420949800467140229496412569229095043340982320171184271025943572930215242322849924516583713575793056343692173484376633135285078867078411126480669075570811051515101034794929061133356982932169400175676635595586266566004055945630654399269063684161962532938452127735978889790230749603240576482765585080481147651460763722141855784905179402716355221274900882409024305497723534969011863095417817120714708924957701464983869304117771865317059419267456356702796557738736569372550893211171185554057918368599528666847794848795041332330837972349965323655326764937762625519462791675074849864349491786617095189834207802327774213289612922748521884620980654104755626793448978368268325577410754153387824414506897607240275824422747513091287902154639506253577142678619278928474879600980966668031889792474929547465878842671415456548166846277590432879886540674735496904518177930876600486934411513180568369449559869755508315144491985413785573622780692789909307829011889895338090772946627916003126078396764181477579466977169241990256986106876143503146089017943083505703700281269538603730642802983937074021051583518255864233219904517705913321629330655107071453622160743199568625953256437272027797226009198555531899302519708338259913787853873901184793669199882840618694234771243867540275612502897861846998604129814574941955481191504414096366730022232745652050668728770698144432109807793890652734139322308556219980453440184874052034461666925480484857026295241381106217558742505017921717783641418541570190983838895660856990287965753361600430851686028107821426868791309315086335723914826375246034590532706733735470853694458661317639492202580917208840297174568532383796092164763470979700830627024237695199175603690556632763236701030546029450308864555490765937842930736460698931490904438765470754904668488142072990607177220499879204085618551466301999279002364884714963063000686718339636478714043428113191436178706222315278651820203571638602541625415050212254272522117596539378227728362806058992719683735740860327993802511074187367551440333549183875211181713148824470795670594503484194820536072095166750587152823263856279120459973463681632091212412431475719246153480317572933084661972187027073076654667108280322877608596091690636813320606015649553733611882702472507367384022986670899822082397790833939302103835631121962615074205467205200335976227490891271314429171612997381015487310316903158036863105379732063083042967212642475534911395073951006238678101386421478332886786926582564550802563264307481186690047749364703045155347279406802687356685436228630848109053832948111399042069414983059172327861098330290498243907506674976322544258833995836762108819865788774952372945789236993099782406179276858859163033079947274467177246794761636651402147919665560489803111344599767622664950779820508602891205739153705765282008922906745283857658578914220367312306004692859397584414963414384845987155450417917094166566335495358794496744593644061590014722543899928368440038401826955383917346286316854723735932027060514195835902138069472377753822940435610340524019152237520727065163234403098386710865134121911645140376104240009151823813248296537143634754518644434996261577146998345566796100343766356080330311132409008541844908648475386803061052759767675247663085424269204879127971601509861350272815033589936418764790164604196643240660332941634554625342940927277986324293543982771167238882440636125029675352587256740768868707842981578375961943631943501531365574507477817918435673847449590718530835764701976902232190013828971864059063876713603023002531918239974871901830727884445351972889533632597473277025614430420517213247973838608165251155338840670426033195538814537662640547998433219413411508055463439054118982495341753009242529365343789518882353401825618122186773527081918585528463867174593761494178614835633165459605211475863647049702373460355146049769762435428756464467168151158656626298615116313276745498895213656502596429341808635797446880336012253093961705914795561362611474134667221400762127344531897635817807707615263617541877529356818940140764531336992061089253260878607090482603180363597679480963688473768799107235071662734830698632055339754694895295238201110603216027381164950846621110429894585172401128601128651658460628183091064158426867267175121119982889136134472941761075937648668848780068400069965406471708840971621760706261164437573108913901614765377617547688121998836167963441217570603828583441107921302249339269100111639438075306510437379109104621612130905319807474374196336461114982090971202121862017902305782262006109577221988682902953651017049672432388268326678453661178140099313510690677039950597132348613871555153320795403928874405932117289498718985033472298254284338700508558461842154139637556778791183922281118172944648430053298328786202405067818278300630498518584629129232123515717332519806961391838849123291061754039541616715119769185718944749709081330434329730988978617805467923448804901924848511450584960445749354508565797671676638869344358564735116378346891970215830994688330527023811528773137563073514863435584326863365685319084184839119331027291695078353331252608432749196977254371951133218485427767684508289876197253445438658772829513850142736693008598581776983770005075782643327533566564869516224281607863431723899755169519502146407986221075156524683579086645177054739614962680339815094022637282313780768109419103448744708064721328098872503954128860931401300534284563529755288395313267260070713654821968031851872440982838433733494842164294045680097750956558198990344855275828059025296351957388044472634098837435700260432514813945130456809099496642841868340729202337932174187458713316931208671081417708927620435132703436355201820838694403130955696630469039942792393326640058130426519932269241570364618313073010234388275394943045558220992949258299929509928163792238523660725755572408639205593601693227811675239489341004030501981794983912387886329113646342552040572815509663552282697507412397919459963472975230752431358326524382376131587511446941655720881900696547042844948413897721142190297713281267219301894841924638453695472408232773810859763729840705233741018121673360370984163471837551679209716103037630603718409235523476126941602467637217362789842156411566335389999343930854529111843943701191111445239207250630992399776072018955282425498824236703745825414006752015128167981679796264957150808982921119660518885607045970819575033992842230293356688914153870867512032659751469592298219200910665574148451703781105207183489194348623856244194158826982617495206302937151753745270763439641952635214812284051901311829179959096531432995227272713019030170202048582473836185394344621497008611742909645523138693554843168327702184162997283783494861876727427287527621558653439710269392447341245399742274735139303434835980403503428706854854424577542868410521290713622722725302399634527896522587095350059080209110863021193518097703989373181384111707356042374388888350776075609421211450421660943131468046884268277819874703441662947999147742808483456287393746918846067557679256733080044175934684664193079679719040927137908642578254991223627273433872726682001331167166237197132936352234906430325674596785138406706578430027651690758863295411438113081946670887921321508545790087964036941453205088713125534442190388099237287566267330880150264577110848253475409476185290669155425487921632876675890073545921460933752798071973336225587812644401824016879058253128608800172776712142517955067524503594145449615423695881622499116399610515502859789293080681565735600238445292969937415918395521118463980416744094054779413146679196381781317573473095524057421616574997000228695521565763374851866520807476421319156361445294669216887515682098967054620044806802673841681192836383401210098048265603508968471060260397072560550365411662630772039110126357448909568503683839536972953244253083425183303224456240855412372515232148980073136222790290098915450387817908093783472634782400186488180573616024928219186907173860248639108647038976575562610995087410763185971073335402080372407500586929282393559529072056907383253334508831750591042209592333374459691330469817938395798771650342840944542237829121205111837288611657451789005455470508597288267590217138116501543380332172417445725744662496729828743536176107423829102153174793360313299842233693905916082599302496512675608094029578095329879433844745243364932936893601639034032015870688265533067467247473685187792164718717374125478124351188203622877065163996789314151430767971597141717799169316167028950507016346260657852030145770952078765145285287637959307647724725079766494461922285878071783910272324592260058949773165774037879444790886489279392099467689721930059665650501514593331673366027254145003858220875468141927218137544125713407115045589492613661689171845146510209934993532385502332536939749636406171635685341359091373528053925329677334444405600131493894319338402009231499585309993088689087096246801825528334189483849143764267726069514019169446889327833779749304519746992561988687169816896242801031644505041348214088675057563875649570556583671310871407536597697889784982715491807476716224283274027748017433783359167598425472209492297475658781749677529257706928609681405091106364166789200293238849062312173774794645234527247412149494920655757321460770058901495949363979196353750158956239780262634040406005716849875804493617608479053288070026398431088080708916119616045605833578220583657759978029094200824152740380382812650613527478284486492447201128766449882063464415347777969533620132189665294241696029405765223127829297788770364704819026955807759426407707390588938902215660429400421775914736529068258907634200046070936100303546128138316499071822664845935232926636381132475490741621876508409060020776600924472995692476358996688985190096001395983098573565183103235900210456316467295704135458959675536844376905844060132193320508883633217700453197702725692969899113899712434999284793771220722053824421414032941496058061847802345855918808177844529787280028147010508947435129011514963317150109276293369201633085062362384558852387462148873491732505507278161710231948796659792548235005383730192014247227815305641187219632345154021622357244522816474053623936251939419719817222585630920658052429563286756941170776256260021769616284417089768400709039407629796939813553917561164381106314812013955545364069021418533268268234160083598254172951960002766480658296702310068881139009873981815912397304976094014484550022946201132056492566665951337009243931008577461345073509871733944274649093701294145843730054274832286372218347426948069555541446347040364358704665435281156435136915753962054030715730691187045692031803357773124376179560049704698022746913151464335554783973263650860298711078677637872466283899713200740146791381226689162452831239486711210986915244180330682587178282690146070997022918186643146716314326722849209125990630570158083916439174501579218103967078764210392192764112241249462140859245738307710830203277492610613014083884106921624352560775525759945372914371825728377748660291404720065397017833481749498904128187792466219200785799043917793452426239205441782184929091352224576099620817568102667582560263502262901464465076808968850849441602897424504085370621256695173505874798951618671228561018729284036053751798750263106892839327339035873436028259542192672705735619504202240989454309060610965870860625993681764216643861549344538954585998546205451462718088015979490679530923748112850687548742527813553620877824456643938508020750219944366549638895776539204045844418470262042125215938772062598740764228538190044239068660508719677202051182317277768596025786035364516374657980993609301413492242413570481665254284817818316664595145094196700900402471376934533190078890888652094530506793183716644955947355020315063905850442312166443991295445509683873947109391389550926846475472953013602379937950457456059916071013792035981762088868267674323481800772753071632360421576722241216188631402122663384638053995333496176521975125735739009260636605218080825255596410193529313136732045613925362457240293812221011573690231800338842474424869188664523705432786707269467216983641512776915968663350010292486600869950883094154499660674108118479918074937217592246008944268668633466590862856359970997967975762668735357523735846788369818709146479622658075866786128812945759715511934393853563291210321908881395519752981584379688334595351279998372523442620819865782018436958404521713363438700508041829085503956672073786398346866443278724619366373876584068336186353342241464218651734398997884477603105902810380300933675156642546278927314830480697063513329752989252338816619632414823541462751595462650360873744026358645145565931673688560174093572806149123933763465344706902485859328500422526148234797597187679661223012531289981916834388936200049167102466896110205127227971476196896787084924987058675991660453413840388305617506942476665023382933340644868534131255118909830701911456198507129710951368218281230080462153199279968813272453229996272849403028686388744722784399648438835588273625150841455719998739792498819152478959770089489910978784795389592204073831092820409516233341001444033495928702528323154804356491004474314719938286929219928622000610175858912995238826412086473300407519653626477538968115687718827596248369657680682222369080585022458587615233093296013024641845112158074123259439980618470869135702223195474343221290044084955741081906581615981474239724498622659327203353608196506930752240090603400326523838296816437530243296387871988236116689679878635870142003612335476972463232413908633623244797309873317052518762946438555052018609478872162713278669687244847261981775071792650101488020769221388627510662021783195685198917910971327411151887356185106502899793937047259517721095069657644634788309643226555694449279891367734540845182812264951533885652936074021955793891369617292802617123548337811316544848318894706542005372107290887810085856561221284662515278847142883518781420838519809323985120831804923789210966332950106818251650381862402104183261533646626010627427334085289768618095718850928812124609960685363910834516827468352055308336952978979732262447514800192037475804063076671064282523318510820775193825538290036586825772288530332125911769497546386255608149587228857012320126350309980395762561847170006573815829118001762575841338306818248561888129162706889893700757702409561224444194081816488939519233919329520805044198977709382746630477025643466280572995672870542723832868564685688341862489877994744883152742652045079661310097448642964764220351600072980476733336096294133009236254450788871649090263803843862938337842835205643553118111916832595543562693416191351419743763689473789093368040172754770849626201221188830649177603317084403992864100211335313395596450665400656716303330559258432704466126747767780068734134954450801558872515264518052429891245936159108069136033673687155222631205909799247541370533655693800272658425433629439678997986554066725003649797373210048103731164269523756132590263454474602535157847718615187033076485633041181698901137669139515161684901015678195356191222812412446126204354893646975016379514359479136778038069817187225115895628568928959839872404300321545848721246288392050436375122756855172037643101172063335353979288800485928959736390026163968564290213072261990952892967750464239120524111352878267757250360742033836966112218159367215469655780919616621213160657241326834493936378124658117846359173431692658367588084408932726479897507143787559904582165855059389794493419428854769359075353775463339837762443973386198092238605883442226615849868066591055334510275520046064077754419782206500424666750185677693108684507860583110432816627804490108834463467056597732562929901527186673263270247584517840288374299082270177737428366676808350507158138885969901809126531602232787897088268847298979336505593780030927502703271058306498444865488650890766038140832940200085242790580332931754349725391669845066035953122499736223888735403543281456232458694033816792311202176603459472014402255136969370026692228829321235148049634746899779577742958681881188199963729101189803114921754132648901349967335178833401599922902280666861919846002806721270931255611824938574311463691470915076571174286634315095782088514675937801039633641307348072497533870575098708229228560461682264640142264506043868106468791942435340382329737984614382392139160722701314806672435746562196737106410286989878123867927123089429726677857851491092583996021249902949699360721232153411701368466129306177351859181043859384727515173536681869541211479930998708844002376601358945267352896955629502676317724292739667355979417311008056068843913379131650078690978095609914107620137017626115056946158526237468988667991214527399468194833358682022245677937047552203981505334145733784929290033962474676611483698919900031575736326735857726141858755377500269288282983476827043095903516204895856890481968372175005737588400279293676486652993162596992756730686086578782141264446759832583417914255359572692987866169516558597588301495814920315461273429726320130851757503241414916279063860697776443410027987430850201067823693836014269897879305553804405719015433875305482199072456776284120559489399837548485378882663951023432814662426433588385350583833389908818261281747768323788630361823554435808824264684583543836735633264489219092046002261929529482003294289750248998159739418389269331091396643549811808195126306699118891859049158362473560875654579400924944233242373221887768552424765665566172782588271698905239754272768901269691420503844357647592337426094366751788258760844955916630806043389699031237153124495412685017324913272988924346784285724655005707272467418676520497318818573439415908047082901365858330448759595065294085668767655112616575020299998292319997245197500883817871412075313272679163901742380217683723776531188457291576385581299105040103049988658021574806385509941304972851559015470329330861834147666995604524004803980908243387251302473138074450952242247891903603604258075355591902511213927806693619900176240472143368801509845292280686494793922823214208563552160862422435009586756815469104634143011151913531641957442498143536085137715035091143727868442137196338669619275875774470850752335276034508816285640875007563400044518302018237571616617169444691751474556654501116092903096331823269523476697988760043688763196189248450703092417029990636501961504443802645767876438658382987749202259101072840310039249770042571023444108565863573429179138105523008693928577859089015247265156298062628962490830076625328995190189976319200640901791334828320406763973679463920664644620298190323050716810663730039558605042006963689407339614481562281247579238614804199427306966794614540935090665049139056433677799350680627755581246636500154892828426690299423006165084485692656644366922803271851835689755228303592682139575380592237974041357791393994984737359194244659426325402984836082611570646378107397503813502947485189598215902835744719379987699612942062013091562259906402003916207432891926871742926504106407974114038385020070920585654579474006701225657623803702593503546104667056472916154157579207635510328446394334920028634221770213363511323713072772915739613948430256962337774249276494775857192065283232443975289372459536352106607046534310751525244352482105913598002130785358436429079409516481857364470068326033322184728686974252482187076284055780827598487504938695395918306784552092017739280778927338183958404328949542766539263979053682601959846699552354563058060584368721362285615726084635448593346375593228154810613949453868125662032346548072904965757124588726271008347660478901129521592646652808108705154399067587397942982451149449281963062574796117369934113875104621610690413269967756664749817626183231474714808260676189716168871239273971972409556449446649027063156634713491080484431010903053651849075672369583759673347050749397066274408448734397970800677827035807842948093176514880368212571555211500948282417269188052906925311673116316461134702548774254198742459111961781751979995268954062231163755268065278919680701156226214469357006715402835661594615613228389339893521255987636564408476601216345623246072632368243963496902815353441329535755018135773599396430871824628122163855636483707851628410484302336052406679013323119039110129699930059304233399335629415681318706618815605209075440397862191413944852815253118425705865527881259624383875225279477974931252567775951950593066994444544221234427700499354517638783447145488416506261443638434217991336393524399704016117274870228250039916659454009323034697300463066201212028074964504589334325831160709086198036476932174477311093717913341616661709283134644971525848068674304017095433981137220875588074963961621626549759083588232878454003392262397597129053906099739110303404138797649097924558114608217627128193354140219753826938548674214012346565572668965651718718795776309960994459644994279651481069587217240719341272459521397580660188639586764362253861035956352291289407409149341139432944218698631022742426064666703910267045932249211002580966368441935967777767729861513496549586034309175028129403418010344338950997367712092161190713970397188797899983763917599372869547975770789763627031010666947454247382944448264795144851862655528011666552684156832821006503068711684323865775286308822005692288025318359556092110247243738248301480954997821662637898111156758053483926468770271004954404332872882905590027554291235915451991457168190077354687257223307909437361916555009430129874217423412551217204568098748121981350194608587420327165524422196125339926488383918148228415033200058241158729516700406513454711334907375559338116002104183096454804441949262288656740925495025620000947247619076293833778636241335317863261861155870772543229498908606555825542042181025825722688839268984147136535752908590314077834002567073571570957926747472055751558855898177873968337881165020491090751276819983623280027064360325947423471331476733238381909443730136596875364889336987934640103196685222594244662770546922475417848108938604045577352616634837357505536620121312342382859703303432063054212975053643160216148826629824693094397102263620775326115198779967753261644166538228033436962109570678089519031199044990376280408660336590208646675073451078207784629433208465640929270644950121918346326072087930723408527332527366623509439694796964176100876065427536542906678241625388596608308223184331112573731575774071597520293906811324866198438080616418894158778434382424057930923108756815137898489036419250029131163173296019889178264605478990150301270816302256612316835906566765268223779638299425370386897407555826859569383547399145391350481315763379706424323721183244926099114916303955280858002492493455946892250033148193506776528362657398719632664841739664431320143577594022195796093837976169983554271301945412847429506488357146745154609872253093821149550233547449598796563008109084372649098812455107804967524187861620322751637281868914877385344221465436861697676817325879274324467671624651083157344572994800010779613777372201746869557347585960935061270304747266827341616530403088862404845668373570731712149918806991425131434910820832935807093303023092876313593239291203357658047790202627404870203911385762472881847113630005394335820265512035018462581052502294327972420292541718638099586135141335817061835665515894564155813390676239864019621880804827306484408259857028076927902219925755011759960811515825046332164087123764234451116762384562523368264735823210757714395719906776252075025535570551538478551264314651828865182632152729627121947481023369010806578147366574724947523498752645026094103887274140183182545734411768093419034945623633820042697913697026298711294165283933520093173132088248964382603768487892351175487916990202029439218803641847245017982079136846852601798363226001859572906458153447718306627780685984092378750358677923511299039686250803782062197054610579066466731449573937630185416870326413846459475992394635487010119960600682706672506766049720810433010260458980657203050381407713673823560937777947077605283778586201843060467721460500859110293950671234004267650747816867790442741705795094197626422803444804951712240803163531119007790199187685394789473441752814770895894519598803586451243075714593084168234000516242638150794781932391293123995906161859277149398908815132769539237824633340394747004350113014323457573852047711307048226850603168683768324080052175263286660526256335513825020974261732894285186957730428786227432086485404193752932096105767940962431967812837776366883889200886877591125660012963850115605641692292996109031482896585759387372927214365362339943216529003166527624875893203089468112081017712187139725603312296067636435940022654858689710464366604122471399034699901835434678088856401075646053551910477577411558401745792768041372266281553735625135084069517933491087206141521229251530207034822851132258645739785880273301939897769287197331087582718561223405520489375905935421050646647347923219623062481965230334284219319359753978721029478953143088106095445786563116813713248607137219261727965997726504443878542145421456263591274080972252093739001622711667893713147403108820232313182464920228654202700013935205179771622724755687007159892931077694736951723044067490275172640969153823080613393215202351993049940934531088893974439332241248856031823854636507918135072462234505661013319959623744619081160922104091339093885621947319447161036707682451925135164052792713473553282007408490133001225674655988972533409903381007908592352157311554628245611221777629026020594776175105849013940235569585129634664054694622208913259215447380300326227279755849800283478086326807769454654825935455604388699098520450085293602045978075684457564673347386076402276002507520458219123461404959759594616954479058107202640684647497679417595608303865977655541359634825406603325522885976841386910383359655886863565860147813865997731731573875873131676958799292877747473081557468753469259837537673185672184080536406003732897901733039667240691734034841267380182973196671668460139102114270476423836641410021700649285118284892494791880762885761469106989474213684004136241840535389416694504530705628311937413019105108284693076904619929456420461834082808881152246084128684785753337000911636989774143298902677337241094818604907827637013256843235248240754111276920959203265546609509469919435665579256391475445445158027007920086888534072199992925942501594739684638099439105322855142276305791140396474515243915345599791604730234354139147988427400796503353105862032429318909180411758683448118210826238852439787848065973506948453786707809664126181222344722978891605089946612573765145610945358712823208198886731973163676029742590162078027080523755982888422931541811216836691295304923485628705912558546127457040642440867685420758136592126665712488242230094785854584296656398835279688758024725416482905948090412203517818583144710868301844576834103322742724934992108715916697055938912470508396492404794596694678634853995772773830514291194080339378816536736397673301422188052829510257998378003871897897134073035520845396823881195364771709452571611836619968819225788782928052629127441132193408799498057241563126053780836916643057353022503660704880956079635434573766028449808194934726941181114966947835811789151523990551368934489680986104843878136868390858271606325421016962427825501642108150616046982892867607818902087662321771305995784851485540959000241011399726526377826642476037110461425247257188637957252857019160698061584996418684366090635139945058905286366781937933558041013466686184105875127727530411490445189379830245627050176167660117417436812753624345927097307870292963426801529983156482169626173525248269806715171875664336678771058199489000189262230365455618596544653968077761986310916597259704982076051388092243961689111446964486871688801051721692478963450844664905694820091406049675185466039069794073890696334520901157826522736057580698131032187534490326539220019390315625739431178653148022976603285083115329892257422232671458791279046138072795351235454544530828170045851160262313326917220420642472951280245326434703870043682253413895885997838733734755443781418650438463450955896671060025141403231708659421569086591538819457361554545309489493553210141431624010918070781846789795241842897666654861023877944465862052462179780107294015376941934363537788664990433245504187676579932002670232218631630317398740222616707489187021616145236037383163463646523916366284755128494349073434103607740172460891151939666082034550987380081552052740405627160081106885804036770795494882649161024227557295677573896901147837023004228069037735841243602203962521236783402294400362460532310496944748432450474701479251672442639513087965750202046624880978505079915786772627570599290866092365760557732069880573301116671246130373395370173116831866808466346488522320936324340932701337995758273887924403142895582105610251088298499132439736995803101221976679988148361594326677226195850134438427436334376156468286990712765978057287212323711050197041566691830754130209657378841126817939240046190227039937078944396650322240198064229860546254206511888288345306219994092272648270756435729264986406514660345579013982008305927326887126288980062739386632491271584415992726973158528599302686876675175201183641362091589321346053424385999176062254118269676746199677743501348704043431792938031175499374529568941253432772421521818717143115894886709843927395457233645825386477527050676882950080772176091186336147695612783645003024773712870030967910955238901802852997677277553901094444243714673500369978896127291840862115425676043556366355946790625434306841427013499191984202929629538515131554056419762507396476199103464651979193206909075329313460169930629237126378557299148861017001767819183179109854551613658614649248192602979674813025125304686032490297431600342028200500207527938329687727500958289057843335544014405580820820377800230984059661973281046120686910369270645459065760813204909641072289445027179237218897835602553042264042562695953315252476738552658983250273567323315782127869426498460763723850970558742076407239145898448945381406255129451587562056847320677032073925034757058106094233400346624623602415950603430594052133922883112863200285851832302979880706166708395305054219875257043733688522893484944501474501570635305126657557349794438703582525428084905990990362086987217483871865866690865866808456784939526311076068860379874880899041450842987118158073028583784834772371634997257965955784724718363605249590202650145858841313665965064012890282324964876645352254117654048081300984439672250468502903787294368761063093126806126923436329570027774381504046772489414608432942627642713619463174243602327587778344503401696319767433124133729195970512395465781517304324158426959339539358766340094109435339705850187899442477944049128636987682338671544111028791938703411465412957834653110074478290535523471788762775627988979509219948361615847953605746340786369093895498735959187967016930385512065351594414740506825481834621108697761396209444658445000629408861867918498674221224500694876581861373417656943774177333704579647963325614721720301962189606847949757539106158652608530451344552983988624170800523371237473192053721751736524364965359410170580355467176594536863334739145454761473569695990651601107412759404820189223501430410529688265372560345214021380212999355702076853964069396500361461188117364731176507631358089914039267065426144703272405350348052479891811716298336437508324756613048310628133528877994426860392051160698974060365160226607444033242662566533881803392384856318490291953460154398296231366538082142477363585001104088492346461856731974204523828656193206738521280365893599484911774588613048135160931492803008204422235885449743820910023312564918736509012880013782377345843829897725535528647409745466374041031094486293614166219297480911730442222952849247143175773669551392580147746240792161040480564099822126608840077545617912770905220370418269784955932944373031931842597696921365545563611864976101413658226980793581541186828380935563515818431915942822221035969650145459824233222885255793057425232898686570641142137118412694273780526179900229253998250928528249606611103714544302426590141017278971278262279307405311800071913419827892592756978533863764321197425627110608814507721747430437861596889452225702335976190947809580815068185815606131106105987670677568663498214282379216939176474605470459831274613736501985677548462858918035733426782015129411317528938529490650404018401891610802724904205492860600949893469481308294450589407344029915989408831258452703131796921736554002619569478044083186361962825449727311893937327179112969934715120287610278084655712931577203981311518947787735251510431398844357490665312607573427034216605964140531434870649172457025088567471262296148629517923870878216888391995337254185286518578825099802850689909272712731186531976030949197780721902102305360765560557909204008849972701980284409446437820119291780855822510473295706065623206804759046686820073463078681204455439691427258392742613551063006710109545291155617311351207694155374269765787122407800857533676865975172529989250207059107330301325898267303877901050727039130331241569666312244106884337052717059509054809225115537591397036878964273855290305148675249107664588640988629148437997048234277432067965239130464821890905447491095300814537248156555742314462252460761597503809897708100898504611225542119427329352614719850090067907517714619270198681328062630257264638036781153846595342076427132935065648828747500364014453696962243283961589473709310562531597334276166559332193378839784980497716346106295158024872858950339216868064844860533970302051609334453097349392160409264976417287949295150053899981670301650092162846237410508988160341196032423089975636335019174269385664270188091216957170569483640063642471975718275145267610917826038229427656213028044882768861294280430699174286172919894349965820539708162609163439786371917918966225929784654711796591415954684577929900606179559418641418931082213168848190724369290866812952069666754825794631179357362591502127352689974243451666684675705349064419072449789283999792031746585579850077735078551499959723851675924423143860971315271319061730984661844086833942063671245725004129410546346229186615514811159744839950723731617936380698428837587816776882229394739706411333752975030694511326827795413170860085909472190110307828736961882788776518277080936303138826137697036000222469515221909403867404294683750082797859332290456438013816415141256473056500641979794327318259145225994779974782235300473442729443832609717889350061604271639739735585655073884431815648545881289485142525214285050845437071853623654917603508330034955409178337961250733432024656910448648908394975713485744408252673899018297326367344035752889114073896430765293758253179126875388576961934578096341612680044068355764127896158497915783176276648340876295825591131671999670888904147908729654691091642589238974223663733297729939357638765076993426339942793010118374280150687663622156018799340869531762724288166750122502711052794583178531917886332449686595889575093958339449451933909329776463971013323478426869534807166475078792927538203756076453385257333513877249213868071471229098043040571809195127774386908972517384524078342545974956943491531506887608749083731206326215502810318444078913844554325188240539676384718505239053426173119243180457658183950666578299304730685144770584358686776383455703651067066750850805890716502523860376433189000618408618564261708771595850818582511669764330158330677830718180245276602940687944091619416363620678265935310838768743282146346004221539307809626564405043427967095095223680671854626943161919584799171016697235039017713129075906406545956591341916282626698600924554747406996241568367568711599337322248582681092010690179105075982690914158316221196333236677656457186107810097148311519523844014944132040958077221334710803659011431014497386230559356024283898738068441771701444738344341080515313662718577593745244785943218571664463858109488866375096417635662786803975874955681224918184435025480000292396695608407108303695029810647103949537387350116480517403122714650186837067001539363116358832232898776136863113378134557550254580642402228838113094002378350451556542058782945891947810062950051656506166423175503829847504108551266469121675113831974997537901720481261207121303214072020277648999796899313342516344691376734064925766117650024412406362778747095180049605969357129268733694183891808534916056767666196971580634218068580879061127183842081005607814383835025478087140779195257905105302509130676816575466507154024169803362905713478847540112377736885012181876439532520477093954094699442023808917563512982212684514408773400117825424325146336935193809665502833715983745211546835349237360278253934760756196960821320232858160054480873875523264809106894732223359884980198924286537305121444244789601198117098535205429695076220565409540061850188707396845373175660493061980074738180700099376218104149119271032376752665792433842664671490130210790589646550070191687120008061379968032011008550461718330143965564934125039957084371361019009847512825025699113767538050808560474006783484468324516293737662480809907803095008809279065094579655494898500847830202764631964062490210863203167911525829021884758409159669138681472419157064304319164311768612645779334385722248793514570026935046977816531125212374760892404398343285451872897307787596973368422090914993951273481546420224686823820457450559269768931957915279031409294411548936345492339494096415709045798220667321983991436032138963416321637086040977299970892919356502814222845614894874335332284560010973846720891792132098056031730156682568332244178108919108022151149600667408603537860284031831183258975303300232759072407592553187622803756237649364794667197353635972029854644756023058362007278429618283465975304060130114857872580428358805115637392969967610641348411938718766224094410927886658739391374804235106042933366817608158494351472817349665841984715070755938437848588749711338496630870384078136651348369151278313455554552307988704349853639914676940409552228345069731373619280169680097530694342168753785363552232163206550009451876882459582818964563222153763529227179737599688974109754937848764657617270816521613133391684552928597193656904928498017845483743720014260731025126927409432743036705437854603976547281532462843440960088535520654460610186376605540999175342925695926638961992525058289442585904500767666769793916522954231507363717942225815209675855849485811224745398884094909811142148612927074029130485508716130535372758485663324442782677519412842753130998354349960460960963486106007981048439305750927932337384046744311306373938452502953378202170043220307386260931755015212294570788787386711791416193452025687747547302374840665447593635766252597821826543496396898682510617745987526922315748345872087099446251001193152912726906171851134341423387792109610779481062909515452977782018740904275421348219435839491086406707516619792725794086531327270503179825314069536545562209468260552669102179244444237558775424969835297720315669145356979950339520200476803516974317573918138934177815515810374656879386265651455746497976529889414835617137004249270962087432397814554715080712994459319308187102507809071389822732415310131570017019901560324917177485083794139824723732520693659398279133964628853917809467330166054143624099825097005563689592916131599835910438532957953765604060167569316140220230306415631020301096800704425674151494748715585959247634988984124607881084407623557346885547658011022957280518495962471884668896959370358779551818141563562638643207302880658401161579532760164066893665585739342317798097895504803318006672547681322248755621577935834793101850985691031489823025911871955881081173713285250129612299535013429020185369784627447979504332454408140213682703602582110034842641617995050532508498423233587598292791243341431237705166658744819623341935189520237489740027915642923906549396035499923097290105633967253202585087717335378145099148832039830254061046656358777046575661812647164946509303360344029881169170100201805219174857945753043865740047536289638649410833294027469049871094892221807006793648068124193566723708879395518473577522008326634628169327841121726424164996084590822596845773509321233753326272636424740186440118809719810895798270919816336623857718434783773577808534174272151410371718406580990113238425793154955160483450084827699533884925426386174987108012467544939182439246711646567986143129653417974213794365347191408585419219783981968315762340575225745915177496339290175287526993477076475559863131137364375335647341453273586309950634757114730262986309745625976209212470006079549897988923334614964944935619247517061963157616200606945001326709965274682867900247772747033003921398805824143430546717185522791049701039465812962078528238506310254857043939118015992807023779744053073636298916179175767036183161959003510835634818456630493409964688841837216070051332615502113073761628545425336126983243638220466889630523014853604230441576803958491991445719666829884749779420715561864164648068278258188882772364724089757302326562178080607451092929361312056187110087287326710372565320277311393126838774949578100012157908154003260080298916396279804641388193997889650273838029241816249200886407702229214996036253288951182547953457658398615371171949001301886442994791863271632497616856629174378164415449417215256147290418019180137590303674212308483416326768880054767581731603793932548563523728331869139846463625368060726785523436223758519540877216932237384774752574261894062245542613874333219602821740700369347695531398642477844195730370325012713077909829462624132105226898697235731186609239156809202071264603132530275012694909170732429726867554085437886386889212602418136231778052203111918581718703142007279990789731173991993741752709709092838385211888076825531459308348735996407025602011653283160487860315144186347597221308025572833973834338479829205026853862458535611131825940959182334778417164148405882982674672334080894797370190602656859495240184510687252173832196731118018581416272531140158917720689261265159147023699386012533335069542012822608914985736969146019679800706791059374660912443515157506731226446792374913558724499754186689900176398029342399607969284441226818864562638284352338537922698655489856414918796455953438971697475935633787049470829826393576180431278105803993208366675839988364524103728240525894387760165842795508164345609949102840137510435446756584297195413751700829878453616529403962297107739931413637391772878406619589939275261781340144125212286715587471449335608862643497513384533602978106023503912430229430447600756116581801563755849462338933713244924646763553980811753064935032724177376750749676255589875937480521859920833023668157505056843933481545310633020338867256351416311756735370234435505615653950071121952592205776735472470218325736235485360663586661517147806544770267106574718697703645336153328325269439324813669154521798948944678272760950953897318011450330777786990567410702499894870273227722863910972675714953809255246814235483591663285936151634379398161477499335044987980915694710023157813024502301258082693312117015708640864467865493408878125108343686542171435980496287287717412752181386745709448977002454273408784760505364370178773276882955224082623820923731883678214756311471197853548231820260021253932190719267861243537172964949230890393419824365627846980501018611547937428997354169518607465212453052264587125315769950549387905094085647872114639798903640987412741771413008346180040535210984631395185589359533953757919076005520645252607074695716362280756793887932755081655911831154440766707969739042052501686904868950260523346579255679293535650229125925533462718576304969367385875799339740331159648244618296456419370992793895035982037017582490565174751483028861405065950506531112480847323604826790654024558996941431671402665476341097148214159646216473007720024484459160064471866314497688331775554432088831472553482397070767385657549027188165850500244861397661674567340845763163576526685416573157731683810794401907434655053469490786278404202361554945588979322386582606282191904838190594032740438648633110892673147266381584194771942024572659814872771019755833642918493221748972997514806428671148402397493993125993704835477153432765390405276517807889251977918562306086327331231432446207996995087460604689531756358212238200699449309858892971877786328298598505443503145435012704229316609481605986652888812321466671855247061881399457217261544820320650193998253925951671420368805844683146746785354494058053794104568662031249265586937639206644674305546755074429371137237390421924281606421269874314721860173127677725847856526956892432818655504816663108987900233193021010314456337159696899479914991077792586926992884928177399068279589805692253169851635786868855987972861323469532055453300037610438722553495937457305197834309294001128454737085937261365670446792919601536745661581302509508409797766638914572171030263146035834993540779647410192594305523262898749227021599365887705668494810215460393916153958503560782011590474929712217631669219237542890653103399863777395505226142245248398373535098891145245983944738581949791207675590919276054963201380950189325308334599304492014810170313835817267847853506468802360139511269139414920784784142298649744677927135749092593082885418034206580329904436259585219627119102667375551967493476384073462520869411703313255547661251844036221563627149953944830676480809158834787802321025022691602767212352882172592704225406576819317825395816791529657958279720079183745936856144717604258583782186811719166041747456565139057676849765756894179572564050008269401485461920164526453765757508866166834573957643064757691087753333447037145606906253981274305624679822522286669685775926367978729236271260746925082424500104096429113309753150140367768374748568095610258287974065285292549165621173841068999009819325470305219131471710392835698647051517969615686391576867181829100186428722771646188852883517268947595479466543382928408258192077708322790331731318979548725590058215035390472958470353730805584881730004417738467014270614393457990786988125085193057997194062707913087257740167126017305938226680771207422912127807843063615164506599083093799654790579779921661482957873810910901464520313169807797967866509840447439694818801649406818399277384720384894831562041880711495833275332906455418137331249526827181837873644217111578630341379391316141388933072575484347626039722911588314880199758071802125797150903861715663681927286051353386173197367536877202013395555755395827063829691331919044402089252790361821407565395923349853425039925110235409793344568851528128789753833288767064064040994897947136059876253475482502981256914405723136391529256481562114080894422141868107397614020204986133370105006882915288244086842309878334602680651384524727515793973307474362747831094328910072412890439119139613233934319036799244875208990158901554562160569480117975304983751590127756815571149489675019129728696099056204366243105345964848913881039149924988010845023348694212648432342857155493835438814242594627318813645105916928408600085084430487551593115496688947314355663269995914051265282348147363789075175804285470385472560261760923086071240647205559656529472643491064542650415517804129764853686191775544613454119019602401942030581326840273993194209009486175522859612861764448654181899936283283367133580472350405821759978676137086742617073584910644077205913376692329316340855669453172956709664660060957197762004178188168267362944351104602246100543920056867036574052108623386483642526877751565624889134273188650431139573538545378848767757315273236572898240626409979856623666836021821505091783586324812243311903024520464020606058010832473482866565238081749908899960202783758826615237207006178982131807211616791104564895577399473466594495557128173677256483406017395748231188012489959966503446805602037554118070828676380749307105315714219952528556827670856689274990118298604663835769426288722317643206923494731956125986378223041579066884938848047318774022606121643925469487134530476380100648101397896235914193537028108611054939781581210647200567336739966842834589274191871251652872839055416727662752574040939148295772904091812184352453499659801371963964182080062424638674078783011221424344419410032880116814499568032099462731293107830502300118875264698848456042858390142869576660414400742294070272097897855446569659223924863112397924250195298292007467128002505042220329335351667963759895064947231592338069803390157505473344668693881593914092225994346798496712511434742334999121608095836597012849802679828434417199266618301987919851034176320903876853961518979869375072209524171453052430927870628773022183287912572575416987238182433538293535177447297157834808611223568231233470223775890707494547134576884341375616013922568098151005970736758469486313726000743306633792073589412774190289866812804774415945877583607276639173192139151173410580619621073552088238955573084204674355230569529282257870595648391752493979470071710085522562685632906388243747538630622034854536194910286576399545018978335610180955467585322220294304650381686979155544174934034129028358931067605645641783131026833704661184193349970396292218262522833035790392522390700166985132133110512965261563464596290987431658222380539794252571888486657923823025400425508554273450067777310051544428398108183705526135118249419763429923528857937852034761303740550354301796059818056916149422722394098036732465963251433809361388541767281810911765371884534398732440225154117081285267445896008511530052884732815451535624439476544868582074900101427558056979197184070568053958079869428400618383972276466187964588987801557060174161449367028978775993984596673952687971239814015385233665003409069058999619561945872109280171731148087319255718476298479168321244380253546358405936270742841701059959815672330709551040928486406292462999829791100054262164784492283572764022233396625801671222214451458126158779595249027528256107358535625457093137948912694876106730291448012593218165301637659510882232916138016611765078906171554238132127954790786555702167057792482726830108360683419928305987235914088040748396520224647978684991318276223091431088520495323205791801294586091476586723814974226917113639718834385756188533582053253191262765292878758333879538685287408372546789290790003263741341705492547105202847212878969197041844001803354972989529284069730511700629383569698667233484917842622705168429947310754467627525467483016562161269806497586303482319544536654616066078488484959340523999737204643612770490189536083396071088320013439824440834720893914634988345138839031345438838260151757923454954249424166437434314246279916374676858803843751373219951500099921667453757435339353595484123088481591780562161478032706878641765581155172376569215483270042141342318262709014302299884817248653416805519657850926939375230823843555597406229047585433312519003318214139673200618073109857729911934227722374068920302141373843550004924412699876636557802143394591159357858880686070011840441366679441468580096422057501108992375434230448773537064661828416884080435569657004671068293247419223816577471574287049275111870433626155103121550225797650542028131985159126113281832257793724981968131755714112700581777946443617368748152166127246771193040599657658965264393807989800125428574856893921190692963878519247529339155380711046922920371006766273759411438757121898862711299355731524506172364934902451232003983579063856914275349022069174587114313753620908505095136185891622243927711371151019959759704740007854485431301526609979299295450062301483997422370109642103266777218625193933626180608987986492297649772745766001740312005039245686377539787216539641352353266262497400791021599195821991448606918219165011629868825818170072190788478138367090791378600695007905068541682984603517041509348896178016574130385703054135554708887867449446734776469863233259553477792485046064744982859010171358077255057905977936685295813478360022323913511797889901425314947433785804369544568850945779915902125791912162711300573184562331159766507660410423184347263087264125836719102555911438021630697093240727172335125589173101411468175393706069419876435525170160884872164433109507854982909178817341706759107833460843418199886312825261014322549399445465733899478458982169169948676793654861362487025610550214858483987507706325119982669826997951592608191104182166026619755290783688774162276679334124139748893733249792393940200833679565126833863351066883016556293075275081829637125384019670313975892419945346965284425363046321668642803471923065429235540327358470077657778792675157495842277451111856515990331730588278191794392856454302540760970507011661747873422628716467227315072460564353549831675144788169536466708856470464376007601026356212135836424251705241357054399147546246403612235333391734314618244850985301012634854906593465785423994638774562595747193764336078402802458984164872583391131505077020016049670989848886721292456252451058569087364868591464753281617194151126797705994155110296333649124577620094844337772163837852732108697260744132416446882497049085165126900437534042397109773044612071911372222840524940707910493444249969633508756451295652794266059421012031538807284214534204927362608171410943025835006872480532974863341139672729942220043631300188396681951709980638967661510644893265683994224732515980047149376658064922740767941707349257680759121170159195206105814631200450095985027810901458742390640169393679054373241808495892070184942947706420603171079159280326185897489042254956549863171328250579897096908725764869460323295833305587024419204222867646075270687158084753255233069940943435584648338905368168932329533996184015204882362725301509404672289303281895702929315252828320837856552247084259029022854936125792857622208958955538333041893990259176737362474441625094594886043297539460238562180156888952887752052005547612153691473636909248232722606933902267166231348659563510265607866661840071024340284064431534211700931053796937752780889885342405134728703821186806687972227352829350291941168616466228913738685582196026712880189152053761580344565082953031222132968109550872375422857731377649510988308171377229316920208916285243173032635827543580031270830026675348642428796389930920494076200068900228163429178162452082304443723462987222248457801933964760395122471867781866171706110332602871332175314540119634907913923292521668427137294028573065465515697027354731014836791105429237643778978315097095158600822224344005366591062684887603962456148350055596268093848479301399901572245087239989372604572798136727602749789938499622488271022649623537764593976444727416096840591219908271682636788350577482375047734018409314125652797056705336908396529154901754669190785441463796859627804502206667181475825233546024956182671413521844826711001875407473094101234022773247063736226495640187702389779768107934232839951588628204216695447007803364075727513306497506036819854080545098957702455439566820691902328440145865788863382297060739152743443462420097234523340134435510597901296033262731218914692691799802813567519606457494894103838081717026919878378911943390274589811795892136006022604377137010911006344851974236721536477502083339687779913103429626878852547699487200169184259910596192322792679752290409681159238632391150886111087641062040384933525355700035945022864736804775559975175257250538808230505565934692531330265495120058853276072548777763056668759969212770984984667871456034160520980140687424802267044095596161931658502294578268421095386683713574946230670645990749360329724424240941568712117187697584394715508177366945241561835851695281969542314180034397994446876659359028390725007609248577016977862914758522388228048200847571891584791891737081196218217094999867254832745678752744176654927818802117830484923925481923620229004336408582759025627371069142593159022098739858483912681974238578180853573672419934602359322330551137636532284656790553474635548896640619549397897230391678691649105630969481006772966415196569388845795922995116825250765480824185136472554516340708471591775510067363558770437331967059936076636316756987895135170483739215999636351544357638207679831320053577648509746581692980816648433183574780621946285532890335554057410854663337339469912526633059040144965286468045223537725598537365251648894004474459835178400586777403999475649370508773562689193645020694503297960503067825224003395482154352555174258772105524763965641222019492543144686379840218239891971885605152560133727749681337982901360485077447595553365764157956473516579878864687936001724101759859725102131344148159711323776075666795806591169476390112539421034517775998560421729006046593202337395655576741707878326542535192998137637751184792638769716099829797414652974333341393834256902065624357752988851005998270251842415507179159816400522979779393123563453253802894219315328211109190226283944315472979587307886669067133861009978039770912509277260417785049390251515403307167255484136220025807663555249333837515745363936518837579581785696727706695161030490734425361503185469503013539897577969663079897094243307967264255566406647970441873217768666206524154248878764624589951603038509323638887911908963854950274794447130481494741901861868779891393238113554652141213597476679816452801455082561945148451252233869894209389066174910341787660263917473515108682681385977102880128728467367933101908816364598355705783068236724952160955338411565116363264612137453674243515254624853171999065167355318223269940134659859085115657766920260723589198730529840526009100229478152105412410318102758475131952357605389674398657400136688263212907571230417993530011708972656015204826565213626048723773587270679230792552816933862076860492523470043402231155546249533787596910349683449223293598896363658901164271013197124169883905714918821002216843898914219481266909276944906193619109744074819315414595102563490546378771619358600861729698062120543150895122377771580690022730040855384571971785193343132469728505704652331656205569454944786117396163063394410661175853991167053929938169666562463213286102535942619873243939809420102743680073819113048143235327188475486250135525454678158116290765063826885397719261826391791018566965554755118014746154651628482678052343468124599986066954092094914843328998549965053775023982718746473474781442239532004959866147150965751595228845135937953374855023425154592040595256045082659063804694762529263835200680258974780917242742884682224654980318894454366466558633213497507779894006457167940269779978015433367899982463232962624500432698997067118459392003543300275196550318527817315812517612140989010420377462544113384440884048995672794009791510050084297768618012932438066868248646692852090298550884093646011222355725754518074642623786450800410405936790471135443678245458547712776338492349823907736914286546779214305284702349800874199886446595572152740691880081805143488427312083618905277771934744927007616492845473984255941028441215079091458054914242772975137369609554339886955739388148368273687799055659659645228749403634612600433512769685093816506505166061689973199387963210550849869085329769683479932181983147109168368086450712161573787860848053532000848988787859130194820820715466622592866656891788827117329505112022617212350399761122422907597467481309437856889525566280422870862089355273409312939851052725937791617783485348509296138000772754401948610719574816187633284274847861386518696137294592129992582273193304665447714461615782802340000484834779087550299614076925507931999017891699506434754009465129204576568772685812881787047916355915140264730677184335702394426351314189732933770923104674612720228685563751990730232080693415259807823927101180392109016771043403869786443433224469611138581084984237242923760185289964369821602897021728281250416133944561801132020975135406142871972276467033416864940635994225158030652281474737500389775754485599122220715059386571674005404075330023554719903890927644720934195599077193125213193167707207933540359855967620976568106800043329660195709193267981490765536382383598548750476968990855135302883861822218388664503898220173894436116707084377594593711582422469940575374350484607613670484971710730120921242015693382397373604071301151222106324748112400039887527411709350736321503370019012412192610825750655191108372007687637566330703212461690152668376944013236525375515451193177408401252169600959883304499081953456121546836431175581573307729034129777828995641434471874526040592718951657450617636308859367716401118996187019531116916184543865101035657365724724836513287912660975894579180013852318200666970415112149547161302707183567418889069866060516059852206138010865525260835463172691916939241819472704900703707796783130211216152868748878848931823382904527535003343942364325241851664800213765950253099743231434581245996459441244380197127593488854244772198210687107146057245365734320114505407678025787078295520155232435491321768251777812114287078612548826325092030172263651487770850228129207226165166981610674066810572435998905809362603022658926849759829712477190894393313070740732953352775811108194817843529003309671151647246031096375623388320122471538045314360537426862078054522862064618248693059432083750908112820410035102166982210297700173324185863004229013714793505619707554619018981599577970441912629474756021568317997305326241823730788626419851146523926556124180154627259344840506327026134240379897190482611712435977547995247929210639612812363729281595008185756518338881088939036063941632536456698050852645907691563391801563490643557577390851965094420136718766859397361300902543862338635558667895773224148291743190109510787039744567369526858978707299250912660695205997598259169739343957031864990725127177279784757476492816124090394113757301730417679740077205188169442210565288693025289273618271721913958444489259864320988862632943216924228125348026027640679412027701833077097669138449444972421688542250549679617042737485673479446469042563666578136422134328224632963994096373958666032237246420392253917015417033735528484514204417880374424594911113661200817455690604458166519858142928695192147261883697159427111207021602966893579111345246463313363926857922611386943804365226439709730995961996318908858102462781663986318583070426961184433078911393708352893387718420979314663626678072113426536059806411607548518449546734000311234327113478843579458227785190237550098353486170463237183533249610695433707576447211771480838991868161126130172583308085996806571043403001073828938487976810045378203073223737424429481365283791305189433577034862253280691882653806513248436127285895836804753829621813039145732419739940747872993567105937550054921879781377790933634781928924269237879168239419486841334997520273940172529673337220863447787009273661431296299998953531800118573605345102121474290067513033820636555448086112126229422335508336345713304424904105419021830516114564224727274776729419787811647115357543267793546882299082167643223404160116252447541792336336182463314421820595727113670666358493266458415241967401378127382956063609093241335716966854801857184109429410450285553102428752863138621875146145170596595626682456030930248292935624341459026135876934003905121494277318538614277344545028226457266356393916186241857248345748871455364387239323012477472384454312639702600013938306343629531760302014806999301030588163157932831677271019567881990432019256718860062603824598703079890644113495866908684296992460134946232785816277529413618071151505414250254058818093978849836224850708856474619556293881157813670942744651286802759044646655397794574613360530387363055184832901962498887118489053082688284725372955555842136288633747023860647422468587257252010115103417798656236400788042863740611806047191248999385411309575488009608700746230108600726798761998575359681321996604451361443798988278495201234258092543172859042429891119931386656501476799315197764310052790241173711355141090390633918248405736554588258346904584018246409195093343315743355207047027399357003221253848217450006415504496090966639601202452816355224759583663933138910216071066113170152350363780844161550362215543720437078749236437289271960167322307162139037575653738047481304671767985914523205049016311932510493989715820336030418568194084996815537058068959404759649999701107421116954979061785629252527621645219468086730732741827656278184520353066477726099212660138705421033648498600140041162126987758642829722835996577649102413926988068224559491382949128444509118989032224162434652375082023156241348630932272173236873954680096856899607424103820812101775867092647193762375141248364127070389627684803561486423892933963105059520913276423860077932937302164942484965784179584718464645217238693784998854739653222456902111330226531682543734431317672927047958990016531095480000526517793619134296262448410722820901870311393770453596996650336152213990416441474931333191112532187562080705960116131626374442652578913063948656053190088520224170856097144702145413433045481766261594586295945411847176454542961813772149510469361041943682710309381704710396385066856650237787454094957587901854920912429952247873076187254636498870999138978117558965239127825634394102800782788205730480621786121751136829136294102051965643522881008938114208756035842186207644334671205574522025665122602072053575486532811862838307359264202698729589714505836885865421125298734296693083784917047492859146669770326086558220449679868840673497811152600437560979978221279121772862176360188580600366880767302512558304331335672999709059653670737104444480089033327210227455573757322809983087390379777241356186243432577256149253259926745784340489234102639472692842063619149561278257341750510353841058431617982719872131680480833552273729294954109753652718908474503229423102430062015686340623803917328509994595105701641356339054914354416302458158722224458171190973830569556373474862393612905293703265714977384756011011748961959394933649388219006178966177631390574926046997854506050770876042167590982754852971592000858117812000528363757309714234582030006022990988610912373398353405763350321434035418179498521879735380345620277620460189382880248351816790292395129868321315319200016859862459951852881910498723141150950182927528518789576149136763567679692982555972519063648960802412348711958487972301536303451712480586016825873309750315413093005694978824427596094362156444197590740663187208734181407692955183160220864518649391184425409448540706110536005852709835459736204252488490851012526091113977955757006549813464944670159319553732921500910309246134281141679086989780876942340414406617714317302963985660020653562235446406231183825604677130171022864746643585557101002923692974563993978362522031982409453200745480902592640165941004973590807690328970039546395203097932645703718736347550449493108703531480129789992675296597062654229267994666222430390667922823239854006364433324829447990417347149727419962427877530138601671601045789805686532562108411932766554945394407319219520737396451433418292616964407411870299157311829664003969928449246136693785640442786029352107128346677860376724627093381942629462753055740423335549069662389337822673725390783862391619071370820934645557421480655985481856926944382225795098030784170111738889263715588729369579114286030937871797146724991412358543473771949216454272031135712205616058288910126253246202212046857910118824982417902659930988715147757978953639790888242504591057399581975589510057299077145643803500145705740930333334263960748715743778174467398230731735240373907824105892538783850291516853543552365124667579970248744468045669884316558126271292309699853478067485795721314647484013853508808980695502928473747817108428175037223951455956186151162964947597054908520550318958291954885262049130618980057706762736919623087367256944340421829370230332822267670540158907000586909784595512813278568921884671628576942787834618285550821079612128100597559298136559565197481551979985249311938489011118420823719787304983589390010138438498804244643495214244108691219466642422166741615924720341561264974421944397077258298005863136966047517115596955327522643272241715242248264678785927974322985499789846216913270556011838968498671116777326285662533489307633202922520229965697121374975332357842856219207106684155397719415850493403685232751314499847676169929482425786635670083912478310239075125748363791688816844381280631578550123998262656173403213170035049017715438671717154030243345937808686633423409798884967262037215201350391317882786138021622434069296212589139387057139763134347499567711745481542594063929184632136272130668059722095913746735217843651739683711216187263294709654001113511934226505151082880253699840480266858182951219135935027163540869968312175251043073750589015221528157939129990250795968919547455136736176124308303159471742795255142461348523261564525644706537208771529324587983202422377802127907264932193216344343404731592699239221716139529850751878308940105379894525856519802782712517474246047548395506549591880588341062898065295343880125505293253972339006518182414013746013322399583878245187861067403470712007839677593118588832169384136527331197206232550918325238572163532374032556019602407274353015238240129909976983193382758320827776153444372162376362688292004106353440840287296539896295499734095987287014269865968583846667068971542422073379254396427986632782883671111924076224739133651985411118180374661395990783927006729634691048039026105667148463139343053240085509403941971364985081691000668279648528323933453260557331303880053644386459724416525046142292149952206866314501398942185343690053883861105743364675859841975493361478479379096894361904603748628780816270318515877295377683716718659462847715935464465711305950396462514307121749395422292034847575206264001119151069593775931846764320424715801823918917733380247984422173832187967693912904253646396000655992171186014429425514510613513676597550468103738502008202902799108054169620134006856413178957822590765589095868982686351129693408300158362835372804957479055807142436564582629104974115039219530253629879085769519579898420752365489144238354347172507163475008096966817121167994785176617575613926353982374660465689874983637363374730098490716822715297938698716416872595711835415432394645984283054502346418011100734663621657680014021211278905397773451147116911809881285436436544642389803136666171792316054511485025549875372925121667938520707429556894302471845565190055339525147908081866568376981307449032443746327090660407623579678432699572429249900771341923153370616667346250083367407727238682166409520266560000295398908290704345899269714583509196656726117496864698444324407329918266365758051386221847494264024484901931416530408602499512119395700272311468524398033155788953476985604377034915589633308253254573243670567646486704530941500215602900279964725519604765619529351909854655690607252560032520048677254587532335057305635945747840179934068561150294311408136386893329998220682954897494622615355845064412979148814171018759483974975388108409612285717858938860442148111382358657299702597006002140960391083213339109334642903632910940182660672594294198287638411740356230826276274061002364270771030566396323908309097298328414286447107275757334752139738806328078683441154097258591764139789803547907048327933749157320124889021967270783540422982308060775393071837977820818365112156490272194477424948106152490772057061735375706876330729930945706682600170760348224838294924901081498644928049902881605573708379172979115143074746135744343989490016680963091303554023557030152492565647179968723507502830890924506432759514044352282619752182571318343863085878411995594509548555073523733358680518874343345535991609806656522808771973257196197868839523303323674405795584640263632522405471019711125604521120859057813325389129001690519685904709674948417465606943376081785316521481991051177243399118835807765225625825400457837755413105954592615676342067719397184029912612323169945411971956406263475845052392898792623752898289970707856517947995371189170003513947905823770784476272544730192765677968232295972124357874698789708161004011688180476844913173865128977872552277237211383218311690279301914362102821367018640939452174967207131039261435539803731950883776950398066640460914849375672364879403332878503704656749007321541418598043887418927944836594922588229934751547789490590955884540303409415991047318318418398917368668350480016095836950611570543961648579799259589737282118839616010863583106833750091946630539883114988614459233435651263795758674682602174722958396601861654306876731936401644753085851719641549192372089626337907944105985656537886707577864875220116393604804196324860294029244390548805559727914759248062407132669736458830759052512612075259205714046715788252068343782472111012951968242313474613501110520128090876348174458354390255936458053308931306855322801209642798187467491010550684837777426028030027218380338153317071392992684615314989339986973875944381188574138150881668369982745458144471340773560173764933633635763920445910542097117866164308371152039653583907247846836927400279510349551713140437244992992842683980009635423758589386650392238184206040880762772603139994575596635472732922001448230320811205052980276055158793970841098792396773401924092890855024448516422136160794737013877423685713469782881526160467075618246091446800278692171716324591921286890633403006110582709462315280180424428715446730455229761874162485350459208078932792740538434594992216855714435775370534291750223785289663384326026018424974791713629863110163718404180373237519449371778028079954658123297388251919795346557202754279120719029501508725822948574978975201930792089536224205806245617058517608136923293171223871881391438686686372387363264074422357725853223524303397912058658072471124255694612641037963673117072771377932356546251096710307584372945522372134280178051222474249027471060957259515954668524982715381206780501710380239529806167225677025520176291168554242278563148820719693619906067714419957260250899910422502444871287615381921774761952923017309741379901755877097167941912580951632396264099384242268722640222312906758767130276540139567503164565975455577288853953977467447018320655997152630969108089955536469098154079582378765670490731669824307046000403641520416939763082106901346033308225510209386793635497093410194105505340417457078353323785767450676560375778398890387313764051416082114686476033577015143035626377232768760595744023447892327946917218490861408372963986967075245502102663997802464753269204417130779437561996161216885262998913978657009131564430776261394707277211876639605471749507904705011119329420140214210338633754340776353630177436735732374688479662646423642348368780003775596757095416760956352620854636863511278279133220868805674157211323374918154735252157827214275457637667311105762926495193407024461964235095027482659123927827496600631537456329634333992628568902626009087066412190540858401307734470997746289452841914526688457804215502488589711537128070414361539620985031784255936450688853964269015634155967053289679675783283385831214689635194357984728998570973122642506939121284448578964700227617692321153315969846562240034794354273176207650552368240119477270583552247304079801755114166517926619916155264176095496080213385185437268998541044855276915650847310342229409810650424824781963224504586533503373191910757328384551777319827358357365429506380855005802497823974067827547507841953421376270934489448295197048195350565395058960119792060250822292407208434844214720106925448834496777794217204869993098448115163510948456779589826419523971910534852975986179212953998343153567863208169025068946333866560901458518611616345399271709224993809869646374427446953097160974517978270531965456053455098108496501163854826376872786967571404083060501416635539049748548555179818542854363673517522228687127228030311379065565085556453727356320042644461239046771245832658735727608472740765929397118055265436349811578197138938834863314724140401210614743786777892000018567533140961833601374940444641076819069440086036023051696554671068284084680744418913981240562723184290127689596469663927673665439048709825220759632811851193455580629716019507444743226359136706197643583403077990843168287816270393010597527969366543113196668358631768211348236624298570467657707869454392458548105954912628172015279522713898271213323064523072195511556900346885664706902858725386023155698731978704989197924643770748530584576487763235492838261349059820736844345901378655882753785872067398514906664145417985858878645916122242282708827666939897404190587938401378868946204129920748841502838254616171099457120438570723029380008993638341450935189182852802024642103179551673099455248475234122546597624752355654357812943105988706685214499061379921347082301960281687515974035672251688564275021247918893986823924887829525166687812769420107831203511136379582193680835180986191658893529787274498499844615795513107764235703152544897476495075289913268630182248996393034058845839722668538916931068154920151193784451128057183100060151560949218327708433711561532885007296238509287223525817767647224335244563630687989568018689564532162864816196391979389711484921654530384397675936190551092928215972334231843223776128037882293651866177675857130453602329882635703539770119349146310332508840377423367440926181119526695900263188740815753689859260025962884645056617948345146928564013805757785863785767796118252708811569402094989948690722610874935065900294978271645816705130754320582717519980387557251062798672670379329803520590712423244244539444421984146045313947530229234452046267919583425057648217256725114649737948035733062004023761499387726315289357559822215840834453605644713908837116224302282788283040920968421389937577227769558354323973979002993436207075896198500855109040516151844175877211686851066773473972684502328587485955147585681118265884859611479226250086404710642564480513204089278052239450067570209664585479451823307374292550526420473984952566983820670568982675187216887249456416608435699377624709198284521942852052138062693350373578154063956413423250238277494429600783497802566928873757291603778760921375148271220209467669234262038250330480026139785058758468419347107615909429184772548181747972106325966296950182200373987597989387275291422304557597149892720489325939594479964757195708623197595368926451739343493456832724127233025340621461475892206982055305222241067502875275764070226622484605541202644449171139382290493057417485604981305294986786778873852929098440412349039257732625591445891216838971787824725451314964220451952831836758937941444787690797929470052009845523414544024905351345843352937241121694557671060164885878829337494672842248654114056942544372105969766259187322663108805418835167521246704057952766323147623613525363448554035060969518013344490804413190208067066538554208954564536957732257216180926766674040620531536287403234503092762065390327301999640402402874037502423064672639438880223346079864972185426014509252486410738623375100797851849418223534102550743376898184272062834220241685246823008828543495290994225603066000387574229190691559917381280092198624900805961616313769360766634802572526801348359492472166810306333435509592430747610672338007068938293272096348651901480712078072715897318610722635106344644613019441193084388266624904371588570753695245516422396787636389931606086469114215689121452414440038136797715916030657904411571022917042933331595931553664395787308692181209203792051507133265611990661515227193235061804660189853856438863664014667133702163634094889794994265158500065423659988485298814330411250853191529061281621780214125003841622992889323620105689592126838038715016980379084360895206191594939372418838528993163777180383046598034269995543976530417537963456234514774653600225186350984957230206737150146191403989307076579825526323048917437888915618988746176598497256556490799606468260959290569321846987723276831999721968135213929405952944613066026497831682622892567938727652287920895801751182148468407911256366821960190627017258507863756712558548442795387465522336955089398807513787332453674475826542869321747040579972796004741464685129921034045668550821570669134391565597358431960763654088268134747617540194686800333626120467366293239852287774531675714219946593171009183169245692492350858006366347953125916717125384712218987719524473951810447460505787753719739404155284770975236275519035718810824934705166469031940765470562724359837420973672924232869717007588802591769926343496440431967412680136690323656616380069328975862473826098521110579080615226248082538986026490641954781236844176063969633821573585178626861853413457897610934654744176009852372252403293093038945565777590295255839118890575477829295145577520643531996397923872614056056324990415564051313288847329286672659666008196105687120813418401658198206563727691935305198284780257162011829597972427916521928151580767067907480193149073344135125022329162919705369731311458871802020152190302174607032654499745692483046169380517775137241363080256512310158351314104580711211150450978003960367822575131685877989375494217679205985887425591992313859943204517234494905198209789498907594887998710128632044991251476865302506151324821254011474381101250646259694038939515237748193124633434555259051008956341558217663837268158243292497248353939358821863139636372023949735668356686371647771214193658670363713576951296029111021191906991277351369825626459141888365215254749086361863004872393445823893753666059856033268719357560704607315474296100560212501737015347042654335671084296616006474751362473712207759251792944949982943537800331012443702600312165504583489409435745288760336211755357176507309119766118402593731577008599908510658878151373329280897777335771530594125311947234649168826832921478951831248517110228573603617051168637240774955932935619678859937436026360218186017067828387327368912626731119142705817242532541244924447958064748527571921849046607078768524840247539547072327852143380515781961842245939018924220819778025533434429844100791294240802725755467874743185414335377670137320562882953272099945282587155994494849679301913428520186019261702952424195358915761981210858977026411160439622171599760209380928252096571872305076712866275185640211582105719023345443774033953948547411738376741126860001783279768548735850172630645274112530143114357346675638435142007532394040740123312142028504549764353354893452299660766505703875196131783456195120083094919377219527283215164838395515309988919816949411008626559440465725063335658268949344554050777912403405629392146358632274812927097817128662382534900050877626547204595497578612782383584921641958061476135249379820804207454634073560001300372564043157032966627654803519284617482500959096051923670001159605382973115891843649086943072672021916038299920996838514128104064457413715696906795770551791246867574019001240235584166217449575533671278151106556946952286841516709351747037301870784306881683371817817353078817743454464675968769430203033538460282088818983945909689575064222794028715159156824716809070139302209592813285120356268295577581621440002031425550650478887308293912676631788307722992077157375838846988651844338530814516405598911502687089437866003861224330112856201246527061795153406368337002340799957287576380639422916030099256697210336333527545927897233461064172456219360768939059880715816036582741445926014063541005375828267071493716062921985750190462739222742553823835457615977253151296842739177444672144935706663246283406114498088248576712173463934536327823089710290880720470695412272199577022395611411674193897843884717722261987874658872013302386270884550743774872236055672610579984829428376526366802324705702623148505795074362283786468306229854874285753175264841128595664387228642263983327440250030611453862077325614343410285799617687293633238661739233911332234824286139785262049170604482763270409313579496837488040436040997722008132620581255472686424798748503780270546383918056089816500188349891961543974365463815091122008621491958786650044301520304591201685663220249486388451721339234345672233323019460445059184473042322192958470417223223998609162162250565962390823056926468984043143573396320534430993473125118343697885699700097297579540342726684332936812231600129942507279224053397109850865084694393405195825152979411001630237756186520698251823583689191167501157963109808715096308545789664557624679147183628282991585404222654598326252306039485173625857843059828054090972005883665712974781723171230017056862226937753812315564704309203801287999444157897066914092708514484846680956948590598566448116870202528861378767076711608372097447157402027405545510045547308011802984607854495658416731560947394157798017972808555599565499103471036092709145878882887217954325970815284240884385724621046363814737768537304722520743538803191285907181144585151075059540448862858441069785337791526683926494484683457458158962777252565732201302171550148565540683674640807623275625979999609218468625636835343570878248695969161433941484078020308792400893384715313584702660982280166810314700055938352883138679923895796128673172651786910489662537817277017709895060037184125489524368523018388694572614922934006184100949688290826589614853157005438776907621951820320842938936121625499100523941547460006419585500144756062157139007586999536080663683036570633005855311055095804626083010297144241360250270678924991620242539786995697215688576301387792462843079032056383561287784646661293363707716860358641118798019033043303752316329763860538111944152781948189956599847072775338742441481551396677471439596917428479198471440127791857331678677917046522579803731165252195719327619007390173257103068145888152378612464145156387163050244293737062224657048544560604244543327663583826755759378394356017237026577870052105001460496358688224581901187050000349864113420556916791497203140758492012688603894002642458822433781011114544094135300887816679875107065657410266990039604161765452500656927024779742721811971758129398953657189501309641342944864872409024437325779542632373871315396729175728311705984347279420329747674649078284334542673627778907654302829388155780292404853127543602108626592328281136702727927667047978016150011369028456774579142317456047525138808792753322387867464840524118419774287662707349112087277697081330032479923710194690809978250027409740928432690359186447908772690035435538603439970984451408033228296892236352409116893701536612521938216179670025884382588611801982779707073198691356308691611722455082335191236104735178377053022755819136545523389950280824468011738699231207424711791736019797837988529494760591819588155168871459994968831276347088030663248012077210574722601030323598446341313490505294686742347085776066375012153552709932280446526835900905847767517686727269985267725415224891203242235006664145362718829144808546093949239459796412181792761315184244035868140983790248613811345262796544645506694456272582727579993864006727222566073571338901916421162584676190796314348228224310359584193981506421000321527984307641320096629468731475054560431989219736807275617291015194997085283293695188330437523398798334535303557368089337042372272473115287153539933875064355483117144675096705435973021804708687288988327358598737689549923229560508021344418497557378227204567375612313629384187731442925228098305646735334662580270664113894976426568575743583691197408544115116036315344104699614460634341276303685054427670306238879534465384816938743350874111533250376081989818995878048470848329948599084566809438475076135358180018832798555081455394200441868450402595406262702207656944224989922378949372198575859318708265721591491943792419877981203067942491888814635068754134100166035429604908531686993537930217831677217636061499103170171783537453979135824871633446130128352656072369497376025620097991381500904811912200948141357853216448756218478612964969260864100520836292934589947221704010719232872645139573098448254061223051858899318480556902736135035795396117035616531235167219650318109878431792347746899159742720312178484785477741293449792122543937067472062629862838314264644702829610246728075091252888106302398743649050347388677632144698870043805102183116771630929707706104294502425976342269285613758346679674013152357462984920261660798245709328377315409926008311393423034947414118893703400738045781073827212603547072885096270044394022830871178180322083139565082563348673482504492793261713717386237178475122261896305217977027585154715819294254512754600472094837075754417770459365519571856769787346329524279908353530450915035623644783670292401773575067837628614773045612644474595407967729722159267938815442353788401836048398556022220035916971689995294419198282856452844014893772830804265842941443711284238872190467536246644474968598937883684244351696833034549289867934628716156230693116759039411434895811369228333545532904136064912605589872616935327276638740933506701394296531959923614209471278676926501418052513077644756621627731456585546761659423481792079547184958005659495912314067314238892506150575913553039377967279408465631635931198553663778533337005543008426276905733601203686432488177752198301451410341294246667554390249285275945420712778894137315177481835473068470951045361189063219265264498616903733430343862846042083534195169795937845951484295895904225435675700893844598236736450860315275160680206122062371990659146571012355237680843413392756970366098994016110376397684548770370213129456014508675342379823517558544751945156904262573516020852277437651541956089054394652226146232603212609033549968618582994127294387876939118716582747340331618697269100976875773570720160373776601650542287441689421799294232809914474857166364117005882477640914198546247908603862547384920628929754819342706206667638758468099167235415642279628990425049161876858613542975545677425903864900225312689569269845327159139457442146925670241333224597129380525545190979726951742615139941337528545603396370854082709827832066472066597168458815321207510628494507222712016146948502031196191037019788828698314221713280749719306612283977504969775786805134099088732920165529313605850238241342031332167319893967856176979577419805985987047289612050351036681121979949927244133040571600572824197152209274109267643428082851081461819684663824972188964710724465874243734077650261407166507737989581564269193207974026790898835572813380305313976672020391266900701022803587247225014562443637455504639174151391814177829359062326851947759163173344618975386416806906926709075087308713940040151714854240076426262206505316316435367946518270922770572847012046251484785758189291746132762367357065678774298103339950296267910024941367647444078689242829166194970707642738970709073348069464553656679062423334464678288262147541700295070120054733833762274122652431320019556504405087590675256178526825978828532395391444429831460289965884303328504610255406578765891694794285386440817664679838863194119053656182600311760684152894006633811682885751104264340349376855162514127085384038013815560212929597333427618138015810376506444546748171359739894725259136189719372476173616680247457916245939029435341617980724762190367731140755456564579385824281007588063752699974317900899586887044364665967051647888527856698343318302123989636493109486366814346088436368859884891184680503451946058814866963257687098005427325779987989244556691112015747823043850950439508543846688560136564253922008256262211683780199783071988623711961024789982409964699941914295906236548641922700186658367769523010108672695831256298431959746291703850605031547435177313482778665882491141918841986342556508786191411055992175564979392929357987701095001296931483569175798284442801845022081845499779794761625193403884158276847031731601284656289367501357572006559869226756547244531052901360670579878800094825127626007754628128975655910249047758981682668656492813725066696181509121923447517683240040592370753919858012526246382493220547448231000481172643218716899852480162889739130694451120209915247842792732496393028228108763800846813015857270332986375449123674949935544334592896637777763688346273438013473121547630493477623309832450100123307357804281893756400011835259614524290806423640163412063543039037273585488679196032273252949463279927586446520881760832610718348426286944762417086221761314883380496838274051861286564064929476755115607054451953949193731005702955912746819548944595199112216872077755380614907634594416717143342155480714984995620641145354699482235016216491065867234267693454502811980642421783106766642655303825923150314774322297391674140792639702073956743373369682976431087743011614678166246102874959000261319970696008324433446964034528592586421270496752038322561494672847794089980367504107990506409192869042382444877260669199010270593810886089522059263600208036316259800192914071889655919235266321894407356412612301719805662239235591385174141694104403872610583228313372274704371470511284663411147629819840800157700215066408481086879074115339226856194595773587233448488006196165988518240805075550030360110145267844674478256183022915485819188921643903183613284623153251496820928102308160948171000935834222558830371534679889587525853337295005999212405207945884157716192404344083303646471549320252404376270040300423474933330365499867215315182130008909602237727546258016689583709721320725888147692515410090918919585228490182748419882083628697887120592975571619161436057371257543313122690729236547927513256502780338932096029245288368852794237437924915963498531595770634447551695939911980798750356624219394667911926382974123746061222007069892967972538312775225425367093893978835574877497753497478838979514090211345905301554008106403338978825198368220783559807774669102422509389071176747949661029904611222311041115836707745229223217061968069816694522530377926292728698622253654107448113451166128653964769391092673253670688600678670610561691440594405883935799323319247213914232741227402169661201854424129189773794134881121634987969490027175791713310268459139775644774072802738744237174471379922407795054280635878901325808984685920920272723496865936427067890252182063656265796144630354521764073717254401629551837450110615042809923510675253019400009103817614422755159503012240770725166003366244644213364879515293541580403041014009192497274256531429335413443020832188687289445392790938425816299113646376614884476990183577194580492207276123526098482647023371085508245552082669734372146771572603616345084414819306582017724261534513409807145307483030577085631680753954217959430168697234415858164400785248288277521162894232037217751692132230565309794362764424622899731051869623507967878344339504665476624743007037194774343354060393811724952872510411971783876721826411188232343736775405608486915478880386699936698548282809518592003707757114279525231480375173928922135387155110539067715912868346764901523856416140264616313177969911696984890763710677680124973143532147838234179737058548127218984547356956553303431057420879905384493343252138192357503494025357336288055300873609232015988655242948638048507688999716382256651475505891099356458837439455884222418275099720312023422079690148642386757823906606300462008742486623789199836395097150768180482674929935398653725983021961915631566813490813193705412807925572137698586133107305926882148677117468308323778937727490597244976609589014304864026279637142256900515422152350206929696547045785512751478655475773488181553173673034319297505363740783659743495426761120777473301939130671714956321918849069179358915265228640057306634639884644498194539594008385389688560574235381254780106547321745588586387375900685424803625671845041548554038586211411583714428589765068580487288819236213998472267741619128266968361834149290700451184239911913926245770948809244306460590545789461062742631827963759369908610684532210619222662750975666365732581591850434138396381492709072820620808701878799414349510256040542383835099938768459086057329897905320289664189388322324461859362128552492182179652447767369633709872685555089179504524826231246866715897278913460733803455462272882378909751895563717687500697747246994946047405441106004478519356152244824157854690694274943430657143879707281221015656018158127482887695121273074262709461374552034096292575436146661311745917502148470429990924602180631752157441403305495088632746753140493868310023030075797848950415938025131756736652932232228743193182629980975482779329950079719921456091909872302084850552159518334718098223522093693500773250176019639411881075871993474342914216761670990257470988820900531429191673492237471757464083576536585243923944761789154110728106028811337544189282289551272960756963329933444215020541206279483986938589243567704917255615814412372643438487096346059193488082045061939258385627307567829852114582809288850073345380648583104771378071368647080290953545912535890215248556821947266165419410239162048768833646056648526760507637650251789299176248757160611828372526625937382405252694855775004041395637858073626988146512816453613792782688748606659061321927233580053708115266327910080965841628811605056866646868294182767325355959508850930075742962454207619942676928646396586809554558500610299476456005179528044300188650862326798006939238848801120168200413728911787572553527814856138194392378332025269578040988594342112281597851907418167411251309773367600514794794652770497524419763032521020468459043088037936601185700042222383349754130771701580777990792545755190701195543179591012231682529662933423248426030599460231196573272040643524699892045928748525709759192442532558920657294137628110851163280932831577243881812103707119881106801157061125474004166878388667086409612187847587528793507289557697439151542702142230136291609472334487024752677519870821947567542290917520258137466231412885635645970011881381613285372784783585199887425662933477840344348743535995960678655769049020772582059599449105987956904583115185671554582697270729750506907936065439567317321333695295114611636609224748619437105351463558289360916931051731203243696984069580649467645236904007358996419764103800980215897513671545369848904992331337426009207334460871575613628403423758383634339705395634029870329563440652084372314835141817466785972443991808642823747357823324121589829496450050546039791262964752827256601917660960169622042929470670242922426495934287131416132448915084852896128671738603992729728953399177977260544589410706721665170503938226861477094261321463919414420514603648403472246844341028167671193237401100203886094284241748746772607798413470961880419788334329611724483409553729448292398980356542466863109735308877957759375978383783525488846185264851378230691700877713963581011177596811684704881988337060223720977154400809033100449149238502765603941010882505514605744714823874037925817668790341147258838784122869800693315783257878201325667554199339077939443948650181795765246474733353499839935854635713326868737689413125833907692125465750167662524409025134076433954010900474765356704042753130002286247230784703881464278811313987997870168443182453132378193724136908585055012251951515819614213634372589827921119277719228340731473356215335764766064155714959773580284995990635237623185629375980090743333556239037605886976552718004150486556861260126873286376930655550987752319389109382607520584271613165632577735271796751672044039148006551111829698804840201921712081205138994379075450630734977579115007064691210628461635972283391815472648987023685794127788942901171593889690566845764714426238205682689783704349974314447449572462392848554173138069024538437728525502504235415444509939148478649097333369365893330607261960720642160202806242500926312461388414797066997825167471152970760760067715145031582825572407345609928991773889473923060026791978655629413292754808503964170014629392370151470914212327415998058164652549714602686823322592108685073304341600645420252920030385484077443356163268377887846927690060643378826301551649021953346173369361629852241887786991026541099051298340625356271694341983406720674757966219444329310798710412211515852773890363684747650287278320783147744831621942154589731500976006162803210363084635613595540632101376883512884617638929506295940877565444375204936031257299571023579471605051498734652884961177678809256352651719226864226265523347093891948691683459904037605771938204432403505936904836748534546653369556126811938799828259222556120494964026575520456673970063539554779203201965284998389546674113698564893145412776458456304089461342049445520301567116676039694090265062192802414666981480099501867614677056649064301130066791534369123730746544499801610878408601091505813966065127033271395025734247208039800043389668252257644174620429205469901383627641833029693111012255451576007161120967777071662269857419762895479957518440849553574990930515891339646462102257523174411352581353594659629888489240267868560222565254356954304544452152740666809407117384762136679380232305996524585157789674144746271831204054403721744354515616782771989797963211899779477555942063154445098316732467617752834606125354981486777322829043725924346005736530417029031875981842796865701048246113218279322478883028544564393436297474387026048041973400663194168796642881392401053877343619758868010839325978277565665470273371325945757877754387381177964584622861128735480301133817725596656284955884064111418406382138002612910075527603683238215275564172358426621764217877062353429135016195030612671100013431375481224076368189267666647700885214355233863652546275936285920022668829588474512225652277592391861506814106431397720383775386610070036585086033934880869997830315134187454635131785713328057749929763205993348029433243575834862268089796195721020134616765860397532760431782038942334356633301858282284093458392911263539156361025195980611730643771340245817665965011957309455537924084633766603014606432725410402040728419054266000353978635339345960718322679181502653355331277223476771721537826808241308585853650022355628160453867024429343279023597242687921725641978472577753779414205606948053757233467150324651739722318108918014121175023201737639089035137231328833524079260285873354342832505945129797718664196002173206013245059273249967473716644303497790154348123951530983887531024480458494808805346360896789237618797897824193464021087133160819862816130756301784682464218667617232237570636714248063203232940315929333998833818684185992257324453366396125948749440733909278470394664878434686117576023542202202687238128249998110138081621210108984016171160008798618007986313240213336606192926230363028399752886791469360953716651879185239339411819056770042495712988191424478041858943715466017989147028936432687080880478004176455111327830695758375153708773049775046299377856193094996991659214898346444506775298847521437288205028968885622815705868646236075961420342842117118080577587025287357887441799775980057320549348705490992242395840698157488733295087852062470885363874378143827011557056715850259261457547185835329263295055447203766007062420408705196606873362241077715939253659259412165783371918347050664267921891691402084996890241173770721522483910397906220237323416849915358490365923687206796248506741161317735559706580103926189456240778121680314816968207986983036830231869452521177627174663815866166373236864393488276839025068125441242842628955574748985857805853320319760501560174545263952881484816280205978925573572360293686361874442358514476222283810839713258436881925864831537203003746336402031941970700773602064030028598543576524462305619884687296977260816338733985335951312865826203507903193732325077354935961006114906321283833208354652661051157461721703602287743756877210419713732487421119090189583174388876282114217701948369027333697410738907007893184127339687782787691161737326012747879218587973067690310512713734128733743822800950778397213186315897806021921650477690487863629754995559115393118943613277664836794574995690828090778596060062619267068489395679207439985284660645009867990592204018652174282507774787493941393617337745606950652916536423744990974972462312461570051487390370937414644159654908829847942140662882501580611702965122650527007579102632139061771158946957115898764526034581090988524802682408100622761479057654360767068352044959493711798021306771631924473046327135567542289344792080011899008554146843440146467693460439933721750791855112708107121122187206385465917329630590655100496748890343884818693910929154030897491388243637909187142874904590802871753853046251628675078728145657362574610196543906303961908578073846539399881635873653980705570294262244802187069161348744638127013758874037091872441760581101701091370658110778570270719624165325690070344865027254960543283259284481319680592616241113819800729576341029437563151562754627742014213478087367494164734157416640514828429688736133262806879530098632656771361404854977081146436465178941224118754141944841917639479023014024711180855103198925037209232945224119262455855940596040804342195799709077552340196358395731064017519199338165708872235276931902134868743731896617279662642203531366653456226597140651243254653603691541246532114768784295119851299602234954912655429572077035338059586856058068971039534097079450602199197730383553445355240291104318197109399099468188616925764718265465009344347578796845687799944688189812771722291594856174309783249600237858444224402751442536986315102055196988940816999333540086506823337851515574636796471883441451194530376909409534995718669079684925193532518321584290209969400057226868109268335440315604467630584178164363820293396643368002309728671710758235858126133026084657191454319442647383787974855890412608595442076095322414973599857765238512014555006820990707629423572735444700049889940449217178344262626460736006336816494813578485887733794364433331772718876565125505633672704022801824285985073544466335204845179656216434407667148273189034848792105356935220395432836107266013220265041747068503199112205819857604754654835772838367427045839195461613007140027695023445642050484804428469369360293134847682917501216708560012484804508642338189465699018643594443199653685225459499684703628690642215157276007858363799011842821741872049611782576018968481302762610246661069704013575885279822783440828232043890584590055370633065308306951060250584189138834910474598176882526418028456357521645552271232122311224058105976291653062748175286336452765283457058885244668306393642115796547477258834738898010089590846477812893217768549176653667418058181249679906279638033827605477284800461385599955395231244698313990957479387531423435403628768699163776332088584699813555805160753216513614283753510978861362325916677231241312829076662904293002230191245972364112915547743957710233077354591079798734648825002161020114834686723736370482282254319652910908096718885047226132022738921021631031262107415117757356483597563605380907278308441769168408377273410423387326153626912091825644087799431053597221106218212682820434183266561893978344921418843878544949150979246913808711969294290474937963754692560911993420006986660401890962417861082526154384351599910646716938859425519702710516995206856014842319055376656227944118206160436587056420143403109763598677252718204341470464661891816404298881148206586185755366772415962560843203164494381045469476085010224927347578072214296736627259196127374830509085398600146264010283047605460524664723777805701034967890908200770930577076507094376829931545728701524136651761535232335477114538679893378285956259679351730043678610902920835593068718302854847055774940645369245742212103125190871962355186696969245056571651696539915101773317868960668535346966940961555830645364211199692226029033585277283814440657573354370194778403885773588330495149156161260175935100006013043092106691630216592149726791688442199410610449529742364725112746659259963209408618219336622262019761613470612177845127772284011726962162252589781222181929703315162124005439040968937345816597221601064422121865086515492541173299029871728628897533756868508438295565038650381262272771832237208670141582716249953293169564054409681981938931666757953344545129460294970163684211315016433935806934132310065921151750506697137023114508288614903584484289660521321558817629170122848467601261375616773904718388446279817644198336743746776027714616563195735391257475379002717849462995823552195348854633310771239921148390164476287353189139824521339198911524724555500600427518149960489074012281225237478190342795036843264655569823180642115506326559125887641200996414513003705958612893718248993836546289861779970254539989126853542527793539241315217260530987868757590353238960430195108071061199178658215868745376633105337350292710530981430476958237082113345272617760494893741081552476275813270622926198465535348404946364865721443620317606018520340989391900652687512825443248590879584328860411947012373337697782176022377315388437278301838964151568979469766898861864041861109070286820695743505301853266002699850609438448719563270117249525378887591403638138437500746886131814548112771241055628988504678564021970927773966431176221039844034255918814689007557415463009056858469532003468610826100562821968921526685029412377975524196868101949983525314162371691940515462291390319772921049626581706345405998071236849006155346466109377412579113075074936818161242958928527038101098468361221666455335210353788260330047757151831546562571966513583483277416506142051518146085072833735405328903508728208560289888610962883673829700162580350267415822299440745502726516033624950835307926932464089683545975344420833881051038863074106449135081527267991711690624527057955872992508465537796174090335183990555940842440305354965873060100069841762554736687685471235696273462656887817557266640932553536421364357961772924167884688932384527161419457368687135763205312038547339773887371561919584759954135968337673752875239531583343679529974122137388213012586412866532141261169909647607065766378686475002031362964293309286188659016582990401246212149803279393367683060036011375334075701352792562643838966608301248040010421520608159709182928060502234355846214871122728636242936688996113537147480217503102643503231820498704342743216441906693336787408445117751727455974346320915933409685120361658148172894498042027247689333384616330120153048329529018979216675722439730790368597128667352900269143664524523262467103569503975837944470973887626369720796208283009913050396301683139262564097367435680713096189327152649644646044852439288143065432565076342738624878626493725771717157941848628271511330631650581445322401250624700467029675226857490447571313288331100785216681901904039336962305892937660948880054722717307746624942553927266682060465076479430857339891557508460267700289865301315077326070444935132307848495568731892307288653244099740105283543019105598357967556691831434678666770610027214236294550268878272251122369765195100537262011704114781524178537535097634185632981308562434305523155426608970111633934534503097313439467676510803776568746884037651485012381582602297602409244664191453896404068078475059756085939212224425832374376340067740049362093427525281584602797774607683438970088827280417506351434799471200565368894135437179144315926551780166368275720654096444185485818743280548482970290105929063260996396447418608263207826822697734197383035938952909153507471056284968571933971708325958096713106757931492871302989470597126762531089929136865987745265784783838172030450697923320999403149535141724606015770782166746772251896268026739570746802437594090698840783639359122083721070243355473258777441315242589166167839419299137563274145833615213397116786799169764245779652230492632575337875367424918624699116586862478404414133793466348332134223994317457871490963670965320540798480619587875618092887032548116657992041756077164615091962711987543948382166052398653427995872861220258730501097501665622156450423484852923126139560310542696612113253976341758333452509811267420814939353931615648088946409911866737382663696432930087818710706221307988466008241486223967138458921623209245193184216020291109034337011933662672273132423373159425655548981113995351256221930520928071555654387596517773446050270621359470363329873830979681990681288823439372341836183196291520761158333799741220454098056030373180708724050687989656066495606906848146144048215795925209088019351264610098279318406656628021878341450176476106914079508395165536187515669015787297117395775225653045738567169571863303210049506628807976710729587756665680782823018204483542098620297863018937657368396181164997061003516509039833318479500044228804175645997940985780802619841792986539077755846393383974659042512658002621921645274809955264217908643129224179313926985082367934490021108086694666896402125136322095115728499404669867485985909933836409021250764807210572713544956827003087084945623905409443112484797634248034156507183585305054743168568849848847111540816509024466267453249792507879568894080523299278850122178412783729634441944123974506551511513660125201008600015229986783989313222606300497871712717394637532108762298176453870439855845784847113365889802440924587132393979983187981744953404571484824171976670338953677415730624579190645103546415387945873745698078147786904884466848935750177489099690288856205186191128411055114056775016407116556304260414549824100939871227220520917788090359229247313841890715310714643513590439112323195880107508148219817804944452790465145624614503701184963077346764013340548155488565158314128108944890010340647588461685634407520908842917309465496248132197153575201168954024537599790587698190891677531569188806926438674033760407516481988173294280104893228603555865236372134423107425948000066752649276908975817287418455337207808409617852947794609239490354910714371538987556624975243683893137743802224137139362855605336080039017723406327279478112106257376422953806740544517595325552379189394179844452502226823993104252350706811093002188077031871661788820226184927783190326652518139778209306480119194451182789889841737367065209538357234484252048002050635738954258743033672251195207919744925176090456100031704814583550227566733726898854058612563205994992679811148499221166815993543655501663758234195640956942427633918845701044935610771116664770684876216159922675996776501577352613909870794995386848780002334301062069743870984152700009659191877864334590782883957614843116864691964194742615290569293096403585027957731240088969793395179446105166737514850598052133567008327170036655296673776013404291398569431091536655377878119076755755612371210421368477434763934434359010330768896696852143109269823313893892807141661757438391202798746764716628901712243470831960314679571559922640341642714701917589699922866665877521112200971837485331019274881973549619129973812632242281058364512756114823346962615361812107001710992134293696044266206730911634561552860271143630985052191503253796229011082619884950338165992751395371168517572808318292979232600859164137086418893322704182485738245468519189928224114381632798002018431204938624861305044280152206963110089147130323604476822524974321837347837118031387485741348744724665157824815480384401021142245932003901950449808884677614029142755412057526161460443422431594265916156212418822342719618835800172722388554097411107119375453072205491903735164304989943486051828781391940997065141096684225377727438949374110008172361559382933305147580465756358505539227530003825950810151913488362311092680866804693938781578094329159918616459621533752960534253062847282834729828218629370398531471064663287101588588987158938764234657759640974230387809222898431791547928219503293336355713012232311908348050113071903906987176311363787347716045612399501929213398151931499604913123256192161093221225394702585274313668714488140119740457266742586946502306706373157163938225658905051379329293656550888379019129537033744688709404648054456619939193817013640087469299338345116249867589771871240104400670852875397138146993851138132037648481040496964044430138627918506662654579268705894483756900126630460404031600868440287588915743447492201664925306426364621219153704724108948704803965807989793544262663932237087611477221290011401011062770759738928674493493999342240099448705081742010074908752837642336334228269847636626693821303111503857445725543899903044419847405292976038340934627169040316589460705743229848001749734770686272017278643608462038477751793052212875781526415265545900831296903531208820759103181742351210063661873113878869925544444205144273487728370137221915460019604345140397347649176478345474468323835794335631546193192479927262219580723074390908963103419393217529737904857393795609534551061480330600317312290750902793424539245891620712537649624300068301649923958826977517821296912558274043906071944987288167835751082120327422690241864462399524229802736827795457183505845857660613279477421617021099960109781092262445269093810009142352661188163943321603410402864008532088164988869551155612998850886873866449373480742300466784555066645202729219617069431493141381386518610053054225463944676898486843632008111730158832609190785186019995518166810185270326393894969074338319383489389944119767891132139097693138293013944391348720461716450895091906943865714583859001981566099764553224982625160425690582308517509311055213223607369787703489879759342157677019645164402014201573804280615294071667311926693386361803695205685428024105818359255127024678903721002005663520286800567234819083060589947767648780659352429838670983103993792460458290508616189883389612511325533167181955733824161921958049757933766647275248873274330898227775207967154345585129865904889435466927147237899541152412237024081364032973589722018739912885560894734249165439176754183735170846567184682583579637715407782756434495014127020092210144060146556771937150941968231846316618406468499024614562448427916201790064035742528686808570646129645234755200217848116029771343145498245562084999589039703423500093157069797520807660980752474619970960044645670330442924347520028846303410625172604498112909391743426055162116244262202165875980444957907328001614362983826372016868923726984654129440043330666459827617619928600932335677762991876090115468383954559092583719986632531020720398811420560161372127929409729618927647543937598438420753210163252272994465760788954349334626991573352623681379842001777834725450087014594725567478285330107189516772462268451939121087079583912946953125211459678659251438792719617948704611749373732543371925902379787774719459334332982318524382487425831833761434852517822982763825956612709251605383625652382808014120504087472108544494966956097933265799717804288840380321096956780414844638344070944869868527509188323163239714441767953949976457289395063888907562896578982641681359964229409963895616722320574103821465650495132219908183628272631582985912747306818951638310120855665772509489567852423590246922767823487782570442311528716019088414352949133148108258341726092340227622089553212686965073119906314557694698611051738207274061830400694812716859795378123453834444346508158173737639649548683837342643597140248834831400064026643365234872804796437461727318006542876394226036411174827882670937898987442079839282625883092744562858047150412855257888374581393285071457688912679379081240219822054265271119691390724652496853528579326094538287311930261189389426690632784540102402251975792290382426338867658572989855507064742381409070197052962290786977398251746701582844710282876249530833158266538618566254027086317208737050754011723887524316522212421097363078987214213676291779340410405574125899353359117084587170778379091434504355366772619237916571065507513724449670657347204493430994540838634933985449260934253340260124377456704754182480978823906795001798338731445837259285686700168367786425064056778658008284250668902707544841700399888949203193449569957708082844211630791418360578114324429720556606998314606927506030026463282976958628697795670389569668888426155060473141145419802121344829920585238495638185330362071871734551894462380004036350301604753953845982014009750829012582539658534137711134953519934166972862581197712358729676556808611788399720194999625899023660853543553553677940939384908185447632560973387732625030430178030285892545345677053024361883694239262809642657766427333406978616693929756721351661851344104593417664905142653311401388289829045611357598752744996184737197193352305878155196147971950261011037343818163535584243107431074785868099851450457072153939443395435113388704782105508555068345029537533732023172123080706624729581631692672059907152324071169048405438150298966143314139392126330444698683011650909745176018914931779553182621128945621953975586541275665332674198242269186887142047899229659967476888567341841619423299702744679598289365369340162954393359085054603686113820009524507149738823381201646121697195490819046544109001262354844988264748202622371076956399890535426557972842548483035107246289317872457603630899162775533779087137212857837864424175349182316707778551906589951783764163719406290583301303159463754294485822976146368908099229317400332972502906165322491406279264493502041657213028948266796874407851429342996395793005290638501142896125090497703934019907717823705064048779153171946161167207442703378114521972731010421716383277477530085590853459904904859894246713766942601422329770773932432694240706771184584009125741826844811807849039530835649029808271901828158935577371548653198762882159073784069690428519074636228868084677377315045176189885119000823280502326378449553660012479184517603934714479448008739306226804398686589758637696474349550650720689751069788447658418985309185306377127964633095186354509565451365043771376336948145061737174860639491573183198605783160909592464839804670005971832906322408951665937991525759558645977453966092445725109541933588560332429171637764847436240830548135730866527851973202451905064825331165790061661843857315476215728020914023188861029948499271474118259126374977335434191278810815485414948492685680396721022461789836857495235630625014514144775940079223780133900057774476628502230049001048053706045128396136057460412912423381567076362925252259725726392218222365828134190602643247146728776241925041333210816019615591884592427044649071003474775332123870224702532814859286821980285680781099501398784872055872257790825717496805204972087406182584820043239695270879398834121589418001461306153077584119314836650805146124030508423228407497426879732028793942801306845233312504391764137638198204299469146915886922582676993537931144759398283667062743741099413088490636913251778104030193412889288375637264553577829233264018780437615253041096023073248386828753144728938143345969348659592816080065415152404791638938893579969107931395709835086967382196728476708071211323786401117176507218618069417368921334730460294950601483828321535176449646723938747469981128760148775070292355658894918094967970790627195693757381342909724695086575880633425378279795026590282769928336858528634810700719168658991885688075870355935852901655996870562561162101526369786661416018765314609161218644846025010209158169676306288735138378341917293884916315299538345951242500548684857603850784764081799455397078857140094554616912668737317880052350482590879493580780997415395238850734657041798466775129130054836554977839125907405374866722182690860820143221407873062282780916565553248318460425367534948482110820740676568995193222758429682518285487406894341663093512705963608850371899505910017467103729974215007193108790489368626152076721396277797480649661973085124339595866181377095957872357470317756547973071645508419277164649957786111466618869408952981314419407799294232960308780171514528522547580170384941023826442400142112426400597436854480110158524429258826289630583442288217143966804003013924198545707966849416536677421925661813626667375394271431464540965515728172458400061039847366003357093451788584459561901132354401048341459221046184952130453916357533693591860766729388382802056169226671134308038469535871479434139879299636607073197582811640044343789061731850601235277074872620404362563716242965205068367087991684398201251544042648236210041705268910223941437519805713766525733143476564019402801385731026356040686150710278573677744757233785494353648040827324877184311465980030610671742129779388907466100041970418530790684300706328972342791707262586334249960779418472494641894191595369723894221051484432827485709924971107981651604252770272776082997476318594336992816883693270876623125673174231198190098614157340706620954744474262866308808039146166969277118708047824891866729761525189078808410736704295523210732881748190848354280849735740252730196210204956264755299450954987967871720011090155498687554908518678404728524893930998699267645580904494031405699920176766415669151362246398570837399990225684677139489815745373679380653331147635400964791950430772040040984177584909491448104679040047316597205038123190363073846650166633223209343810211174090619863498654517736074920018399102949755633765741738905426336824892404428174599491180596493352241728027334347063354538219811149463114186861311045426085703870705960807806649240646833336674642845532209624214627660860326078948396138081212942815244519407974092310780855147123582635605457197229075935262941049516754315137550490480246885936063487561492375257267243334494638126256339117060378326137305624837885886585671186388609537743629444104396751199077323892600237879596937383450699675017972312662119122074058113292515952449795661245056750809277104920975583859467144840941100713929742720684245417504486767852123589334127556892975711432248499622625318120528701936190852533748671527023496800364152168542812892343661681799588057757235117848933684516199658661605057757718919089633026996914466870113794968818203884899701110372528729633554291241974979351073742932987037950941719801984103969176683105530880157637490681436130023794662465055082328362960390423807922771422656710970102365457537911307747725735094486320928537284756210241991211003918525563190245249036179948641017560578697100893200677964796761294861343472729934863291553832676445006506947206602283401754744135285881845755346615900387022659617188887406624354730068318222187408859319021866704814306937753311383054560229199674463494150681657995439739676656956583768592879429405039452816389444811276036506412033684637498561599210237791158280859247471887078371852184615844796773505340434166185215691056494187682026699812549530884124915190315025901114796872020617004940195411971436177396838690790586179509253835921580402246172312559524456830338066216698377879448835696323438839814362069084061560742922993165934304784066895010685874214322531238319521243720721333131035350409155638380119854023824524303742002638122768592950932101326903922473674542909994937255216033186912986250842293972110894030841552442894984720550767118008162029455684989376934929670683569054041901366908715199780165013763513759292412775762127755230776341525638040210015550437395635943689718238810289765779279357012997395916147910733581320505936510990873375405059681606165628186777016275213931160969129984504501099843188343509620386962523013434869490931369966739012967872296158595734243108570740443997397897926774962488520960190611601316561466260131671154420755518991526791194299935634090506477807848286365489598618223603160331521767604827842202907923244235520790800929444733351748821738520113420174809693977297101329907897649993030228601521416896679141890062604391287659905367437526133045373210796750229357376451452490488468958355835686409360798794703065718047030189165526915644729633162508153763796068564266927733762415662058724903060029751158919280295343382511075726225692851002567920311892376336196294153387285153530455496378799576876332659921674159907762676705070183570652256737623105100190031930678334649987929928044238309769487958155465670793102793047632066716833584692162814172818971579690526950900803023609554845841958005837838400479120419776483026535994150503421173006733989130307748830031995806732159686924975837742307746172315534432762384682438733254454430267364645035119603375913782785876402781894011469437833785372839933708112351022888377465448428768065254681556118923919149760217826626782725113958654690930155737422068445513185528156382863235446872108771263693468117635904003110414892797583984670878791699902781460163263665839973953912896710212444329291408630972081434083029829021811695264872808471067497581235165870564718979816739564167694900759062251974683949154762294208962131683876749745290596365364071690476200605838806582416217760337229118845999103762064292435968891774687846637695961260821574122295135976353419786520886875164954003811357175832992414087847384168302931947722018404920724933228862912653125239431095575662707738800093812171344518201064520919842358199621230619413072748667767745761358590493290603940767638044194615640668318266158281789187080863644704735787213540527883389045833137973578576479229286078127726533539188172467436314567692672229179111939343282917459135292699353546590356069719031334132201689951699305176804294109000373588430941142497501993301416267603134759871434499062858899554694483573859522410007163850728068416747544826275532705102386550152990891537308571514928049003777910333196247498439816872903590137005213656014109102593800387456125301906137525517841017349440699926259985448724659098882868238661785925640791927751504681038979929257216969876588521071909161356823412432666071841009106673702416713018298223327198735716496158168564729938857988214020498852981032000722682282549025313747919142859093190755197247621265895440365964066223450679505950444159267220202906441380684472698277599913470658560173841388958075862222554710417361328555083413738004801593351867123227383156488126891517995452306645880738361754771999077669320364111158458448775625802087965111410950681753913018101102175098925559876058718436529137762892194209540584669625756258305973290240369703183480551581078181504792648650500719394033768994223658413886821265625105020988008550143209689942857992242375607252001403387963817108758770936239821700977417167060407507290668155605028055839343000417209795782823859204290116191942752896106841668967885097763727509632320983687446170388991418802597189744087979290962126048031314994536550930643303095178738426429020365020673887211979804469610211196740726926477653559198044128263026282132403059939204835372742071465784624878726730043407281797318292857272545112313123391242160040497510599331236433506792790438850809335176878865041235637423051509893751012305092984284579351648160929103701190576799327534426989189282812764503185856403538164450762955832897141139717895938620991294006407076937350287407377571569902747725901906663641974652845408961654946432246125199509641616070735073037557529020722909415636937755221837147639409745548055316022963737361573401198218448207528597537281567430134312218321487145794623573841272772709182639555098771868840827739474633570374752295275272532711198711459201833502510130859363911547445491534747671686916664116567480824602676770859802085251979839001416050375928434749869584423926886251653542808131229318615300560321572466384121950862418500100250053236894437382267059069489464043500528963668169929392053112580666496138963980463676641469411113570421107600623010645931413814956055953611665239052385868306428509767456376710141244119961225957517123811667195096752387401172345096487410932506804496709607606215392614672199526757368013999760436418114478188693325910664694694267098349434790234031376370259143544445994231087134379796214280282287957720543897261109246949176544491630844022523765450980308748633421642916811611656714462514190441240398649010723143702009293990328200120020209126984429823791144339527942194195552641338281372896876925274269064763225544407454954553739051770925677027486367795371352519104977443395396412904876681837399886041422406810981277763861018948215560944742459122959034342882379115840880604846697820429533642376627313614704752945069976984384706573108851005366698507490208445977352453861121316956661818840284238843503127674105547860143785926781470034924952322157419298022587943370108012106801248902659375096313460862756501329693039368621115580843547062471104325379982059251216790813969542796265106261176974948549270888335346111557680987742343004889494536170752319344170643784525647120325287069505206336455432700784996810766845727212355031749828590239222485697655448629391106862157999575115359420362257684735757674095906557417164263089747351176080978952953184924758227144541290901938493166585021647699353979394321530847160724508615802074522056923503550287315655081190568740553541520203627557592415838127340729194588865643421781845539791239355170352830790045207253146881062773279178452747234442972284419631123963236204545305700153745280711079860193015526792338106538975475495630032971819125395958131191428753272217913139871925983737548743725798063582559206307743700079075097022545237565928026016890576242230899615053836207676761525811148348193424770674535368565708357423717361780369295363017011902142569523623833554822335309763143398884051623146681500906922521127926340369921621155888451640284937022394388750629753518093022430129879105194822945085198786250981646310228610002772449951672557295620338390717363334786308848170034416546257793945491979689586023536980543355428719759510697930390533846899856087586197685928454194061977680948270410140433483210510027468762335812974858588366579005742384687126477437602897361536858685987047447729358373349173409485385372025151317350447349821673489831971138003210794954556476914499228571101384479471040375800371745133266756183511327556144256158827385044518137376600621637787159388369173266059249206320288489412693350696619438259426315667436588488919819163840274323295847350889917765763941147590216437539028470554560354334448692038720774993579891502228622794878750426127627280819998271884263512288324136083754925935381757603175713215974501840377246679875908278565209631587800845627269784648989953103126645218124946715245216174656481425128883166070407548823873961693472951707989927000397476273469959962719000978321908882168599323682316768768076767201216455426620286499797021574064011051183352190700126084513127336827547272826529891346735227317694005464942441073442525716791922730159706566951139387906591038269894584483915766286415134549412279504225955950414761058816894496743597733707067060787826420286971773445217988004930943378900627948294109856535428067957715136052177620057959991697951271657061034044853440989987255111370528080531304037008161965187328409643235362419059395607372030431847454121321242776319025781189532567019672688503477418397558366953156040636875237347124342069563101769449884306642074260525281224915258036782473166759933926395326895941260940922988268762259176760436445543201884056105347486945297152502951453012460664069044810778634096357837244617075710541066460152268073853067698033527772373383133254626167780873802585044469444409362036370907233636274515269869176221660343880204824675105704132752440562254015653197308646066240303692006910250449966169548323572648204306722669356892799926929559982964139746282013124265010074626420068760830990871130698546560409454384733383534517919956862394721691788217002902694541697820364516322547352704066116921741789896224981340468537193398668949925954235896441601520408194059847926329903431176359716891552288719012492792196669629296088893623635191055089018853527888521795247312623584041414401134017766659767336601744312752958642798650384186737318303358566556643597530438841861986548199594397422674437115560899973683718613817795702223189051848475879240604920311558661274909942493863888011095699063021928467770573892454676830286976665170072554528592196977331646267863643712766156089029531224621125449287304857170666826339326786004968331718772440905166463216081227169188402019728929376267049508763824300816404641659482786531384045322760910745734993203411724363412839512489522349417833066698718279410577624745140435570558679660563812871503139925119510497817295964279980864858792935021296649314228578982353883910202826283519983578237752216056464345842977771906013903099470175587900299966048061915724838843358117688459683535161699812572314065510526941354654262350622486952643621423180462110271709839299647449703158084870592329434706612418998792567031344455777135550777186495656014981078781964734122742619309523186336218853048804861108141947940663140750183286251374518703740734547192433914182191319702555783624565348964452767450475446396589121024844536960746762728069688714576794717483928551112601970141849562872239064488927417437153942728278696337600573663746288425715229058119165988600719371156096522468906724919775180864878512798797933271454056910917272043189062745275138462271765136310010471573235323485850982241911800556086327490225296274355371654587908778282835802020446124254111805386592848153174580152376573948566761113620058336936248615849166716969701805116254183140496317976902646186271204591526539432689195899305565488443338275490885545085478957959166080368017625968183774607416731602992789530645512941083663782353022944227046851882594689153369835593330539457195426568154108216975263483061077645357072524904144674376808677167010883853132904189868150083535012543036648834637044788253927367354976480110077706586405197415145306842909483241872058130506177026535324726830611556749772455306212069364706038425103881013358501176143036878839293023433123031066451212761801571456535873401861147998774417673217738286613608001844925457899996770196780662424799357261368630348811160608601101419484421079966285559133771914888817896073525661031518565622969455314759974015630556770639486475973278554878183030028976903419749733857633388607584467021964816252331227314491542371100871856942706569289523179121975769495908967854160626307463668965798034973837948403444455534747451558781267011942901762236430076846753847697952233231478444928919306338998968682011904405096948914893385498033412953919895975153051449494519569719854258048997171044626985384319982423939448396353101515346395663351891592940442488946879149643716567319296166588896462012007367430218433331758094322197013452190073003754518121849225710176447273247181181174226601439600324804864478993623313686967620337567776169592907259860128373917240248068572234200599838041650056816209665200347007817031344301835967661260689421643773229249907712095106171263171960652469786240467682986809355612945199263022884362675683841725004582771047450597226631609105322099138834518543021876248917973416374359183997449817199038102051136898165144976889965796747235460554485177606849075647518399369753344536271829143226076992152803014440603862219584958417526935585477041038294631075153771648590806211252407698747406900027864700288092426350181632785168182915639775586696566885233459221396177334647301833991212331416863257601225038088413681721474851722604015736069900455376305248226469984539660809666465249256281604549360905280239002259413757378794246331045161061333274129234739743187016689469643137656647300120599133045127909065587198406551497050161512409922759369338790085045134787105824127293253652021412649126906164569596682352446078781281553735493122434345368115164301005092943741834480405353993445356923616213283487512428912687611441234952420957444954390123955494183377620854931025590655803342147271853202295877723820070761543856730933679576355628704451644868823606331903120653376743135038458043397966062772669076234551785936872149701466084612628338681476776947475988952910784474123843291839001420435657266603247978124641571578723195833732345456094077192729755885709754038451251305040419457282566517718437868421009641316723004602626072290921797866244359053979007529896898889928569501475061173139859374809319443252177186312648573717037941674984055577408233888734907252863403373932287937284056425796092771802699165004830030985538844480704702996218048082565202528816590524681447047567096157387920890266820761483243533040447511827810332298079401315347297873856771258854068729955219219068257516874678434876846477886604215547943784394441053377632792665440262300984659836483933042168507075064430715535415754954059505593706065166647150669421197161007906719886227230034284862751741440826353836259352170030681042560182243974031287702509195322840486470584422843341785277023533369015323865708081300480129568359319112495791922345244974416068693204012982272718530662872120031002518874518091451640921865184671990810872422674671671416112081908149923652085630137354247577849971717664208247210264583071166658970556239400226153700488926736589644813537626269305634375560174082669613592302254108369908265947218574767861858640737886345369619920940323072186315165766836697643915912996130878674282567414897142625445389173296208561980711126391764540720709672886337009556855521476790550401706591251672279584629395101106191735071167090486555723240336392131814514136955248254910543581044396656888870468528634320092273010378679910057685971329504187885076201463466987739042670411614927671816897663584187628053867096146536391801043165163892675932760123200211421913828197633214166548937070268622097344658833971849449258498525345395454268074652132831887976760544169903750519809513100372875195367814916849930814685649090182996240567333327350059679420279704690993627573563609066951304541229825038879852191829829050996601427742541745075899298403271347861979234505810819251915750984912108275709469088265171471059296947621016828104992987961273958972032479729703858357938615065972263500854286159934250496218094110335408834902192310844282777305522184301397814464877774605673449537982056962127644355656913535517646522962713372376192059818843475458587024283891779575307818859380942338216156101255009260011262482003728097019039039065489482309490807143090546580153377132950047048024312301080843843050950178799463910362456026352562166857061955754520512518745436316197936945527085587229039950960319735852469710636683303497227234263015445928055245854214535028499524862025590767936087094174118703535651019341760817014461841632960476355146288942205322128897310690825361477094118521183765218714296489305978462411931750762191905856436698993980314021466744057054420181112134147712017108228150872608064630771607741555289101868180782257741486661348334252584098411449497569959780874904174342696227739641192236599558790443853672695489941933123140154327230759176491586707529563739679990637426511865163741800786385870527056402750060336800388249630749346530089492688606252733058766254185650471648365507722057620263622378229087931105274491499725307354848133548625445948746387655657318280859435823023456694779165599665550225181278277965315512103635936599845441263568195330247842528421596985056584824277706818942446364138793413066660272526049330805983556685031492458297592787832294244728004804055652016683188645735200840092721301921577572601174107845185179698990422391400924260633724728967265434225049643793902167317123465713537887653908058542694285451503438003517911759789115275182272736877030158525053025173509020941613880842779396943912850093751305806484867433421638501168050350481954266937622020863846876721532111308511648306341585805700631278835714912875821411390909812316686713218399401746308766400848475786836354571271805563385474887351915563643800026436026591389635137030873289847982357111146724661417925038750542229141773156719141081083220356741049641750301625175651491166893606454936963944698275812014640134466304984601530315470108382150826044411293517440355847511515610217009967703939100150070606197889012438031273013058437849393540190673562668099878292413723205088028591767635056312756626854783415382379684743413605363342834010845104986887830338014675636013211905171719783344666778157012901661101561627905960540541418519167398006994785699442528237954826406287849828325222116873544871399177886317599925890976335100856622749502947978540994446759933658243217120398503500939162933295497688047306475641632515255194938647794428098602542252324574128362196951336152396346765500987030216734954888283571435022661065164625680805028063258925479692506458523154652026855807204859502765893570641544986452520967400429111088532803312606284350082729651980716345019333461239794180839576108536943419698858621979865081814010067887482920559182955124692873839793124549571364006718292182549530929225969514070122083271753174702008715095847202481573322525766802429279290816966480381873248500060157898685869962126068345576299822085296591546956132811386535674820657330089784278246617097216693461432460744728469947940399208271772818060905713437523027300799597605279646828975587984366843769549232638620519458422112638003079977010730417659561453633842892513679150235169653350273010801588019415287974064131182972971705958421663148982164863506437889953900798044108282980932914013780352482737379186124213657021318247688317838912716429996129447050685429245242114940203589656575019968666739010156357982040370423476222793250254390541202133652543970599286805482555147507672784928537685272817641731305176148116894956819134675151261331727247516761520996103432852068124529384645181158849743772505404740123142299135616076057346965753072982144104136753402275859521617217833785394722544365911743787291876188126715301856060575235080347924873224815287395953601492076188608067361483245507943775464645884631651785984535179476176410361913667603375614554427194003969961797629042946247842223647168261207767817550970630727364229137760892173052904320062979548860573951847438048736409848367987575000158590259436057022424892679160400897178652976033669837293176420410895518702457150325604092244145079287953739198606297780576584172747009651475525257448006515347855424493473846032343189403910469824894671951633251333254306908236505577709133021045744805312323262155204266566207534241750894865468868703809868277177575879516749229999663156071134576588035878118382908001530583852366029494953213314479105461755888310074596090718581674499159165163496814476895393473586762235845349711883272339373395323983730466744551002892412097727125647976470919490121429108261378324492176679399211649005263087109024004957675166025040679842008686236285750578704823011814160743408495322340908381033109666162019351735508208142071725674343881776019288219418557317620069287444195919340839080979819409733689745334243888285635644291206116610756741873166939853866886474038066014799382418687776714624748989772007284775997945167386974559212717172874291851705702410212653725993766177205056497066654385708269185444221584842228760840231580207467350895738295811283533758657365244081207281758587667174493758705766239795864416811497832564742774866443642372206215422673238858859979209731127300095338306051877694646157735703361342612568406599156361190265230330990533110844684230129770694280680329603311104213295229341491411119300466591011249468023026106005478588129068491045486580202027514057795390633328522197789700275233872616078979297218961683604039584189776030259264320026705922608673668480317568313589381284493240127400124236531203889922702041403240425616182673894370017454758158319328341419184295589442922167013755808129128436899683869826273507712780590986463806598761280469910498734568923473971093181375061720128023302528027039276518347866458774857661934622315792352793365142925235041039862282062841890282868098875251084447395525522521187262287663020733175046657486673638863731864252336822311824947951314910092090164479464466455043302357329253985871734959900495264213823938721170548796649352045734031548200189106588847377885439027389658316987396138831570212941838617677554752497687197426884263903125249500563656786910351221790985221559968856139490721858476479554064129141809841008278709350541330426899067114916705985292287053496412389922536813765135553405779709409027538553896783958239482499645868373264282341436663430970397014618497261100339123759059150845455452950141428469771675020418926016101654526430048850726362817851360874920576708331201326323716241686953794467738301319025329731595685534537563204318369506304678136201201693416148413722970963443171130323139402407856180947753985115799282171339962904712962418425123509022769329823520027045002701580144787839296719137742422690296024001834722466696316087783963267271366337321891835658227253427306862959320853328467029772651311394724326762290812512266477112226724174161727732879600087569175718552227419267530088250264499826131741076131739034919418933342695925551806284656513645763949453922196008841202436595763536563917363083252992742671148414671680761975077704364569208310155252452671448651709542395023144029603090947600861017469398289785747516003773816585221751769711905269787510569506655996552134517663152895708513264218835736954201349183164118583658126098551276082608933961811323351376342941969341460836901915286081168992536177591509797896594051546719070628985441415026266116652073130406853231407542656538839979426558978959396029437504820358924219752200666537225668965677328315933863392871268918730738345221422433060613449933451957430460434221169512700325665825481906857163927311688902231992074369743987183513241291687536136692727585159754660593419952532174207295634521053593688811352273121254788432813246618925819314338045245865032371841421604623687820171327149679313787668382304611640499183790169539496017843538493912114805984182306964214463843660404873470541542171969576505284440581540445036567225200154880277404868800562868097153798929411811325343594119124004954374563323908956935492575899362767120374353657688040397409570847737529503026110489317541283091951106868101641992521447883270274498192389725943763758124385894399206002798631432799375645302916680614525700075231050007342699457329665444951382628940012661400179521006340767618180486354262013773264562913363658894035040922987684643012220801770611577953465491439144862232216480641495233301897324989298864780381422156911817181047327671214116598103909179550473462145374272631634316695721784509068627022904342290839404088175124220702412446463937436557319791354952922485534625055469951778857600400392171534372621101474417191908302760544111869523191346214004615508059146289344460815622378364456394423927202601804757134586198108257915443685436058971468757930478657424106347402693030066912934961687358800677059494523332192609304318783009686361687647674104123633725449079012660230272975057259914884677814948616456567148884958721061284555697445347290061505208546895217534367799085795584908114816816186317437138376774535757551932989588427831935422207222558173368580150140482613089489728835146940467454789207593957733788909995523356741000704407285778419812696624316147895762904528564343378757039251038647748859373056755551538475752005868339237990992051016067607323415560267830483628135623517119654581122563258758548811902074882056563530110266551648556647839542176834915797734843793433230071926668143990696914141197463982807882565211937736828641201297197129412953562797943792558180226506797061337054964595492759196577618445869440935228019304558078538484872051573119613461853696559424708728353760066973576410295892731177510339770575132471416360217581699787483596288588944447268708020240422826924994021409318238415089553096350884111439149683725463527695329950162722437937499198310358344258946425347497085158010265746394792826739167707424055130535219624079038865164562237791133057457366898633690511291594156767540968137556911829836528215302015976852566822804489623031116494307836762289975505823323881453811525053276216814430274752689258589002373615562733811887107019339770605806555106136081508711981808664981790437329457974171517495737869114547976078484297713724820425505143858267752317550781717840736203283248794488472623391109850931037990673473282316867528710625836458454536728583885727295987318904879976791676834537736306447800739481825094158362192532106812550474593985052202115771226474628754812617008977489624130876292038104285519305626870449127346247885846188925599248254585992211254883995603432601038087561422097102176816825914051798078820766864923173126193723291190979379444785032042782467003274626749577103280485403230916645767208010022460180044678044685471633729753151956009615350262527529032271228920363012943375556427735915711121001541277154918448517312372409336142100496179676727755894862839807764825323407063056775084431031153176698778445611423322367034588036478659362594710334823668872001438773145937292600191390475605950563327347065069327085954019841084660311493021627776075342760586910615391026279547584650645316318047651921330470920289060915098551523882164123314488119989202326261924008516888620087000763008557929592825855295015537403410689576972565949451335607204591071938007543702971612297075019484357181764604007733110439168957328940185015699297193878362741840807165724558655455556936954586057944025953926200471380697660510072545244790935274270311565742824370998502023448564657284695397650086783359132640701754439468029376199726838371527824605014820268868174967376198497310491283325673869427272942204068435320892885478263921096590783041053427666558361230549253764365463471130177485153044998574847926065400215833875851527257459018491507459190895381001794096301748271578487615023602156017165592025400473900089845342391429413802024629274376662658525220111073066497178028134580137035789640772309458022198838605248225635398622846052124715713132522379821558617189439993602990546463775220480579861646746987375543913574651978313756825092647407563598207193432951029905203485498887594676103768459683440485634973718326239670232260554028763781192644475633109859065057611383849116257323808936324534898169445374607460841979419490643465427757224171823488722146304520772244285798511629630420301609360423158483681029223089450803215696532274677223049074641529241742624593694510974689542977166433568628443629507939593651329746834073153851537935298524696568105459969652324540207753527481286716481140315708325488885162654599051804908079124033822945818240302602394602287963283304986116705598528619809970846618411173424653569791155603282039842955756475849534341351153255546205412175562524722095900007298951638720280314903696777385042171241088536159258752611029292547565932735073574916802069731036111877304885485596714131681864395287156156777726064451024874586903736367436223284957589940564345871316742270408101757743509740942396187623758255901170975958969803620990281186983472821142016345523270642467454308665808975161878517436551539046058696164802334803962303728482291365128406198820245947862603106312623839787014116084285951042186184177716732149310527284305563862295804264016016918236624682643930939279216567954018473227056081916184027685867961920559379506865801805588041125823167122915560433843474097024400435063607939091735924918082420254011365243017854769113722523450287464472785223423013989183619003012156927610877335113503311023580015859655892665342269158112851063347784042989039018307991100284643904251431455759773330066316372580106438764534676636605842677931461305889205924841620289183179145351467869965679540832624575550854387973589435186277740521040372574191692211772060737147987392087377139070399335748545709167462601583255737535249428136299645929544243866455442350027457688868164735786868643130565809432831593510999807047717535752324909078971143077398441272641251384487646609154954612256082827225729485205413936112486749678985001612307747565723260054769449746788621051818922180338748834660629696510174148432151265894482456651858361674542342085844522949782856842716048420448935708719764136887479757412216894198007016464111546668880768565489572991348415088096800182599645557071096081264910318233689093447265616253556495907440316091814581219530847756875580942060468537196582065016018539148359579443312667091336271646924850262499417022959587936234378437858483899788477849443043021787314749308170064825025111509080031560297996011625315355927325116212076129042658472517194861118578554292930220830168831028555345006135374625315852491214066746077537204841986911945601459621876465984001483568418139982781448757091430817994850886489943722275818985365700259838427144815270368410685175504044826974496778771638173862548951314464074792321887187176185919351843095402758081615190076800777640069623523186593938380539343432134464051341291981511279433865542878898324722748498453118293436761342540043867707713491012354210068518921179301184182909371915984217697873851004194453991233158014812083092872150279458847997759658003004461691696209067472203094408211967864705449826730453727066705164250608468760300413071633226753095001549738293420856797669804196099186717838463276634089347748025722014913101014361468957020869014755767525822380460697783400748201803879459176744032603728016538516487714958692229633498750175123679544353333349787990400119869177235003828577125583609658234166062038359888668569946208047126380179464935543510077527100822288008139886798693653365468433351400186058194987508775114740781878476146693276743147114674116142716036205770731316376307027671659356072136866236401662101110521575508477742994122704347590263260419207518685525620727923025783743985084177721062217907424151631204544300539610155268902019576857178942299921930158438698673093677714802405665579793261856164177729589295696306250654752319582205270561134458745618348523873256026990152622445164299126461342395429486414655597641240086463473550237276659259573616467205567013702531026431615184785393264864034354055564952892742437769832401390602377112058098290752261789029486607653784662054368308870568372098380497299830353197358005349594298315913442142154080681670250790630312886640243804679251535223078948895667304975145846117859473505310143234603840520371563259078811895103635571664950463412903629334059272031885252201504589137311802352098798782808024721962734562780745499129739320852091712165381814704665575307793793276052921290267088456420294349543227549361041535982630492152987890742847940842078414076735004161295275680412746256737195745962917300527652093831657421080821330277155055613950409215376420968259574500408261958330556265720296557893264298196052423257184259011465578067153420443740776408325295604890213976181422334546548753388852505017153595356345453485011860443263742749227715478451354438815450421503831063963340459179756731481311543549926847318836860384520475228983980840015068775777183687734876206838278007066263209450564085575179620280078063960139318091583081826864375187576580385435596165767177419720568048531449266208976787482500142338038357311039625851286219571802453021961247019535994527088122011191078670112541456967584913904522461714734260506646987521222907790562480133138689441542466837548080301721006747033563976638039960064729427328860892711646072025574770424359135139939334005793058595756656896139095824950822857958929741824630214871724652095733369456740829102892498999864148160644801488804445768470153787400111257008774981711476607281354217130983104114375341759101144358745655695550881376501597287829277702820413371206358364387355473285826535829861032163540609941599336214200801206309260618577029893312759949659527124706833569617461869451112545950118285673131816411845217085472219100500201861969219115661487436844920933739815352916120149185804931594307530303397111015748639761561212302956506028487580682998491791204120315978609000608711277680050049113704011793714463092770534137802773565994557217780925377814574385579774982711467302540004536289632348920010802273118021442029085278415231604242615265830333765560657320690763382174162841830564622157291041732816207227399279486738806495426877477277539351266244527495429851932999040048407447832868422592122457951990418838476299742459599983313567442872017463099810009120567504018690650274390344113771264921491884766537182178996468299670322260384628790918226764689413456419856011866324843735644384265963738309979241458203976134050735629784136551778225924585132038478134637211037651854544245435472513750931783004961655039718498981016954945391675225790717332850550450007909331515500137643248215467744237753969487532573342971544218978434448057420610534724504584183323657394085717258669811430024259836840752871083547786142665160559864086636522569860776729170170599853512209529412531665355329739284565296910961497884708561914382537821749993109763945431734963177843127731911444964705487803567628889248428438775127168783196950233282633418738101369929781614785029300889954001097318571413711244477351328571288472145236346973434054185224214762713908148368560448322350203041066592203600467160812354967494829954533542760876700357622485528320260997418027576137958825064799862367143593844306103641251650215759013352107510149139755128204623295597158970963841689666395026542058708306707228973235379400023004988391293609022208965678456647718455006224635728833774546528815836800564367414051577839029901664155900994470795575522675061158443546136790128535857590988738636038544970824813186446782549067829399455533711055903210943691338979926450543211000095865123658986144343383787466857167408713828219484186083141592905105630762716267712939437671039398836576465312823375622653047580251475338495948344353222408302150350225203257522581859133739671389391442235706748978238076121468896107504638494963646697074793716738350604069203580040660335919051105948786651577931514380753840006828732737140193633271771285123733295247109460135443711317566503838779749394987912688853013733098740071071027943190469399942523878183294142800114468766899937005759189947528724309136726152393433068148775135695941265098630427530013864769863361725703071761133869051702029098502506955968477785553260891250781061584969409897884860243505263996541559762852064164371567163663503076985908947082419412347307976674923349909310187177126976221974898407324618604684399381737383448856901819656397155481797378487137528139959234841570967516297294278225733736176029086958659523686561557703363337050730406707399627656914941121756720396124472990129668705407724122127588254171778057594052486699058174100959684173891434938204368655197469170007748599232797813272960593758224237726142960303893915246553790080924319645066323627848538102914148358295573585817665821324291215416732252404862871778951006474862609374207660110068888086512694292803120259830317325436817187820737424788133371524131623166704325884024561548441512262399032747569826522714058403804449050303933467071028014818630704470880457260969629590137702388355605806123142657487117127992385413206289964302846244269962962655309687761351575611483172196529072540370825156879683162012819120060573698444641466871999706200173732800262643251786536237796317925989071162526579227046318887655851620611661634445984520754685945681021859280614439571998775778692387200894319377783932372480157635051300489729181775517814079940439877522171828075700780632747106296398636202409336000309187188096919842550631704484606959158729242597846069228605117332480106874049872007364150109782455377987402492814346976779401053110298486331320690278708650888256132767830990888652620418205357435868552574581250099838209821214421709728259038357025059095006310330087915310093363140580192398721732436087947021100433424784871778714084655550403171085038203557396830482642251446875953571357536381555031829102912387567476101069917412023020169328568461139443056769941689334831190966743222970146606103580911407640175279606228891780411804195826976287140711256831114148435467934463193341163358404049296036875608862965319831975631037809578490237123845968150049993692070060174937602207528004070299696138705716455686046526380816754515847378139934882360778048812127662675677238601463576194486679652066640001295730012206051434967586145574539033336609458904567424982036170756235273639583712931258422622383110532259540648127837843576390529930560296327900279124418417231608585463529763213102875112897870472639837474112727662110172622278203704107663866141227286660476987776074446712788192383415074098777110714650154667962183885465645682909468885008027267791613356681233081954529863619964154923138480387014577932847788185104503267696160030692611688422356447168075208238957841754356219999104898402016678618136576821120702322249030118442613022758885552109503433394442173236875259593853298210127655486789373568015408732823237542116336823993498989995049275717558327085356884885520350822810400673194709695885103729872352487276519731443949336213288608325912950315223623327583357738842549122662528755858373200317090895285353629576714783176543546508851186450128753425560293261701948676686671195056596376263433737095743875033299636374911255259833569486888509755554749345064273379810405155493081772505748114776118289715698133224078922626096741694513945435637460230305593357847438122169934465363274108947039220632370605369109597569378016056031774803419658011191350559978149977802981725381601477087772431149613354097005542244752985666982972464496785344506985128998949898180704899926938783784881376674784030715641680831560657359487177317099689737943434743896525115706476632280313279380290161331544653657345750825246782189845937633744369052146643311544221355073249918785769810671527775134261873766672523787864737273642367250323637427896457224777047176898821072191085422528380177260756555388787281938891073736264466954298940874320873263129850249045813036536881835208556882354121184189018266670651390173024864934491631524926108613167294301170115075059830557946605939936265611924124627287323736704035711659412313599639217286805224448158314679510035905592465879376367346169064591383753102402190378071772078141875411746537235276125969698522740876046866967916395577573167447706997381951907272549563103720183765600157114039612697895444359985356332896359543346789350478545052149385780929820364315776983176579229024232000559837858206806056733327782751185798169898219637522927921107669537730146660600363516828164157751502677690001386319502098751307550153303373700085102873359136875835887971022501917115932085856686821578375682228503689576295360280038676284509270048762585619830071529835837624272760571587246693686725895272241409541400433193993490339671914267173297543951536245108363632299009292142471516166706646490284361963875384486537122571603243184859045977571939198576235696092108730691829256541147040937675675803383699302839221541126068730937177417472647864786713472495017921747592079620151164375643929975086626099079280683532184290045140073208169018943080915319463013131722116725888361058968306312093486920933294439260181376266119411714598347866488373898573372064456808259950878272840421373164787142704690844979330546463140591963563923210749350601162245885026221148013707086627464423654511238054674550676452579610335909808227051694658237189741014059304284496126185518294517794275029221857330630457851834590222680554614207966561747223219794323010443545545217837847679999870571290016668832058092578124679017812690283122585928414152500760354194860774951509775842942518047277767149859448641075118064497656726371525588992270302655041087707590585100619855791218459369077650635302799894624952779630010561917703638453827252048326269781525977461810714443792316018164922127037667152937024359228572921001193491662620354577643246097466140485229869280450955431938382289587085819186270846431008066175868978737093232688582328548229895875927410786450214265608481391256072459394441924231774204613638952729712468074057842724953617012017836951564906230105603675198159004962271266068331633642294028302485055261825525350537210162958536369812666768261616600859455220114862203870013171263592382044015023809292521938316111912325236335257327903708163924341713737978459373841835887838487137124724138256021116496959930700219352099408490245037899029786309623405192138584873834144272568788797818610116444546264230101896614619958626695707127647274841385315083034022548730395088233039504915941492324933999212706419953124444943829420903300415980899802488875649325952794695919674316234247570388735828946596397952277187179053432003782833858167571625975652298380006590460690337275981592119256615286600012321038700649767873717722732890703666430147781127504857889380697711806665079412380325596344999395045339985715649387427372450009601461445987627008771133473781759390013775703984231060603815129922874377416293218586945366245072814392077910477086466224227134512816020317519002067437642502499528575236078465185151530102343154357846507893962499199749169210152758902593237351360295324538955177359990989514467964743687969591335044551995751255135785014503721289507289145686721166634689370361265446205999027988574379139021864353415931523251088902466921811771253005844112821657298063298006999136257990565527279442061999436775458760539688412203323377060649690161285592996943768362115508645162594306286821106580662740510507135331456486823689476868829708260876716196897409531595539332548020799927327655427495199213702979728089969831545575322700287540539171236321252575675869262499899775682992475876893353993961097545562951654030968364408826282283628374181614382418707979873752208449915415708035437147770314063806124751617518900312762940174772672663417438164511870409759503807765822983588452805692125860893526029773442865888482021735355719542592695326550146246096140466587489282445141148142603480989815631401621901161175965367008023833844424584702638127390072849481956370365565276244904755744770389864530393746690383152214698165329976100760384199184622531629759273309094306467926257154259598257804922978006724078225955961188513055175341401136745692607215976846589875101921655298940973981086703708775421342815030606639782017395477878352284618159753738773401929994653018824003323872659687917021222300752205024403216036917877464853193321556840110996503844480963097289632459155416402790237116758917086749951873547491987824338141432493581534129655181911810458773516871075140124917237026265994975369811225447529197050358635898914561858393558895100261448826110485217332126775817037468713583141199913931369361644513190426086663664585209222617796087777502216740110388978396900458312337645180457800545676192308854829849111963809437129191804899290645836585442883118855998329750794664079132311565246999065279192178111776136129512120615568201675288602143282571797918252667991661586067529972521231630479227134669841545564718502645360376380329927396939768318465469179438965759230675002103259392137863582230165426473407762986876746669912048108601420398602502685095483096944880804088592325628098821387641363668623604489722794394378974357640005461902381208151299331501864160895523328552614390973914913461038641410955965355767181021403574986453147903501204379681094401319126749703235040891249801887494625416872680731884965744367518229113140806300910363988283654241337082156151481396186957072939725587777693318367691725467525131880446253638740098115116276556198300175235726313645047236165530715810439390947314544560105234861705478218825947329699342806414673178649677084496747313725304215868317968951252985296326378999744853402030572200149693030068797057856467048897560407737522980399851153312654099644157326165940240064581752153293536908970204716766567955049465016495372394245784585097924842147242490674002916954859890987077111201001418779211041090994022937025316502552561615029985001764433217319655347461186974628141029763822513808258618453724782232637244668338214529884142679497100072055809112521468869591506914277694303659676749715233130845187325999743399823903033239247990159370583747575957577900933680385774604526983596201997909640701485743570233994154814716043601076390023311245977974170183427618959492436733805574184224597922502939229586204459059172409178113161089540924562397398370432124045883544726496520738611450801061040402016001474583730734788454346275772303300337858576581616969918182373951829151253650941449350832056951215124776001700646920610604937206851634237648219161459827515636956370721579196318280894042112809326987794822819572621701691743067724289178380604971742198136437182098243007300616511812712442027004138134008816607656318316811918547137082463254432048139795082494248743109418057622376031092645980221037126858860838137997363726946952632586481823055106984980596806168989069814680277088468100581847224553705941271354748445602918035468892335368847842199326504371983739654513044365251803171136826545305464776343547285557746359221578702524860157067412768722529894074741664640862509012679251188832180554677483473001436285940000707708216359229022186768688480052770633042628394769687417429651142759260973026673953165697734397555168802714715943933947211181947114508339796663941892040508308909752560249588564421657227977661281813632873087468310880091620112505601730894958508845857528931356111355504820266225193051091037436456328965464283608065739724123425122689125025850891566621867495400534059363785288269648540634230346941593278566256910790825217000557970597010461674272508802092708233270764992832310605295375270599724926847790349056876919121884549409883359074735321191465866397748412188852645777553082090035079581569308634459552690083390077935172701990437261931926163868310475044419373038364698753297579549799632086848731456258872135040642928405120131311135969387612851055911033227954148419098312279298683340597982114892637701867039160502667865598521158778037255801463880248895471834516915523913504968455949307216993546228525258706545728457053982168325341986225980424637294904696007324518009894599913741768748679776688977031217063469456598070958817097523470664910283062132751211577850708517062068688132238738724599238859721492377540448772741506134369163818619652049336479163674952634749771971871910368496653566709421263172729854551362433355251315136875104436456449138499152299891822546030580848200248652183058747012368208449688559863336874831088155619517835230183006868502261896750314604077990823418968057444501487595440368279605877630254236160643850191990160412976055362506628213760498852713039406707243903450498475064343312800295104341479799060848988062779909663634036060363666807234691242339205204309666296170184438834209965684789894602218022327416769919725216791336339711702861078290500385646942240574752545028674713991549418651797155251738388693157776594385771327572269737948899788626125540441398542169036615135616876928198350738101696391014959791213027457071756834827024679781917468345221170417691112110565983414613416058063367686637857360643587409511971872474886714997386657754644409252980609850857667977456215851952413744888221984671035123329873342478773807036716873201223446913181003153740379307993796824166612483694813792249101484608476381324100666771038991551568465362534990566206785368641783963569958066472584168490117041200732180260906621946823322022925415128117284306245829071923557317234214576115784743318730584338637994266678437430384385253701068468220922611015714411201620444099768025719336232496442014581577759656488792826319556572060703739749466462480088561885578710665085592731797234702943626874259234755329792712902382241160169424073482596842501319084980815714060678345209621685192593604397885304643275293325539479592269348196126681635490207180017386001425360237999165709955045320967835471036928371567662603992685402425314513053172342862864717706472135580658681093457909257832885723694725728675205504965931518478423199044306238739249334480886363536759928993128639237050931543229712873232412000787979245508677322447524167239333954298433669533896495734198585645416171559790642043265807138231922614258473283992078227752897961644225545620228280620634011826409805504900594271403719482015841437432702830960670470013833236414895146712158476164109299328714431601200781547967899444531560226885639250898298174610351631357197409178439526314828673438317309909917214519591184665337271962194155487095952167693753731854164106104298368311560787568601970211836283796695134873661490490165442147449310854853705947018080209766981718200956465997516720953825231909132490267325104239556445925065244076731560725722924308581096930866523615943058331993183173111127676487765375992719720311472442195511430801282006223534014244654456711584653466773946302825163208458666121345007153467154450863396905993544636873186708297404990219171659857990349498752300276762832994609686267906711177622236661864759288200790720539402724584563631768045108035428013428655727667699926472719732319391262423211088653173383370616456496486739320426059920919114305912936774238618087729168835520752706550557469375786275725521773779309136104575271679112726124791288913077040712336044901731233769664734107605996823105701030653217150126828290335810026526167389040067271083751536754962342314352994975285116268533853943390304100543259269331229232209979809806198179712001931211940224175078500583819149516381856858927505704492732278739148871284239776080130806203281295941286741715507819688035178304528592944316283134829996041048198507559981113879641232100284693604017097787648897185738160955039844509885116024758983463660520680744372112055323286014248764018502006878425839395479652116435349543639141768392034058575262283152990579679393027947795559169962440085849941985388749584580408897095523272227511096555721039238402907374970462215909742249214116630199278580868572573064096547793892079697537371128347215376131153588009052026121277870455934986083661755436430503738147229452687470042716991819250021635041669104081283259628059434753782279971433873366073329899773248609987121181600349742674780046346097223180933340255887138279419152140083473930546129510809778962346570230797476744981869440431723535100609409131517922865700405155788028632634294303522003151836573915469518098410921057749084990224301226930940760947821446094533218451785393253760574145082877839278173232312425672527158046700951457915327804252994497992519427373229418148149677377371213196604304729623540769115305359968308156523846790627461632469593380102492002427554453386060251175295972548485559279104975796504018005402611570114662907624006220971424734394041460661563198865333223826996515767139697003884202254754825798736286730859623142593608492075523359306057648685961474957025778232449424234794769066259306238169747024714557141669450722737376871111224047092467921257890600358221498503962850573068567095918695977860517303566703835316246652840188379184483841732927353345763157518286183132765611535864638849254890536674520486521124390357041943919444878731288560317853595965495960805352219288725550572694417983824559887548240240986136964790337555611542480963593540310547560980477677292111219848831210024802949228454668137934776952615268782318450629251396992830416299049122752195681808407645014616585941618448919284998616067215490156068741824238208928580539982801852460721306930153384544750129610950185905143140624790887096706337445863638667150098920514873920968180102395260014125152020823634477792937376727762483014502239539844091370630805116428611067000804650871240710920949917367055605485394768466413182674353372885810026485813789847818736454483300760672384949315618011145966107678463803933232745927013930990662367786130057062827495400607548296615003822144621338730889115540156692330419958063463850595665932517990980942211319432535189799322014806085956688409216678097952484738250540718153390740860265136552050115495029278550749645611020944524868551735117370226880188888310992470748115584039452325248070271202530902768483808107390434931939785968800986703174087490037099510525667803180267433503483461210793064504576415656415238380538960235530534917206471861134283377260440388514409086268526345641691811927474182331917950653138426224000816563366644239157924887670391185100494860599155150989017671955978678452305069067155622068009535608074400229808535936190640164892075640314012671089899590522413213863331560095902547903308219050063810962079037637513329391839610990677381010985678583775943937532966263072380367920438345237808865779640741337254950141739854063069263287698011115473757676187006154585659955812646569978335226526962763794236929348687119738352853813538164813197278045102370465486308464700187616102942569851357304734125825544666760842077726846987187491044952359580754022949529065695974780891566016405562413113474174607967983668619734805819600408817824807212456463129633285073247364155234166387424619869957850295715000342637287750527735090502193069702321174468173359998532219243019099838737567632675138182137157827415167400564043161811581776430020633647660068628561445385287496072995387731946189000394373677094456120995082805663597021074446135025051538632903379261277992200669823629011432386190865109129415090414127493483791418485516968659198759158499558823415800355603289044703456589358502332532638249953289139168414960421430958041672408899643240283548917528678427050836982951738648800024137820827577783533916636555467221634797897404788458956222765200090950741100644429010340499425284820668594256063647293230182292214527690544119738737840234572944497366217983063843409591164724406814437949894564190982536995769100925625194147384731725515498563153099417500175559159539357107800909640796339546723149347237867317629772342272216386738469265546697939366614510583461640369010671996196242437008843985517834969608324106713849718482033332395496870394659183491891770557420695652872886474664465939653822073667731623114348581543621325183393959165794570115427966473378187179081309581420865521853183334254591774565525301368621723812353443720964636734741538661130529557407179064044395299211968982491652656203662666723737489240755633787656452304310098299707265042675769989530700250896464777693775916996009563202613614671977087866841825651962768619923828136639277775885890140705932049092685596668191388992463257408523077231087613464101591659160992620113323894660574783574453514400539142007621589455756668613906045945843623680086698866004844283641387441333179226739993782201181820121170905422457610475810282522681131224325363182623020471451673441359094935540404759476688417206656059994591621127630374337519936217319888400252772278234836989590051988481296088454582296207354904236384049187550598623643136784826427850525047597578280400470845509141270782975576454636304429634569163964169050001923763236618837096632570277619279795755767377089735595503717514788830286071174999303023556986899968062722518010274270153098163918574192633635432591854088118807120087366466559951927383314400917808074932473635166423020135883747898296268444151700585384705203968773346235488907595120693455541453260828827684957759075595795340080378096152620543109585459179572569184880584780259316267011650218021154883030058246184313185995662718425586830089130011016031943375583993553709626163297470951522832245086271999758522964078461877919561346381247449944540126131520407863982869707496831976490594372270237243698336406668518172258370627699793351922993015383429335618470574956263913542435768724059157506591256877270847629092819759935166612307151600875898577344935592427357635149825401246433353218930841319163338042858411048070090156122918268028452737819457089570180242957936469368891738640319089777351129694317543714325590777102221428838632915341905993619536660893809071651964516608367173562498767999129166423759532180414791588187485983593019690140307696284905105922523862399888373265524502672937623944777298198995577539425501790531770032813892420459484891663669500172915226335395184039234190473853117849641572509268570371461822214402723761903990150119884639607067421829686907798290343679598373394242791444972646129389725540923421412696084933472531661103587785365501430953700409388079496964233044448050607267914736480946614252031184309292674322006470940323273610167171606907436613202562141782585823697498258535407954848332491278503397397370986325886412858769387471699260331628543940225419018556593975615261409308298032198245492063959341994322254738706390221861143616880582697350494123859373882767503205779062468620170423526613355175478839700652291175443351591143465189941629607854483819921012393255178668606327860002172873721874582529390959681001612969012739888920835945903866566165477339552031490657284236872103455649979849169677117575996228546820116284258018661181949010353438835526050656011111188967566333046509350207019436968714137574643329828305909656752240265617029905246278998737807674308477175626779687859171193369282436380708014211783285714926547172343977010405005783614438869652211702736910182280547265166888278343742981755272041535823511922916128850922250259285534182337602632536267758431913591801767621906692205882160469212829892082540354665083192426441428681816533510319232624925973348899938115658776410636206968342179614964748763433499281106575928780160195542723520695168999699117093493700423385759700248626294295068719051693446449209999179470948539141107002149255482288984122724851829021500857927198757797554953080551386143641154945497331243758531540072339711434305600654293198454244076256703390468700757791231016902028220324791950012129530571574393850343438739220413028734142490064150768449466632553235033133518005289930337684772862308532547833378490400472272806776887607751940643842317822333255564874217018495132468649740009591829305482437944464539189163777116866250236745816586404672728066205343413592318711644382676879867021784895151487762958281553088492017142755351497288534979887133185988228046407409191114826422689727860758793406537337530555468972082364558410748884789949032657172182947454746820230629024393570724702840175227205838878171126421716470820783394555775965294601003377190829389156266513008394331507540102777563796156453366705657708065809988164560942351358697623800553651334196804806730326672936594935103205540145906976025278750482100495610041393746483311275376366962903412013179415468640202215921314144896195905706324536340190156812405849954604638331854657577757624010357271934840942453154015694023138411929433906660607368155285078948952224871444101140632130171548775291510025053569486916128320491637638963909850651373817097913908184130212648556768074382976346601284394755174070189862693222419074381391936089976065079951353643398382926937391595685977736707446644407813623363642781057977584555217210617096003956120035300099985403617721847036610704454013061027787119290425475086658213751890106060368510286772256565516447923946145880154264172585494228670269319380658457578925913699407107758255701334792175493968935068760781918890414955964990371827531568581725300211868190676325872104834465283114499356437626468879386467302847219744838191854291815800205241066814898708051157394862479936568400930778668678781832271321916580715237843003732987237375411589435307327811349468717376238532335446789875392678058834130017912679483966961705216445091316641252780847931104821401950218234830863225888019314486599074599560596404900315602645974703578540643061030579903528540863284529623201248022987942086270569637435380984203642624825802035312839520650450062321681274045828041473282970138421824357619034074509739097773155228201959480064618065962409965453880199825780324431528621264468891777419035721443498188364653119291933172347714317236559071571921880889298686167882638659063083293080180444817704118591836513305695037408951378729149605277753110325144488143001878523768186385649094790441906467721159144404012065766003721257429810057469831108752608788589203336777381385818487403186068143893953950899667154600167330688560176823998889985632850056814071529266605916771590935890708152250019243989315630517490655899198261728094847947890335106255351628200777816914842237653055909943640424661830915518954983013641234212705543610544350288109646600962950579867942816796774296208069944734372653698954551763052935019805153211250391208547638243226234284057483132903465496539553988318037289478046038774488625192017469534052188596402528763364634913537147373370267621961987177069836908058017085017379064620084971284358257985376426438202503696471621916277471983238070037490081678875710745362502157710969624476912020693571332987744509185819537371630675879469486908033560399256017085353520966701322339082790247517231374417746823279223906888165441947462873670787012004963730034924042020348367742934065531900188558584917146858505699524978596138095074947863023216821295131894763879282770874131535323456643735466924076907793965093344832217076124454346835734245077262942998215398332696934164795818393282540177373883438885368681667454651544857883280736001065116172516725336522205208040837468544711346696125704519716262848595849187446189584848460512907035744690884604541401147039856294788000957518838828003779653698932910687077051937018653909643109379001572152108553271306620583420074399577845199487345005764978460639761661068156536433056801882105475773218941576644369646897962910343469195051861236788994448939713168863427714555196772968800523155049994008656556152760108615835331772661777893919279316182405731635256857846574371426459740860252693209276398675771323393357223523642449198747699765810994954609639683074353801264898742267353447259161016935948578248596683179472751989134323845603290125757934979678814535161477013335486689724666519092629870874910812577370679634595738791492758765496425812187447793494634347247277232216343542080543658720482238823675028940922814519677136926669581233527874882855279922058662895092506527412952112473558644957887192305551883311050918667067807465519862045006299005562424672333303871212995070319570699265679481718150428460165371859484468065162525511341558243735933386364604084327112996632228474269594255715706421566780719211712159237244457625140972089076773817894903158894285821495371439798383925893030838536808294351367056520450068733114351389245611765527191858501308510192117922862544103929549456429402876172882147178121428325387901832008719801109885728295364048924296095317374450939958296130527355158901835381832912957348166856325580948517586190338252858214057106269046934671201852985567030311425396355922297984147028452256642416370483953684417568989416332450229385432248271645511115776787383746012367696753357203385216068943184999141564365724954664161355234887276733074918138027464677757901828975515151664521859567016600262562082756820399008587245509368688051257940051714568059726997175161564224390474802136632399236923105475907637977513464820592820290173504848124688056402227277695273693984649762438541805915839411062064391283291948278100733263896588402686210683964953597479553235732743944673935806674574878536584252412214415908440864192155704282435727436291189787465779962746726145997044551129155088505078282963328587083681134395416672278791828913611869551173609222732408717940623699530639559988155944476672083420433629066723571329387959639537697180621658169326642007422694987317787091735769919772788628587277976996607700203365561747523378281030251060259323890012622819839453047820533629398878925554492520918923441245627625297367016577909553823982866700175733400001419687961407885165597402778032754674031603891016520171126018149900152198211497593171376916910033104957476343306572120755425982159474566420013991996094059758194178522501393668719632764052585761019228510966211009407403233354592403474286128400206595402945450577448671814404876334203585385861705123733212612193269819884780664775144111969777544613905373841314633847685391250065251505813580199354031944144326443412848218450611341849556193210064539285677810140623125837050675130001148626560803206939989260518578872689442767903662661409034532150149362082471869108079883337895720889769474216690245926035333297723957685234888881312481735182186447294997826890941455049237356247585127606796420637996779941096427365323933990197334282090259443170281984712175558177929371350158650946747038804184420149346962710858167088998019221540246717981166411125525670158165922088368454519798236478109729337825751788994515487334933791374922369337203607675478989284775139863385791931048151504282688968490785059538505002523350254364501130794444786801923450097407537227616702206235362257182835258576348741625221309547893755977762292934758625216395848696120013597372125642763260462108168381895275411199685053121615503143634520007811884385730489669169775838842763427132347466010166758974672640395857576446362280467541243443550318980935761753802746548350701862193705968108882519484016094261223602698068348462294091702000866278376939790511493889130664374553030817594657467368047535793710296866892428520136780335110067022517716464718389528435472367593763153640875055637523764981490871445545902607229406304472213820136825517976503634413545991628286457718482921086886578748160689616064934184852577268026550391459160928119278517006528102810516310924476975169782173366567614967115899845857393941663164512066195079622894930421554051741557552923309793032823155023207482339803730997786355542933167053700775619312404787019595076393161879325299088214529552911629364183095824717022764127187052455790461489171096066802129360764634200788170951842836998678941587436298577406730305469898174302851427773642764568879269937033778737660425185415998997630857708804986890087369339580027172996783182756863317666701393124546162237654702562520918072988385568968751022907474130058314127098059724442072409638977932403563569737944346948147331844928600149043933438461823622405286438407662948256897918475145950079754210571556825241697854352712385243229378648743020575837270619345040899240922869864125469267751060398015689751762138307812255717414701789644859242951689334408934097516847082730997638235521979223067103924558512744739712077130436248611576448685885397112499605287859550217780071361590680162828526371656825102415433074846409530718845204628464931327987422318297451123317132290371620389095261795182366077971134836678402884953145243692649098516743805205192253464944937218902187511929841774505568899444477526778239177155258276838782998301973335616028193962776547881734647761008548645898889201993734324236625635336008966346613192096295815728527359944854073186146611391188216389765986138957117696511324823852014608547897803841374053956550675522674616467165399865694039325019269627461417370111037013086683948435044158139759796085741042863454801625015819302206562204492896217861921968920866844167350300101916023592893883889312402649421722331851287111909481976282125132330626580875415137947397255416860133572311255212188740372608988796876991042534977900494259965642156605652557051286030804179685850037242367556297152019196171219284762472174079178031114786775296194568983076807544413587216739931439653207570395875371039713085710445799806975232613077174748947657093443148806128488716603099301017551263702217551689033216179630327483141263864252076092784930634496961788433514696563647874983580890975592641464295286303999090143766509076740320526102626600088453249996075611231200250272160215134557832103873384232179085590794953738874922172624929906255271434746239275336629361542847887676263279694510870799843853676218669355409143762399648217960914128076915896517184680975327135967525164943631986329715714629739376222330006649575054716697185472038381452597440948600891657576183413658180106135381727077071517903532440115052245860713635657447694247289629454949645921566576588593517653566012455088105436260594113230700028841419224242310422960520581146506056841768343617811997124522254681984686547668710220142131832010087222585882843502041727312570970167977852048894911138092928652356725863501410468145631453840840299900348320708896676523913235581338292196177858118661880174583916243305339017722931140226638553181024386317600766470827678409604466632600872433519754943878677243722003734018717103153713347582607362258789062216467107165678522452329315130253283460831978598379292512727841016770790521984773202714251181892323365638683408848680561396239072215850435945023440271562389774515129526011648571574728018423806769558800405187766520104468288316932123069857111384090082614743718264350298420882930742007272108337263932759368650984868893001045540999980835548592313012978337344112039198626134692506016722216522505545071505385408502422914092501458427303506319276175577816804103808951704453876383204369945575750693538536734549664080092870472949327315694917699264641623291587433347242235802160012917040983690890024632350314914036493280085666197440094382008619426760380122497990453738372367951522551585119272266301632795415339125742437386627549086317577514413348810935738316927410801933357114648472508279721421312179200537218491499200765959627849112310116068621967394135365036800561657541413426368918876893310839351663722210509300550688517834257531914252125212034592428617970126532711404634335834308785906591785908503565701830290726389515965044251697305820937972524129840184488082771339404124113828665778288691405247890015399172043108880319534191400621613665446480308261382086456930509129681086989822157955157676272379311509932300518551245643311335620703840499645969609852260798407878442907953032880537798167914837548248800472019994410305924044885370125436035627285249843467121304985502572661494440552896864831580299298060565250018997725156936501525117959180115435074516843047773598645914677067154436259131284619778311491262969593424920085948943986688561905901960539864750081883149191144457805410655901671125828859534331540186912809067449523698309253958368690405093334487277890183957153683410634853175375366315975416934831064733057033778976050578304491285196207479887045999772769832024560692067905443227990851586251213802768113038365607737860889397151315731444332358436559117594893627088945403317483040234738281313063402533827929918237652825482547779512394007412392126248609642047005495013936325064977881096318757560411843877974108233351749423898495430359035152857219174777343297751429605289906049113491642410313086520928485045551531379441558817279211633973510080493285539123638944595520261356686137129526787082583831910720192663658894146445915504196744196735384986724894338896857976517184452152245310506255699340671119032499588935391096181280422399151353293807339478628758017485854470274582188984952444925792512797018843154436247272501943782901821554431385028427825436798550676782040225225892437531741427265704003227329129354566570206600692967206859204377992202908006616476026512288923191828719360553832123730484700296165520804431558368238398099656355151417769150570802028531677732282008449483432412286774685365488468458438800157528331210839593890148337040508081173613385523066418386648215232809700629781653593671171246843858943725794691515602061586948943033485389727265382213106076180061240103546055005058880707677154805296401817970991429318990049799685154221015507007072172651943777219425599959511681777841258283798448189851195359013097778541389980147953312061765433222281849033287870372012660878958585416426107410979044912420256265284776804414638655989634739776838907904448268539280533118773960263914443976408068441684299497152500457930871063002266571529725953108979134820586395941756769856529802887591221130461046118113451446161946402953531278196503285758435936269692974710095738867975920163110430767349223364960217628253512184987240946818085221017500749398981101951938509132810098969929313416054996910999006965083817543044753454441495949921325869607589436793777002718332348690255688972026363341835251203539929529617786133797891013815359545468150373437070398768369880847619113557136889864792570668776388692034569087422444626280047039488929923190151702196028847273773013848074197103248772646540094699734485877277104039533754407743208247671984616064562358533441246600807878993749151286091983874669019004793815783329446532013201411957949960092316263106173462788601315408496785584976666823642930279920826973444376203221674129034961880551479489026717095128420323807124215034380052160332716310865418244668822330056975133658154823600607185997032191480048904395722771528578863198063407678107046340520588467868059167852747268299040703883161509527542079961732193503514993448703846494445405542704038431248108749726846639812359031525510116201665587579853606601362516869255942043885924944968448963319323852019586959464823994057801068986975283206941417932684120045072478887175922094272825293956431451300807096911893089908999625174277272398803361518561585934998386822197363048703420350310197779272176082737653365778787319059077980373126239027641147330494731453957688473705361581710020989810843302667550917289255290783243597152523613528983458124360320683812734115128980861767548597315482763650900655250938555665254766736900763247969323627903775058015509508646481423551745738799794488550242492730965580896877737699411562896783137067545007059636237443657965451587762080413506476580054351731910543746846961465200036269822401380550242026834124834432996893737996301929428615562554345704791594949749468413070747915341754594869148858226692916425928918511564977314762668072745064078635475325240433525761899562422207293899098957659839063525859530881914168434668618453356401784300774748277585861730877303339864275531761454052212975585231711765306670375262561094134647304070794654923500382549887518259161788210518267201107290766259693511495600317728217231771128494291992220181904290494421935665121926656392307886581658467999610358455533035985677993399470635705990405206090065588650437701199883545147572810887529700907780637324349720422669685967821529649606035423432984688352743795902404697291146082970439844137921271833875119306527153306776615134971967355993536945786639964652082743513009025121672455803939040706752213281596415359421110166941309585591541644956802606729876955011247653694548899463658135717464629145324885266768297429873249486879989145817014088584690375723792648079192876903814393031007187956549664078616441608686778082328826721046611783398771566532074059481829828964370174581943544929086162592116302566869456538130473928649267904240918598620669472427954712424357988645136348589066589469189432092877862090290704797441915684255175719495320662075409217839117570996268794173479883985684148688975300837983042594824295658868490712195846587252940907390683973132989000780135248083721919011013712770835715353029545695926253880223167324116587593952234502268337766590781788097129113909458684017077070989251474046490887093595328066028235235617480013931821961871437203487600909663941250487425632252100806639455357376594158918573365336123805797712619230320155497230990291279854557983975822466800936216208650148382168104657759943238618078106910547777705794528817440784278040155788954977287153232073594230371392639486505280917480654401135427970099223740478705369599637897404123722441508844460118015111940662192013734583520794041630937604123932092921069548041709184908624184450693254824435512015562640168525574354151458045267195084381220647501449410780981693499868295948592643485306591237031208272950030918533273536623364577643916679855905979381394013250248531956611887380449475201727114492734255342862094107678304031055321230500462878853394848831810121744903970905544334796406967369096483921280641989080984642221546952375399783827227786775129040432204805598621303755519871666240893969725648676340723151251048138929835819012774741264301974973001493430707457542438048979458712465364603961279050052407046798980754456566011492748713109222440523475197317980397562957552143703173965494593513836475134240010537305800916977578888509054339056136444887023736638798774728096920402323075051950582303691164064329196243805200253650741539203827512004732892801791554579550318210993614497721840656178017603391077431400501738781915341483078707820991188899994947822582322454254373747735848838061151385256962238004379060441415817663262126257219444950238149548908661383416394645770697336460573315909402073044060043582105563649512823686715306475413691091033172095196862289604134363193145451076515414703747785160125578267932630465214726133138212595737399857344019426607945000888837235319304914549703989399221612618176840378343866678970291983095074100381978133098987150564379354444809473364176382770358293332368581161097974526631790031329658461748421869652285859293935378692507277267717202418698034500878083333592787217334480729345042783432158455209135790981001389648186695011955888300096123907726038375308776212337629131786200287808083929127113174948463062650531039238848998017362094491305028908007296511628146342209877803309942018878238400765566717867464566834023594192359971208004694723508473785570723455252287198142093574606764472674626882815779164471231911381315127052209096221959673386513282734882722502108080794053981894275703245097644282897218155908390267283028676828137465087503067418713766812351339209377899919823887253552673789003351269204603511670803933882871643221758338649642627318036755713120172095995620723889397094437954728478891775264632922777624091245830729129428176355730486223979259055346292127433445398435423790387651336118774253311370945552343458299010907466594872554904024528813041391983432937918292300652969437511757754317073060552633673363483683139640396501202449537589027700849280154565819320890881840566552271893582695380010855941136235332720264261427332007575371866583285262885824168316622069740897111102820327414961593379547069779280632496741941897885035599786504227534714121415575978468774231879022174014357523725384808965239054685235430376102619360573146136831957638672129596289803604491376777948034429114784778550240409999470749254026584088941936140680339776690599848409121119995604409051314895302561157074542241241725551085955168490452516490658496165967372341979116300868145272495379047521040755891233181608366527502413330991572732295532375903686202354113042475272481578626733477718069349132545286096751390659933660044485652194148997019717230368603161879660758818163910681249630296192897680392621112504165551001602260723892801109616034113563083718125754138456825412023226333730137853080697824765643672080203525152296639936959393510140469697759512702646498207591170069524049742291150177374211932801146962842345574450589345038236334383958196356080567110886722474826597277408818552160259618801513765852176664310532650187998996062909557336440688444661150383927420187520499275230258600530946354713946873304421021114907585313457144322862116363582495142112088764672707176697406245755635640448290524414318527239113491913056449523085348794061358177171387178294070072009618992139071421635355056503431874510408809691162924582547845561468508769153058292238685009355154773313727379790770244416324710260092172107998417846061176877445935275221161378679999035444575888725152020830184440137411408176558424186538726454203280975622849587772937112546760062607073301845855396804064487411310389331909382138033245311424512016217791774095902381513879950339015068697079495679642584774053160974678352836998806759633444020464024914766127053749797589758781843985366896144823531448058424114156381743723074320415155314507977440868281188119273072449964262821410967958834058982897491715669573743861442157292789390183813422748857457274557760908995013494859860026138183873171066124260836357825246725773898156988620378313191619409073002937765825924004354955338893236151463473382241608577725640518536606991955521210784585013023792445344804981666974784133372802341018371498038590014829971058372038685079544435614109484335971850376090084129278586892171596265969596707832998165215896152305063696205242843814416265297505169424509685934356693163503822043782692151076067368287167904020538811928239088235757519735338052050021003308127109813287484500170998771540531605299236529400988334745305062773316870392785481621903029430794607674672602437233493964563513982731468965652651482994754302969557607400041484684348635481466975356164494346957443632886238158813429292102153280098565991638383789928249027891587460555829020129024831852296537487859800060159994971413181263651461439181366115004263296221123154073367805563515290401891384022993297060552529289849497929377415049575378540716452596151391195444916253664897899635813951992753429251534792816645067963327425998775556218234176649592219600324325356819729297444659695714149075600477363002972826707317576674567830177604851542997985399984795239286709440587634287355707204090604245406977668513602385157279826733958151676972916036386885844250063639889185952492478883725823084947399125672165800958379917702182928734926448780218254719130911568551485866811881287514534843814633152601326900715333584634428191445039866756290221056194140163889930348913146507010972411921460777861688457236883447367674351513250240917289577898058237829971683683469433104735702806068228946793122691806185407829370141707298327127875943372954350593569990182013895271430505854670706041879524251326925202786833270836095378898076456244504731097948513207925451004309935512740378765302099426348941747783771041697909203856599279075381112728023907399081414379771149484127270844780641015620310450372507913992693304680530342259384950115844914539821333718411067019071761062987705505484951246945542701190478646323450641185396676514733391372388731016150678649143651864347501604487740675419758122268517855170216205588189859145431544682902882742450165355472183435353071956116691220257911368578679047377745915652628389783103641262153263784997328860990769083248766368917452836297894545850434411583104724940006162545043855654165330519401928417067201665701995911193798640985363264121810347973949509554885085586364704418506595381240890294523205523667024348318836924718680765293248089621081252431337857783135303812779564944061432542855014464589234619795875899162992973073281162746881964428913741701309947460211250190294186425598857276503630260068291065775443991778598916977503895600591184275754913467720813538062663820904346981308928335547184797695596436995415470376271261832066841591527676923267097214069155335638613059403799073710678001927778014731501605885590934632719596712725092504572123377261299105949891023429783331531120575278787853597819821596175109969867865782612370170322539876343390410038263724380282145471609363228885485720604249189825124808834648471551553322174870125903267451879942963441362523392667968430999468480886689771687152609017072441153894583585380201291548938364786732339287722499190872430956654802796178520378159531280961621028480939283479926802307121890580206078519936964621553183412172820600947742768265498953349597232510780198759959787189422532361948271610457529880590588039791804970375088713562663098973656798381409052267928482305294667239302103438790884887640505214414055744868309642889058212320297232703861093122056896226890061379596184331144498580362973479139663949249644766233386117732096434659383529908067303227572298260680161153688182787922280968275196545652013898013221023552305827582513240922231251107767474462028225125316354161445958309291138396471866685155834097672548385675401730798149363120806881657506650914160348624084568403616005456748194603000963285656353232060729635362818979376308674555092369938669378402708988594411912792138170583119167538319104735788308572788693609096042861206038870248075165972537730287886297657008414396421371481000413636612956270367415099399715605938468471564369236695856476675994120306060386653447474063929157059361270561728608196200025511926764814579202707573943311291244465310684419412997629093129328552579751119162934165603629767331264453132329021904246954108788956634382255415048291474256539670390802712103789452835143027327185653710326749955842593675181051485495369456907050789401107528240332255495855089357626695609166908630189554105420221480368889895794347052985761621155224583726613367104222606535634491490725763537991687695597621114805417845703952139882851053490646496715637976369905270180592003538280097755024524237933603808244666627682222338588023050431612096827837619270245538615406854440926883842203690550567374394031008666709556430378454253040066724568680410640378012654628420465106087480415355809485130258200764235340327070335331096660405168973543265465195844630711629819700499429923580223399413882789943213686743672050869409898348298568969186063188786469799139823656399962332116580707450783090726999577412868809133703499229257311037529545386307027873938707817882531649450817264866186880759469627051275791478660186807940396243750782349377927756704066802800159683359693750421569364480313877034393664724062651572568455888754367200633922946960600288627589710810413156272883221685619712012109162534896406909177629497043255554561014666670636750951178372724521716219180092566591321003483501633706642237427708767407938755766405726568078170213461067370023384632957854477393858401045611290054684845963448472415843173310205620762557046924789052228040872850566166466289237814321965802732561264369267881329064966303770316694009175862274067087162752587715363935475213588131104718495956894686831455382835989658638145229002246532041483000953758750843706754581130069493082479102287745229375382635313124473130216288545660665419146448565675385397309033021346621449998224911907369931811870947740669695513051366680408402264723536120565167788682184109582798191469504655424701400298892520320633422724410964321961551639727432773465584877197432191045930544640558848234450707021741073177021822244423996210715805396352167513465011561612672813366221567295143668429896083446807425662884116942367904331114521543638300202493835613815360660532649513028287903594968392712728671210365758538449919589345097761705566835696467510985532725611938638232312172709483607482295424179448297943699052980222467637845584095043768908822693397192196458684914964629486777537927867084924177194386179709733931038359040421063729719279008453881103966528275585436916223365451679577340258000165565865536886752206194083656467101099394459990803988134561680886387831167617552742796945851278305358449363509997022313856267840278082179613757634476037814972048428186719159704305572289763993754949930836656443920996047482439373610149226763472291141611998049127484208334499483700594937132498815390260268017332387549730840365550219687269902080215308254620764784051309816220014246838799442624750490593885046336340354387237910913637433647172487580365580790943373327217556483024302689714790940572988806763261656173514893840758096661726118841435524533275306877535968447263524179950585591549618878186719333317211882544163612434843093874378276209227273090881295052256849663790531640944525152182530738681019724250147284678980084093329621555743094263998892390815308407622323616198092482671239580790393303787293367337567836673054572605282487314109332480922642061360405520044338090072785591526215908767890574366601063228825475442981677435333456432001567475113752895250539435370304354300155636192239525670725157433588602382254742338654927618881232254362052447161722318923819388841964699331401620550856791690377074742672012058308373830068178141387541404627738605759017731446259489042465686562110162070373358940481586812723199465920855546975645071887507200069321809166731499132591715214219360134413254266755582488960965525709236636018569506573278693794965429987325708838791691998792066263738669466146378329586362499329359861891298781127135463993113092737563076660238915414050388445522533440667125520084539276292717421416741366189772128801982065401174746249901926380435538712848202386431578020975703032048024846016625354240681825613206852664643178637749491541893908699470545825160130798305194009493901613572012837240926096896198100068678579205068805599001373482322211397746133254802731269509334478778769972847210581491959637816871801842927633635630324041184081421968258307960895628304459611502321411093580153229530880614785914285969915103830718463569275833178518708884895114642437690139207827563059647891631045117099223983547214959167632699716508129945730001414651694281787455903452065664355499941161090738853373770207780252312485912123653908061390768715000599783167470122160050141719605674870458483401348904343245698835130748496656677158776437136854793054472245657598961017645241482393893949440183356268617479190035210694144336348997952776023572913267919789448105227488277158313905806833697768036227729200583740337958815827909164627083328330966321138703469400203641919992754241556632638455045846138399766829501773620181110448269891568514525987649444561438644189559738734050795483563283624974294833249558254187964982666392846446012298038696463569274783200600722660311529451335230694446980507008961718789097063226045431529369309205277240841126093102305220532545863590711014504841945337533301466209574654600162388983692952656221985105997234643030391159375669532198799169132944240684581668491028391119988319393005080405651211450826487656275363856945606154317834698487736101868365183911987930563527034430818848994024012198571175927375945659590843390332652962785744279570374995406400961456771296853326158210475588634899196140214963778972168784524724007453660866133450287470927284541106019025489774228552312038295416106381553865175224095790815232013582696466277162526349386653212769478314658343720444245977171269361665069826931040170768141818665941467901283453879455725612914623702712787249500533346369697741183120017759992370413783095657052582281687296150310875477080275817005788719676031740679751063111566725470212544148800701642882910780821277959232493109437536227308784142636560816191376393823316541758947127962949354746237936176765337460713217439156058984165627306544697510366728405186287438489774279812893520620328536473276287678831898698507877675079344691218529269919575661343579257273062318528014058842263776748194433559608166240394510754392258720035324483727530621959565765526145799492459689955361971362453027345955230086842415929258662876657205798432488036828405525920290695897981086851325869075601597196787120138647150088715707614481213978162701699917606909020387431715177626189327531267353392816870236347944087492344933251554957840785185813751243990947235226400542883308603083293507250754127508384730232829988280211166051428618724998384584027563406717483838681308711650200742604030562403672929543086762765633309442890807090995893165496867013810994779232451694469626576745813961024622592803523840074821691040319519311632384431650159379547137683784757059818764732270604945778170973104882538381264031050935794994251855125204261540794319660855965717320739040157069596770512072036909001972288924743637964533927252280899697044841790234525993107886894002081391029063565407329912554035373048074453880284896479177271674682530469289392574817769276312091992838724166079566224817770811919299559141985239950487148044950645186597274868574406442973589783428547361221515006883954476901841933010771384474888166732662956092631631328349543277671215320469882804529482264475421671133208328808398998438639531618698711817887147131297122353877241910150515727356276239824091695378723799987762809422121646038979474401335983236283125098586029280259864804057092863751307884625079478065623397099508581620346331686497994408382161193100299660937525002830899098701274182987835099230610943346149541222000775181114558971007330478489319225725295339057921754267504133320376274829394913489745280276292948747027589799610296467256550245450479098840911526591782246363756017123826194565361715648272119521571821341937769814103470754766681671215254044034328823291057109726935900253666462864407318439083176816772570824787703088710639617535538552557813062924392176810276760536143598653379399916832354379975432896968007012411348657642348705620062900297545580001979908361617104744549539542722645607684446604350849499625107534540600814533003642386224704137341971844462695235823202480484920068651958114734310747591129502686578297569033022716892560896739296093015887595574873475040341257925951939664680989592039015105642600868660452299813659616275647938046334071326119704295604406639322135547433693533677367615504022672025044016586171543154352450216276318462964223501897785365005783919568730113523312006971631665975704155942375989175989031015264005202336566700966125278215791334123329454415075300296622284263695879769471546961994023137078720449871970169567709079635058810277363942449963739358533185722560434653684258241718240288825634093966186364846268721986046394614670070250450862819614839211178791105276640864190734373170429955799660364017759626154466759018965898201568595543511903800944654798147721949822272464563048146449142456508326619807459836590648307686992769330746477339212182421533050481652937370868403951952625914527446068096151128707108828318115303842178382246935119192750788226794319450642924311114330346649613192783749484922104944404592006449679530858261687385550069089476098245153506475944632134639552736231861097413741519490705973943371735836862302669480572946723400931616156242681964122535710081935011211978138073909012433095244885720900906342689245776397655826999135204271438740693512038658155480509717302114677884876524522409731519750585335523209873759459011342504812444600759546950645073128317859784508467516003426097411697127361636835510877014135671582001725951776647681855611490834874325711227999857119454727027170711556518639566953962912511566387947034639139588921066601672469019039019996533451738605057934412125901201803628826404158655212023694709851060093637139331806517798091446788664100708578020023150219412039231524597927392421728190324921953130961656332438824579975911136001794590042387342256602132844513634704370314768402771498413147427528820348292982752201135376707571525244751996028713328165026883533240529969291070944204161642075249070821154228678807238177077561649058790441662948505049451681178017078568324013537818273852022642251945921151931048972459625153939389221618908569547553405062622181097115058561266330679680546580829381112976602947908816535604822239257567280446615236062765103892181272563631664913462965374154679593619354758599290130670660657976373177769791984176349897516338074480728743300689927833889639896475102400529513056907920054002329203723918487598206068437456706130121606890527107384923278039904877191702311660371063358825962100588122781414469594506187534158318726620470602076322524821712720073561132846722306029241272299015732676845060992995209623588569071034912684538407978052312934087042541662156365600097178319367785225550389910696092670048013821086618040754358208810309330801644676141503971080070182466940699691629713902569841481643416932588539043599752557901771608777796643940960900833598311568414421258133587905899160179634976430859603057684921791422281626384739413608102252592408515630283122722147986256362570007868694466212159685443458673970626410991494860463422067552204835876720074375479294361006987621650466992783504585741065397457988843658744046901848394169943028735059701751277455257705007024649979458668421259399512098325422983015567390781889705814911548813518174040480424717519385680171977276175932901402098059001607851772990413317935778536898405883852043757941549917590464230328040254688540088816552493300435318302891150458976159157945910005086850563789845318225923071908577876219363211770654923223820803592654036499619052662062867345973395736566276144529759353731105377755174841942145772562165496239943819884580443413450338459058303776525097415306448687106863953298549332482854278620350551370214096407780442449610351951379158677856162995996862880994013263198956003012869922954222638424009537623051442345683357179363636549348586527395144326023212934819781450068684902554757629721776886107099044487440396127328563534856108716030097733116167242817158564196002062137204862511092578075720883602499174762476297601418224624487227508689527640438583160369460358685837406388063720515802128484598198635991106597095355026805648302490647734103205446277879275396501530730953239710962682857749359355739290850285757618845459598526398465023731892474601947738688312343268091863315376657346245208446241171982407711568001524946515734366243395517869387666240353150370475988000202392394913583457791753970288595985589808983129764918795052866860030870009432624631783448018938376047906419761517602150338713191906520757471099925737785739855966583398028630262180282876872440829816283841549501033664396890616892591232857632494259383812588299161326095676711010567845847021746744810283879933877405798610455676740950067272988744570064528791677037443856372583533315917516318172561902694994565614360246767304774976252819387375013647440894944243782958600497187801161870427346327688986921035050217113628909659116650635371718622172348803615711391120025850178295977314301629224547513601617258266385088891735255092234179958275667743598454056160212534329387339456326852955267897553657716941496952907771254439486166606176979300611392906058300460723733639753348759420523208532748416410396100656899604179455960373289669363314554826108636588912858038944594596625766496764875187834595119486044915048249262059733770758089610965487454958939769629727223255898673675810674938492406700305172909151924320674462856995501413691726967795267609246459415538719725927536659315675685586242187021868216799396889502042308358975141042847520580456874753115497159222610642380563448975327810429127390890107836697793442594154439759336240436586796507808883736265093797657976847553841708260592161768936012079072618198878110619010734673298496708264456454453177283511337009028940027366064200840890575335191654923833979808026606278584400082930072978877856306355248517681266661793869528994793865813991938470158052065021242869360885379653454823972861601610762405559960184316203613866736642426879829024475824597942120130729801968765490537285993927769946949658737551134672193232185299521707217803314268407845104966558898391248040997631714255933111164540061323045050991028702104359255559351831433446268526129894238112334117560802151699245488494831902109577731655186173298514091786752438421431799874686563298118651871549399152573888508805630539317794097558637431242221977127176805279065074051755604932160186572080527402704011220189427981219136535325303188271718533309923910281253718259325799935533187354098311858487659554727504360217940930574727668971643825364760262375547662703833248351628369103822403956518924140242645670198870985876180908109817398947790067215066374812251542370988930762516538690490194153583217909089767729082706193335908102780824648250359291778806822089260829627227808471252164515625381225736565381371018959913464613999851373616462514654226505355202107119400593413921197823879918681776313282347066837413231134698481881007974079268151447686018876328599870235442973624585951167116190436078477055537595742051464990728306929508525048880826544062575914331451618001300628928969779535640086717641507091091887224271685001624837781924053910630509811377238837687281697868415588046963089060202515319940855297682918186496101088781975042236745901218360082617004012930214493920686677929717810493713277357720380049580394606914519456122857777775689501484901133386826605504800942699489968709585105288541938265799419459640634875262268616310756846586658785670343513142585640816058793679802356592001769837139820994445594459772367265033742058955912741191030296294750821078073150416342237869190277873809362755146986888791884761677269271716017382819684119458950700897243020781007886696776735667710079671451881476198792755975122696925248280502663849091711711488502376270195555804204591284693380872672605237148916518107536174649291927695358981788279286248003504331785435094963377173827902523773757111706573213356238856937969218598386884917770554512011993626916881963643967613713152045541982088374400402335004456231251414596943676891415507460443249493429739294652804805266697306893868639433044664486479998074807730764089261155768587950722796757295030543691113319999283366592023058408654213033589772461143142657969593508409276319709947182491814251468867896454583077393360656716342634694896799007641481057149099942014727715729455791779008202406984483959311556150925372121676185298680413209436983608111084323010974868199210903965197177209133530481775071272422301708864493526465163565919452303142311358660134341959147510651275026019107102597082613461437523440200159820965982827558997242636975215539470728416352195327645616436709253718214440516413638169414612072195867705065235784709808708676805629901738606315372738449991088917252757229854815416505381712896308418037337521000085737391754671009849899196015901696770325382703986372696487993775782677966875009157797351741158187702592978548084653974322140644949233274406359271687650839861976406281469885380860427059541023137389642991071539988083503340631498099582773427731110615494397501597207360469385520153876369312742407802538680145286884502579178860794575627006945655639529052301147472424654257690795740442060251803059157306820079172317292572875166938980319629575541405094163779533274930993321775515442819667729842008920649903191645988598821356651033937521251263003027510397948873301138335090088194152832475632484194388116618603816147530746965667894571603296701476384912886061342700341327780046799619485725414459573745823448444593520854834720900524133576367500952483211142896418061881945041086498305592164454457187508456943186338277743526101046597419635499310016605684361556626677692548520051286868812626545446135213304265251223000411101009669065541966294454459117671110389217674428831781710617751820328857803868285138270028346036651802961554888109000066912781831227842833475016530376381977873084126943108407596285422632536003018256655529740641915892362172232585601861647727839948766442432429758840271477052664682442718983408466751309627874497754991520213758657022699732947788546889216081963174653907663901817035095384941541412382949427736514990069052528722774503520081668214608207269217014594668200978062732285103694057052206305816844011434682256298199390785218727189763583690396292349727814739016233838449481558991142253425377034324299511021265388864184757912626558808537561574281092161088769113113451839198954802061096355252685121013083653643065853236455802579402373965121149872937790809997559490710580058635490606001327355268456893093672768534533554826191499806152887398241740153981774557025253980668241541833385475314150202107053319645718229207709757349212514744677979783870899805252944311886865106271947284677697224815006817473895516962429208292336478996427840857247853692092770083791762083991183030383002281792820160112215112450396225567547949781167592705197308036479970457303883675116524527725791819721409077886476949009523984907017228306775617731281390040160104242646238219493736823666869644838021859163673272501119875805813806490614425473476605760488669562470082915556941367517382414830156647849827948366514831576364787824464351134291652356438730842681465972990264575608767459834213712051550555394439837247388058689195255985575752554556111561232206806386283368771189713012553074167983822223522705425908601835728808794863314894311940737430431756759623797860859816981051586976600301783951691174360783537786641960233531977344213579488406191711837385826334355848299711953356643357172069099595461464083940473730447886571446988435340701691763018626618829416873339731219000279241659124227382136861480936122441643349114496663314128002093936243450287081562225385293560926119397116580841667586436527200386725016197435731057478367919006778983195661169405694835888678365652402152847504225590955463063521485309133024967612408007220377274248554637892564607585095549357775674887436602551963288587160172731526297376055657901749605336665529135883060636257163854455224392698058462936851719923532563952851671553278495967310565612888603667598905578194651629079045814386249328342129380202916386647459718414663534684327601964319031696463711912054371511347156280756827726326727059495306103782358559879128482256213376667802910664465857995741850974052537194810047765029674318603564098161453762945696419638344227523139686185020775636062751465551323651473032658233213355974731876552730966933000509305219392284005202649909736511212465461202173213639834818110325498149700276022624810013862651013466205415561097022229258571542513959806199437588206338550525201368483104549338643996740717926984301813208988540342131038992810857784320542772810287129776711178788594598521818985180655049670020826738897786278663650524037632495760396162597749762877798485633635144954947226264450747695201068945833961207002002113212858400152987870215753490988320273155715828557723733649772315214386268424054892886532090991459560056617434360364002776232541691674941881210737830325763701277243861869836892584080090767894297291466642656594291185438412528619924883838543288637610762198018550060807099486968688502825670154991454517942586137220278896938058546115709137496861813390802924941602002301874075668528652864192535893495141877349475259370984802676591969642992065371301037052538526475609699128975533914492629377275216857174976476385477629617582132836306125390972019303409749067768929671518443182142492730116075611487747273623227716851091447941067860090605240697948366680792579097959561782674311505418358896130646813632242252443290224878492026652899331802897306617948581558125618965687253850217820450403595553404487155094248857697133638296013310805043742780242835912218957844605458482661383251090701531017257520075055752061484339572739283686049522828513871496645450947410565801189512994340291906362448821962992258823528881812469633907689897290863807505224553992691295040321046669008591379618597014727968768825607334810369977700711155337774020873187661653008892759057997365532975809603640279158932794730597109657585514185443491053681388624166319090639418064789871592121042186705128634153565049858332493068758785926427516104435581513837608517149913768267020127228621756590718080778428941644559060098585694434157557492071231486632311594342160586563664572573182209337133485416039811469122146527602573277006573965906084791257499522206668137847360674784355675699795105172184602636642491767893480798673093569788725875139730685170297384883672699601138342783559041084800718127492769658675731533427239664545032806457262044384393124956334543230913591871709390258688309119738584253432578916868653407082420867317252386069740909533763539016122746097755189375152001750901977477436443919625601694631803322955088144694421145355979206546727267226375249716756767744270102743216230011286560693671092866772784484449922548381723155292464370700612281055489120567242350563677664083055938692166793821402968271310256065944509060776684104788443726552504598134988325921127400255457485616988938197968803732597412521963786338504605145924627772554238551476262018843464902032186349046629577748003397637466980081447746907187429387863358693953609924297357043252812157753195249954256076785809124555348454842700162099713351414983676234940968461217553962395668802711397166540995283301098673296724692635072134757710545274393055551333902634904950992823916719218222913104227868925823150692802798336117719123514404682307837776881691864075342701539017019450612654646140296596025137851731465104688013781917275324005601908066251292056337134395187315040233153069894894681828670979303090055247075863034318541003177922787064016534574833958959285869314949369496511333990823886163059194143934492554306206473393926143729079141449562077775657286701484246221734262115017252620560091135450745342409824302530907236271059172214094371137038370443278251319400707740869851613966284914981854984884384238770306717896340144338918229474184092177312118971453852346467419249295489716034896165425615563606240957801035819743816227447707961230608258744161004929610918620963062523305994758094958454266769125946596539252115746986348713300747008068236134388026282991115029953753037632106765552149813123855093728678011695218881521740135437872317112116507698307455135518984438288459315856253318007966881010933503102717481226294673912146988487748976333245775942255417752266637791466775357126709661979071817936561352466226029893279718181945876403477276770446709934301885627896274781066608675227326794758168374567937536733804985561459348483253993151392020330591301891125320106927287901905766533254303586763718139328999356813257090670627578242507173019763155823755296374810275569569767611170451141126605754467161009921159138927529497910660808169877070313837441191684742999358751111025142760983560385926000283801076605964965480956609828778975953489738863785198150553372117300763362987323438070688728999589071377355093511300015213111246041566065431212083455219110297964555022235506647305864048831345305493785938205869257518608482632386198782407606324963053691411088827445237708773353847468735447421383553005592594898099842056397731618799712011526569543684847115032070211186142213013747477961604132836908306364128884901942413290504702897731315111976909638193375034187940082367895111471344430125684943842009146918332688208455755535610701601553464372766946211253278799955192466286289071428954667469654763654375004630229321919638760456999483322077372816729999148662299053768898889375567786386212408226717747799966355494559086963930036411727051612852590887257007115145529907040658833345095152653639822451275267386914848618346184016699153346612243163652886822944699269057484523666758512133698826639734700941410165539989870633973833059474298111680762372496680236530810136720015967415100887463992097938552729435754417973817801950560585469384659685419084898453973397180254111220905228346691506362860595081899923365395355600381140820813191624509487100574168669560676743043266893325392215199539409690385731687505161490799181597254271708966312477099564098932058575372726042501054401069877409642284270801854833166066610135462780818247881622913663426318521785365038027965173240103134375257766702376917542633417741340470494032859826527443030306099068776789094108505199222497332040382189137673048155204884264353474109934536076155077044575343046905494904251305592701205368697457501691015201283439327445896518184272206839819733446247510734140065453372780041894906334501812933554302304544144399889510878931515961332763307592347273684773313376612872456605203690786048412253657775008744788393543904803504214510274963138902909701540512627293409953746952430771136952055737015486628756279101467418412451150719285509628716454145129423241514734272896309529313376608553854914977287948008270031457094539783111284586517557531469599299443270998237355351217090468797493747053016078667172151578142392185542887767553852610513921047935911856738448479227945301677367529253375057146847172193756383774449358996262083891397655121993957271564080759712095007850104723914297722282637299660579881088315936440978858949599685834072218288065829949854759868698095975640253246672081507085123581720729524089699259175799253871493132859664111525703076968124252308029933070055191424553090319257085301193114552761159957492243428812929223528308454392791588306724915544350923916050412429064199979449468290259450829765278115134802767964590349050345651184652044978816663209020409065551117455266836895890034625640005433354316190086108927187019305589395469075376713866347660746229268696568288675002985280761369900195278410300071728973537444362409619947637774942433901303178650311320194303801594525925464420213296256388744053715369012668508991214322462566992663408992949398395844481892303901169000245251000338490364781545085047741771526522058806236316147583985668914421175580503618524773919151931541562612089506191777619003803578326122626091434473827334705593895802703143113596508185421757026569714673962761022238881426965684986654178117966283673142597546155007116586291321640250259555554026562737221955860342782232118232883547668015911635576769245906534393167972333800538643509766585386745793179019245347753177046927406722008250806069190310109053602065452383333672229688847898399301148611766978247345586659987633052685263581893776746742690538120768788089379263598894236835076472252029046838718909747311705142915354803705160550411320684774445678523453976598366349971048897968243064984071086538580066052732849538751729057607088022756126231572197246238815240765799267693710643362233557974608344137725478472169535835986174065168093045879920864464910486646140458532495721706073835257600912018267876426037806215344403253580276719080039322832954588094161916145491290079964065100301624448694559070961907753143631244194096720066101255509925752882233210927101845865712992225074108253442347545195598824375561155181254437523829847268146113419269556357990647900857966998293023650373525610193407723654220959789849527239393998305627191308044941532227705084984628733458801786649461130879266789558018407154014813440844821156390740598022143165623437220055520579732864331737749962887126108475660299107394411293682788638524164992479545398333957047291168420894881417466601977459895113522028404270362087279224703014517622545090040912797020374689490547794969282078729152670954922499188381460875242845420195052233798445204822483813270844367211623592655259338801716544240184765181837335959130984433852839118211046503468944561454928558549789754554178047124113324803801467645014399339481414092222044297569543143852960329971927560485018700999204617254162407949558971530272096245978249398302342702200007747581532820334160514513110019019767130760294880217699369545238911795680763051971748040825119526640224059369332642526719409257004641100923284045121634592828786872050622977587967532191882125792828343723491030654202572544753671630745683790804991184291895581103229816172922268948195579881449721420429648271236314288520054048757201614757088403327870767525231505813609729748229710249981125574258967046754253605383617134400112279686991326790843734648639453032017090400024921405954753873834360193118440291889009793957636641889570167241018267231287354739617708478308381837439049523210434562833511202697741882306660649404426738896629031869825697607178221328352894124276486671765052240016199985613398060624989338712901469882957831218022990750677843209839810939483802927598437169680662505911907968019408246940840127228523554873028544057402039075471906612472607069357803716646421836259005233827869005622548708923940509264759622344296870943269861495004097200374726669634959716744535590977077177228588827208121671000599592677905498776361801164654479089045358284760329093691629855741150318298631394934766812311342313180074511764224343116507165733882911037329846778035416320818196497049933889599422258342175890133863855371189022309128193503257370505809622328352819406200187298325371428897523319870096240513571655193664538876718515703937026037408719651002593651261265749771192239374330067029113699967401904640504878954620027687600015454520902968419878755426396705375110803083010007548473409387104505209552442654114234114943269160045174810172197419901850423125905165013497290229112518751142483059235716997195014610200235308967075965060949816845032976626510587026893912931242343969385755884434359264710256097680476253438138896941232034906851961026461006321085020325377441987040363218343473947762379147395655642190044012672824747464788869191543676881150696007515304781031478141825983309674469241080617075309127600516896632086282835781322000168506684228350138871532347929243208905224860152933777568288441393803529314067446834761332846500135211179263234241663312819448253635599516938270737015058366744034368281055623485863668813996468910514551648620966003398414948015664467772716132204498243273399027341248469159646316576078386110578008227409013742290890079764254950458249919761591485714008392909169541975086586833273767427517409280084561271502183059158236357556407663026381536792950288078077453864117183991066819080541860442035967987503204532457834335839383551268160285074918521585416466427059782774148065023031751123212682753136741767816432215772611038232746457229662227969376486154370619735307107020904071168