7^^3

**7^^3** is equal to

7

7
7

{\displaystyle 7^{7^7}}

, or approximately

3.75
∗

10

695
,
974

{\displaystyle 3.75\*10^{695,974}}

. The full decimal representation of this number is contained within the box below.

```
 37598235267837885389221309308959108170663338059843769637876671028620503749437009877925935534580551076982787849712140205012377935385665515045664751687736249019437077979989526456436651735516461110172819432169190223389490833141266444067484549869286875086025837440442573914165634186609560836004707647450946031746710973996608829937416576537257208690298310071116917274574410162725295247008798640800811462560701130540715544797965280030970794766710079111065508634028414357983291485609319269091672822706839259930035501168482516826006984916980628849036212010591092386619563462520859173216389131067348595319893624540098905611598220793226914448098933082499654302297555169879717817147184694067855772906737929050961640480251695675567183259133678865898272084832338236915739671163576547612773766002596589979497493677967439577151100503188883690807454260803457310725086432550877863118228561413179632677414333075216449867249474296001397308240885653393519822624475342435725374341279884684875483009972204145780733852031408910758971355636266835050488318921358179200955363954559376438111552145401262349285314905193610998412556920520234911192989115643095996740291621674327015296546598819716290811730019709203480633063071248108842316367354798294473974956173176394254711878823811733058331018421438672433365150804513932361153142989769007187393572558902551868916307169092118942001269164265240484574175391017623068696343413764980394973096841143100822478623013937519274265172680827230048143354152204059379711399562115293942304780398779212144300256259438760096160978863787176802168684862188936882987531866226775530177864793298099029404910669695257275743700417791669389061752156101561452583432537257319481109373037389991700899941386774737243195561982889600459187444591489154135249923912323016850964934456466670807702288531421463211249422552938868045610457916387754518435036419287130030462362198946861279985942577219460382983155137779040641017248958732674332451901281446847224373853247176726551277769704561097127423227825117125331215610500872149556356173575542168441602122732284498460388324052230060142816148997746020886114461508643925963746742829402297386574358476735246678208463741001524513215295147535413082894396927433391348454386457925991833788384088195542551353241937786144822702875928658203895911389214732431991741827653517594558410504641674457508302701128754411653552931105507985935788582002641990229115010680107551641416369062967354448252435311818542127736759793234026816858551953474107121431936627418215944447537967984965805101146276702529892630539276319434133703743145423663449470066671628375240988285322316494093238189639658369990017533108889119387531096504967928561978789024198477844139199352141362126721454263750937286183381415105366384471220118920411064404075779163049402920638718981942358174470164517748257063932138932832341357271317703656307688864687805108049580338319205785067889856984106233936094071685785047801351550000011117660351394533022835188061756138703838503421745094880402068057915547181511931833317852794584927901729664200300625472211530085558582724982982595024167045658446346121099873154448878347931946626410895086196126807807672478749430646155614933165790168049761446898858402888570446050455169789422637331079586490694901112337302597883783173706523315176187873573651739600117884743235992520846953930857073985702051287745139142090135085995681755743946660431809649858692829548100958951023887375055844748255483238919053232063775906091224242190589187361465469733555270330755266833907855255205153502947776364559523761392795663627112736336865453957480420453976674240060812540588266116442639253177909652615217728897689487769708599727492857590404139163573477328835770041628385828772136498634879531789640111065167509260077331499999105211780436697296828917723753973759793600861629745822289882538263288393036879085738622835219548747059631968545442380063062732874065164273486246650678598976474853654694957489143464747160408181809543148750622663545354861776875481450225702648349287647134675583440444007229453442997742784632081895391114809243649657048212903088507878945536718189120904013476455816604145234324337297724391677018523205812360701591692726863416237350815698462232875821468364089756301987548120124439840728919511606373929431929901015549140563325729141511853787025034836889545883742942561192087478243096121457988633147139242954419836002825077958031060508280402458421218989905756142740501891879708883067605889532786139265806474905044487837649333657605747750376744392380799217829428221081512249288593965053683525750242194925675114167548141467832223458466178927815429042831961990726269901464360969490133987288752863718822653235031206626652331048971075187474746201798588456139505986965130634915731439567438600346661753238356301569928187718508003294347528364586015942487747892897531460396870117662377412197896182309610881981086075870062228869940651287862848053383583321996006158581387483633061071975762848448797898223951215709402156276434371982547336156752467794821550296491156114128878617403784257820707866998084179388922427082938064678867923209140092618971070079476202560814055449619801788259056085090416326779050482199861770935893135027645364080834157829213379476853080681979597142945283357317810494292732383718410922662358371810882145052688630169859267043153545938501774908637614678387758357959862489974550394329876574729177114232020182212373940988959954584565680534920598806944781532396055411609725505941090883589871957527780501145998412494340188533928417508686464590336851907977252130953645808826699397705559258152899949507991423468893635234732680934001545087479519872060650324537137744247371790199604381724238396336617329429531770797387133248037370779208745246534899022927895606056561982175297151276526509638428065909209642293547070444029546819478803118405138620746636428695598309533139914525077993060235580855132181417318730573755885511626465731515156749368636190886453911893013223793706050844130199870601397970788318047448055872095216646414991042923815397515401886547943551463903577444537560463604183292881349997152635394735754968436487239143281139840759678328142873879256641906607391932614699734767995011106102608865424751809332526932512474015141146856888857199575839802414944037801694828687887069000327058281112147386107730157762148207164005931803057130614501067882050732668856411264619356047047713368857397071250945139607090630952906964377333951905873619775501384043054870991144603787469759874196362323022364443367870257476644278028565566895550782757265084065160377206261491973689157369069432468287683192271107134584208943527321462579934145532788355892219053463572486005401011975260452882392800114537735543756667594081349141121849438846866425540454079233720342651960942338346717393106345472993891984747155004871394437583783649814435169143389542833958975043845116691475311866342806200240058883284500858623082464240116500788327452000051805275537290144035493227334928840751031015103585611345648829409384852253795146693109080975328233516957204867851780928918438977398107312430217952876723566604900200975655261639687425904117504562461069073325911604641650799667818089847673813248824809248925527442329338934018892835786428653128650208424558580743870506425460892030535466835715628150470019723902281153478489245876401825158356062344502652447317962538172916288851516030337556749391937552497145719709857237510234331589715739084022846478954074898314042998540391036553432281325942497385598107754450757303604329111091008234721883205296211451837224645714441638364386689102253340852815191040066377957700032987729012502981670365154513389778180016274458148220703407619089819205556301690870279907678579042691006920373420749043826274489341723584693637432381416632549629405915671461053521580014161865562965520210980219235534558372272612672102103169170222204057183702494852735698903118174295395766875832086417610882043290220937557029403105060747078394071214122808755801909625868475976240574566436977766088615249264096929142847007237609616740532047471452361573845100952545648556890117345046538937912896985940456981554100879557928539236228673697273446479589468753071856265469122431515406520941641913082839584141449334501168488602628785015027517053503185653757768203753158958152966875026137631227707495126000363757328649566264625281492238364068568880967512444051305604772984714932902872187496880085656519952857121783931955948236635841143921371807207465445272294956660806238652197462917283922588484104979491272342293472200782730431309533905232918353141733975453709462868236291491249209470831731645402154914998723209550179645405993161504614223297118913923996235081331083622763040970018502428003914964630504000606405281204631001892054645215049477918343652961242958540837416638872003551626255416316968580807415032040634679031367260295379844691506162090609360609556244046058786209094064925032798475594266031617785774313810147931412896052254951085094127061516575149013671713604348879424328465509745162869163539096149414866273311539369754567211598409208397310678554294606693889926059285031492772692300622155233345354366067570430355069426913375957936348880556034077088482607300872010132668696470552101929011551236456859742050737326090787276843508972521700700279339664259457253834149550344995316432246729569200900148195234387448328679749956740235213187071227175640255235765034034088112951274078545418622417898039078055313593426057085596558417168248696531246719846475884264335375280693781693371000178205713333215482943942929042252718169460213783834259451192509063435559386409221607468472262251765583790598073821870255612607111205867918629543221863967183798825777353983948049812437637751271356572101458290690277982365838821164104076620029575323342077218749440835230536657300646157129503727227960503324790212405987957360501740539663130470699642781225970873136548236617253013172085510095122803405507089770530463600178572740851698679105156675722806607317791791932894357436002933772988287462575650797514534742280022186083397780067115002424272964012585351606316729016228494283596838819678108959693911406568169549191033939071270332128192359713043089842036266814570043936616096917342816966312946114595435645851188919708496027472827169469877056192898872868704086711367129699079770703858489279391547578601589579327806437441941230970744912544993315472571828317725256720046300736213514409404495184034419592062291810420997242232664826348997040198431900377163568335538014857065922138162016875690496046595820982082966974455744916474574261467537619958790864996962670862020439555641402094052117620454373376840457402666908437870793532914732145742801860931343969110364610354205747739702839898951782940122265629720609111209411307253584959344634675221508294337966829246935728224592200918692248295835836643959230561300367353195643682799654696343618567857152797311105867133961592209530668554090268949044060056167735292688942885652003559741105172529938231597885768133335940103569627013973284698501125098719560805139281501292425810765985217795449299820429355502944222426005593661907490622442421457684123312207203252445226186506586617140715366389994700102162671052872141400442097762271046654985185254661284824145803646452191524856907162185527083475122280151516589456297450064779811104110000916702948896985189674713565490839028556044567126202841598869452231842607666752286083746625483292220510235455378219135718989958752968931772497012814682319262414932866506422910050927365051684970032759971996717163135756336697111473068485939537042347499936132159261494168770559443395721017791874561559578101890922893018551410230231243042373873572618146858356447624413178423267160054221996651977037850273974951831803958182863657831959676012561217177953407387685796388770763967073392858779083575053174468830366880269171684775642825179994683325473561380752645273824058280714445447943299793335180924799614310587043211844928364010722352426301539042807816192105422399397092341085656381617861411691121266440910638144307681608921643282484732072817651779085565874799624449891883353416151282294867047856733182094572535395796818492476680305341072381929091804485006866154928755541148166280081666239910847402563405425444698356700371570411684619238889887572341434499370921708807219373888402332753330731421247099243962435539113210121197121021964410529082184781994798870041480220385997711857666713122627021379632959096428474454248281511136240892135461740087474639845931953523371211465504281324164431252101446427085712264293094749112480391458949649740049662067604051449301236890225525187655813986724558162969653180910760101091224663503688547698915416260822327120802354988157939079006595788066353957752456419646212345228070696997884224829617668920273970841572482205564676914536364592135715091256217692523745072399152369146902594530934889268686815835965714623155569337596950678928620094351154076222343625393150291589651914655998619877350774367698925094359518622667046340588652831881633789893035138413123068521546120033134769361705149810118384551688468049472519725687086344952802448497716482344525801667874041510033843995918871228104747286543524863252931447696305717932133676029438572034936290398887726741532474681775538557392914097840003125503302440276867258395199736413878725499390020558095939555066234970120952666561979382240534705805091648078745008506318268885726041381125062464733789054165052011528202697222787083328574606051545326230111362755746222261947246999881867381078779493512127454473532657018854397153013924165167744756391569307065018975705692776634408821729731687820762723919895601084736498531818180522136120416801276574832807497098540178238610260051613031035538100173839636669338927161324088895212019984137264998525494214029696107402297932269948433309558251438546911094476453205777617933801506187286972628019836972289676807007210847202682792296458290291694835570239867321194308555424655882927799721194020009947824371088422186653623172867627111623582764019949482077374901685004266551149055625840205627679348851173722212822660617583329435982937024919010620748414534634708716157882266459108834621958489806445910372504915866251842750250690056862746320308156486420332000840537155974284609476092173901504225790324899078063948026068636119585609204415738451807537250770057788031580565424963738189355761028776050018266343627008133580645470088997367493734952389321126221662879272738828619203166560621422741402038456315197871066627676928939167179463387547769764426838763208049559261451972156348090562400033042987175712862279685344402048231569807658494303650859545083258136882938034087728082440189113659501867248166805043852676077150718951448734245591666407933167397177565473302935324905272223887002167252986998414972631049028503698446959103800583100101670800219112778476801761526689039486142929374576225422121275402485957166449030403498364302948060937248428824088765732517229763831684046877656667328323766421372707242953150574894537194892905804516509832450040781694440408192214600660410694930907903465469253298891219402957338201432575337864521884278089110466119922134200901719787874068937632606623950039219956736789740175168355416709184489647495151033648573324167238574286489587642634871489697844952123876994486549570118280359081725871171220995284774555849156478486992913251420158502744522470600477927728925315325810866024898355954838303140877133994233359702501248288181741313811656876130667459176931268105042941175539474257986658394547538534358954963439833081775690188970508782083536100800060969417186935950647611543857475257236484631226242397411191710077121120507549569542960355599802349158157974545671328563482610863721504853629037102443992458804861783454012796279014294307059437529120882449791991180324128868246179838499539048275428469004705015636812168141707208552039979214917934218058890327343174898059690624631419018910877054507766158282588606546963183390051904708643826523601931337287786553865909325029553465629487597892986354659256684998689523357108405009537738913599651044931223619093613390638275992300605393744479172619315092782859429661314277829199181133138855708301706971288601956498513631499208685362194298392121922075407367808524419911179514102862904212645494287551695676799653033354297685495124690821550370461312889564013664636315735016131269357903402206094369622882153341097470635546623852584754980194609753326906388387006419219184061696563750133785315436672007050375044915083109426529361582733824840774730594491707016480256331366907109728295945057036084697220857620848425392659330795788056215890758921207189438914258670785736654836273103231872024780338703119010559000485783728116807609259052328774966856710464643269820228872600608959069961028822786014872769229457467908974132276144799215648114452134320671158579799346976662683095532284762274704860725475562426237143314813049811315267135530847859581789329285900110824961339115596729285668445586217532304584499243083142428466541927093540818921745536282307917000921660610201822134930746285836394985877238727312436432663124295741362259926096208247116491643388585628739035152900061180464089723692344539626414612150961968006941227861180088450096920850967235418194282236416807286912451948019219286993966537568670120554368199348385012920984062732089251254375673209941865399929901337573933843669937300608516704431187293989501278392586898789880705483027351435197380755336118283108952482493492891800138228848432336016649844913378017202960357323518257473078993995870378844129639036698755277937768781837842000092554656432579367859348096718954965260355210456737382776653317095795782260812359120300654970458103082576675929348522972846706617616356909702392292297008584625693879852112333201996152862322126273077234405341219929087650486825743014365866273265851173814157017318346433823428053902834785727970295381981404947398505060964814851738054589223316721093584889240025221845308703893721643672737434084215164746728736195227945299010029881411664877050047984699272787604619659860203333870143844477560976019775793550030991334468492818140648288310830990332376572690031386519088330271483958944603045176861663547853803834625791568109292586818179982843285695530138570990454093659161538550188916230037419464499516417945169389814055747324380950354528145002452652857706628309050170856592628693898144885081218261850627002779061025517992769108255186033730496954308312860689957022076146913911931933263586019171953851111386456848294056872435730956201871850248098731631339631855450085289377240972843241419803491806890481732792243125243955210024816446786417112066100101717300746840572837432527210581893412966726107047022513046220080715319056134134934825784013042029958871216639138597366489927812611174996914087243329625001152841356756093543118405177072209506764704021778591695888357623006027321248720911894338686921831105379162116855610767057612010487379254682732441480297118052151270621307026117996485642288330055848696312693637186249637188179189197663171865427359801952389453826060831026597932775963424695556758280026678236477489974233177123589406563622683764669228088099647804488023217322867711597248839122237676200216137909064367647256635523625822093108976374779754964707568991655193801655912156495806536514328111911579333355505822436121507966848403785995355760691809920979103549050440216487322870250101786274683925771490348380270609494307129862264646827910106015737877044281321868972217281340706074715019029872138073699016314671108674631984601857614676149274452091353775974734522222639917300483417525994969750137445333653086727221506449340575751014834271526220700063671068025084635455953104000720905348107946759953538062442160474480276312529518886870781849809060820555622330553268966307472007717325649493127484453745076248516114973543522275325873741934842912574188627756363351071431686994949640315811701699182997725971864647379063271924912112687412603637895781865182753868836340279974665233444161083718890969917258566184657352645807220190961445747888511639469754479339034854191616572412017877856713287697044469416366176065961676859562534204444165659246910448154911816544228864147938532355456580863613207453347190883387441799156905391724438778423280148791785506264025972944203004686307428237511600011301552966994089227080873016382916491256206841768028195554023998004523058343310727661941630828777016730062090203134919914652096478683044485975022949597167907541783402125112996266415391852104961363804932970897368670171549413378001077708866921144343304186487415214896562347509419658749595449544792478686473068301940463197727621044554825529558575804314987241533115494085014599039897322961543307885560763235793323774255871256177591312095807034635271748568183779884892840427494932473552122926335039736352366546869747868168942634444204575273406502976527945650141539929832770929166050084983501610556266707195423113813121479847181984934424033566192020480450508618152629611753323970145081923189749974163619775437132727742766251963027583795099670328196625756155836818689627217671290473048933888724172444636250981630975971087654332709177196864491465824495100862195011812881293061578978672177357398948112405632734372879794870404831463977437318209828827920810213865509151594222464637216084420323290853114842260501117163256878642503864052831378634479684441437506838012847416168140803627516649691608313328341071511731045708406300136316648480832039908118568880269589389640909862353078536085204586990180317780877923252628100550688614431907835560524525522551250347679121696366783947563343881227127590300539765254313276320035514629216891129620974246011429053224214602667286342111949621978237951243390725845216828887285003397406548728772318175852646233589762393706817477086852650086164187336809954985322556457969392443516695148741248611759722037030153057510868046341712367391711078102068762576279489534070391762169667268261233603890313178305860196133076865703538498657336130137631779085489138914196138951492414067419446789123866571419234668151035393360059339416184806545852902778806299010911184462766407661233942926954893660524274972859910007054522048766780913584095868823620068093499100507862944916368475265529551710183713223377621596200034011789420285872563097170929424204253459781549528272179832905856668846744887748520288564443850428398044331613140966762513342926502747357933921814296116252825972958917812742989503669907839934861110744640242787977125401106101521934050124708623396158705007848311808966458233580361428823029350421288014040792572729126922157502435165575837466858507456120886777276624741710101383648725638299449628860611287219907514838641930790413708860098549598512778054496202265905328827592992467497151808114554481176682637875737774893083077929089338168888256675695599772301429001977633513217007266386731371210627752107785843393340699589589804156323816206745142832481019060067010526593926708356322262266198939520269597217182875895024102304886584057322728996731159899549830578949063260270692009145695266755547346912091901307695764496306552534299500489575627631989683353689377846244900524921451763161777128112418812387322351503129858520746755206264969125964529052821030681205898752960343303932104975593534144027490088902019377296378513259109461744312303522112842648686691285556173424383141990873494718624819981771004710160727780876967402417164502730750210263008640850580200795534695221242204870442343841963287409779477922965317301425443101713099064957698783840909517345439318897099831669034784434463603195272631328558808956361721852402676300222734767225047253499467344286830683243106314927033935268944546681246654412311796658994000746674707568264748870193945629715361438237286013332060017959258970209114002385596661337033888180930075500347727745198414089677669475057122249421399847154420472226716373093355715892529001498694179086766595870990301516516677855500961221242068182247847032030244038732126247466512539512849900328738278144963581932379551537007110769191401494711142164584579475974390307249057343649316558092370732180299369074044751893965563808706148145925493138937297345001218274888202826315518020146978613136839978140134311895478555217214174303615041116232383488187042102512596645533442021495187331910967657115693858542343514016541058260565132357860392373815849946069393474534529131360923052766872982208575405477543405165343141134275992693041603292642421764289500823785868632797261706256092027656007338111045225267601076904687100966909083031611932148099144960572341191766151300834477704806408283984314074200080100279196083164759634829311235592285866771894419504129026644396425263521320543201707198183170115584247827841543944255616614971741385752001712692074058961624283928148569373405589354097746350640210225665245086292936994579191291745080653104200434759434036834558561616460252477694446966293917220846255199252441523791586481871604452172066028921715564903575202327829649931425128648371864715417924943025690623505359109958272348703617941347114975746518151384689950511259598657022879533481753281505515345736281666299099442859556050924739520776189234336417488730664542000635597931469955521817341210770758960232322660599809573800758502261375971802006668251236036492862525042314820884654280318145191789861272806576039697299658115616842879052771469093336333402845848177846334943600827271750060556560864543734582296867349536497969159875926609441764234812431966408043666253403820378408441599911536606251596998569345598937112503415879537723817644438880552452693687531896175384597099415848154787725213612282859107157976071175315368271139771415685222808193903124326432449002725986394724833715502697060916516241595331181438797605033675613244275533386706793745157547488461726018980304217009043534738389391469599316930520077409762176561674915460964398951657466724492389268692881777299064127071947820454426464307828567897176145877836563980476378829458643218235331944282712997588793819100562179238583237585333069287860724895970538767426570448475923786271463258324671246977039804420998188033147964890216604406705695919453174249677485011105535379825425115018440800438915230881572008579501829962959913534725104188652333546818162417937701422033925431576089215285137456827734956041337121734604753537288144527288022420152043355238800184691892971031912191110225780828080537060893491138999637137478577514983561181664686330054707102275143268533373860060058570725018562484076624619744582511034685045654814230087179869173173471236852862027437040923743451012029160334343559849167548032818544909814147738082876935870118903235610614994560440278379680150546362999855342638258805816992335942990704991529113964341359539941972365268730890851893541852147516197281592203350053778231303278742598941844440436788795712300320577927060108061585183603756365767741569135385174292389286565429321647622509260406653180805880500424250024643501844001007874609576522921901365094604564636503692861136257584770381967434523768172041436822956417311627169224969226697453970882608774634261846286998937613352227581245935604145836892091202603938728564860869400774334022830370007718776941901778208202961322540183641731625728471056106638087830066411160882523734553302606450940200267854726308377031127153605443281658268804719651529014089861630230595910485474344384154583605973823430471467048629859189755909804045403457950111961563949349787819816690027608602315798534789965409091869023125636041167744480770706241718139632771096276493183011176632393368446786357682260600128608290803207837434419328457364272325414851997614754294773825553491838372370295823678013094799325865169342414509161609621211554164070609166557243011354820623122380832107875738769333131493603804042694890825451838769498080495860504351986545197757594465510481114996267057732221782279837886822560332817425505040761759159430740068457963028368074178335748250548343555405988643528374899290158588245852546864611089814622494081546339124752487212187937918582334842482300051768018546096851485925867492950818508924083093159867538038335850647736082150033124935037215600533784247481083783150140209541701832034560296236552381413860460386504600071180656196868296155106560423091147076672642296713684000413435428733858309738514468420438973504868206291608762096557690826146496371571566314646109126459622575312936484243539391915823395863424970919917452562722218710353587405414105606611994196159737134286690729319346773634498510898649057382303428240250031951169380715170677110879749494447382221610448223809684135060614427245642214209710673796330330998689531389694525331886637390317148906729038429363223403936859839323490050498795038146135889654132637647299484925339429856960403481672946606573267878217282003633160251658277552690157234226462932225711371519086177500829853926825777417735359982445098507997542039140852418102923884295107742031029591721843851061097104196989808924715368840173179999085081858899089111915622783360468052761935244354360679488623753734980352917157574867275610775197745849938969362937170320334221770004588785819536411479137771322069904397919914573182466546304580556135755126799059527558418116442158438271856137069438405550957011634392113602478388010286460830236932363451205741398701225742328620702773757390308503383203002238884268671297459260262169230983872639261765843188103540182272587097262022079004244284821374585432656066539998592039906102168469323993367963522001316715201227505383302349425460461406878004554154385916094598358610200025042622333805901558477002216877608501522823259022816211157605975305370461407450428116045112067414411486347199278719203119679218180274595498078188752106697526499267583579313224950751164717059586576906468204989812564415374556343577359157930033217011949361037305696815251612295955983065722299729377231638139807696217828951789540530772708725929403051742747927846812683512192103086708109623666405269424628202457723822429686462052767922132131468585852051376856415128844281744572966233884946830225230956658861735204206743914149987163530359334324497781408574825747409713686094017203769313043970079857480526028173992739910544502644998122378682735803276450277628062111679500305100920882433565642800275691810005228380456240169698747909379557487986366740738906672637123520995863130033693519710153763102863927563488370676865488822726707892707644876887209218608305356802875997090120384435170631623336828872652290400881030474096253063993688147992771656480598205410373073744368587205708442928681450012889961892153252251393288550970745624605764097088143493752102659088946147386625684267734069087610025069340980011665941409077656265310620101561912206369712141629929891972782054910877361063971506278547385423514588235701000356229199554767949227975424400517554528653891132772743517921717705269620299337604760826043262367984326700507305149903590912515892363906236497201507500316689204601070367464225436652842174450796033634889495581679823115771468994908392791056907627536299462707388592312292940066104239446407968716598918228429137738872499993221611078438184783022004680578184757275088391615180060147969908155622474475187368518403847445815816919250738305649706957680735830705456732439413336202936373357783987765531462021152061775164614126651979785054772822512463053478564861762423408217537399535140850920996828913020443338561685427248935334657871855777488158090603441618336860543496674517222356823083678783403577776260213275893363510018464632844291160057879255323072894677401014164895661762774504628149150398772820195705974897584555181824718391560849491059973746186691502578216547140895100045057571742228184518081311963126801682607185158236401567823868637873288543354882020818529521189079053437628105482029539711245907976135720730643257758407447801900268579724720240752386722563529752479736225200512399105783840484516745557367832040174731534577406406452997321804443364177485960867103659619083950647608727861004848250467830141700356806523588756855332347279061692041196453521148588694417204066978923699495131802574370603203865327965550742072528965853729989335807082363748041364274958232941322788064922427571933090318531933448978019721792132405733713302094528892845481355472958766028058075777418855079675020342108834003759915968515607715047712796011175640586755912429430978745684781981100136769689636672416041908052505008785555027915675881186808427418601795351867244011684061807628292249005223394680046748249146520216426599896429677657256476712844867725156041340065834955048014959073223259343640252581401480074331556429322707778924277987301343696771729620063837982942112896177465630779565520109238388265820154622782175292014771172062525630068900283684729193510140581202248916651611644412312786883809173568374432915104937555847071671384548337938053156518429407756343490804721073135654828299262540946123493507730477111575295459839025858566702738784627253594469643659510924855429614208485418789207097405063957627010531167746515110542817883999946306027065291149835488062873616954871132470666965605727401698448266944992323180885018387162030490935262890725006514086109052112893117411878743937248569210171956765472084512393032454822746655268301252338537650893890283179994895587916607689683027469327120469843259206087498236985540090185469715174093869559631329532494200970975539858861806220101519515484054839015292643876726016998870932969786418294676399495061726512826031501595788870120230009635744334178996717979484741206113130231197041254293495500382702682516992021731079799612828432952912009289915649604880555531175256761731346477264591113974752504655646892616538896400516365566542129080939323795880097069519435073769532024378419814302783314635689547675787717650160001827307880447728113950265632479304699344536170382271790998518284203875345223129970777564270918439651269113513390794776374703889898434081806613205997146377342986744767081858322349180321558073523880471031331618954715293282379860363749691351465698724174245566920346566424764262863080677566712315374028540234167311845050690528006266259283459674383603275931985674282497983002948554905513301798766709953376843853900624715059221362985324397920100719158774025811842226654178766682309746605299296935313114226360850972833162577179297074586391335726021708671958917801302117107555332694583385089862023287026492786201285948744339999886265534389017995907459063351175133041239155664422621398944843301235200399389804579871521021218454381643602667126900675195781192599124745148371444528707885279554619926082711397576643058688836565439131483440653592589563172035991410633362359278088429650779079443316666548673594327842234616700388206551402455349329569771695706706839653125212575396377925495549944007866766752675458152476023212786000836930914609667599078384885887174454802244015686027525242476011566319890211840360490716244664203441997939238847092054919857985774093625040402509871261006506417370597428808465006631997926624493409976765842713032020316264111778182343959889749516913639855134753977900852519535295577691323018616460951777369582159832356995303850409672472112015314503864666830278653589480269080595778565675274164609654838726446523544645442787852978554760956843798297428944754053078246467936523979345092733814264661062652417732695069684228589254390878892890423144271145134262862133378824290821249931759336785558892891546981098252347474373963526378121821915061689321820613664822982329996220189717582050331451053132494095424211367230594273760430516890811342333731205074484781635474948445687850584470941055412963969220438662242593511570494819653712423965875691822061457681396445678515253026768871422742954551983785601522513283733617320442249912286405310689036623945552068955284238835377385875266791504822178607816725276391774707005111786790471205266493059684029064220567936302526346182359013467289919896582321344894747970616079870588382642509892873447691165044143671154869948785940448354794380521974619699861227241055734959808304879885464089448247507382420768841203978171028779604503853901784062586126381354365605053778541717987348109954356915820195441248053946446915811153783481031272350316055487404948299605975038018830542255557238418999733828021752413988232449877711425433382572465480350288382638177927606932721355267870548273450666081416534817705346834316989515433990063202467710826766112829588462006740436293481522339668759061742587388641100121311413811369853736947851225889602236579401559323809807523312838332916834435073069736324989863924808555931440453899451673439988142016918261051600109398846984358532318197162398652535850004055547014488856636851457859627057855313210871708910377740341877105342105272017230982161860300560216437139653313482793568768505843547688367341734117625695344108399335860469061006002400726018015699457599694717712607070033822380471814509237914931826332761832040334077051111765142438995541711964948788747362980775631397705814368182779184654162579244791533380224786045203456890578295524275697603295850645294622201048588695575514564433095667251877030706669065474482969756784784762542848418060917000383397356506341812124231305555417384855757553103040216385140752300850390446933648239206435090054656295780950905303873592572642234846593695111255478413198384810901065895710176795794980815066249713733700091186432542774292644805286229643717432005206161154790734131973920018497406091406794076397355886553294132730444630010999978045439906190712503720184012136034848315190167721476973094151037232219705897130716095672357593631000690177413509255806619800781220848686254349453472526000669609746109772015128673450147727201407908417290791179535543067933874810302219419607301083189825500568598825935999087132066586034778409160279406988046687985266121724949606611539681109063683345403552927528968933271564207293127232080335793006061613762881637042517865071502831182317664189102639626146740681419640462637308251704666145936541277325006766141263820467924446307762940947329788676924117872520183781455888290118733310484309422523228620399170986273720500585893589749277415085288029292451782595840257063959067781260428436371907207550497934736784893304091335141555067378578031761932460605081969600099031083049633333240828794615296758182921054748824882236566492700184302495867462469787734472921551198776529173600724788374383440460389567110558986694554205275767308497351454487915248595141388537477878066234703212757260847031852657883294995076540382430074631359384194047014453695516669200775065132899267460388974474836170703353260576839294226991782138565860759612924973285747943339473704286805711668160492933944968899274841090801637540787290131230105358460043477240183685110410111560710256571361615521605376293182042237030478556142545454967780599171460436189705198155865642992910077034297348654756585358372747721724483869654211558603563672892360603489192646844422386181343689835693690304037514126167201913432026204520590277153767429333278279617596163442046976181739402363605685309228015648518161833155565844486296402985952494700769580922269677084219418089701830345653579012920523760870565732535570354050322574770800809066074961088568535172099397477777587015885352450642456758626805810296544440225639792327096194684667871189794693361445440271787441322818076433632239033147249122173538920683367416043583353232776849322923332676025593653786870354268316010980758226213123226283302900093099034445127007120444868272384514932566931330087105567266571733835953939445657739661279638051517392522427348994247664118388947186758589839350171906630930583985192486364196955509472347287734404543844513351216530925076366552855661509770413856142469054156648565551603453346063966104507679089277561294929613092638532526642347670779321789664525154088080722145319071113396364758158313914059006658281433426663251974242898488771735855946964896725280483378833006976823625039107888979628514704978134150824142185936360386416591084225481313355279595681766587224630942548785706820663237130571401570475733475679566388126681504492314585804446382823857469203181166614566009223318504245965094848973636064810771477302025721198419530627771178091762839058971357185074036415270826119066121782740226193513370379340416963307006503474018271612223963797686512970605957657399165933326539088168537256131069715189999810104747246519670475417832801699002620077025527467316505260756612755190841004568630360667616504313617888863802722498570367778272257724283594776269054602785840642902742575558147642894268942561424119740042948854499314517449782969008199005984992517437438301517636900906166671821534385857683591202526379037454140900723027843622760060479828213774214596833192762610525856132908882696841696287809147038121847628149537577132468737443019897327651435644923673097150667543076732366497405365448143688400896821602662096314498675086882843524695648794494369488639343894885419073606317134508662312064744015331643276695600225085625145588783034394518313563537387347094766150132704839489113327992505118034299639150674667656188356527719353005003544568338715213864045567844568755892777005247933838718972604340154306690885591663274030442718514152272683013144270355845089651247828154730414951618438740815307683265320002448095461594458056695877172564033483188749152708613524391659972952432537136388476669987958524572380618351904482437048437003027242806962611340074666856386905319272175792501138801715246477836691748507450026194488873350869608403066821546104584292173464240116587403027883231140321697896427172097641309554673261820537806550304168956765443807150155332462899120841378053373538028344868415000583958425133231394847085917812177339079757791127812634479334739716521485018381650893338435410964723966929953530073139433936450777926776046326880594198584798563457812967582410541931239728411376372380919942310965504865479711445864588302100461800765593606301407436215143492464938960117014221118913451899465507517190682031297286466028190072751050567494225050770357467411351574285715926944047916537070863915309209288333610184087446926607652488923492219647243912918438249818221987083746422880599370247891719551071867002320480559532789788642013339940793091398921801191136363491367980819642494135522562458785014419162569975234321452930719492720007296562258236453119267544761130538909610984126344375291742006963799698533429936787725064411639193209176365977279105065166234087334594762566232449455072140239114689545164723907803855643597580303912853729290695341889539443139924124239085016511573219990306301547945483123867196239678054625627740994475830630069312568516615058625929007386623240592760405731088268243883606015098045516917583269887633982921712565046987155084446363548749926018466444426577014784591403138420676071038573479837203998396481312817591368243343224466912223329318882953422853580450289223799546021345390229650889828352502303035219812292226857695602781119095515602921251623730136784227583986525711589470976911899577490196589558812493747943309873497064825129115220889822519878495154076050882574625914793391227655981673832836214275542684103276019407952311861274218068839724240078600793027271470547507340024558470590449524908630773103731356668553400592222717442147706844488933318390749394292900226325977208331087247682319125604574765903190565056979149731412497642814531858715714636229998801717917640264416412618517012353640524161526269735069959150757589077903780643404787838438034356612697590829715376954347259459913102126119931161101924197744363202127790395444640521288156193384124197675319277151954818882262368847495292715283218449527352454831205919145893786043469703830709826939762287902113619343583719712409292937870573152526746615685810645622626360373227861661730073497780824154979796131223672945677890100909556875632279214435993009675683690317610874526959620186383311920962130745010498461921605138883962469916106907204239329122559228580240542188146251280658329009144616876164776996485354264592689600862574813878076900654643473641495930968778640044770715005790364173079119985843430902918540577905991809684657892382644237798949687972448647614887294843098755049844010811944230850364728638125506530239557706785203655550816781071101420247217322494358258836702554315436738574475798360319705545126773402439818238628041357011247034453839416886674498107324017877022505789019493811721001788378927196117283078300990177907259757183117008859009798116642083499084249552973906824048406775005014846560820389114178775173918272637118804881263203702429862153919168738262448078502480042970620088311205461056293245170294604558487437392863654796621120347284865299492657927923903029574120354594319836045680179523607649473918993353725389159525047803365030088117910851123682033540733792100887799777430718280343906703637214979844991903280383006094086120427747472662764822015861894372506859292719391725053400090916957505482728327996302980306942582357025383771476803040587125304548170254107513719985055784455219845343467760663540384620415287100006565565360233639632332541498326924225626559522820661198726203943804964058981991662071908335256046220334205138068337880572581593780349269115381049134305337064993786812558191972033543416938798376007687928918269124360652518699061901035631469528430789512130021192768474751084178000608889944609303967080722217034953551370444035851683382875729106303523162540318767559987319631344371433201673491930508128910543361370182708284331365827059619425035459521428925965968661957034594092356468004419404541052466842157424597520392771652212900423158682318880739445927471692370995281913640784337561976425371027369542857953017553278912360636635664797259174610166379282634014383046101005724468704228262993497014340912756423976327036352892049595841150451842829590638569544284992427437907098535358275715522770923035228874123616840634158989498757545511451210279693947046909227797563900258393262747806774187636093838749113777532040599667763396552524020533052396461992467929955610568551949821165856637545960332704072133663216823378562516440534716737653043042379855147355147836012594166657749870531466898730142030714639793522270587420144149392172847114555921916289038257159626453776668699697801402207096651885362985251242880660045704100471152326843989842167032068380259152688788816372174225609800796529310794284981482141246691629660041880677532454362650079974580744486326118037148410223773647378966440419792522163080098842106288148397018842810708962141590589557674110071896265078298874658253756899171604291999615270723729431671682851613702750403889396964330020993333039427983241348513182523219312891243071441999715132230065330348505681378717568409873115192803841661212630440024227517020591390498845883222274786815488803095995226929689090101027865643922007156501842867788177335405714725211832282606353035504026507272849262139384254961812500775821637255052443768982499867697612900721761872665706005065401211376757135720088192219263907695824393181004324797611524318838294372732964695849962457431675528496311257471948597138533097411374153935191640765689921057767561487908745832011014912017605862893354355407281340645528663088145706555480916785138856969675971978368718956754837093329838080202990319379122117254521718702783311991516684014707285098475186406142965728957963781433437657377667718304348926865411789663465604900580302639849398283152660306294903815310022977257398294170719419302052656123257302784654038755513407977462727146348758229728043238487994783502080654118212950063805893015110941879670938435248304454238706409686735204003214618935672822862376842249290016067933951895013555972712194042482744899270060496776527755436332755681876857267002134035760535418637180655777636901823008292839130193054028115570919578910403017881928917861911940757670007947044771308601390907362368789741288789752474771135055883332021280806213586564765116404125561559433590113268262398046959965008107038472673795754608710958793036665340391555169002149802111955271286523153657700977348832111044608054194033955446191223784082020882973177209046645366084202037374678854074012123218416551674945683317326607133217986476918018000748248403261142859341237007775829469890229154217476719640228213928745254011673521288730933242334609773493254783869695212368597053023434913829813094333825822241379540283832215165231168265273827360564999914297857357532174657851396711239964035728456394325930004587793511114417939182762356076002569318606334809753844828883414329863417155051117171765064148553249091080868880053661466072191944318985775993108865361893513783461517515117892172101922223477876050910989239295758697135596008818923114525517060096266189843834756513223853815664574211197583292080475439184286483857146416979533232573317570897927990025779557036220785692092062886046073010759135957950501270875748212516821560107491033899741572561773149882299431936705941759875069198666509781218949023463767304871047567263136452346134543539791895664584149549753679033154281980860262911017444638970168031816748979780634246361603639017147168514095952441091002308543094198776958749469714843363759532204409776858811495106007449988705507544631327242845390439860441936597765305168299005819466828988767136606110973013426694350268347959301699569522832949515270862864753521581446028573763381565785024051357932461617883401270790172330791675043714435523211522040307213102359177268119436325959075729396526257757730790359771642251578663045145785014917676809817664327275966674756587832822377613802280960103598297953042039105886199829073508145921195960229338277064459326739533696434268155082506961215411171481585176662428511975030161562247731696862601179423262670142485666119462452768025049730748588946597236082653595905452309365352754797896015479693820718938358616759295792819169070222591242885446704797738587568964095801130721778434467736768115910223776721791895446934088647064911719457902092149427969971626773452009155331157641804192697827311039877146379933036634259839153729711870689749449927900416838033960278797964837484374770027906913265591515033855884586730774184619614992212170596748484591895441522503221693755712437762602438380787145576844346916751750949269914724663176752187061413023425220075388738329380210632368677421792699807600335569147285570835519485003371966627208038789284329588037913453548725446798780568887696724546967150872348295129852187827316547007201023745135983226576181351402726332875926497925334598905117969774214623389037487332031797952390892727770512887068989857943109594036288139261029929445208171026245609885818833755688759127645935813787837975192176837257140487142772094666503055834590288152764050947434965280511536219914380443879627994646344696430688943274990934550697826265989095775901070774010294211936195283266247378730019267335468241515858610057704182027687344405710201174614995561593461157683947678293370679108736600032295088411147544482216147379951123226570736899834325072586532011356104380305413353615983912268606979749728146711138226090516129521749174396078548701207575353935503421163999664935654872954458166296781238142947262826825445782285248519095375586020225575517161970350833199627254562674971923481678799948068752405202389905820614485688525565138220730775982056692741537184767299702524120164660362700423337087643860151773243864920392126653505472041460693189617058172566897910414258473495975438603074287695504927360757341919528901985841340154431846970799629396197381647659422386152282750388327315275118612392872899872283037606737966360367138138681049530452187365186984055989147159662448083705667552988598424057628390497502404851169285395979474874407243829178210247129562550538287489653312146097547888855248427743143956630913132027998795058920908639668974566390642305151304336621056101123802863910679063022637949414274656454269229484757246924281884491664984740927064845039194144430312470672908935066019347619374194509939123879589384068443369710116326144424001476342213577763512685516122255237593023380959890800337116856359326618915782938443461554485615375986106140360896835533863975304878684561367162803095463183995669604920573862047382985968534541800801645434862345163712885142091849699477914303986907589546990896260738330467965449486001772706473397837894061468800345466628767144576017379729891495027016659140650278790920911874805958508051484126030128739502781507376695749229213913467419779652535352865114550304483650430446436838539215143609069573076738175079541913266686713526222590329362032391565570153296218907839789246223497300607599536314331238979769779782967302231000992118687301146355874627417226627370325853281707742128936406825575446192510936502117203339068137637115803778670222035784872169217481210869164430124175467635242227448642831946901670598674147614056656988261033220957440079653834605566959018894387759882223103195636127321406484397241444600133822007769011141542393991215835059081381972995535370571815614554445590231495923128627676217434730650237051682739534199507229430382404572276260604666285795574507234428055760084219631409860978636579636726342305810911624716521193299198494310951687175391789855696611050521370276222022126537432956655911536869168137012467227166613908529734175564593056154910501860067248786178446689707723525390149860442044720966438132852271818187935588745463215686953121984447479652917575628751028213407577630008361996781610570473217088294040886473577634261290926464990443647133916818197005905905141815970273750093656659703594457957326662852357602561695935753077769676482225663556308233335360319511172613046921072101963072998284069633965471159700586779816542286316457997769541615419879152709515323788687823967397833491350031839847194175625946955426596822043689077427596808950755636406235473653307519390121168604617684924655843629854546361347926678541563142005569917053158549607234545122424174778905834502859175069935626019190654404768660874641660228950288856318520855268270147343539778732115630931830632063045039772538128962975031506723871112380321919321787214670166244224445849678889144732805889591801141279331823055995741879849215376956429900534147445646489044624416377438107118423740053805595959732506494618737392122846713462799464850861826441246323648176683183516459581804438588934485198453418427400148278955497024960545882508644707994774117390090607706527426272582471750630605656496402372780046203916763128708670389328927837139734712298340010199072787142746853924475533843655173666634332854432813690229872555349908967922567964960243937237993267500263101821257770125257925901465374345710432383538919015234993816853369600599374303313856166888358642375923208858011109657032126404799964654186647358557765631538131068556475573324190176774228558974975409484287145344365606318295166184460747417035103712381822343329297038814137706827266120170447304323003415434888452676980582705737868869066460222609830794660853389385888488815201717476928059540963307797497479215131306671190662736879597121175424392173918127865378927251474699779688948863929106673743968339289569386850176457098136161435813669064243029647587816407790737926873037279034106055702991480188275560817158722614069610855790513487836635029175217642540942274876872668890693368494305663175990061102534406028840869529334884961604289077527783630881897629184551369244530310911000664056903958840753134621379963501559674043757959503326103109895599165057688003266050947337309740733145643510221501641955151887468959313354472349678988096936695409384315434494666442885135147361803136162285621196626532676475997067315829488425890211385316103935017907891843427135839417645067068908345992400647415783639484433629580260854952884991197165984155010070921611408902744247705711742299112199474512234595365971497808089493712292390559431867512894535324445205443808808566173870902557718140723438803469892523600771106905528241566504007338766025207536971694509767775326230910215998666399224535533227482038849163227557961150573435882819106765993367103439731564470206305850069542169610429595492126416779102162498836899871086981058560251698580801323455788072797695818764348073108784934095042562411403422745953591653682132248105949269394997093213729818394033672528929776114748242721373443079486535023366734221479526210025390808545577865995471213519847330871314133370661193482885771866915960962010683562501206892688816204296942441839889845312786217688832560048255850447778569591658503409743197455079778294193631105344590016662124521364185887707641803974325186990838638445856620013196970046728452181755305966451368719481150935583709470226014676625417590612870280615252457354245010580435124432099168938779199133051076744199730939311102633842054105045616001144456537654059910628554734491000417348627893735931477548600643628006819321709072091599084836551780735069428142784233301537973389296041940075099465648332302363584509649639390200356121918501774641803043264492560648047610774194266591132394547151745944375340965160417860956926309067295685879169974506596675157065233550702896093774317371730724481631135818953121523687056144776169628389973902181443213651635191938543027755450019736217165614988341570984683884394388925097979164075650985899119375984685849252064954833240349202915303584684753053199576566310972575087716873487629373054452195226582264048312158809458847983950007308558955162452451083463056528149868844323576964079945522896704247560606013417467633958333971303149256148140129638317273194600477106269510212695372442276492479888153162204519516178838390401562477166671605341645082217465738108126791003901485415354031773833603102257776837444263740471217893713487895580227201397773292834038011434543387634457038951649517598166215867225286807565382628817463435651236404642627777379993634608150403918048412580712060975050299092318582672320798161455042535473248806466928251774970237440151251840265309151079304649570617464006936899976709993811997814022363855189134788518671261019699656926601651987246711384397105679554372631562391811788586603354701936272034353970237564707689072007958654320413582090216695769645184190348090546986376604035578616220666711310473880504209189854699190478072362673959659956310529773675425116347580148179759095352504007666443170303905444195988120881845899226883331996994242796961093710018133241777384039403738286105816085301511201973577890377995083374361248081781471511354326488947661949247342128909818553896027036428330850896243789010243989321631739393575439991728918741036695401404882908456596519149989180807256268948385261170591930587275603424790479636631047769955001603706154752322465375778876554174724414229945950880780088035530749847176696811824802722702019398683531512811596433343402998859997069560335029928158375034030736427325766802239354028188376063302557154230553255433862717835696031986617575677857565761666666044417709819728925505714209914972702851976248136216692380272347909166516614876313417144776676886215985988244273028227130941572116698102578918833333082494324189941219477717295804398229988287180800587818288028120122950095404597079207335048364465988470174922949993296283734658574220433147961998303788297770013899055470773552708223442600031998332923466436004937769897528923568746266971245886677609353266691848272109466418359804997412623120503076005610974571986775764341313584140179938368179278103379542154629751493289945033636194001986273685284074578571725909386564860987586840298817777466799523861584520525618595076172570340521973404886673721632485413593796753838342694875600457809353515958892280800270933775938095472625458194838413686321038112833275390550827825255770601433413049826490470159915841218577418462143203341921293952823787300741262082525993568506191841808526327911249434850657256086101742382535841548037711372287316736840573129831782614709662594527799719741262555246505936875777835016767637960127092254520873362758120041955523385009511683978989608553096705379925036785094097624284314461901475233565708812346582908795362704752552717298362939379616275673002968410364848250080993478423006707041354352741740196175375458675850240082432846531474568294921886112673588728745137417413946430957453139258859738004589647880469215627100160900280678742727592958474609958493531583309497211001775761546616400649661105293480224657159246086116443385310512309996090826804910055433205928221613356878552378721451889361049476680853428242422878647412753925772533745516198795852622903624388702401005530138611650842403901361414013343759350214805977773999159012948983371514903321262165997185110973642165440775247466986399049947804100263140836800401402046122305509430656252548699632229974255458852501319721875063882796442104487187684233135056414788658771711561322305849314792304129269023419175110136586946535228079461039378314872338252708264643332768834341144125764581313036569168992256807598148034605540243964851576500989610072359496231450352261711552499886785132009775334217731128194631125716722604539024228073314716376106025404307668829246426052133978517058959162551944090731638101075078755932514013886610448618939201194604279330043543885888418153970620998536473604164393242703659757038511873487421130758333678425535610081749281622420620397048087956575166325556219135729831425425967520051405385878947786108423417111725758734866314503305661417036847369222286688127926071269529708958426840265681291701663820613806634483070018888288631327888535738185292227487062135202096782020424155518929298363199952260347496311342692127910162177245147632656195829052991625450159572651550870928681357839016123578301294021728792209147664018696094032108114101101077373665847220407757717298341739039187702251845428923990319213586829932042584129760568212380926624884389815833468216715138584689680565859644979680314681690559533983973767997439469307235418984846132205018614203775689537322008728771074440429100546423168515530485032021086583694727957227936463894542797347701252370879582429764688363967313129210627895860013602526187624375643329452009512899348026092649824746064848729234248813108830160406781379787040727197708696980349404373568020744181030388982646174537803417076892334625556560167377539313229695704327850197514930051325575097980691460440241154327884682676492543183218580426672654441124873651208827824118569518903900448633794522705535806613985213190107981662121427089808752727100007796269348915515086928843731813331790436801893406222970906627691141757745938510535348855978853922088150813247183510008883084258192165156413593375496037607271347730878906591184726458708976121771442530931830226125859708029989229558658705160887005380880094166898618544994190945628652547437153163685215620956977118762915410125576422055523235833558079823793299784155351664112006702066040158666866385495993676688158447698708162326857890715015110592334415689081032430410627942929955096203222359938479697202455668922079770285508125795231355974698074230155098054803774537006819729197072878433826021177508949592446326940816951981969523238399140069690900492572558689032997052589399031297254045890177660190216746581035192155476196807416159198620156255025017549120039630972533012900742816491699919579413548409141937512411340269896017642682466718543607710470174028061656932823538250147828204440341337017849834577815594906875699261631492665301468556553566634875710548417114626640855342059642363471057049636098952248248306838518481785263253078589484642301207818707782303415160244649034913014478565267606925120921676520124410498800416513680742734531934563703141029687571532050290134242347002101845072438639426414537785865085684724518811704668521927742422406317053958299272938915712041739706452927454036251808166284126731861472484661913744650283781440324165623993161975698272395870680082203036424535119762229734422630935896421431696796342858454367524347256902132129698319402059921740465333215524237523672628026417269472485442453658247290574935939747040172041846341789028299333535741880937513724090180886389609430940848468466456141019886365074686832363260778142954220787234426374181667386368485433400603820461758960619556454363893994312804003030715745745347452609607555584986007344114210232077489626460153760446297607869518263916855136328272770751611265402476399657476714943469715043783665741409011070362861913376849217532793596857190973220190006522768182686034838159919814078277217907770318116747898193459856849497775061617578454641553064940743103104785753407306081664984575978758470462912480148303498219345662390521100748750319818247587461996130524364668953540493251707149222984930029988482443374408936126167216823489922277737334891144026344513509454416882396996769065991034222167571985577845178684294986158341418276311377917015270237215180658498860632810281519917060357278016944645789129088634641537848798152260285378791176576999276867696964968132865047970230539705508669544941498024399427215938056696169577760289628264801758813309798935731787235154945758002497238697568327631173150443616090356984772850132180319897169210235410110769234677063500707364021015261337867825934358769162851669483226714928197995926860865597341543469669969532786446694305631043151793125467360771024195310004053658028477710504285153325135220091755233210500429995616177582721553752537444145678754671576182762010790607227108047650589891994437144219338951989980950930322275429461563373985663479655553820167198779071546175347615351551119541807613427232367627565885270675195060153167748532149550584116059004455316468421386499930208827196471828996280478400902985032499927190890321828197714790827451256548190637312331437657550327279519838764952270356377176862396083082228242776876182276384482268291392799168813049332682148887098129528060733280866388657054402765964097176866284485198502200960758017754709450730974599215322880246363714365675150779360177288743817786608234980236975484559594751663533606672413932099711641968709410513510237585821414914961874828627095772591116230556333964063564941642729605292224143411273056857518737133223876102082719424825165943972471049108918364193499659570680455755218666893077479766094992053683976596433015799436826038383288001788497771615227285843653923023003231771430398329147666502686490331554561116289480534600425298574070981662717224632603132886687072831638157234986006727902117444101837720449819716629600694013138752075178113952800573516038919510066292088247359482020186707737892215480830446792497643752932207247026142938855488031121404454171013064424629257982707837023186520510142976969882634789735890464837089780818214813785990785044134432715290611473289580194145267336671521489921929752725362979019487511832419456971666250140361361749961988631525304933120743073344191433235411127201283388901580235713400287262949605101639117115930211381508486363861029297771376217117015517552701718761333475135301964956090743761468364863617217186735352318885285594998713015664588744388002947779394169166854858813664163887565115464587312249754045931885932648971047156304580448415395778215428135764882888471811661947063729105862477348880154747900722449959868829812184188521481908972613302898674586480037513248354776048105680212569364088930633618591544932447402849306638690176411118781063203590753614596660811912185652017940558156932440182299788469286353856601659975988160929462598208152235701063389357825714421895066301495555982881260944457159156363841976759840780280247983604106863642818557646195556450879319694250891327059025810383731392778816916292516298898746472686578334581515244788604435995889079315031690135265782743017944586053519643674026096159545240056469790101060295227837119183941839471840688019395300832011719987185194121107821591506408750586410846143094769488526812320041953170462277171673972603256736554152986698442496780553305530203953304015931381507669337407733522789289237795071345913234461283163610636611150803357201850479489349328853545189170350892989060900093195628546350626017170854710354724210828000029795243060631132003568972269815894655372496451209080371462467612905252282138887568671306730422353381150899373448532027331557584490103851194921667517634648487234101460066287826636804563636060176601698677016293143339423108298975177580837197360248336714020159767869025796523349782613435956642552487676820281576712188814950550135889429086333719560858005779298127853419534209851703614238587668604411187192631488694100230584371099917933617204229219823676602591380602321447571965296159237613379656221916855022390597434158072287981550394735202660855411052333287302596132125831984269521395700338612107921719679927070594261510304576138274028449819557475002514102271139087122662355817210211885009544716491047352482154729460463160441890312037293738594049872155590332093698733892602084678407307502765701915558256669930139581964119587517731679377022123186951462850650085757270448091376910875232813918567933312410271478903081037482275663402466188237721787755529141174726120200834656253716554157466225269050848010464872118802484513165839419147494810630811300349649247773407550762780270479691870661049368291603124160978176663675522700877348908862201626376573632668729321253535965974687641372387116310432167303237118904823754287536620236279091299725020528607406828074312542791330836977707760480670655988464069707196012047110711977322649154828284628971861044225663351917719751211684513989183674700448179891155289209421007720072804279349245814946257055041745166746900274974721253726878329976927260337338838675492511652387448973550885035202713302889314051640861169134174280142767485970110344622574569818636926748767712516136269790191865520601517122870083556412148169804349722085316076776333359703796991234063333179331258674162760982487343503738889298993773245646757306649173516447769892536337977479627838214012842528554659317418973893710936013251248063782037944550302891771124334787984362292048809514135430513438804009852560603997831966961567546281767396909811268067942820665112047839054893247127556005999115326631187925794727096365510809857936922792064798760631703623262632170929759159778759651996262157681397783326740984069130351440633086911022586142838016518601717896097227948062710530006062311462172905687449643980658379899118588109189133784474735074194596807520261979541491872631081449043313532774889363510130311314178284413643648162938384388370747442416619450946627953094815686097519970444691357607540043862800267671314294966733745924309534057109875152746155251622944608315791935099033268893756499498632414172302453492851998361901844013597638368557087707623405276951516152896263542357399948520104831128743069149139882169472186298169273727927472007423550983845302193319311509691399643333000332028267602251141136335701332388921582583633551236222717150882720946936993948950730822589321840051670854824053991851024288683739084409505397847746530252287515750963521712800223523072682015388895499375270345863192197930793879395989187709020844995395373168209571343040793924597932299802518503123739749749701467660763168591013348178811453320595116116674131420442386109833944578873171624322296002469820848076815852921443852195323352557132721966511759384838481196099255419165506655848183695129664052488332172878801019179681782550725062172005695123345619335920490657547140982001446203085690784744857459971615639782080849835865292455586826466776418449956451453908012924833985733936830651912727161363993793153744117466326762289776942338573238660989734519554078151534242416290903035470720545578097786511587581320264489900176514210060453378427083771514208067778177041870178150042282666039445675599050241606230435775631152948381656127328987561792526629198878008477226678350056862402169647652663176132063843970581319446537903168323968768983389711111133405452440534781067627030536071459434594523034730594982652745136091012919039562666343082660046673172941144412007458670786339863253370218937461221797786353588293778485578241269223257936542104050970934450448918567811997726107883745043853674719527224828277821872027886376883421490420677637875498355640551001607723032875703453722765419137679649991271854196944964008415273777828111414592252896384671948290785186266622399777586480528247017461998807167637688386065993976518235095348585744307944483483244749025832655901283736714951605927199682358621115616445637622202042905661944146682788962301603060572767260045081449600393775197035216419219653599514935327336465938681601113648346555220601631100628759347235091947360903266829216053399057499567684467663270694901631625602761280250860234205638824302031505229064020721023078410313301223847615437061157801676676495633122983520287625840405478336220712205561238776637812106963423083123488495266745551055953396014210140756169997223381228395206318447371347471952949011721468419854413037132784483061345401402063379964800465399153070725857075727269463280294571275859983239631408426161011091922225366010462457790967784233495426981031364143677367127563564391069573977644600472811418279678505928354186105518364924977753457372155363014229039487235266909282645915456173066669305834011181059570595966425887739114888639452470719331561811131148495721069589873458087354908989574668976667040248078203484954332759249367649194018334267015048471874320847426142703376197058868498430961298423737590207005874957383940320161621560641609569476553024771913116009626543098839856869249809274718327715204376916235758005202516700281659845973963063702453867390887109005955759258557858474322827562691399659239121239704688272770567230972126423993729411263258286994760780500952937682546818239127801501303445765209822212443202191383086461081066927673643477866509538429083171384982258066238928221433171978605179410105267798485674142982395991518207543595856935319460870358084141249325246334128840935575407395344786685721992014982767895266315928279815311265683435064384581201667789680041126447548195762703608388447510300366848903156049309832828562573897485057895577497603021356993483262389441755989445236648092548523458981375265533570025367293972238459895007442075032060432769221329594385095110627033528207194508728798737107300504180567575936635321807538428638628458359988740493216312816233368345863040685466295138494707191332996691082810146127487541018125212630960020503278242443577492589619628430409404792808258256213306713645700658042994453810954873375880194028101085718077244557957922676037729677032587897797720955907193009548761080090489946972003533735908385893979058299291693803844939234405936205843811367171588711604450044134607184798273556375326225759423908214964885135992717097151441237755744032031121874869016688707443621142763025480916180830790058868787875924739273632869238604126341668562135578129703496976011152726237020038635514687546444363780037852810782252707295324961298101292755738573887362746460678582358366976135650689801886457827559063149775493644013615868379907409326586707290341117702695511716976561523051510219789829901415691385530706201821365834613231452247864841777574935262683040521866670750099733032359353514891037751598529246889746001572585233954442265942661696837205819266541977174030641875394234961022345059220061954701501643971721829804434545493818900604481945679508887044513941474801447877636468196326347115331195594478293817348941849593422636002248529530900675581042835425242546058519552061061281814340777714004283806386248734758620897120860316462024130025148934098673469407348611631174968220345232882389802785330577469392726986401938554071905053868145639181360344501302874795037734742027299283222985952008470945342219403984315800072675264201610517730151372163920799879054147032510565434122426261008759158750207278950775487455455812683181237673909498001611360947862308150503897812043387720063895959471399294255286032391326470380142907706364339636085044679277730202144332505553797061520434784649380814942697330285165546181256910062413913190405135713419924445594311805069605430736288761918930307595895254429577309625972094393964459824722990453090127753823209994777864567918084377177451762000874935247366994595963949123130235254926014852804308346318011279801278779149729088263238654042633053254235068604824488320074788401368569106415422423805082373905291003689600802240267081079348264900179992573467580542878769566579030403981299960569339723961384468976435713515808337744442504906771600620894039796631140039597840988318705497343020925308453717199902872148636556769430629481629924388843049751165198593835637527712427366119067340494291535926480887930252380630383102568074099283077389056325963712403072124747394173090247746427159224167975933293651658505290330780014703692335932366031667085315772546798772970557434399159397825023469739810862386226833050816603525553729059642551863809037892993401194168088617537729383537543649716541359513748839515873611869838234643906022075427020778819191728516476584639167920985015396232429432121210534481606002785477029221534547951890818452769732686401465498046092953189536577851025590109911371454513816693708447943115976912393947166899681349971232167661288813360727345994421969158618997592601435270168089827272485036979617738239832464104154861419161252082331969980140357237759641752632863625674996653681649690565839504165994322383243192474254827797416087125193367624536298901291464680997069377386288456964779246018256069773692924105042801663247165521894144216532978511520333401871096988468762750341792864405683385536738375655683738341225116721072623474543062803148485789047853874146065401635657239953023076561370166971712721779489068745030547723280700150719110134705760262506041709124870827950367796660167087760519927393790378800720943616466047698760319831465355825729922596007411791920815747704577235952440446799464888429318520538257722141827942529714718198734622437054430952093101768534770856263147811844431402004150203740666593111225585112101343028713529528908388180213728735931971117568342346387841736134820752343990649880167596063215277977691830176761415620062914430540538830492209288424088664479708963409809911078185443379106164040446936088847288407603955068983017800546015647762437520308231676825508355917816750892565537625095958568035604143106972091858659260268520721091700573978492120725686158027978899982799543864830373475718059496066321471369628499615670115755807289159245514939224894205368066420276134744453112225425277979629547334778632352196590384580946856781231291894563838411074457636324061513953891688946297429158923612786301504766771252099890112560615851501792714797743561325014011579686566313152044182298097077208980705266787250876785721383094757533340308183798143804945376327071303769789785941866153669085477673446352923969162769038345776733274531024012558361701755375074456986907561466185474568140576838464004795098961318087596247601232205871685119267729232233914782678561717098453641657943917508357349665808780190254299672933443516288238882521790472464983713274197498718663236188468616605187053992356057383997838206927938315439036698006105672140168407586011486864307963673371447725987243723834126649884605450020277051312900325948597963537409397046091010398377866497817768660645701010314334531506441490369531665178165346449540635892798912337091309553872386506919202540491470239287993006273307471378967546482821240638521964091912987863679664914725747185387114942312917455259203617140827249910837434708008101513202125956675055526498383655955468593649302631776778752214831420482118252577260208332680105727078159335156651434788065158103047722132932873663033450098303526382446152693115074703451294125753373908958219851672883374547217725443458060983433979502185739994009253756894307413062337282505697042567011558054750238653223820077610686199788655643046302903990957292184510456608703940684466114758578522402701384111910804246892945573105401241428632151365397056590743701996321589210544528405054959502349128457598349400510170124682623437952691396575459076032754977806161175074724250762894926681793320634333618941356673786154004037383431976135899032737706296595226152555035759913028891961838751387716838983726906031878513055088843995563799147433673142502460236469502810110245141887187979047886814495054059572385840210893864694905290315936123488711003795926923195297066799081772603003417425927534314124683694501581035050613413115434814150731868607964124918885665613761016172321553963874794263065483968056423949143526664263527040372593818844518146555612931894268686221102362004522927636097268626447701856609304567849280032740888504301804135151654085763405331049454776708159245942192632784147116078350511798301766258219930395015734954149545495135088633265320384786488727333309486236819088885510499195075976622490171209985655913186083590753082988848072806694036262953993479962100527659600175398539491035416911098207442145165437867329418101085291666375113299804844801933600686725445253885737867606532558293425355406294293520639464823883254969837421417587327469154956450843347672521426948676221808382961909062839420843605478555363090644423796833061328449444478279844779242344640274431497536660836899128626630872824422090659959825107668992112446832184879986931205629506215285000266549058676218841955714018641123686680203236995968797567201882973395388968494508167903118852318145465014622274988640810932324200426779952419066807360360802251627190064306127561755892200913380300349443368087933383821720998238767059203331663495489195630768079664857119604118431601233243987429628458992419902783261163185581012685750766936424286749561628414329387525228882931380257746365545840816191914453886709737386236000431047500897720685829093833194522758699900997348986648601382529007325966255753409109322465612448586842374180392780951798044453806538099544990239337442052205025060225867915329549551401560823832974222742999469069993125907028504799222472020387238048827023575276504049998358962928782061545027931879130237062365516536425041774517225424675028045734645903481282195681406650569805654236017821539270753215774821487947821427114198062090877302564898858728758962940079804523110300173510938429111880622359649053801769915461973613188364084048293990787350274311634841319625969997173259566464559672745435838517375178135501695324712788674594487027219603244565178538820168597467125377031381633217641533616340530470332257014638895075751333599083871618189868471547292893830025843330018463131474182250426561942795692132500941413122782705373785107218328380725534683700609581696680235296174107765952890065919502317830279359863200490476110627839992572025072674334347446268773997966202944695657405770782035923060301118467886890239986190957487057161583050614064258881963187051412395961708240265488746462805867784388872989496514583547511741561374408605787576875090490237543717418278827903631677234490406137966032400078296807945197132873082839486309272632230438590621680499313140809836179939958386502749649222386602149542557685457378016623240929175369109831378108964427793364603547657797612839053557018330572433901462994214147640130788929353336486299125182990760511753761293535523342392570446547086293084354535382460091729334975316036410803341969162901527384591235649118507326305704168711592308539405565350803569431236366017304046602790941093001930151123075570548585325291551815084326148051933971040397201383963339824841180051756141868027867257146215865843765443009391152778747995743581837343470824112050533594956306118279900202918849887545694833064049169716956103400469380922125723173879873503178429038345749801465453309958310020675225159086537617986585146917195223595527834644193984137323909942738730883575403366726302009400911822259338726961749109036623003586814880480738028684540204112118607285127457299202057129777036665814470646879477117214402933725636848912758292507368440642769373418421560206269969956817241984855164074784667744866015163732568050063155154359201713086339287086359545207904205415842995094870593153436008639265198840450764245277460436948595115481442191910138494643002969621853484401377507585064535152603757027020759864143557082019351689456917664203851314357740696824378781663442336547868863676341871183956158052204442189486912712596108455073054189701139380854906655005220785151657857794901261413010560115371106434400892910585009345091384820526532073279184128585951588336305068962652073908027074223944646816921692740148869617445441949270044926678106397229979673922313051526636175381069893846327824758892081609513251989013600539292516294725607037362355774621144900784131716374947568018709377678616831022038846448675422788974922684592391627234775107006770213828940740454860708869517575046273328794240252536256597154398544697736328834358694697013106108343571378229510399969246441561968085265623280697209545724419142130784087490809590163954235405623667452204041494981283986881724511655436140269908378780391282320757605706673924420687705856356848292958526115358526389837472003977381519443812795107920100943395028285736698739129924429202345629454156227861013008141152977223261815951371144790069818646563228294370250004624712668894270276264456477061472356705195653529627496868137929033316492194029195557233027555037313549946724120042764131744148129873757911488538528807834879582403587859913165181948861583188365470953590318564356772016017642627190309069070176805872538149644954852305605448705556199564526326678300756641678786853420136563397032908616311307251383743178426228405505266568418570798689525765390881377657927298412465143428810742813399931989404996737657824055070827442021715668283900763298273810646755518524596450763285108011670675683513475899034661746247999180767736494883826097458323501263275990419140279152863737579410001432259193013782585565565113917317365804996331835782766627583697617425872745186575585918684362131647467920266032710905262735751296758589890486657697801615244415496517109279552922893855627724546653337012801060557096341845583319405981237644197932050977794407223207777423291378140189131145697939079844895211469643449577134946761850753287275731872491023561566434234726348797341880484612997921275397021993079633154577735066294286824158977083394188444298931233915438473213740490000372091088321004260502854386620316372018860644956544185880995515446350205750821752120185033834356789417206941240854502387127189875058677626865247401432404318627391571034581609704644919341451231017648812147365300310633883594774269351758096380497395640591401383821790550186610235934410436974778752852604041779206728859407567935133990793248089864241097575065715271033243001017771555732423049058969615517031213789401078830098260537678551181018943025416097823154335596426148006947171568875090731948727726510041355793425113145764703846940498626763242716121757973442116117382346205436181159892458496888147202849480924773810033688486302503981029463006965578219225685260102807969962135597781997413509812070034261917330092949122973935949049626539054020039159288322940043629087200445410096972776652808830071421043426726973013853647403462317502839668272717613889421394235039432519661827134883653935776478654327107073063200311630506379826637557417751345755052694040637427314064326425294748149122276681220485075728379776434196561491597805305707674131172575127384124448785964204193342595922682795550462910514072265536584588620503045272416658375617309549810465023032252058769048060062366522581166245489853203187451803424582287937231327405434975687768613163797270312753262172844157098993735805217325985082832129972164164346335330835338183830861877064084435480197981283426597826308216081128160481949198199995577226171526334052621839935988562150930326258661188476969827027844692545978433593748568843561763536802875538574082560501954504015925785989529133539186123209710079590818893319601354612910095814551033821608656445505183690150260932226110383830134828347094815551494924546997209463106084177578710700344992686489893170916511757304828271145986439555074296768480507067219191437455387223155912546281346804441329704830238067687162411941144448687178981238376967708321065272068361020518351990418460729475963838142312675490909763549415953275987230678470345680914908613698414020350103136854828971633313113933050658553641137174375017365100766636130574633528066966943948353744757320005194296154077701762641834472877942297891203639789070180607540312629028752164384822833826095001514728198692414307595668917218148133114001695415002546289582603552264979882455632831537339653765681767715243829290807730160494636404382091420076463856189378550601321828150971884332971763284424307965031871167009953174794539771220399586339941199019337277913637848383829259907729990488298303993977133072983957810771540069252530183739400107924381515890773079142479120466370081823777036178672301428143746714503555151834779438006967770159623798711918253045456922980233403327251336618672135274588576974287775945682902226477222338458213502110929765799811600879813095858291819925518475906328311375725596930644069894735562591396259685844426404916702789855110046232600226141100422954134354318688617516436442678766983933524456026304391813009688195447163072429226711795700874816812014720011639046167910611768228815964409838380407649937926276824866938662280794174494272345805748020008436468689266271329900762375811825829349295804841976049591970206931251292802604867367544457465654343053847591040373071383750391356521386748231926469812308435380019588101114112208601265994723936516250605673752073201088940406122417699659820761557331159808556117809586589208188230643368486946037352180124109487188137923353371013566196466435855730385473175828843950650608464430614364068924313553851273698157865487266260303362272136495037604736543639489521558319283044471544280213616193844873787987896996881665179547025765130369458299705311140017544372464717296434747708669588149695080485733115458381994853538505314749940512520580975927952161248069978932313010815667088888833153742068345200574487638529100955311552667170094645469466467207795742206478172631654640458627293657496156446849699182430010634160305818144791353544476784635234192842323233904701959861127027235850049122322731493061842526680116354533771592878704494894738764260276944056546229415269691753477651565142870960220821339500219143673412974683505667276027838281775986224673466842965523575282754268332977294346753950165969986641229574799124510611533035745773655902208149503314087825904754355817514687889470548085427958879252713220940937969419941117696304806579691898287319773313722371449923792833843821268239409263297190385200099257624425060359037413658053592849695209857622646221318309659409983254348761965670845163671545610771406605924776815744969546312049542797759652253983431544880004545464630706123236920105817677696100241314018222643222454583716593217150313525073227525061363335033006042270548241473485397915687060700632627379833458497267492879918046062490458955448568586773044235760385784901772444149268874900111715813423176460537517870858314881720712233997662125802548825001496689565875379378078052625165077893242515061775342186335408748954515421998039393403837107933201024253703008728320986550305412462451183774835762294701092749785244357468139404872067977705182613174569136268080642328572538298347360922552219848783906361292511646103560567989142227371310043438145342388823868713918525563919091726517395260266809556263285351684201577130708539978138657117375381772112937976622191478338608343388031633071160076600539902546997877099747131137517921573271307247631844040918790448249659151330452219427607805035712883634097757650954247736986668052413459029461092928941039143232144058277328717513211906663207971491806045905130701197247279394920907434275810420918007499303589901434563219930912829659797064105214920801676178850271709994924883559260709975484734028116311860712878392097409880285489723007963291470901772534191032925083059989101202682560615987490784874147926645920745518783909476487459732524042108935732354110106026310183659864903466198696441359914789328352106731610066384848023591403300687620415574306947205007686674486188315731578354803282356632757860577154043526288215358993406256550982154764913054869230326636792606426096780233252898152430744373286925391675309378788278902444625929996255695337890222703033900156032381739738546491779547579884068395456901804693594189582118780486837814464187502092440089516507790237885475270872690717127812809625265337085927201260452353477022732972156190492045880843714785537114888482362814889129987525338758992803185108320210124860182607904512118366104776632226200141462755493260229683064757498086951703222602933126094178400363128151113091434997545871660075106636166918001401565761776485175849942156087995873234758883791355190385510969711500178892577859631264816231439638127537019002077904683499227465508426750125456074106209924740332354173509274423215696843469417303054265214213752233748844166985423075848007282259641584180700952080443000593016164274927382669301073852726009877158776864547162247012389655462113142035943898900976741648975906144823912558372529369096670538239900119465815822564837380277665147557208947645982632233119693332796760584062340037505430333701467916699988173754955793761927203771702681880517241734364118060348405143618518763736324019663064679251493134320014697421588594635798416274222282105769281425928055896301372451146268917170100119132626309827100741466745308279952670576102755785976380926434149701678826694473569137685461439784086632105502103693579702318834618219554191707033794273311277685508472442477311934754645092814615104340713131820829850382095958335677457824675801874725695201059038056509009428129776417575019934356773562925156818736284501862346589045497020992983355117091469255893487061501054536369396264491148206937083151937780952360812128454639795078972210694109360768952315078760090744932624314182630068995674056426474870554851192545557857297745983193448967485298433283874872077505342960189820865046103333872856535051508686374813149009788694702851142949787094980978724401594698850331127367407867360177521708320724081355574629660167621099667600498606920507694591732917977999192905376076049880285740993899847081909553049990750124982293030526346887982808971794346930690047619542617805204027921740968778631635577128109432284811997785374804351942705990859989637696213162194126684117515583878237404280458180092122229832304729606075730191118071230950719724680110709945395812626972916769123348697682678189504033041977555634481628224035454708241772586754153586592218811263645831535478399757177770370143205545009633540365438323844780531955592280298505572064812371610327237269587540260297314592696898130681751905485233132169164928531168619733467494097921685433585503946994252665537448075965788452964568375698179175472113251131318478705672228606489971353340436442264654363790535550189811985503962136165935439059241238470350447185717113096298461352575892836634361028679770670802714728797519440232288104941138799803103295977776221602060992574944978949121025517778165463443059950931003901930639858431284429493525864935323362817718021204760576623564448238535099867593363269249945566848525125758117704420875436302601960643553328384815164952739744577516536130528192508021289169631612161079482379631551301729143555356149405887776622029585899552284847754292832259951512476610551444962143465136799256015040189371594288570163594617168816148934514852378830035271888720396645176750227576307010785595255679340956759431736982881542949554958662475365420387175349210338620657054988299672302308323702014555684875340873763391998820395838069482529780454432906949564684493297528762111197057034368064276056272192906693693124192633025019599558528334656330558666544404600869046373874031223005274993953869382633626558014244677227576722171104421347419873544438795179468855731263225094381666921606056469479941945533408770027530296742421489925261193629005886504946336648644327309860487399616032132755807627069918614459031114212157581806134113719769593650213378473476174936805724391447780432079489135382074851118451252352993826090713442436635024652564551206582823206202025694693074355812675388875544623148525480895709840164285003253145396295530433910895711480098283789653404325228231806406116649949158922559982534404753146219099676396005546487848487055661036093147311695745937177003321313363188476991067323593847800575907693898155520698612935946324792353283159472714807729065231000689304093447265159083497868771450387632177895649510678516387465276782873699282003101628952603655821637455173180299009754403882601834600498753988916402966214284726869830992017092403569195931660728398696642185346252868041497894858391113747468577022470368136010563094376561416736214914573056154300657983786256779190855125786728001073194821715590837585053411461835116218000870132524633645951047167437130869046230135652240702852372964061482548113544380114867503968369584868185830867745110279196089219579325947197930648922948071305113296612321309756053969586148768523891681975522799870869082836680924474787756530395997148082860260977980709137127140035803028573210299420120427826352446712355579662706935065049185411177123467940918199336017086489215718122482036396076127611706260826343356982480400902669013404728364788778943387332876309998837228198853016630570196094735199027674205236812766605240927668840023403269192685552563680234591287961497176260581670592893687647469197524894644579891436770177169017320669762497694182930882153199552473416014080796504012773143613441208694958468405538057944727816869785075862796041997266430948805802852440783718935452303448905467134982882891156566040117071716024136099325222511757438677790909028296530083198592935052454494974887349488239144405294070809646203779574760746047683997697592169262051716589660602428589567554511134892216643567033442175695166985471473862596212095262311891428821376230154185277001906293173686692533470128619945607463066449815750682894783365238724761663057834254138264670916011967393951593297343691744661203446969415920685349620703550256146122979533925294039516794431713162267789247799901157302123975741205670313431390810678202078336339973175585212058486814834858418988113844147227514403121840268055874878510349552872213307293123117718381765106326822966004572802186779476616089289448239662471671476207647465115279270021896941694205352052099606733271135096558893463253636870434235402678631095898232667427526253758557485796380173007816766614456894819254148350268134077768560234200646828757407999257223662276312045936123802203743046411036096794282801753802050655270643348780626925129800332938856602652630324170986224693971064122121679179873049440471305128275513875211556933663784324898186226191874594898120889008531883361344067518702686195302150303829991646767301565028657309325134020685842018694774385431641546257156904816003754882527405139205116893206734055396869570841551558007190831337354525818039469008573971647627122125795791332417375089093770139172835992670177165331815521316286719415941008111730089720137265111696674698911675624238560398022372681589383237263675295813886061757216154071269436294876439445749841567851347728561877126205477601615893284931925997155391884995781475170221324273742234100208135066718021132822052334558255100293786614069174238398252021442401407207325211216819323502370986563334636263887146895390425328293544126757244017516329985330649049276951249189478906651081177945283217604121081041203121760610116925042139644878213370538185248255879014300805623872353281062326808868104134317523734484651947404206382712621804433362058087072644945666221955432831973787432192898473743483476649125463694573098322330268232316946537264285621896437034704189115622273797360710007451271001895422816518277491240073800711049650793011069586933888567754583706274335318375838254653357327948367564933294115421580086683794588160584669106880316938311685975543570188568476556649611413676827770202330005060014178438620204200265783190829374158941745514869219377135625559176745640862085974852373982625583212244843638577722266879045843952528558238714060434585802125281243754942231891047862756479824045044698680630519261241726641800236493691456777077579944150100040771025703718640459046206349576635121838309740233697893302621689959757060096124470061135073986942774350505505630285286635799019937873310529096282140565859895376833208303006070814111205398796644679212858290199078542694148471167580374630715773316882904707539229034918066875756781241316530767517186947215854547843188405718960029730323895595693003311457013491067438805551963989498750938244420678245472278427238236728052041654798396354765505329714834609341789425646624537956437641577278669949028129869782800014417892751570266365624468144651531416819128628791562151933868070948561370825025636505167348284462866981372655558873589061883129770135522802523095603203769141315460540184235580974481371173553352857247128654817586544397339859016870015224961796786963731602435385983290654778891983862927841694047510697747557573512067741899916125598652391215889780327817080444685698528337181498070751763877104929278212993426767186893608706542416199949008676484648017450461031902623207396439212652739900560092598844771770680498625998465712987079482815259647073451283906106532112780669267856896081837459842386367615835436847771615246103674087494322675470057625135135177151251288410720933910608067176127924918784159991025847215132085531574581180186140383917067288740576820136141603963235376065929424394024394068596910685481190144367239683601114594376771720614245510274081399129472432830387560890147818076313808102618125842036723213100908223189972254048462120372108459371016833530696849324588813566772094310469896136464951890965944154577958651069127680750695176717134158408525005094317973460566330592282553351349619999724105239582609172519878317766885754716125836833107090421615113900424302446905706004488956009199148460206953621865068115389241696717742060987244138069117870611514884101524354862489007700630486056168117574181750053301965737949855882269830736717463012392398037040028338129594213484874306513009825394276891213817651514597090317862755189771165061381324476136625166992540477262078156912482726437420286521573001322658957521562012989667247057351676963941782054429266983368011199696062810219072027316000744093884774383204703816839622841662504183391323035085776290487511336771999235424279016536701746687969867165654841434782494784782898411315981199853636546541642718451593822765362676754510384570918515065746410345690456878472146726896342992071804015615336189441200262190684084945848995938690330612053750819939578145079728793230768252190892031479059837639176307106293533141418521062040976137015045640444111168112774059295289298746567412075957547591314601441002512916619546182360886848420323910091917224964342826986102409250633597526926849454314252425935924414004993212591161046650226443615264518728398102562222475026390020197024894866411690383021336401706250122338978060047934880447891989872509716999156878845431552953906060154618862606139694149927881860988430913157811530619374089642833955102904914681248995636929060983711951481490483685233963477864692282109763094078329677225906602399165227933480304783408318857878669853442546898537174832709103726846946087262380286307545838443154097241161209167259889378014390231795922663178357846786267948613703214953612049685954029445354440727513143733680900451488378393939411308604539683930168039892738112701254369744885815467082265025695254452862373685398247582088545414659831744579451938750709310428632222120533732659390719326818792730141993399567530111060763119455454851691303949503545517595124488736314535005820947544687049514652679992107492873511767007896635888240188231695647015703197374429027589237307541251010955584994164897557214457240147768403147416661200512479623836105598543134058248407804611835917888310964109792331173456710661466686290978826208415244780259801295717254241357069720702092454592091659762259445805320312407651325841947684643930028753074766727175909167507238513744658814675403866991181747621369262412248244674647637369371977517265467795634876428993815770164203726353241855262010184508704866951306235041970920505160064892496521415301352725555615502416981152809296468302510116267860073138074825667863430776872558107041284295376055284732453214850144325166791891534952176504285312162893274116353106364608722186633406995287049127643058674041545095788277432102212937695616619222233595204139967914080049939212418696456835347796419246973212047269777781720088159979701191787260094437661828112577051509808000651112692814850297765951386056525346638689710016319408350349573010185394145222145921093047509073003553377776892808066019167646680954699385424749049050890705989717282528933600288345683528991808185422902400776024679138872035846179032897238916099626721900357322132560026168313390622525321065026347174665824250902179297641561700630337429872255071567013416114568394831778546825334071696041724487629512220403514552509216863717620447674704607334521181925634342099832789324798981487705573037028168702958147275152871440303984408235985529040692240796818598387932370441137292457037437268389208543677227448341774162210122884388225754661576235011898878488993688398660198331834846336488966667058959447676187809958028009633934516984352113032776131146826256004080456237773952430212115308539606300834544126459050101366305838857638929078877678485709508575972003484864574857891769147406799007357830075469655534378139212435123985716690414113340711000672198840855356145975693374360384253854711008945611567814968135412107343897322903567270756112419831813662650642167648220036017450478091933588321053932313694213385545354360924457613911666018362353354757325739055804015242663267848510411846985016599478645924201087834062199478248736292641647408771119972354610923967554814396376299310437484500718720191221207801790820987558345001380119040225252265787207010693919497869458917914189471280636703283897735846283974506869024555789914359069630292459527177649686463011828877447821218301093468427253015821678188878208230827412971881702582624032410598998969892695617800721155484848796461935312762256904937094324114674900506136681740277353102006575181832985973718252660738428990528168231832753756990685674630624444339324100794018824195453231910954591735461698284483130378062707251383048837100447100073485370409682606371209811913665366854973341432736783174722468217730505471214334293206551659688411083991487038992827425868486708432227170954631149607330046663648001860423898018110191204062469217979316507126192074681883375543469801073019188265791955604349803249387537872468428827560295027734598211012185240423348220617780625841224943079367482224528916464330668376934278119028468271140444387945053532267584662200400206731760335463141333277538000380256563111683950652753676580988769843166169931866278889744538502847026757211142012586036250681272612966786525675756384657732626062052718955391076809587763990815701277556774657460891764707800002907489396036392659368286944515699691205308688537609074647393897746639628025444927741895564138263956573693826818955628082399249693613132092974759161409611682945023583357070577764554983504892962418844873737643603355414267624856198692138696124664683176121238376446657166252069476453099112249942213667541076593515722405397360635815101901453683014575215101232193088940297617407273648198460661778195949081378976082675852903485009042760948906994401868661152303636517544808513286870101104802104163554508014547563349575982836826982564092118936107479266377904651111268549421780077788379270925464671284608281577766969361119601368207419693764166612894102257766112436610850622349970611375609644015463064335644288197199178550049816523034853970469099811743060490687121529693557725454221258941976477305341375575900217905467154204490995475633694225284850229276047357810867622191620569877869114305872676004899220218008656427828057940658179917105193544342568644854295805181695804435519237227031711368342543241296855622350425095945139928186767122714629631549234164202245902481036753431860699184919709910935214356008376646073734586811564093560632196954241087668323219009684409961632150419336261398876081537285873122400856940062041148761430306056259018225456098467805933566111120686989833307968554059617656645385232508716812955133101231492695905530698886201161241256286541299553558588091579221285557907921424449179867389146719383594600928705621713230527095229144358091765954177687925261101990880797716855064133041183176826185042292152859055394734559180269003069723839901549760074583332225403385293349330091899402584665953010230377438152366165313440714244491755450199392026170539301369513436592856615542188151299274257049517154002371178749569294985581122773741796052929443797955540438881332039619455876298218663059216207418935451032504758968515689740100119523288312346976055843409222018501167374392699261717729141746858308553875295701973198901501353455291964788067517384199037711142376699191702144420420805617416743871404359918356548301451118996289507733820669407657540937276803732423939086935602714745849751230952896883610227269342714942773609388201982793829126934740090897902274643629414529027756611458217961564081642780545799979379549250596580977565643767489803651728317969581368915601141262888237978367182347161155895858447150569066212448241576505191849314709347334808501345902787308567303381248344291111273098035958628327439292415687890838658769665438636318530426911963925816349231890778728824127045283218094381304958952484686192570496185363916973463428601643815243943556593137375559856839012157963858419962964971886635610942152641008153286361122774391363079151732118666252687883377599974977311179373807394441486010325723336741618509997691852365963570566415108324354764229990558062354005778313392649522696987101892152758072257501430292255608953706078155641664299178704787726261260749696124027453487616420156150205688656401075604118931173457785713048177244639044238814786098978153956642351898531840564841391825970524483128877985474557936720798080362302926333981783150781548298477723800520503139636932296520938279460907634731423943780699938054477284840585117885844336212987111646806564579710804911341458327048908497208704880695792126034743192890055859735115703252123467108834897041207012540975111520100662242587781766443023232531190194259001262749874852048613108659151646222870974462432264487585648788933236807473399419448386687872494375469599107498077109592181023005223734032034686411692187266593814422941070089694715412123273044543691565243600506126014535304051263725487678374951843388482106645503702000761404202480482156874244829507853842275640144499272038848118515775464823631355279321859346491142491465987706904427176677594324895100855940334148814841834476619344050528875896999987342050115327253794326139592431896427020761330478775274725217082798382735053018083605063557405733240442562219742540597307318222120297657736533891892951298623514918890997384169558702025183855395167400255600491531987915638236993443114487504518095268786934218305482463379925660774452883987423565921755730437567059107001737184033514283513310231453588539464767693993609629289712606707658476557393366376639201038091705726161179421733865108763443858758978930660984756056757789532668014145366761930154465135960615276430040441149293369100292064091654703074396842634510352254468771211196213012052254965846822763640705194969908653475330845582957976007110614881474747482785733105091486750382823602499799470829941966023868131877787652868056613027698239119638940554162647908209859592029216051955557212593307875346841986357359293342583496827423048286391743882765453654616981384029723132281261870222006792519000957082872811170574099875854594285718736447367375570938061888417609771624719199431798420406328726455004149683297573923270632722336255183812737787888140351657788619974414332568598049324319710549936328286182684586061876367753000529537488274983607199656180198717957138376207974582500560116094568508416430832607293381044508934164181847105947030065363668099801068598569531690205759978346311807535596781135170340036846543873991821886724797381177563580063006898102520740694214045807069021030480292827284223689673196315134530452962513370688998077736908414679129405878545639550946136580908645680184789633914636349291877013937200316324051255685321308224786166677123879358291240144182004913602336009778426289055496062628294896018971366493646991989148450670162665477589916362059807254007679753227952913417293760582410169916394171230200183069600706941230071220751724192376227549447511717765570500311823427952283176149635460618969983030204113965103761327041399223205362820065101300917865517624298732224317615827863250600500499948901497821637068338101082252282051840891091629533549048141775499289516941359523161810081643493133266825066969704359659627439595608459745757320431269392619877759311835003637851964693537701323020629622413551479992962943331717503896291091932543765506809954648134823268210990411849362859963659276390224088360165370341531071948291779656690251884294388091410369638127456104802537193689951495360429193478917304531444802851413832660583463952992784938458740374073091775098822369141198925958983810165139555361843615865247165970205436052038623621635656440597032264165301230661880929892175556306108691834842969969216639722097665817849977867705800312305009038947151285783681408251012997423822056330587951514334142958132274104434483366870430452185626352801926245584521537819977316259818802286217027228432397452854469267659383144496495657438773845590904497270316263180605563238791969898884585876691556310572482386580753298011945760292502088558792863483835448120129549339303986629868971665552133817915197242809991219801018772772188880379167475785150988548133375273211133975766176861339653450345061119729514356254942333179204874725132144715485804103255927657475876946646959329242772093065662676104705495429493943766960705453612851235299574684162852616236862471367697523557747421497309608217186693029066259633831994589301240619100879161058988854134888134343313894773949518015705773635885993859635507958035664754388579775871648441273988773388680229130186075270433823637116018810916659634999796503738423607660685996076275046950801059452293161284446242155887199229027883145862897846018551910019761151615910246752791716853576205871399667170214171516714749387056774338305702746067745187686336153338430711677371727028741389401967698826940507744961237552344114169383066206068038504721959614994416955511832738673966034564450258873303401406394013185616951665277921009727068164165426152101112832223343639895247856231741237303158377151604482033760509385315577941973290794239170957664002883954132473140855046791741798588141035218324691060771857600368182004290225361787470844742070914793518327094170208353382188220070112374432797126003280274687244411365712135534655090928568446890424840480374451777273534202788676120483038868186188618986839244635638541217508782498774437685443409863561617860462123691650495920192620673011001064828193147716355525646111776308153074661561657960655769306639634089130179202444256788499167593681217023976999970898544733885875006308277345739964525814601928021753416092645083654675181893229152704134881278685962365963344661221902237907833842597162856181689629417375778088672149275804041994279113411355165365157430831551188783902865871221023418363083307159125409300998696230522486828005229331077121488859697509386306455049132728028427149946716086780497610169791429905952006507186637099284794024043472476954545018529421339406328287144010928312071387007737856308606159262412618421181338683378581359367003144332396204478633201222035264035744633698833182767589894788629281020296353618616596598774655873111125370548619595834791487059318912624657961906499460415458781338262087229138375763166090148601854126948668271059707419669911558719120887293767992118686786487290623529404290551808375390406208780352788081105141771684415653625380572597115476322153773423294372767970402746690696194802472673718475384786393494646225517656367942493076860547631980314095171710935748150215482111684097722909882214968636028218766006473959577985585757025372856094987879000339522345449625435681213786728507589555087205495098096863884194327170472689531474812880833972953939943755148023740631160524080432659645709619739728056746311955847125579372240687347844857358940769156278457923171420452476301245181699632428317040737497627398888918444877951657430938902535399878036428506127945020319009625861847282446824034068737252605787224401256859988241897857184131756264780415266572821987987867587001159586716179779216010388942578312425045501156414217698953608146341924388289814676241922583542762917931166963947493511007773025230763809541780739817416723529236434795418013601420531377709643903272982933850402946927836044248205173742575600304006047644456760976670854552190167993178735805785043925887069918127033765798465248765197433453734626823412280900567315452167339837140282020104179038108112505623252817684411779225872162799457424875506817048764918504387962058947450720868609390933688853780180808161877927313822844006428370420079757252199927290090984003060422444098957009924460276717758325333354193671388707573136924471271560070494059237506242257832166366373827383528353975890235768031746729580821946472860240302805739687393005561986956819379984476310273752005757755624125685049877492386934086483770977498290752946274561394446949550420090197226265501899250532265285202157965432978799000368228491210563724024020201875521089595893420641270377676744775079635884267098121092129737085518948717055738576481044302394832472079760103307980708155728548695447589202301844666153072072158634162503798594456274290572101031530611837928738843120361169125297301747415734922758003420369901674534827778568571564115738375598608134576790920789019825854362178017548581304433613199866087483448424182286546099385987671741695586601028252341797063888655313650725091015438914170883188658065851458336698834118521910178823673238341429595704203515662020515556563981659851997765678373224864998633666335883517900277317138501672768805057462800069651750857049691628322677641877829339688166048671403208703923255710357975663576493256435065512884372066729713572906770471908606560759965369173138553116307167375926419515708070717107175266228583208540996695198894766850492248384120065163577115034747455208965201075086857707137388245601638158494938762885450914543230356413703695252548528658235445083241479226528040629085169859999169390413071193501912776129871114718132369036706771940110566990122540283191178307447051977129752570938875554420336645849779971494538640564809869887390741280575015078317183280749363265141608242931698951719663827940357145170085244453565805125227059011093892112165763895616261487952751781552331345718152245626742467934138167553918004784234594235421077458839548844729860193504257044192374906828953999557091341248638354096417724006899527339026113464628866671165302262258956534212293664901655147551756169760171402356572138695851875518296365290063622357964239552822351203383095110775787467663472139184681960860345470290478836497772538493888973267744501194114099843991226462763321679435560681851618238843928097119170089806463311081082132611772259186550692642244529410499305940932952134933160494666682728695035587106199971151579265739456781990640014024945286788298308055182971750101008142980720317392843623291335848306890181263424416311285640878047880713976831757710944874901288799040380556802738636784976426050674671722660011934125730601681863499325128815000259987753610370408798759926065147589234675185101927856209138623442201522617040816292588963458406994910013328626400792625276090570268924428550437004460928644071233679519567537697326430656928624940634920890130915711433199206215828269909336434867250081591754514824021820938877996562849592929194117135334000073055088606207984485873023967168486707137497781531095691062375529374760970268222781286974932969038828494808536053774026923828190959104209453007655626313825971322962420266602495841041329815947063644001928941890929696242224922156456828486135143307639330891588378442861520254257634220960743497549312377039367999238420619682461823671935268013675243708663780229717625664341802852786743554329944107402759378986692948388377365195189653667378070970149825559181560612226601421678512794636047057266459137344605657303702010676958578715597290635027790311376772538016721442499894073723101428241784857867294934143689118127392684668943092158774666661220027411461373851022858051457173151919683266919147758283535130845640420176941241706341338239076337485532347683060951391215573840022166687094337824519867300857118947301388452339923141371067934728998318894740067529716683740257996830879041463212366760359957644016340854789385990904704198546702003212801479846902657438567152849946311447840746073059597571389514667601119029797479229577282020807329240157550627492592496022826416134865100611915121026306386428392163603588644187201570380936041437811960357242801785131462584917792126183233166460999660631225937054325757792047312611744240962079131684312100504769544478086979082988747610884785009071240377977952341574719538268815051284129434893144183317006437899065354970940685092057931653665021040829937447043824270680702139200801891065143463913879678998244135890306967580005171597603941611208127409169431768094464599703241735913534443138925301410606545277638359261206302238383554469090904601334783871477140971060156804998141913238202650439575247025764916098174643453370079355828824895088946745230354337916342212011985758249980760299309340819872987220568807568649667013720764557801039169689067267052112920582824427444122723301496826047818101656714273228833025759460813796001150384261189355510893496396013622541566949833343646229862506193140035558531593022052685901652202003923845050344763653564296222985655404469282408324380037741900282331629318216730542879934761326601592154814940877812093929525869853929827494460735237524744908510002211695394078508854390177896839373921663278470518658835419405408012809415574154845487154391669857644862102022315158066491130706390369931623737824994591577998932162834246399632339481163331492068665998131363222056272652564748938303481992856822191597516752423896023046145764435764565591169227087491490829647826925856143463333009290847651511761625163441353574929999722913659792460852605959556181921121582575053540293064165958517907285716178439692473093020202042771010408361834202360974739925793716103016701431619649986970675868904963692765480334679004802638966294860753251008099458095233035030696294578699872825542414552335862856675875230266652278346042867130993955004107618553123726980016114892609533558628882443719063523741667172809801184812707833453211958196886572440762428345749494687999387360522568782923452951757640392223548994586374084339808221972551115279979292858521413803859656175171549663916416695749882724670914515776729464445563713844794816214500385136733497254772241415013776425412721439129685231133917261799477151712621953838098272612967729184675412803848911550931082993376046158449802683817635947394433441501021148876665016821332240353214682492096553191153449445082247767628217048926321070988732010419886920062778298705779671156742705588611554013607924115455678709469208035652718335138604146033889585817118721210341554900782519446288368540923278281949847609385297608232218121329897857039184984589675069554127207328190858800212255882280846076057317938101355459303747657691695975868126806393542771111205657504970015049811721310697408953185366190966844346474727913001465318509197122431243420868786957795867767340080201481102590507006755985161701537904010366464757218243370159933548504445044132777042970299091453201807383259552153933548863601722869012092087106818274514221826905490215318992873263183833724426017715314330292716801359265476378872745632086574464702569339779010157856178470987146580796223943507397147803318258243866142829673800080969326132402202663785729274216884029797526327013327880786617920374129439766693207099939638657805691595532645568491454599530296913991691946913577261576516987871114796352417003191646557961580326263662486165465938574352234121891385006454886447630680320700965888181060912465529862003281726087973212731056098614362770326606786508974564469688774716724881453123487000676548804173272941465045243169350350850203623447863841146240943928739553695678331124798964048081751065123791147874920744704035695888230888145347494544048178095785002744057421970066589251950210234178467931168713736332081150351635548057015717388110455378315723942033996399142325661623036983618536585073748057059467157251431224346358385557320208100222332181740675238132775173571872340207789575900333931499781658523446684350986343365127241460442715484172181722739356158076901549332012061942674015790219687044026364246419169828381415583371471848072306133448375952838570398308947204416777792272604275331012484765853272468673532951950725306299722385652080059884342442034067989803764189046829361049063245510350731657506655772132112921783833535271055268493639487004258936350224861439788542903648175665535505944608515013219236985195488196815354752587592137080038698752343944354924306950076042699699184178764863580156456584196497494493530251596395339629421582071683482869207050126452818311568874988436124031695672005420473989682214137133702477161515658777547176923649009841003332808254314466967455832925027113065230042766206537792383155848841838885414942928137083896085659768261923642839664935436950737700236532181245114141030288981720177835194590740681637735744019846457723148033104839841780409334839782668766525362601021297255421357273243069367342864578503003795204397373647522233136915782861120705955156168618799045640431890093221630899147968117611852696202611667791794446753555092264908929213605415222861985543634315941493678190448755096781410838592580117599630525042525499911251070473895674935417339261101781717242776223163534193913102634139014375531716061897496548733351442503177544321417635079153025852856943842808333169333829160249055724705741294951105597652221640403513611744466535744149497414468073774326243607360007743771492690801940408759201641874728596075296721317661582833812080367322704625457592441127616847048406433395772001013170141020798255405332269874000013319392297248438108098494252024423496634134582330016460539149617977890231520332973884910842768689208976740829542966462713258635444888235423214800231082424585625155646376868586976794721194579988614084585267199959758289012395229711868428961955832444094049016131620869465161940776832467229588135109870330440088586338084821023091741639944730751884032823856129864038282867531432325907594710189062533892392878544864173535490479289352340632003899010337917580602435493177201024295419273997280164629481485309287700460744570369739316668326603927695851894503990042559476460698294108528906169545982818639872814285300549841532841606900779520518106529550290007347983042883561666924444113451107324709047133877102996588534547398605492889619576805240988106853793511232427759358616203939989083126053657940091782332379688639973120798496898956677102707941997925244116186397533454133601753465985197559417559223723281558847110260776665843785598327963183101964734563525259156300993946186862902557552318599002764405208567722453667647474801037134541206771523928605389558430995833169151086749458959233419521583142244896619955505095723777416925124782321805869200056136489691397868174196281066064350747710292036443458763522143060084792174119561518907449671846677548133886873738220704089651582389893812642821280986845379806580769792249873318225943931479369462067309313643656901867730317959610136135323147201479880011833611151504795390899910703700618671830706062660361417013464118171590817532174806400648322218705024340986591742488575380280374953301538740543454243252959637486694440578872205444669353076145488738540250237339279668376197452152518398020820182499274744727311564573705847154841334721651188340565150797983348659806924319275947213050440042419420838115216162893195917034319016297003182786337557272160780719212409783934479072997092560900391034483534983734141749729352033690479851728209270217887228355912042209308162176179659404087099421306371617618817601220173076376458878991274781200411847670071848965101645902180660494264565620969464996345939249544166007379376068798680699110934902244230200370720365761563999864382154681114098035581218681305938099181336860196374706478283286188829500063813631473959798574545142654610824715085814287935210107122290446311213167033412262519862050807792581792225988648530603194074120736295081598685198987720232758928937999438398430394452144843787670848423966935926824188569285698347171011185272870062993158748290756179137755912762741498444861582204986299525685421175750174884535399213376259029757905894168982831223257008222304558951880358765090076212700662733162964093537595312325658078140444841576852833189227756257322246849826064485320248623252015369806350549178587368273624259520042038630945050138493121495371195161021728252563973790706513733573828518937097433239628251965480501301804816971002684311017369263104640493199291756445844035202525398932867795275864211480927519698017152511555717150914296877517711548537479005679293336081707885712688330939029239233797259038048333856916740531908731194754908612725904602921500841503156676037762379980688818504725689870627238610415819056692527496043391667868996580618292360111829429025635387930461774586556785398081967280767254236890394340510973582819315224295539254768987022897065221118100042605266326014244423017953055062521793412412148046291314037001642857933139989583539158108909754252910418912558145283654357593744501637036480802445050159915932784544017318441589151739987812812805667658204908981834455169881589111471436482609479229317873277710130304558392671907538622570857342789737347378133101882342940979982449468432245005612413738814197594507777934093323636142022284081243849250999336963631055555292637929764955195034217429336323153156629573887896085185788795883836573856300126306067882042471042012575733301517360371450273988617648174541571121330039755464178400112032616215119444480042022300602913390744925465831144291095472759638962704069194692076663940049536091211833804267449955440079075284113486302425654839321510547350707630508340678997964075031320210184440076098503066196674431851788949639610132897852336538145004568060512874969368782406073029361093303223595672631089907131065926391784430664936839060753751233298352473249541454267352819145136167954202257336607300110912085166299514951562362519874739014079163872814991293107934855619334491316683123310027509395778697439636988324382330911609833811880824014453409950686761416262564590337340587460116814445134306591990393919760952167044730725298047465309258915937872473891456693214459375495520659133633141659914452612453268620409410742056803218769901464245009627093492228691646270810073202065892743876388981852033181273688180152534351547449370677436531382710581286739746513473475177577364705260080008764931138286813130357854258901690887194866734939608454309789581598210779142741064140405436937392638080011373654459908346685043182901338809301097245466617756363835920435357239896433495102444786688132001379644039614605164577478338513160554503298156869010874932518828941565042169315748014534728816354768132212658978521010334914886889111273026084026235930341438484674710336361978609880811086426156722160604232518304078496743882371105180090100741477223668752757954578260407778750750645618824414828056196201212508759050458369637989623853094402768112693839090094984265153887031948126929219371056568028779193966030713718181085707303626443771301773423838990574498997914341755342645421423102056466231335311694554877065391679381796840996563722851347215918482639112767386700130542799146621240220967268354891106230117523116429265143478928388025872986227988946659769493726179722672839157635850553290235704427717551295016671539236728745690816913352053825365215560857157065666504141317354387174324466111013596690646348483829422373693334429724293801526842018471050576490399332974758847492435513513983099455848712218762471061896754832308537729450773397402761406194585744452959633975835970027329936265121521992624396113066305214392801471642868879658444702917339454764713084659238768032955331849159959774878757352225419980415024830860833097633593604689955078981361702974334030822309454900850090380054078060026938261485399856324717213435966737686526181005744402893823761833662672628829144643683630973320240695528592645470746596600671323395174676967223812876329605085932747276637283062978405191394743575328310064869028875662330963893591030409944196863622407976630325596874780906843297664403158357985857680887213098877733497518992903238157155081072942077837912864288639087863041824166912620089217991970561021967785449422802774056455139883157817002160180253559060438156089831017166790202510746106465027254062294694440132901005400685556775725513361574056892261641250260515189460268716261625228356626724235940294869453444867636535664326634936500368947970908734454236888455160315253208624776707629323164342150374042779642264448721789879875324310419546559612249645634801791075524810068798628804291238520869560217935327024572559123791451858499207551171474497287102837254393025996717288907473373559979579212526531319478242770357636284913278007878924896573332274004613342532059241260758827320621345224765232318683577332372311683874130929770889492619135523989654014601356791465822623283800834134009614130872714925547092545480635162629409821894293097504090485524019944440195999965541562187000450926832876607226139681886508587638686232050432656071586704759359654524646223151334634938620199807713048329117612528823173468880387356991106988473758194507599850961220482970986746334613835666463660514303109363096532893312899776748408550408229440210072848555217037866243895696784433729626743536671988544794225012030761915891687591835682179618384096955992851708175515435979981988889500548052917909316104474423740222883585612372665661080471374533887105027464492449257172355539850105765328418986078931858856948352377612398912803726950166502763417939221139776617019870259196053715282858969038835762968727204402730952772583625910878050547578185685955991614136822197398965786546558183505205161011678103136227336207907676627940032658951887610864197928936174118735429923485458147738825207967179528215115491869627293007867051338741343099790861265740236998780600235288292512581564394071558882555492452886308682712222490036318127691392965792229174095258919396223402802555571366296265256131592042490019976989628693660242069486617455145056293415259135416743860646941132109298084565833321048621797582582296133896666606684645970508801637461439044724605977173640760971499070727540881551237815120031980699805689539683330434665773896036038799012037092071369943034630727189769384525932714704255241359950983103181271758230868305330957581136916052138462970298551329108550507638232852467716306541087100755117322551925193032445092073736215070371328202246347136624641108977430817211164495285834518577623479485995306740409466572183771510117476967142345568727074835021603832700340445248018110411270496017499649981251069398298108810445622282744617129529907494891769806873840002625582048165756327944353730925460902514721750399594595679832058907589984661299542483090127988380593707047640713476471447778752772244627825586512528436329375832173188217166531116296169151406652572149474152057429966674123790186104354292469317451893289878290287780752085612578440533737982503286255753028335071207201700541162902871344562422331780456507012116751643221153963629690774670830697494358643528416027279338938844889053380058292709912001101323254602223764854414879365010560525575070629404675536983702635153138177263404728855031201466768524919960458349161700162250259758219819175316127298920707487210166041913010614585125929779389482419228213601958840712835734314266085219786503403862663664465038631035804209128529976775410793821696564868343945487400011842689562555343210394149727013492575469376798268129704385169449727962198025963975502790705302331605192562425249552063834508924769142888152113173165141679943319025232627505820717457864782214585252100988973758737122922744904303639686422407928640198056355786031437335306559015095799171072702434189751211012876936785363910898177906540885547634660539458130857264825165851623471494048157038398948296405120554180014259780067404658111555636615553329656114151255942228526476242367173978728604323909880428856837198830212146772715355819002265301742592408217456692084186137974404131240745069077709129163679107096704688895607848140937721779442592530390850748490197289098769417596610769426486506514711655112591340911866154153055721542485512145663976503046221524164921624214462043457500780452309137145914582726009210714417246361949947885520929137401478633669621217084409849956385816555070141432191505660206967409635272768078702531737986781786154207649361983531364348173106173600328071663481733814915005658485258446566403934559573471624818340908742033206212780131202507012849420676578149201467282340469113780818291427439149703497357578209691602249594139587222262269807751193631011216358290977535462602587321454271519221286351837629958982650858675511737718188924363155026784608077818790381215404658637361892847192991133828756081648425705263210700779415820786201942065514003763573747655306731040973635116187487473082758556463601248923558792746591336411681147760214863544344297869627592634702814458475659468972113673779090185873516141359245431706982610306261689974665144410237432601495230766107660202986127771022212204843958516042698526456316297001834006832173324884977160676320541120239488825180942744231324803721409025952785926168806035639733326933414053559788439414012099761488395874696779632038244703864815278750384429191171760299105071537938766852376553698879762119845766639142361668504951467807433286985910980225645326560119639826213267432907970359411058745256423720442213749700871058931727424880834508968318170357247773438602586613361997332606298433712729728221409768247164448722447188134698400108760071140320598033055600949650182221430323511631074438149569202938268014498397555388401895393146400180848527126883669331276126955525644085879417857874425097299299933049055797167240170813525550258655744153507733619278294518015323795107614869592345873973513498143075204739096604821236657655325175317463669430495617642367813367787695798539227336286746097294655189815250421029565354088556700880722885335011277937346518968100492915332691172009101610038703240440114353815670300214222960623433235741072323943464165665028452535122096640628474930359279967677482602935155832665587420064511205899246119686305652832404480221696816669796813214707880572910504788239999815300090968119795897287958099232307294550758496074870841291816328184174462023259349301453910142663207926638576749827241932313124276397413455813285182269235218968895592732821262773778883230613608951379642458839146070464841699825633976017355395105903350285330957646139456282955092360421700822275114163605484407224666085958297836551033210647043355921222961270701013555192516381642815952878943945255159381002341564785154741839494086775363546452686228225466389054396272726499117786770565181044115574224818884946289872227695463566452807962140189604437743209596035111994283682555051740735335104218668399159494752574785672724538194695479117618898212979418888682026843524296987270937035303054498044294441811232840252291932092322084898213765133340633348946827723355124669050522017068162490755312356254795458508271259060549863563993681872766920751840023974394683099809511111273045841532601279073344116537714942617803222714837203486174467997668187987240394512335841541215124511983413591135141490784663699556184513654665167403427186200114563497207234598345367925366598452981753683902604737917945333143642435567336457600085003952091153922229381950222175811668605881674521397947417844861295300381920004929775155934867626067515075455044401595459384051205691141984290137424056962854476351484977221934006886866226298549557792680798277741659874094451899715739475200157892328237491856652562858045526774749282903907569582710445999925210671122123148538571525132339830820596030183833910565219762097541405555087942168569399311335476586056665532204013972611714324974667713760053706293200580766436221285027429881483465730320998894675099015775821429143547975420870693202079492851262331106841632009971724853103028673977375846745709882269537092158695131790384264161686039764976982614074610430333625087036592103045663355994729273841682918222658690683739539629689774540773192879178811854504354464581249392600996077900404186256995441601900238698331912616084097547077926849085015250038021590470187515619789054343114552729786518202091044463285546070983279133765662982714120042902755399692182702313140979037763206226244740781986009857328459883672440615216591869305842928024304780980517326897633157242648813095039226283667845032231616091972766444892723768758564529895586123363028744250895453875033275923361049895422231334140221129297713196195277901042099535441485662877365170386484846023341777658927060826386427992866269969797567577429742962065386110887404188849160815444689386557322690026042510087263305289945401767178186461260123043970356206007993132448887684656753066633806021397548398925969116959105371408514920826810600507018448558565248060247519929313445839535638904018443645364577641211180697762021428868009654680998249266791369316846760363785062600907111665628675126626075271107286262990069244715690860958686882297444217479619323012139771135993447379204051630409377200245343237565746253740730100230266370739401145004948824703114476903163274096287276778137700289341191881078929974111964629859362801257040794740213140862324180144895632400985062845881067299034436693978629978927360748592817011885407536287243375289767478585576896113952657801582215862771316331500173473622853903267720413539105504331101344369783570145644997435038622338595358069130589543126046759916781041361719175125750728666920869953760657417179233538989413312329520001822884482778042968958422665291692197182213480070605143324475526131683695719249304118486888273113856545595960092299001061086125526034135925002487783105660903160746985649934930080579215857520826515776924140319406843042645330659194832035805175050424395447624672637991362183898905553141111431604870158653220048371775394212013940068019950183070880090455758019670627098827565364622604056085848630593205679970980443688610068412723912527767568382734881373060549408900067533602579789428137132525660217842528454479900001782705324561093267007433961597548451072250481075274876743456289822195206071266147807099887247208640830925241543105094607686251055341828752770287529425659568111208511743882721098832377483067185139480991706497448289571291984980385634949059463470872226302140836811160258103287766986011205286735165631471226388772546158104418558480676205519044460189182124279560199822282654102370585483432731583911031643811663317416108273191764905068793726477774860525860652133331228724862588536458375511641484566183048970827342892344939874809331118049447779620315366541302824138178493730812464867876300759826492249353973709613999150369056647643893835395930128829874016302243130627642454627316811142279197876886508084069485344182024328396409545618043565028362025364539701945249072200115659795719831996317502218270192120321910231315716784991889469832247846763197563923541578802856627334773649817886260875373118047532276377751996088821661238264225298809195271592106059783802738719823493931902375574137591305446863278142578953499881654447320017758757599326560069456583756136543184986140101311658181717783169756390086741917197859645970775180630297349419358250411953237038922787553533924392772854079994012909813476990419122496055727917398617865368354822373831318343410464128422862169235141718051470305332782421812179039203928012846824022080824053003664937463032589145014619641372415297764377773798501422747816277044782129568656810563618884784267956320602445239642325378850786690463866037290253303682894768997117213306081833873069931166031917542718709756028639296566822085318061777694196252347443612513174461979505265795258021580510059689909985481868105192752083851871938452053830567114121840195751760806732254157399954409689283937767805833044644979353018262412752959172563857368767042970110025311385571293413330500564239845236644580663778255035781375405451448340297322425046036832722127111877661541296543940112829213741519480213244407864519226491509514505921864569326284378976220636084559966745616958658693618703978751475499195202182364575629953442897590394925866929385469882314824875641179213275798054627334314593457787247098637008174992695607296889629672986567933466253288450852454201619212088437397675688995196772228757387301012824231070437854672503240962775620458882184365783838461236759786040236741135404882099113674358363398733152278100784740723658722797391925086067223261945956656091587639448785677288799302966924865170688366987789056521601463766674890367221438037281576528473485293007965720859668059263402548307989161118410858792627115253679468175175955990139551792082007622569680836220409142000929618997607946178889353435271120013377646760437765679333651943033450985334964366833160214990750959731712883485259671559547642831867655224047193320154812075222759334486385905238663300383426137190882580794744230075641238459567566758877844005827592424985559004693967919760595353689538334621497633985780389003396684725221059990424357913986094883982767482697598147334003752927774804608760534134087575568898146945028518166878070915765418008519287981808494712682748949471038915090263889088369631949601918030375565926781958297871058308407114119749106820986177250201908007389796992731142245299200816025923665159434620639841869444200016551929613330336056768148190152315729037105735744188487639064694717880928687783979058750765158254499966890813265443701171645192627863701950714316373268416374523105783846642558629541927044551668466810985513821351213281089083146713948284348788858194566125278446546680520650375049708487283310641052903222325353686898303025923684621113527967903641495481603942112006051639528772176080734290018624138559685331454340646458087699820890490251609189052162153726734696142099611938638683105896343453378727440218654176574856154578764488503867908754277275248966390172394698398885885533864272870406113871800733123610940361059874447323393131602724163479070889445605586869078295501576744451367844253773634053720804719176439552237442837321046551775414905201709900202734053705843084758613238680533134521453036551480328951527133393706889240827988723314534819778878344522834558789846737296342665030957439822502139114522917656841732716275714984754622617388440968154033278850796151864939344021719895918388368835434088460454986387913382904309487938751431207593127300027982217006094816340256048008205777153687421662447927536539304293898160981605792557515112603648875387224356862069240275236652786888997443587836447589313493681337081609107273714377789604546190110780701592291654440089941570921485347101753054445446128493259581621388442755937936121943091450578976868956960003269508578487684820446254833699996902997179715252286005206424313020655834198875799991567414535669516195492716379548061035671492152974209381299054764684290265648121819833036773353480834800145791617245363931928040972099312562052073511888111813746836144728981213177015154465307626270039888934387414111672053637035262720768106642023736612940638857316957050655634391708599430573160950873954901844352593446495245642437846612490334193334345785516014549557003395171641571290314808888552235379911000313967013319298837468839360581263368180211603072778291691875122649782509656681474658960403146266179116321714896488124883493802927149511918971038841857118975907012092825304196644376953882960745157749646811324376326989763658807983564411570529978221715518478161337543915286936707315517895339995144008196300957245534252770776436957070269475017535345878524063154642062317853617262874809905919754194206652599845781025444867106496195342004912666557058940618617406581232451189135949363635001923425427043932995681245463582470613574679456648803688803513441558831343177042405254733299666083687398735072207440736725387420133484753133293360737613202270994915120355026520479226972802171760580585806114440902897937501036530952860168407059664312292932793725402039589983964178515367751105549248086245225660476699408267465268944480012008871246501878124072744222858081128344330918113438245608100915164108017260201992831820138053395290544438299636572797964364609563969218738982037156388711852582392999248482689099679321773137750987439711046411250678776489619185316755426018608320073346584961359658005201788238345104489610376471398589096000278865498209504251213456981505566508094133402491367216753277603847826719566004987897853722994298791312606805204093110455655374923379403994662226606630448557555375376410114542131284509467505222043293700510018477295689455594467072216775294009675120757871762052566412312684464941933167805071875126714983222335812917247593158069379409835825868969993404172921869736553417177119339726651674500021370148882089925244875114645882637258487368857678667562316696323597342519312625581845343231682295266352121147327633617733478977736295410267715645973279596677684697755282020122892409099936227038634129001318411706949336229105421605633999846638833545149192034657323527242947345124572873964290092201563541875437343106340239538863320327194966949234054630089897783664118942783510672059999256479586834953185398263303996627751136734201427514864110125543287497704978032065350209276191877631921548968944320801208172575289722436806671757631868459463208025198982597319808979762551028044333834483900115799284771556565747417817741607579837498741770097454841953823840252188191963244832266944934457316745562290361696547043645965919039423130567071984999496375501901059728417906501047599859458480022912500159962366449819667058819223279379473624515566709906741829259726063021081953672119467612426324761287808286479949005836907807021160016553503690984180161166014988904945051333713509767165177160750416379904194288196508451049563862309415931831483120418282323457781880047845385584725350215408821723229240440360319740371473514878078395563649624523218237269232670395326925257883062436697551182642272269941059795310068965823932367094588951753330020799842891282792826192191492185922249676999421550651475271964225677404587983934543947183244475886366317115995029358489312091188835116148346532988416967750963947055993183579057890712184541592478555274625525999066392708697249005039656107496502169679293739524590053787810921644014852323739708500695270148696796174507160770207661746915068241587098550898865791740360851169002534460066365144069066476123810250858188388786507461980677157353137999376537204050161310777068905764300387836627732816025475993081436143704552373344904203595228725426497664733481525036350234252907973453828224904313720603305813182113139898880140462588533399895987246816978322929185297608753800458465849227038631162294509686291111812401569936360958390151319206738653114451180720289599557100628230272083978259619723145340380253319972525754398601522504055581582789843472372994312232446980770755993174181490844452658331875814994161220998048554202518543896104278200795785811726230207939587385111771551002482988556795248561493531112592446566373019006715877259030734494536873866032426180113576363695413361506359331867925618343569551293033260123953706342550828674518787415611025429356259332817716768222224532762471351119309172685022637862517126507540592069014002307400920924525904266436994143781180072305788372515851838265570894406502037071607726368940863037818418837887182822648114145121654009279121602671751810907926575536969570769744593029558447106210480271132852069272612018708607199329691615347964613919283085573566823083260628789071368821190092783992878931242414159655434028551354933054354016322335049145598364014982108306328159594445310929364652811191688455075879308218623989786878165342723358598632127990120001813442101715990211247917604110497793309990326279478381382255773343900936458070701277078378999824065518750337834736092329603520117272051836433292910788117682962565941041907461303440246234713881157901267408551461098655605284638991556079280877691375857161264659136360087233660810172313537167878299329626799838295577677859671038484925965972728830242716037005306480131388445424977913402862437473898478408084715738658269857448292678345376595103294418441493466524330059849079066701236064922540272210410793237872194856663291381090277719266163811936444524732127808188870306151314127970740029728024814327858667490050452162924153015185691378785940741932353738965510395319056744007426869719165549015056090959041694702773572978513119201466767800690744801888365092057099666259138896530323121265672205640002123458688465380757685247627595747433580627602468036159765516419570869469602220916344572793090839801419058521956647398403975233572013527038559078735850578357240468615348094534170121106433392694890701265965378165479082019338028916816940327009795187551280426590102941097821000412679031075506246906927391232641177682023287195585281547038562734269283948544871037762178020313281447742040075998453418312156002129979577311654947089060883013398860392102743764118372496218012022545350743456050146664213833653997930998858053505936421835589393896282893016888564588093347890034092212193603119839869264502302872614541409290620162015322419606326808648073319910599166933859106101857507147253658514282309059672509464194887200271681738636097749671230670674442844321116429845597980803394801877103007016366602268598522363773636003041390557774537468462323740286357730766741990281804849248866893598027139165126760517383404865655785087395600237333893933892452735139240503323847862203783337368651834747352522670101605763910390948874160001654882984363166738794875358639499954788728707373592197292691279380165174455007855976704883426180382015045403403241863573707452278804250105829043549711801763586095617903595494103176602737295519287555438292222107060520073892280828911357137868205503579460848003771008894427008165113824333492963095167375867511131279138922511953261498231728725144658345616441399587496657407426763208782332691087335266269813532074817894754079417030544020303774519936963763251562618657836880989182842752892457906568073368053253734694142085283347370027587169667778122147834321515240727222386332962056144592995302459286662752263950536353472879281574298782493414428828023212747861436385892179078879099857588406525902507276412115387648406334665380133001240284245832813471155197746733888307058984273987762022156033190912534405784478062192010261714120249911262507073889280912553035531894069497473815031524675703379529825141666583405952765280415393307989483059982289422740090425578264153209262424199269276846723091299792023776145999579856436116761113119084103866589117494976123760453226388421437927963316607109479099621799883026548592601444033031710448787986437960272326498280907881154837019205431290805368221831162600324324876020485024271582519193597285496920853632048112657744089271629640946547033998617792318897975704621685266512762928076194069475878808201669978527647683312809000977615015160585466103751229779731649688321694603505326331023511194300500329583345139401638178608976132508493456123962032328484371696230886581371274591268556081912615493643734597633355307053572322228313283664293833733098346180272345018145703482101368784599054589914056663442739683789482005303014547471901589429910976667854854604645149926026449028421212422321863854039469633958085917921265183422108059187006793977323258614333038414388751153550430698513241785047271712361430796418157233342416730326198049414429513597882454954440724476562500477150247601008983687118175932056366542660391626681850591580993743197271642765822838071405836464272222835294988913833496671707206753844294488058497297927457445289635498694847213592227666890148524607410534412433515804713913402539963085596650010543634135364090576176174070758668644029957567498571302439205052987224918197917853664167424966853171460290029920322070990134430786127095149500128146256472159268144821192137413186993210596749409696645522162392085501094821892536646162707326112688864640672779059190657165877759038739448732444442675478404063873658329005615917101560031377216324926269730566483189634503200524387833585590868830518728124223255445440434314175239966604895616521670107206480906967977821489697840425155005007729972573029337659574609416644769241872360662700105686185843273367519119565662542412008649832478056253696709150315558686060355247946551456426248139091281320592705144164231048560148355547734683068869532504836214502208600465261867292463742802091585413159244391749457569909169332035895639020821618244356295581508483885951831445785725895949154753156195667550788169042429229273518712013122092304382843561116733103849081685401674869078504314680115332978956564111903238945508184921862713334602921198289079679480229001284415068306052667010423638503007848650011088659761486699859941149677838157496691340708294083552420587856911125778047508920348979409623224080207102613004366864540058756468262089069961617468242288033389261978195777930736439914611601279179350419960290006841589321377859205217055243225221549016937281037782148839542137831373816696460272916797808472647205252099086213599421422048054760599490147613114645597663891104581399395699588304857040903351296392613813720717074020302031954641971984600058439403892426258920344618880646134842001284227620105391321742342940080252152742500638831078293358863580746208155636353187038596444606989240654686823826694005149962855383111293205320409292482288939568298102021396823628341393568867064855986587296300390670029540500638653143114925766346151950506970290395354917214322095819510899303828998101049703227897766170609624526223892258975707955675876716966025775785670488146136209902070785740264628790487750596725440235641575677829079752218064077301499664730538173430899711278486459771729962386889380393037061078333511141655359849789461095089328206987879036806604647396393098555199528273422796346205918723134274697846596671649927945832032720076388891259189694579454073141290940908694152673206429887191590260173013822386527623590153784365940553641204511488625858234627615681598644482349269673738969402088771049666400340110409254599321350738347531251385055224574043250043014290548700349952345599152992792242507470433500354763334209794947991613713791763571873680292342771410946404022662531694331719303342011509573829547010155090857017996228810388287263615627292355923774176670752513685049182746089974349024906078845167946716846119293934642813556334090370441684314600130266987675633638036412705506020824566693538087235399231022881376737403455232467345506874055423754118896357456413900736510404242130633493823395528048341899504856371921837763903733776345272657118521030193125895198115384175242628396824518756048036982139871106509621351502845517231319991925765391213993820152598670242750134606107044267008418300316304339490062218644106607714873400930203862807251523475931640146095053543568332753633059743528200464416564035301515943070229509575210956986829868174395323416644206830075791014369433476753971664024866282231988784991007921920314460319874688798288819127743386527899533302232868488350434985556815940874381927830797047325923845313858158149764882864430347648891141051949666747534698137398811985975970338273862106104102376534024138303941410247416384371359196980401102841256757986107892967212573008430692502981425423818395957813156535955964703405640612828336916705216111754561978478966195945665077498223142114949271618091378960766401866304542122357917165075668355631434645895023971316087740503868075507859842362497743838937063333455024622170279573615190835217208635103237084329031100225905134950800173403777216363367030162645586382433638870175639673391841651872017982507003695956574398553223159598942614826073560826165059893299385824120602761199526605437895401955254440983092740492897483468619520469045936854122085466239814608221566558370089434878843738142589704994029041171966225192338807415554255035387295520439120112538162314311357439319358357037666244960863577722839519834167352560444709265708025017364096178287519897156229619347445447006102600933318938639984602480224751772826112728835113109391116722862646589733120719599957783226421043568029914628507343731347951593750923481804013986439072862956713560699427820621659432539785530920770810385581344996811488150161711547438537487972852618489670385576925127314732792737782259429644694688527126189441572831196119980343004748776164392179787764377689525034536420612304790687840456905825917359884070691394247897217293218066613379924528616149655166015033735663108308981726582802848610406556673530844519990394155943392522727421206256283334439918966624846398897632577997587050307543251631382167780596170771339010039385267535511041170843997262706481350243300838358744250376357454638282007579100802358651636306911816109441271764868985149982985203651429878380132847387765717301687763132850400421225791315766548541473631628608466506803290501922113547594442207767564782432276101633770806455631549031973979682777358247619928177881278563260256326200227824973715191635603234692077685064381451908744415049651367985553105884629331900363516448758161529587938153164892781864097887181464317287118868403634407806609201621989654300839261320588435520304429655818983587036726978213044434525353125587271787608412294431671857322681151318003976568701138559173709363402026418941812117537436475027842081223807501635626444598247917332963040084796109232685820834203275621242345964629289929243902787948851689148655154802009256000906352061732006706527857409052617692632791776917757711805114686626915616429311311618631935738699460368140120666303692627534423270661170574786709078661928068405238621652540181175682703262736919069124364123827850211826916686956380920290748421108162930339494097177829245803486289474615375809203017018579309616380666455517684884370939693555689232320987893083268260020684629115688032485708459560929948885881701534520642402078337878258069751326109627088860652959915519048596532489430776531584126053105516270812326356984091278481506187278289696660292949562988637515016389193813652786700590655707881788226375723139821070323301996377702702818395999754153225903242156716415443269194573018716944817233761088232946122115413142024952222977602989742512428102203324445159158919400147180919453390720086898345222154163890398701406299344395708908808195103738380896596513795863910420596650858364217140105239918640700538730740745672383877366083642432831875667635837939536572057474106750605154613069421491152382579449544240767042666690336824119277045201104411085634618355430513459266795722462737959208273336300183491633519887505604416473174899006861194979568939837558254351940078867500901351375233164817870124672113585165387290810160254909452756027916405632105875739389499186077763324970931514586281995755411987430618838618205890119147185165795801886685360605128016139315089000080616729133283251455444824527298265222192569882340269324619348242710580213079351929258592026679277835229614747699945581876466518658626139966031224685835006675219771216807137270360017893733193296652254627365145787091318495589997404840013599960370426874034269342285056814498978818320715901038180039062855387597593494196272552612096189765423995031410258964347148407186704263349086565156750392554276871754047033938264674510978733252831164478210801596550227949494087407526301360800415675727005542958757112714886461384674976196528044112319071263238463469374551996375695414844958050249120674176904788967902655624265387697833734555807847688233518606236179350050093435037138076572572945384097317112596123431712635741593649139761758723093886818171672274645003083719968301839266680824719614861367908770931202593429241730504326618295369045274086336976380745297619679407379156957643971466701135115513725460313564488556023812598680146252816588132784221127383118474260708641994473150824305439313453910292069291018056129673966387791526293160178010350226988008064575291803659072839819118166566143602250980208222650977917639944508274236360198760796554404538817329294234491154064224556718603592524731730933043918854798566807753662457804798898611834686707031839335994872277856552231718823896938280430953344006557922852592637903570248216620653748712143012633911396239929204278045330220666396960149955561893282577486860560697623219573531262452921709093707213850217107925978617286140636513631612639619699204665111034780280777155010284240719007094510533373981209777776207104393825847432446314680672496711708354330501049604195160997863544039401279846436825876392796079405285742982735668639462120448070751957166294796777321275568589945108083917404810996226999608098613236852180341566317205134306267828325212012499702180586121728285398423082983114891111296327240386975484172918181719377321629026366800958419477829148156098218565715142623521677438826440979262972539884177132567969687458821793931888466223314692551531323216503906316504455877320208397728214709827968304825260062938493253777698196318437516038116263324475962933140738261897576993600327023354908520709492308229987991111064449977752824888289156226086689674335472078642193611925877273005298876584758879131184725710608018390954924212613289534972772920423889442601246080645678377531068370911845089743507137280917304459723149133298829259461214875793577153652192546886381483214231913973608428968944582000920577243320461578043698919993095489030030741484130206828761506605737457556505134177920738242384535132700453863796316087324265721471793048060457394136318944184227225334400113103762799836016587442115665676220968680033227622506083091592490271377848127769872716706688023553741725413737595054622523530760308455817348380151843909693064374955446214050959130239529738136399583599718680937683264747074615031894596646049826502978115569430562844009130007297335194006615952456333555826200796443688962861991524360650867330374143165339965422572243507312673654908895890958839190587807487539714623954421679441165104791350818380847328293476246773518452612644870730857882419410561119513572996972820862105749877181850136172664594214566167579183431360594149721417670866959758253760052263631870335045980465346215180166986330961355115480538482949154579571625295523320254672283400937927715857825427245669953213069313648964705566647856981108393779158320630954418587722179448457967050874847637839248815641024586107404650268503293817638541383695261962201414377632330592533043548643899748805288756529800652802731800295114144525956033555502964318970432742747265399085525244783297922109097544803000633425345477380138013451654525787467261562959235351212170420469189957866749327958376695543405357673609146415960525468799833315076443891441715846562091525526684129517616469368312055680290322283665772049708489285538726671643211794359765414522357764743953276563312166690036228668501081759631742950571072160577721370706295958694338093651520804541372431482569357113832562924188009914047135738568074409100866944676803156159280237526825347810066350247608535733489597605784523633382201155473513407962951244313856861122257798967526358256675285066362967307276567521945653806072735782408325893208298502396397503221157275792603159920159419771850655954337739171472589745020172339155712823257623702961569170318343434307533422211811478871946501507120954086103043593141933757000639995472242714816660361052334065680669263925457127171643103423048785928680161058751316728488457891859302820296110151278300075749811942564547464634058506374186026687630831920805960800351777485286977006169307530604051805188178600768630931776860192529695951741773477560146656162547629971280343562848022820899998677720573920055324635862144612467829169271837855439625495106540005398121695989709063473322949517880177174550909396211980156218866047645254503136599268615173767765133629493315341190715142877248937665071527904350565532202752627181621921332365442156375763534208098959827448587628672226262290033635451520114525893215666326930398791443288848219253840530231688290954348117112926259261124258122180992593002931904888406353138155750804050515422154037531238928676896506315457460985894919943485307429625321453702176673455415755798488283631820991424840981309921027743499360147094086058463958124196826991860891953270558583377194464220136609284517002771052318456330230457564155030742993382614385136664407359331246100766163331522912090203296640620357054989725950762028809854782927357114806279956611232769525297040688838851102804412673967237972910310987120415244812584045884028976527253702219156524156659125329953125106388821617294158962040154435948593733916115608406966720387947931239423118354519275035733217688129552356460009956415006650994841835655782634875138414571331305392429151402629732323255136318708699132994990070354977770516216619546434006079041336797126656580637448417916224799049574224006115393281890294048264984497262971546140817416022247224283880434800592979361237029405037572409654698443886410384715926012565885517170988643471931126040829109397848588771793633107212193193450035936120802589008502082665529439251373194799726764349912587678515714429620541810270345313444818455024520063983458132379163450141248076790701454320176706167218423924224575336866597506195077936213996258733809700019118711371662234227149160136811596208918811005318845498133349713559778591465223557530320416196432950600315347773908079467983236919951585219217205980473507204311262803223228910138791767118572295249187247621176382374977105073501076203997551806290806820172247448368176723917824356055057796060869106555341346243197847482884092607438185406999375514145355724139078879319845858959776586165839112488072559812631727326950282158918931312703961606790846592126827387010025166901169728594110812101653874665819194199606689388438525063672318773004511484627577221067683823736754120268350193227089216003944220220774056944331358809425691391075691419009534616777828350905154778136158364376216022643998821357324792359594553945993606528706779543898157142153865192180752929035351845171779276937650149935274959739637041640203679870956209005334453322227170502279061591331165116893201267014171230483862204526168841243039239224675837492492881469681581494865580844276500200267254113273833112737378462504153100642259888186745769739115467917948399339929091666521227341121014746542200034887797728278178291482480135112130042068517288940199717031992863142752091246285586570088616240464791364684022453505797356907921398693458558924620430611467189193740149287928336657004397384887091898238072456756400483404956735152417345190171237089747639230320482604925787576755624298934512041286810031980729106859577306910410335308607197231156010704100190620267341548753832942278232064394605754352999172639061553651589080944451788135873178679786914319264427351878113403928016533182687789122855249468747278667279434096112392251920635600046499664951496307438664192829888033086201216629310293386473172316416814347196796203502609325646922276455578257254821152185030863601581542261823673545625323169650613799005034519312003580229380905752018749158118203152129084552612589777600494121874073697407443308732815888036266982938757955654378981039138663407940007021720900237728293712131258043864660509290938413152798747762157878699588781371905287784730112993953700471762231887219971661102786758503270319018269278934210113508954775804852873859997568988412242119951362711495733760791812546058051964127529616362080265549695127839082074043271736401159789007746816225793579908742254264302308695732204096575212206698643223363793563270091408273258451240950041639893102748706395804708234664904381736121984677160571568448735539824553604551950403094730787717660218564470844214653983916662413962744213564557335740371802186849615317744660294378363143783455441213778659535608654843470796731810164295760915794746736367149119682120232608555082848926107283042240288142866541944321079058741285759087977017379512814758371519671693316509528529281954243677946288426569536625940405882714710362311879312272465431783808281072159524106902583608257900063128640132771826209362447939991296285521964052015940599323432812687129905578933094423915028064459842216333109244466094293653645804643386319101535665316574547492272342461302728881728169152923964064874339502800296278231002572047417387514537194866092481025896322360738116863839890545940474102572976110703934150215963273563784936977890633880248457556365896272515948203222173728686010290573550058984320157494474469983480208238302278162790206982383366834183340075730432743499736563493329046148975767265766373927077547545083921468013672191938648732443291323911475009085217164594635501404546246460849797017069373436917732105500472004928476000896827176846981188698725596048988688873008653059802460792605259162242955646959982314018146381207880185400936867131789256993224332775902351967213383270652519517526280628928131291924129140415998287899568051867414901140392645827537364375265912489446701340393496874052953240336044718190715254100275966695898652274070609037744983622761206122458956122197905431333380295113350234477426106414822610567080126959634198983649322547205465459124539864466919597864572563078819431120684572994952873774804984567862379676965882633427816340153194077535111378549834888244275586171772982058586443771966988313237095300275057756250902285475444529189256312439825121197064707557704952976881816749636763851837194609635640605764797495753398409715589300492477703215926801740596295632268347587769944839237102661619556646359509222673592716840153280984360474858673842263540941928111677841691418686286733573965790254472556964392897508770923896925074306487177389790944160046305503582614234714438936601780604241386126558461381837776638503071212207684692580172658639571133041900032021518358942071355422932173892818871523803558009682956804037717253735027169345463010223218618892996231823545752181809285472696074416786431197449558565089602724553009927860529135367823229176856518592471876596583643166443745767791748880295154067375015736530922720074740152976741275478847191272101773306771436379937606102706512711769104848300185799071923772861729385044845757271395600284988385408013613220601200063301740587639220737148126776224045473159973321771109600841570908702386686840475396685875040787960669975280641359409547449866985160049258297371565201181862295921015281299820339045641109916543407936268099498988132779257736383852690520462387097430329570820062898365205325732470729172629928945664596669082776947185834026509384417403894617780640960521025340904496736309836163161713947189395174832965887842131378287385888149660474493934412485770933948006797975073731502285896152000048109023472414437169847202093495908071086766884070415429681122799653650148332754533685818528279056545635373920163952696932243225948021350769392959261592396868161287420949020212411914909265154898548181412176680560028991947427224387890885206408794450093190576842046783749574869589562355859274347607499338920860280496433137453889387646542634400154895769296770912133488058799766465050414184160903626737749911669056182789834990013625547653385082067991353774914325235936318821478314386670964213974840346341174237707556961671673911556288113798368780878771979803950450221157053531032278505086459487253258181123082258664666593215580200361372665360708379189240628061983089394035646581203662247603719161647692993719375670311149989798048189887047375002346846476082170701370171902054038458360643123882916507334764025989066840751899947590357556707105031446838903803866081671363519882651178124661744193508803847705456223603738982449189249145749124066356013591408334766678179426212194585896513282007417582683513344665832854597759368912896778109662172845381685703717671418273725552788711634783160099006703638976898987690640469689155006507064772115720729003269827924698788502985749411962146819312805245108141034460770769416134005716109927114534417001260359362868198748411760312375122581360670534186663917884156589776290632333055374171488142935386874136343055552437430197008158176327068290166228114352829062811390518228249256973537779070590110917048156188838109307910903503779379943566473642075215114100980497978242859108862509336716902108842318615469062003763348468625127886215553926161028066623767377464806904805650933499671290732326384114548040434708376418001804223182390257208372884024199418438520656494223054426028628839717478042160613055230170639863209801291500974762307095429357434724054979286484681089115818052130310312602728211790326040485295384140498535270678834287559942321002058065472150097953760723944817554158774120220947326017944344266272372329738519360125434764178403678053837005707294307902089966525116289457266423536202632987280897254784521703605215871803478241088713545131682254237159707781530243357181556683083182193303892061853647491229476554065027038589802113997157339329426882546224310233689027919124836866305758567989054705061110207850139078197100750966733077555580826675030910678788215656919159671946323925659274862553930999246496441081096118786851807532768631522265277595178680749626789409390252579455993075855973058071088821289061645115460245155613529361508452741932466789634716994168453436854941180341677034769844513076019268479580522453451420175494015222437736000599461501452709416359912564795528464063281421212378001836905818633023018310921226125170802906576623144764390844382002365888112156277759844715951771728734202848583655515070721261870357754987727501374727064435722616924496574354247651820380317579633689762404700296551082686922764532418617285371408305235786944983987308091482204005252108741149622499388340579966621544969221492014638395144626160546789449945762799329667712634022345015333619165848220290570568190867100987442454644978318339760863135372149119815273680754781050621787807866495943505353546015911267812992045386966166741883537404630450856091839038133602481752136136983952888929214669925244321430167318900140488542491676377198889030839567454972941742512050079839728622523991988127301291813730407382042069148102963058317843695404437487659808579678119234369939989729545991792739771551116509921944284101215017631994491955307798955978088539384319815472220702063139675959453543372709490728075074369580421901934553003183212842628209528302556322219731012149948918311523268837049550810975382230472219507247850313697570922504775537192114860652104856677859981329749319905895339121106976399718475450341082520284596072471702919170171450279628099419314017518250197901572010179387604137361941234976587590822404149356929353905122157298955354096357991265260200671392219447451760546653869768058982008509868935400059109217826786172285975309351702005297145983376974513808365298562041113677152588827061030324444238432652477058562345196406616102516119384305425698204659511232940570170527574774598215411400365706423488406149173169509154238210016756744475520786756595407558869900667522569463193387434092339313471728832167228584955245689045725232838390658199873840486246812104983386651084163276196603127027530254142927381917721943923179191085886967411117118656509329217281857793204061862470002268113603612912398109043861585005176482006497154648017023369659906972399615906180327677474151361028009365481864469162758015348537606791237011114735826828595471179813287893727693097911910321082802742965517596268240190301540921263623707559092258758925204150572329471750083811274185430272429673285391825279560024287576719565789795795055518250911200203901650913516471820489263753161217782560842228760176753159772053709106820006432216724030163912718278926283768083223795943366734086375090878075617500114675843423346729811013411533284340137439906950813748403755285201175532557951884684569751553104001086979320881111697474693455760795620704235996539913073498243004212962931993536230578200301307367548170339031360798169294446422927208254502845731979625486942724358954644975492475659402450342516537539038049090477665184106189827521489809866948244542480310579017204542477439435458549474847745791658779059324398595174346830909887316285269346714915537810650360241364197552481522775792808609887887273978104929984041464068392452337575162889341048719012734531172262547624617004934826352638161595543746413967748474560415751943553027632036035076914484392559980652393249070049853947634449777442980430465044108724150919374163895172712491634150965317292889141392894414706647125729013803993986519047601951615478825380611937205172040205399561993641648319077024205923469760011003840771724821981916492022185018416591513056532984940102900074822725301225541179773216595704575521913870988205704841866862534958545214442396172294767900953763364772326310665909322071597975306418719289626836038197808375724524353993660967032613487607977634679577436532064465993741616558205062429036406187223999557643859628982426423840494805166043243572854807524237965590670463388579919801156723741839616753559365007585608192588783108046098080405226668614102502325665183221049568947399252938935827068705852140796621774015310431948295510733784355599288866908357957814957451053901668660178690998214626451765782921600143096730996764234529402234820451648221540185205576300186293411310417360801327714352298417625821558352987982935264667281657455491835803245893859957273716643688812027068447760600764084496384570541220015474257935506883003160530351315728653534461959047924052241163457894585903912852120598739789702591506168094625607159145847788984536656187264793909844834225694052305059877376222969505821252540327290674126576367327214557825466799552331851445877732885566802289780435571311380234209465568382812489500436149139646573019700791366812020318987652219667021420352943563846056674577592527230213346703719020119100314997487219203981187931825580353111135326168968399005483717340414130610094749034080968333190746660944014420041396271676887065625245755845432942987279699586111311460563799428545230403898296277976560211969765635324730128319402986977502497759479807103808858474621360125651320574748306259912206748799638313200362414236103633421606996030164003300692686663838201157077875885474479280772563806252802989740811641850683200522953603422212641432504901519974204471833878798491592833476859140169078850404786919237090664487498583298819342978942611441491581386285609290349482921022275887009169739875437023932420597081995603773139875949420504506344018180828083289707267108886367752086048375631746977069639658957741131140541015457872191230254571027824284507405262517878705728143090769254346323961327650145281404323751053428780773444822681674617645756085663503824426136465790608244316783180136343189118826765143628681669331406146974952382373344510773414893782741461255969849646338257737107329206945047273726345058200215848136826193635632373197829375902789937955885672605905592179442632773106943240109719609438687329512737885189826587904758039880208565353139333223911731620566516108090097952094903605726394686755067240765929706663673538302896638386522246251360107301361280561430000106426813596966679656440571288658505271542705311148327489455257025155025345209331515425762551957606141362517135841855613006338667880962329891413655795900318278151500340775323252027386581917245806299231564424387296835611488110029316565068201361821015958771149537620422876535699609317174847267830351286764065478522428003793635709774755018756191435123563128835564943433168801491759024526773543126767610394562579477580726136277042552133374247693852634169373086256704354169408992161971049875844992238031850301358010322502593056035891620232542838975239121960952178897248528365470825344412496377005190803147724977516009591520776048605487807809048796921116696031858937197103964463537999560465590161213534173064170750264331383716491937021233028147056216690140119516728724262906705754245568935154934240760423813371843120902051251426690467914975393110366381065103324214531639126965163806127671525868368198379874330845715402366779420650884188713762556608669908993757689152719465596505883010595767507828954097093815598352464503643225924738146501904222186062316506209031231754988572456794380515203771941895912309600061592279518660011556152147998826151810217187518665504159551755249158630864506173198569810762618673353123704801248693434067221295534488892047846716370271643217500339974898600030471475410900986766764308727694258173778905353954675957620808042839831269720643234331545833441760426179220586177768047075119708726047015446640833544628852527772732199379253677395149048894397826208112886261449409643282195779617401933115654783130790731229782651520587873161624112439893287671275348860662565886770550899290403050453613419418584686653449960965630233518541954283531903927031078898717981928676649276047253362855863228077080598894537032324075734437469108432702496290498333541090353249433201510994804746116540538719306879786767728384986654910796090205207548597762897403284402051429097427475719783262847863659996885720950708804816366889487663267539861287528194559491443649366303864726971598395642258904704546594567201878648426801641839095389350442067294201036198741021288482139100298354651662942255000070088963984412930197710050405420773784031809865220652671454155134932150235098717283968485134016509513363960148172499540298557666791026338627954816891559063888729237613079728023456374132898655968793254766263103993766284725423414473488334229646903351391633063925286199868509900422917016375806453822624291602927916041184325347308147482012630133390808267746189937328467592746991364381128730623974189381231961776167414642743830175950794553328372706523681276965458527771843252908656867387223042578892076480934274277113042679428357804834328234132879950929390766995809216185988994912790723271947139024746089941232462471560440240832648657638647218894985566919865818317850650076219683257604285865997901253881469753598583100517406310497750495859150704904260068456416015860704632929211683073239486468126560513736325274866565111710701558258731142723842709572921748618919917611147631299514568200376381848504188307159744502180264632323428032464181155727985362204903167290640750424722983794899364417542621372694579207669785549340032657032777280051213873375278187702750460340629486902690410995598122727237135115609019689172220109394686165835970043747903453021316840375828332878269266125634430360322957783065504179893945902848285996171911576160777881102265964638261600569302436007177737691039269626238518728932736083756488555381223656164192703710336278502280879113211071407492534052883621593258862891437898869951351541435387750595397665114821016734068852172376457141353453887322432491924214331970237731519951337990187562629111134941922317748949044552993623901474342018160604102362452174595442455478740793499136395899981359189886399349016763163810315027912260077226696188007290674756959211219065522287236272709571054851018031693606574043055693035524170053740877812788353993747446924077879101679210832738964231814788696183740976263018600390086236310664934225353653250296743843686456586860052182487387029764821424920544244562194118789927656135653165052321439365967330777599557686517466813265401464298559259298439104552760303701936221966416224202523915160744165588160280222019024849797833670164109391453593062892354179337040042293387624963587065235972129997868392145076073080654576930805301722789804547787031254197238666747398941738363228872249857117539137828538411006459128088215985754668565523562463445619953705655743681236799378166612798721009149768550573211302536569559853611532172846738009049315141022484362936831336508654187071591277453216367963714525094223443987068611774982672480181966813827573079799091528150088651725765189246684112132512329852312563227353182652948791827207745184426908348996811970115864647191125179313770567246095385474107729693027123484391564592194772227879089220053056485925040799809289224970224724356960438760226253839461925669309986031131412300197341235464371820959533528238504410269788044955599768940938636167544102916689735987229573732600783712605786849393862465368726185342628926516256932738363074811393170204302897701419959234646781216895638467646204573163944791411127077700806532733082287024578055246866853536850012022852087928963131775632367731687371564891935475414219148822328205094026620587944045445371706911178394878717142681235607941285402275778211301561266269951632598178155277521527273776919884386169766237504854923543418672043048626863599147804659233701651684091802898787567027524480479192769417615011407096376339727216556138030109097494557917015209136577067839116176718975069081646480355970881526852482092016181536560606530162307186647736180433119261902418012768807251694419986809721377749909977810987881311249320377616661881269963571864347401724791926188984220430104794156370857875837796908759509449827072395664098999005173037486626704509167177092774826488431886352963133034600039600752332475784382941421076496999227064090785803778963427446953051007187373345163007734236093836403795015031598852202326115203651157058140457317542858108392269195828659612999847818413283234075730061768955549150788602525895617977069697355148330274872249614147505324324030345806005848876623826814836548255358382512380337091343149865774089904747000268264299543389518497561630508654173270160009763492476605293785567286770180874721484581659918127471626493690475385831724548091891846062594951674637585952527525893247935385508419576687231281505952827406011212144954115140954560020090705385158614334599374944641812056669322998445122131297807774224184106629850140005678743558689902897079198992817194831926676881951865569675078737959830524369192802197014383853890225819286411743037640832304794866130649826408543140162169342030111970496772835348562571879888881767663027104661156527356565356669700110888506097706361603587309217003446133565312424698881770846411107728222562259839987769269131923510950590567309265770285631654646753384963755623401890086056923702111763825936594934864245458552374412720784332693279272287048979940779967230131759597234637720358510648015644857235943496637295727570632325860694771147274530273766250127306975881474114098983043114237620598050481082910916363691723172841183605157374964924003068200043613777297008598821121373767132604823941752207694821971326853042155930299428006918310484338998030385305121134010990621262077462888101224152830695061745382922104387138091324522472565595710489989765654910914604310075967261541072263482754700965940909021794298061289434335777993995182420959329869181073531927003892999778086298172153671654582775604854384978527471371284809911748495227899868577705911666415387403403516051173545926018369324923251432571759152128713361463177969221201020838112869400979179022372128190943014821502245137420309234397904962156916643727409703371247288846725795652205717185666905169513533200787837991514726771784780351152930082054772193129455277183030322352485476962541131135835587534453059919631256614704525248226103413820059253788231075945955545582586860921745986431686368050155317834528050936487563192903045869994714590602705004998655182961199602812563370742459087499689609062452180518623874786628834120564705261059494892367469947742864063671950610103929572512149378826227109228867392748798072602574613877119313061262107878484026919933801435781479704308242515091597839621273281505988087346408615204057980555245793537397931472045324612436177847264726891889596536881759095980768292042591217810077862455893061884876955417085051073064336660723085890328393272576461552925779440602363619801786208565231487830964303810228939170299739074824088920349133651165434841133101459715187052545001672071093801547354005722668468050781723464423174214707480464396408117131109843991045741317296632522792058145944947094646735836975517145445193841838438836942113038514235396154749548911670008209801524689703635142344693168857993443773390884878360664821738729113079810440665320467833450983881157216662872471924333921386778477193680966444149715944514822167713748390119666476973313899352971360871157449583544551656294620925326594362706091222291113964452085874586352823023500440698535451561628664357686785755131504001975498928311761454057607745527612691908534954948037739613495439459059130087602421844008445901162795379340864443758655038397626441194628570608629274788455033800265606960659197603671648210181844530293605991827857511216023923229859329397594861490140241413992984976389561462666022291842910442811687072118567161774974403367522717481715538409189798342807218154204967917960192178920187854366736232235399198252552028753270749783026863815729657969162720940154467929565286865779256078107554479365440342327128275365355500393727971860496497049268900883559099822097322136826773654478309138303906799285757567129673791612680241495706560763389035451485472671187054512004517168122894602813511759530163308826071777877447424025428312543663053839270205710917431083433901254679707630793339448101253591490278550550297234867099363683110391282540458774597350315415742984988547533573964968464503413926522430701453852112211941353956105528965041213917746109821942197578657185499967602776213755233761916823678193852446475954635663806039839416605758749233369237618943885639784041991852498231892025971803334925397471493749611694365418474726747141654998091362239726345126437547489157286654848265564335421336287152806068051077422867224770858783116042364928570011917189775223623665501465185630126836365739215900618931447888843741594715690816399778619750649878387916383085690050623550281499860182285278499964980821701897438190972441382657472438289637120029833533209137078743978671856779597523947062770318535561292730533246659671163441342249956134357004684769413711932775031060652690476991633403557918635972568131292098391029750993281734796422420976206632325620129359367540490371429647785559000892299072507313367841922884483900863762538582182438313198250969566579768963099426402528141370414281788005526788404091512523823922142323599777111587166074420854264704498203252008675463626137598647544511599694302638313616069178480815313017069006862356247247556394883472040852465387176295127032744165189613587385844048066344389920162942043245147540522752122005853168292766178677563202534356167587069290800222825071964251399462534403938942176221110510011991244563499771453541317082770742786044967028074226912039274730171215031955709143114831785140078651684617854387169094405472360705233258728024721336481088058689597472901518044121243628840827572854494042566619605425228438899242223478452009542828838207112712075006449098015752817859421480995668157505416841914510380654562672541304621531095424265059689442936223432281900786226721133167818836379152877249110254673045547298758264821384523448151339429656197359280808735311557325432708711843279049901575830344635487239602354557677151365295665322325763256394402682604023084511903525107505151324777584632170523274774981109436905711259278284438551851425196305106063949178097805261169633238277584085554520691759079047633436958185826993928822532341488832678916946149391009866801042036472484313156827115956829941473218944031590539776992673824373543511925499978931261254106476104059513995865078723116962695937817657901628107486065648320997909596385997190690665850303569203981680505087936653745308169199512940344826633366377086007094723923141921257445476322172703455741194865177951127199280211046446960225397840172701652807531745696229129425681437101322749457837647001264757460206464765012290289502228146232809988354993954417898024818065764643464304829987626286089606126449002651571129144782181996250976988522212305400120865663312842579574973028117853946033947779701578989470646093369808044032304537754076347615579063764655783277970136574777933850544280102970065369558954297122352302179431936171641261139315724107688773867449187049426448770870136982355995356352138827053838721200611390365177540303126994991068826120475945977824053828949968393882368606031153075382896979872010526456055514219200799664942725814094144426391593138154784322108506512340215391399972652974332969327424699690100530701019478894966764400476502104744822487957485525637228436165133238579813510424601954750121085181098357634509446959656654191216738234872124821328946456507077391177392589923554778273840823736792429365761747934863568080916330425803509720222596500036053482758567148186619722258780437230984996888007385339261668082430019863005961622984921681107910373726502015125016773540242724938048826935932582348411991786985213661540351215176417551066476198616154959317376315639896668571603041074212367971756528244191602480289901438624004153683647139441887308459197969432343023736139312832328337458742265550581149029510677941888986263091480884054559718791280317515521397097786675044005303500010392599564873511784839469372002405694805141701830725622917831793090817810863210914188718290730739376384288221350313291021522998002511165462581514877575863936120451992135378750397919539761770728461498982807785542603835070841974951514776396237921869817483214837028156195325723451449366521708547993840321224986176038131035413730927387829324554293827105358568604089325550636518714180601271202250383876216517683739226908987255180960233861048712675483106876521378309683884114572276835830224189143777501160734607614489751818873428715905558163131824451572306964021503116950320510773100696841426275322626708003167759934674680708269002682110745919160012278944411415692198107620073965766308581568286848035741789825251398620450583922215501033877696030494344700354415873144567943231260640342009194585111258037538575866213515764001640552863949705757063750740622197769024861686596525841455700409279704238112993111567524209143702218998430813108866652466411094842974047344313211237092695653051409418551719022573421313179934671069744365352958111587489716281563864997407859479537359229094405046942465716212440212076717250436585807561163968454491152729019286442079377654114488627657546625964462738014716149735489330350566146065955628898284828194694274835267048516372906279323493430264121414640002222966047551347668812833831103033607021023150220790443221115860091341702939427960098178520265091370689603320991687676273360366193916396454342250647321511020937414278623724068636647264355893596959486884537266640948545863828423057666821307227103397860439876901969052454276253408671802017699178589598291019295930813178477324118932089414172096461994903569656133396183823050357600636530360167276330812429073004720413443824369397615889880943992294001644138198094905127221137579429998239354473022762480969223035111458916727227615787482952274016401801050318417834522881715270273199450914977762944775547670641507886474405896347517311688614545655540583321826012985509977652374614904325180572352709166321884785719544722826295504908443907174780216010527067775652588181578230118749569795273340611743707686397739535251860421028956526531343228885912148027797057738404085099128779018909765851129524161907500131946511123269045821700464704215681530865308247641313109710395338839652687671262641224336582368716019921827209560281724764732438342032511132939114728564945202623935041851847145086245030119369307366630032317717220117511390610043828472550511295399487131566538181798423790033845461251309027982377318170033310925176884342286973638752035590839235140686961062415703624825048287891425836813084346377810136468363675947817346080067980410996087586863977031115680143838518746788291526526410370861371715809376602425317700863057372433619871272607562249408015223912210479985359118860243777741504202309972160217526636803760654672579063606931446402121650563393700387604978519230962877993462163809292907074301164197277399865128094521197500854961919507822199236487602265709470741119707936601940974458253353458040905038851648230370943699442553221602998523087511285473920936838042575656289373530945478751625320609280349890918826752099840059847104739763343294520134889500557512093008478836984389978563048120176611264590661963010034736606458674594780047958419435118090290731146556541596409654180071022401309888195763813398058122054254410196891597357500402980067783364473444744559706741566140917733314012849217931965073061612872202035977175298260077274304447515349097777707846943519605746226609457699159649517652916368056489418606874659262131149402281407659014133763059629222269754477171289307368818973222423101588572390414415119216840037605707953492038429346487503440648548805286330919597760632179494226395976098312740905377897361870581409453274191346143126642654941540856594804465248262246597187500527520945995263420740018075011367609509858532319504661237129738246883675074202864135842610439547015937338848204353056998152752535794402868652841270995022280982864750480634633955052651932534163961014047210461576559848149911828440126216234575665075642351625922089309210118050375855998827992883620668751158809077674745454845970554529723373365235562836793806543706833585726325094251684582329562538750887696335971954226634808116540581326282929201695687400574988008107215636599155203944646411246598352835651770229620391477586233593119255080180051307266009718713227462609335558254185261914317633685611498560347636528794852201094138164447916724930308483168602660747996150412650166712866267468073952340828684266908290809429001027848754753685315110387838879007863780155300037348256553934523920525070393956554964644682114575245743332436619179367941951599057194556231992433470657827957513635400350206721944005259213947785765618194432388410839878758430665175632917061308256257537450123199951467294191308525608755495540594345417484113691230747789649397221681357568368581989065682622492114645726134079641259447555489693247523169146557306542960045251704677133802319860414288196965284242852770725462231280522652185362369910250287370433555200557684025721985472894661771546561778139186948300789383500590544585912668261538620075092986547371163819393198043723196533023319959770739743711396015531703942011474972077389911351261858698663142056569964486552337811463777252350935113002425358383508858957826472594693703205703110221826465711349054014411406737451526944426636920497655819388455129969165779217308601709450967559905588943878921482300203280357431662114494629324373827302319323861897615185790863826769394377391123158206669720362871969344435891575569571402143050634889033653372715985348125714118288502277537799036568215936785672040769484138491840099457136432080261632239349692225445137462405862013182734965368308891435783961982543140993609101034224328433290751844703094531009815044747690116941535262428223123447098388687074638171361212488478740174401221004727170208558274511809871997581540400864045667384083187993727903803563819294253898472598712310366243251797847722996057413949360718080507531866483942166242172019865598266777234082298134003549675766002252870586040718024081400879209646888366961846713459882054822512543440936521783336333832731017533587190022937274253168344010083251159099333675934820112743388789613085240804870539506779721002526165736579223501254074172439688140387863873127803345491070989520530856448919324257285700514137394079499868531667176857601475284946320445936799772176667448200347485213520397155872991811098899644418035662154296142174828006800943553151963622266333638682433844862005345577582882640235068672638577479608619698205727697199614439650536675806030116237038464080040765660381500247739758158289723731191984659194018311010607132931624541597165069225330410835041962021517422469420053931595109465413748066429821941585750247407116872030456880166874070143299629383798045233667497149783913418695559534501252040389952017374257565410853743780391341904330866269249448061395430816259457550548283772155281075110525160999895754313396031462493320689539779553512590510235820719655548060296140733890687512538985589826658651535216356339368765200164093279071317859900955970783263721387958591691271825268107232174651762482059511589104831635968124431215770556312273962880518128105475305538798416470372586373697697374505000553341130043804511429677492294389228176185340863023739358866264733541296973405681637201609431663487691614215561446265366841637435289026539969721564735499703399262251057873253734324748041816904647300164734781974685563171728016381734718584226770485666124054210812586617818325724425102675213538279166650116316835745645526355219634350828424025505555066407343610253768406554508312804125535800200245731990825573164650587816569906737500505938730898411069852054458177994862379359006963876008655211307375838681960275380030512244074328233233715125921242302259547317613013751802259292432906325019809989680402436940703322480931579050800145383042688580782233559824442563344330209467600989473212804866878926033965956191081611989709085815197500058743852913928390963604237012370591767857650155888383557841694145684887727031321661821446904703279348262968266152059044267310963708820644536935507856209563266633670076130256336446197317137518660389077628148060159792899083427320315524347653197763256864540158522514768522181164659794379407740091631892005700496436563217324997301418577529601737983929503720987013909984914469037382718075961791120779680225438968056608453407962179137823677155688247234557094667775937250335841419481907002079564227000040339829757821903647629406193286887565697050307600274938763610534655364204426222796127690951771870835713021298399468827291861334523465141078528986434316868223622390028002450785459307235919004474838665437599867958213473464849392484464733492110389698117751552802485864208220518900518999079449014015456451599440001305079895493516924080895690873438293587849945059877667341111541570087863883714002273145159177129469033303813820642098323771562148999164455508310515312870636781425049772361509842678175034210719324638937817918680687718580431858092011264847039201013633927863434330349448182405904327552104774168606074071075329820934412208122815440922886326410715381219308596144623540065863791245794084862814200712251466103101713798572312531845986981636962300213005929842682677052032288500239513837681320777104519355239522837039861390594863461660622871278081504804939255722071042379235314178724874319692074614638970274909954773192103813731336167564588054109238236434389103750475334796141756150865311719073113986993671423662729051646374061424034036416177911413447876270774306708580765781262665100973954185722304524262693805138752675164535772723062126091649823081445820436534388318407109249549428620017584883981902387018579575719600766489260847606209856439648815540379789076826918904506194701429434132638020548659687293199198257298142169533272021773886594879798428488738072366135873680282561830814200741345371098206350359340251399067791800261843676495199233935012859610798675481224292966907762663642601356625854242914499390198846447600410457273518222928346563048213318203284254297127587830741459845414643838754273279435022559609803600946417942321350865256992816330150592160729021506737764246617554082535856134167220341875043149372331051347455889415201830415799758825495134291832212812550427412325405270251536628212635449418692334277571942197698134054085799101814143175972467260498866812040461236695913675704195877105607518969948483668362089113141368313842978899353153587711586110820841462019233562446125250565895002669818957032530696790149042614907446432495503321360227032776120516637996740480180587035906195277462160178423568646394797584040720422792867507891799798497280833049749868063726061877912130068243184122080667222500684868969415921969568570561253453432694074835374615131638939048801034832194533070584716498120577916596680100739415108705233671596192276799449883025948706637214210821905164366892715806540914354572897015698076833509383364264750129275930088171444817798995426303549377739866996208418246404673874167503882752407622490158270741227069062281946982324600039574283248413429373860525638019882486391259782695212322582898525514328206998835741329043606567206309057613114017134090512823911693434017770700196407175162794673860204716399532825402086193466308602523178847744646455888070904857066283047373983452884978924408304950743153510074251486142769597584791780793239876912274842745344804773298966888278235602008767483809194521307322386461602362427564574561798636517564496467547732993865834812184688922926109431236800235396110344205782859716709337430960593845947516418382590744907764043098138856032147226234018123729761152163720478173540934520781384975045075873324286800567995143551349955865044215529544094419084072723920090871452795417930610640346033808209949813340384693909578393448818394031523575491013105629220633783543900325826501969050284621495472398697570411153524624452177120250177541694186540577133821836271181127698454405490824948763327168635413763949034573132922604672103785491284216899060854479370976599547862630771399369524514020999594901213351592711004714777396446731266869985234676546695106782061073531422490129525745398013925818975866367343253561898143545596908681770442597670170292451770943175230066254013585702014066403255101363623044115392492142810521767121969941106677561680784689999829547361358219739813483635211095936395692126096311501784356323749632834039608203199451040028426386612737411779640422681371744617668059567542906698377929827081355992724784083400763239127686093119085414423311763309712617359328554441389347787687726301507663059934650521505343965425389066465094991041790068640781629410730674989544475100580036148156267729274074408152392981370675043012911007366030855760746281541637409136250657125635481403650549993513925455282645698700781956716083924059602478527228626337924159672619218083924539192672878243217293191307604354148256760359263467040538589820545598647132662372402603093857804456065883472541248512698534009516418659627790301016178824847066199745280769301734289079109841844985854373977087079222590271519935806439092059406417561865897486861364222120856972955909379370656172728383822611223462474378777029157901640267582995947312117988099147555619756510872542512552626181249575939670981124875606243369938570345093873198719097121433566017767490087242363683369666118321190711292156740138933716737318458265463531219293532289241776249292388981926405079035857605890621550213268787086162581276838443660592982432875447450370942209478990922155816797037141727057963922430469256450613078769146999888033694811732610189291099583177870460121691461955183132011742820024185020082625477605402540959545079823755020195638539655615709172637929686353841863311101295566440912888416251952102603784040794872586878904582488017165622792363274884651915363188855465936795248730887071772435433098033436554945713042639660448174116739520390963773462468002189051295400633643791762731574831439161066053562049884197128919089472177314076734003873125017399803629616219736033503379923329603634393912970715710953511473353096529108201707959547083050531722501906151935849880370364025340513247145583425047356707714328108682247724690592447965618264183289043346226318217914658707686874021265513525335866628525352563410324187519306025008979076871578341909230167450604890899465415341376573863077105619512982790212630082650239654250762402182867810842597771307956784860599735663289401503709959944314239535126005850758358301108724332909240324651677965517659531477793151465142398815727915060001549909887503050636718002279880987895905105076119912988604297035930787813328914533019120449692584336035746896749166224712506199041895839546175444372970330185452854539688436933370197208500001843968830842420127064699254231047145362181902455196661454026393582945987563804234134400028134748522240182470818283810101088312180283937171741449875263669325870440529865893645652764919991503646186881118296361968029068170281980828189560536384354499234659842884601397853245269677453200724115158265475122674675617135961185077836842896705619047962161621742616550136978480237447917761259872543210311177130621383536299684938528412968725526338856437186154643355684732881559049367905543567685536427205631296284302090718425929631741264750577449815800533470700455143848352033496104247340629045748840681057082290677026542008488438433381547295724419114665564266731377525020528104437659257812888524851937761178921000100386597318663558903495356878570304287114603631414224734328925382526909635994400172933321147945727065260371696031853323399067899629660796210864602060830677025955715563887749122853473686108938028825815058928318586162386199932268489410971037329988902084162021818911532895074588650503397519733589507262016390626208556109976015465499867763915596777415758958858480792833605366516225792322156529413112876833242313860854852486280296952151984281361089133862913314392168331028690769142955749646783254946823217314058484130798542365658845114375295745312436426917211638109402572761353560314636513561572082788401805628318860929748008250198824667680469880689153568374945328681611011052523334897749651726252184781736224688414802258742130494273265135159623205838544183236653337783381708910592977957775044719674664631299069066118655783133189443573058857178511116307147741877911001609773208935994450799125068338006083078664363252998546272490927132007688596553458517500212968240420324597629104572499652061092444938854646526420893113746926329127070339257683564646520342020598970185251373798976396757389375417895925331133833479959835576208755474355608795301921886165661522726669309350490693241290944188851718909467954391819191109162434933252263831538723869281289249622310031110816479489734685031023705248009636776097592001703357861432861700285724030521401741222297376587533791149022859877264910454365796221039551078544720252334150118114703212000567350790729059583911423250638544921641843066960601918806227312018629550990387982746905333132539909752527902143558488618948852792647979225144631140216278922878384076333216800445042685069722538072175952209894961325288207538588029837852436418708177768639233744244272715924444362755271653899993724621589985837779802005802125558018780983995359111380817892796336441608554772245427396934955284803748170587217955708625872860621138844229940075366880960859500763742197129308350941715839565925980888847153443673008218653776651411175185308508046910040174895855621021222111650154011923675591092405246276277391169555907299696661550033132041985701816402629299422765981209853069824861738576339815196962823380836440387112023099406654793149900210578456984532003400468823333273921698290668217403809771371130667227210006562852147643776223375173044037480818226253727769236250520188198514787017746516900793119618499844761007424455237053545627506893050510891234001895256237898088736445317869063479303776961507052411611451636881065696130913482541104286308898792289745130758472728435677282924465911027821920153271399621837667610262494551462419709373947961854257553903649009427088356566265273211046426607091471834764885749728996945246345381999320561763985595530655044023722596663895558022515861777682511485723644758127855281747993615336107921256610950742346104569394796097139888866758172325251341415952243754112312133292397966325920569901500903580847888140633280075255831356692218961223255387031050934002821640515921455853166969071632736473079890427638716077619343536597355252169999348099714710288600937206185602674743259174377698669499433021496757052170642768009554091483192602863350761331447714778695350932426950304160098079389453250111987061713697970157811449194533554482474957700819750852667383897900392045838559116892056136492202612076242229544229766712988512771153577790579583641727004588188521859454624798377981205918512489443840309822726465178691631328990162366811019802087820973305364340810846293066021276669842593962937436526774250618474640084919756500881807680817764110321685933895615168410451708228658341739012117196942384867788619695877149992235405334703140620441171329400280470136350479815868718388320931992778275562616042747261792058080628410510302395207428861096589417675413801048544983123158042557318355861735843391920653741255531755948701246334934180320480639799186003825834472076240305274067620360380401841099745462492409226564188135365784366635201453197518057012362471245400428316031810771143253363041660303344786097871835418185606405009629867050144986619942197196261617144454037493801592246912083236961287931629806684422053807579200852566636798757402757219223574365961446464706999880311804299401782189334472562980633324872035733535013142581820876274766892267856785273376013227379854119560008081874986590843136866737619406551632825104075417020529122356346092746119139419950667868992980472729098425637162256586662844099043949789914861171658035821487042172987851552949304775144020817381107701892491899503516906127757270523084487854393914133515424950850309987733613967262388154453850622924734097736622188087654555395537767859278191791448792873452436243507739380565918643545408348316827005509944286292510702825875805686684373793015738040051233980425272053213535255702116790068031317701665223795676877133128944407350176034202459123075073277591764081521228674547993131869446116542048045705883439313735623608392224800729664122735455326228140631522318212232465720246737779789724495620010134192185553176581521870990664001137868046371874376365749551704054535214554801310593000534500087723577249957830978811548713929871892165999524912984652389444820822359214388423804105541095594378693396552671916073427504523519871271617546350155536706482981818750147673145967860767641710179133241342224960042402050662960313034683719466487477855833828326750534095072728461148141357972359630362044961396545622808356747744686597894756594214208395726067951467129483230792017111775476399744617357326097199945885317406880031446983907967071418416399797859674850014938424205459794162903438564362639731330748321235233378023880214386162792771848956624581029584053372700978028037049154927303127378288505823383384609719168565894325004269881565753640186201790045303987476939883456083091471655070973562425508468215569590136795842699731155461361205492043435042364824346004470547029166396842525813529331868075295946705458505311114782627682016612472449230185969993545867540171904896837292054219716805603770434437828210037171620989667414775277205497707917062245637043962098447602162954988803487341185475706778740799431748756773117509442680186390486502950467621817346521022138204184012395930269003344296368245532580222345900180458657444161475184456568648840614912952701932090597912418894438248162866656823440005027168550471293700740353412994005227837786207968851236078505161971396211740807447862323734609465890237245987691813977794784704998670043228484126966784916711644616194254628912878144939041305537464943375877135249278491316907568732956402050863458436349686227670433213338851867261828427088357055699738000227743228458091034247903713191250426593172502664599421694336355906946431468242734750080446093934624458787192819140037394588190159268353691342993117818272456612256998541915384396294866434376546214878397414209976349009583223263791066388421450692811146944655921199484118998141103605309703755454128324990834929429246132720872728644263976280746379823763639789760379758740590999228310176241046638102334614805036345141823393065699432598686234634048284040071192801377930115334646863708943037904556457380418220321598169031198980000691803273178985945201020285096791168807272540865569614203316912637837284199397094698577127248784692708011227869610493598479914787112041318886866073124927344261503234398740022990779702501956262007527556658207342325328477765953555039989990120338522956904364178792400620559892339713388291061159015314893666563091697256387352391333859978988515265567358433958499676498016073855614031972659949537769992952272572094061793664395797445901553198866807361031488611179859767778679095169356474075461721189013026725148400131549596635327378924689816920110608340381539790667473069438536432543994242288892262574855334313491109124300381004777943867394349686389366232608437798432551203416599596320307997695391384011797502015407381391026693592194526061645367675361048539924400715072844926292332670567221989401973369071485684056700379774900014876830753668547707499012851142919854113035651518979361297044616760687951653137801033821103835488247299053822671152667827548999498038971831975426847415358011910270399001153034564560933678298693165938602960993399961458319478446049710689392272652533357840695230175278128483871580980289129005913953812499795183405858757983684536233318650907944259847981999021273142405375296529842445131445774814940897599500553726462337849766245582748204382124380197086794211854647253280857360445000353678012128206823926814254591132784257725610966447223785376761104283646794418342531173035487346529862023332380165055585061586514505776235538935781915726510830717182839962421948898581759514363896367875349478354104726499336439382960158909248873476928282007410429806167110001567006315588125313559571646983171268035863431751684456626569085960820989578945665652567678231725249957309216680023191661888019001575351287537857312696018263099159429599438986809566141047550434260255937482720340525735295550720709204671805945163208795354122415770204956163198904621311531825026261699708670609688231836733395359857096307391789934626150410441245324086088801077458243113265852093475654857480517665771920538853975327528386619520777937141110893909641358433923097292764568230724002827115430917912915852859915550502688264007552161914690395971880320715611308462775045318706875891663878839463338313952275952863057864455616995190774717529829257326665546214122907438077122079795236936091449601587554969188017040716407270408687463436642395750371190429443779689890470883055615981207444881764055037452768910038047486441133044063969216409660915380616889212294539562236812660132787332377280097921072020771225781130842976699188471040469525202376134544824851443019829450749101517113774787752550566649836167782848331621166002218790607182213538743425231687348977044635740412955742957164992894704656054005474170206607069344311320802647958837403522779630382759369384283833978428325269628555974482085791357192894758733030234670835130024308688005375242158362042520663783343972944539394433561412009219478035286274042266852745881223654427524359595738321429353319106460784684915550368764352924344587967303066024656802461426837744457138424856720563002620393294207174301126912983992749684603084132076316344496546051207682464174279460527903762706237346551317168600565972196944104712302733341452840638063653355178027182457293424219151228511013507630903354350159466240049266711546433311763256334182006489970167601277430532129465261687719470050390840517924572621826873789507032614599113241854761855272270742017420201819943072683978666726322399068538902622616648910693542084937112556627421413027514409959021500036366267642522871882161836575400198231820849418198735749877097426647245066325119054859479331078480941654453199977740965281097946182573573836813601762394372781929017699331763570414869406997138559331442974346506014068665214772047236773328650497419831894800670162018815669633863809126703530960626103361125149029498542645001240450504551820061017393952913830232785023540867787897321111213410764375470483619761212351929648327506952180091688449554355293017093551369896823008841596826356065620892280670861517372691041318878436769186109044015438324470879070859059908105764223196704177553783308221516957149460066969653432093923830651466769124684864801376185879962250777583560207521451056152549314218713546733776429153752958915002106892065420648011862358022319918009413724721729228943143770103640327092968946126891942737440604931778918858979734398000893141614457141731454735806653562588708666267005113205525736326877098074544039424217479318485901303848509310780650843474976956342068878358034726993103031395114696516116884691625793445115387880078488662768491984154963717971976709741918415108576278007862819625134146879160145206649645913461619077517921793765924736121701171621833619193602664469422155528370658241877586614559231513153170012961162060961345231455350633509250839965760312817929219890792197152903278561476397492664616572566856464247758626392418712139363049240298392636462254359125890013634731074485727405010880980760980596490630899330996367915330479332534110425145103560460306332777281686118865569681607442049740971104375856164443579800281070132084636626064913287601932706372227441227991360484017922423412434587021001710327144592150779147999727162644024333069482718426867161829900269845340207950048444612358828768000246998675623770921874896311266984299758626018764059877049682999272265567258341276149365226221264079119444328479827694189684170515697734670158910761707944847112004617385530488845512151772084966526779080934220048086046408920041095301620645871820107958709232240585958545711298402915715753584169549917693349026265764913224228330783317291212843498266732089368891690160564604040377700497191933105292025426291421914478440140811147239432867744904102813164735260556835827191370134773595114083521678745056678428728121506800661361334814516844766483488596594909850437297303060626797959477230575188800421141183609549207282588428211964337377832361159226217449422340535281322104261987178541918635968252467362820500786663557696493020954698618985146169296843291294510194903182593220558768819711918352048734975376904822557185104206063316447236789462991848768409992399451322620158918693684134627001154977458379367403046754472051171815556654521384998425701901230318111629151316513135581742158904327878318743755193996420054916867323595540676902569657734582256418874519964132434573507432492451715088752276264704971064467882333173029211936918733976748603242379123958080949037387067871776567138480101693358773714194406634311297701633223851248773657968517138122412134804940118644445331544855623074098880146750822266449358554626732971979876099955811962393836216924456527829388833222281878995949828404696744842698852668069772139049668055523065110199563421125619941939973814626687193222094695840814365596436778919273655969944634465286904310640614617055677059319814590630587094199353356442689981396012868916054404746106184354056660238614919502891083614621683467957999195419869232757407170958214212689737175358146615847162765294099877467094148085282789685205742017814845402293695271275631677343916922150397234256723009875315228269614854106892297649802120272292662593533215894507339181648744416899718273308380378830041141793752460663331719662783822464007294019228485105622107790522909194545177705853813948233429610741965051065434884328366414029503207075947934556469020121026897363829155184021142195659139509684223077437333503678690495414864543134050031441676742101242385168988534185934727517794024542518623745172882558246519002458594816668682838197180905580371279072687469530467930986845570188780022406784454179452382067585639095660399877134393311908544212123471499515294628383608065064559390060981457930730495782604241292723603831138074835914892752834605732156976677123323496951609996499023192045311637395058744615626281846016712610623651315806860359333473877539382941950570319270830539874987263893180416676360585389519701122827080486871148822004971600786809629925804052846129399427795919758868777734358812731006647671171594505504422664791149688294891191474444977936515544108835354262725142721647223464274275633983751182019432294218966334497445904530857359863088961212858734920832613744427325935090373508419624023022440093625221561820985090992849248973119634917848639236939599715102915602040082763141096735217446559399203754719313296852808512917930095789993745979943466137998603217601209028843601184662636779671880269797392480804496490965430451825672120809492744273147420207530308554937245851387373420733454925240934426305340512797974608781219263941390152823508071381365010015321848030885213979702133335399869308088299807096712204692818522211270130658610547612290555441286874452157544304850333497003914708164383021756580769282850068655235306909773275275725188108002718842760477624522926705607499949211005243877342566771929392035340674630880823613433918574103903342735669968394070785100939473356688662183539140330384248195966804351538239343531663603991294839926656274357366787946059905531870040481813404496428629598554076020111761386459104406233826196790476571353333559163075050893976616929432515461765855222207348855435887165777473683655334226098895690733851712253887362800142356226616016077930021827025123376958868694812271926122839615986878264621989289186125339947488487958688350443712342703495926546120083889811608110917678127535159575441916322444521063840149764427131472702321003759465491140674362132195844627875589280071968250289681049668698548020998810408269071221369502921740522483813425746883189923037286768045909774172613196634757177670832067779976808800994597521750800599503865501748284442127911149452002372683885787091384164921309563442740470583394451161037220674854038362031655510795185814584858832191967736836389683825530940297643990020910806099500710277728497230077465448628940993376935786136479298259485849017163496633523914795656165998558931381549747491829626272929371302423395816497161384847189920381992547774752162467016594183386623311630992707409492157604513279017069155124498112966040059302350168119921376023142281485625423227204824837601962426685736093967607824488769601394202486175817499709606979936081091174797244943988295389370257362280632131938927341016269664950149575654896603404248419769842822922032311680915916615895021243849288916639975054623177099819131308980956987162258677239507364388383176530585352983726295700011897131987929556001723582205655702042796403189579690636150726552057803724017508588334023442038422182047683904018487087428597531823173222122598594990040733883136644571385221516792732859731692133572575153511924775632681815988948660912912028750571506243601803953503368489453383913448695378407532547554524695226562937875435637428929882588389299681829401238683506867257016127510057076707667806872918275295575930208508378996277030840259879660388246700020732122590270689205346073890571974355388674269960590396451058388944727901307241117201998109925973862370417591160956794354434472030076768198418133335545457239994164011925259549313077499881506891296488711284325989309340537303923677291997988567625210432976045192697358989749966994318632133091591749556877726144066737199175018492573642035375211086842623664814301543859251837415549080995595193208704570903672817039996443147961810663064728539566993025749815816699329608937435634631203935214407371317673336630637822890026250553468317818296821167752517162065737743826162970244994317059593699626320957809824394529336683068154233658296069055434699205165661308491789458731902449076682466332163624154199273327221864158990666092095995919150880375871196819158174511512603576450722197388766813532792040507001552246673197128201841710954431621306825280381360945982380049392625559554274201944736654441809444377597862094651977318091621652096860844719493897226841159829613549227685185371829186475228068747071317869079964692075752019966944032836680467594091603932292806378111463367492463876080636691741416888696306987490801012085408181312034144388042527999393656057401779170525417336775421876348806692542395288554496470267217935603961845903828650005633996422777216314669942066083980965056371983466308610025899396308438102094898554762941519040211385075933044775313503094223390734598729606300706070430891405238916711910872172496022168601508735289893451587022512372517451795111600060264227681787541368540478597678140851187253112157819778351351492743260179645816512710680949187388442984367948732054436580893151572595303293541544548728802543852152506049446396085255126899580660910559198432319572446867532994936956241099233112699671955253730481220126752679933617892560520305180942094594214833073713197061686056091557106046550153649017289318807428351838529836127638919944683784894476280871383500528092743921784602189406809537072392221868227825280827648601045226331790978355743988341259437388873440084413319385784348130495715987727889225656211398126308222587022523473642376432790386479711392173443088978840792109876282870975137754407602953064616477225638614779913713118738140168807192836164353701286744959221477138567868970245514689248748979876287874878198039600133097327397224345804241748648323711751137608956078488989161789198933556379702389086833632936075343341144852046978065871523312327173120318580188874450370745110966039758355965801597752344807681303475583407059825514915356802370479950789393628683481496100173258745451555724581158521244146914088393961176802945839495609523126232927525170179986561912746750136354796703428476706901411187627209837579833166622225190321916323175284397724078568108770657772942545805196407512564758530612856238168416785729700292495985562017117515570222864295871636843222284956922241854699528760038894661205525002370565695872940132199672054425752921981325734392660288637624690580278353473342030487714411893277336834740450409048770560053836487279069885650314732682532403155002918770315824566889563483886795330063157457298405965497981215641979016798026387327970826251980435934732391420991749605643605923245127070866335457020544025966138197634090480506484028495511861227405899470908511015082011192286292552072270929416763708104779753371146939275396251976910918611310400662133030444101673881383632916614359993826943177825985989181295163941957820494034324791731309501059942949917676887469372775574052760819744862307555949503453639268211520774531852653018022434743502079552551303329559492267904017986765986284097726869160919053566846386976282944285164835605951511336455178506506972688427173075556960648564868178680498907586674596053768747842066624632910527030657538347931961175743082543083037992697883181311889703231357310070155622250873739505286266497757568023358979465541046208260807421160840451729969352296869651351989417275093865526780067390760271155446007147283620510482654839141573044504687475233427671811780296775801006666011679803442861535869364498365811902693427487496101741893243301551804168492354785193219644491651510320003700946888755335394419792496842430097487153926103209272815950480974755256755812353915988263002876582630751185817076788489175337554371149536881328959507832334778472649826465317401743529639053287253784933161266686213869599195460874587138292695686371785056374230612629524298135044902139856161584016546082346940976024435860608662137767393742495020126823795341305763918195948315729152703104035759888774709639486123718918178421967653836251630274546512745987333601271833681132331235871489740605072646898580929855991639361719338681904960216476165060246668617589260521084516936152614424846567734879755479182882645765572469839135885343511735952915497364882228245615614724395141849103252335682082370984708963446238890810950825448275563968518186801136195250324099742053965379977904524335822135280237144305709538225650094520717097520768411218335025662792152914699493261303367420978706603719363899072889430123432607132150302670956385710684692804840601489075422441199055044861988094472459846842925965823825056466607417898949119409953546061910169068665078507827402381168768012022752527932465761489905972334796528969811694240626821097795522630506769123176214044582674551531015480727468427130197103522372663601414232422732025638345521317184607447065633328921512503636089427563397595609352483354648152457541960484922108254403819254606379559881090938687520499652521857188184832704629679502642028901820248803783598685251864419296553105365365357485167247121847334549592334798990416907007680394868275976190223223115273159194536512397569133838341925063745663311004683988831155503780787596238631144626909629675127806107976095176065474087045065509255561163934689125398236211815596285780235248635825213039870904577199443990629533735682429350974691114167514144803693345517209554217600478525888761351362835887190584386056703699898940151773454087576596831407669977401994665973824265747282563107357431199029388657678696745957706713303299803846451892762657392165551251219386014310089388205893949450955993382187816621151887401377691093910241295834854752624388768800106484037253733012790304455302441767112655291109323906903852580130562130775555110996988823732332483574460314535531819286913193852781139957050185199575803068513500481093365566228213537138892983486635492099345668412742792438100216561731806042773448674614903601402012793024940897627267635221662464163662485863467861158844161055440580870184133824902592229897964542124562864752891628753586501755297131259069502374815359615596691512741152699944207495959305917249965340887372942358423216723357444890754182014276567470501373728430882034625386120968480820098078204680190047798744863026766368363257956807333497893758899317789562046165570885182319681206080829808927829592941738447541064817221134178295326926762383082781709751977858159250918982108469330538615128295385421560162130094809991419099613411336836576522265127312135956573563658333728809432847717036760664489947597552621419685509439563114408081910284695662152154740218816130342102567310426772730340853659709982642168044298978219139094774146985738017903266072337769237511056353597274644966972874192161318413377086517420993104550683255708188444855285362554431651027645218581426073976231693307253082670499080451322328533030630973682448016901534166492499164830252873793124907823944381110519666980160492070221516764923664538689460379174147391081808165968928368596612358441297223223542469432373444856931663608929720115306847961338914282787220397941561219013456588348425860692552975189745190697310088141812032732759242423166497175751793112361957768571274934654038867792800318434078623591631325396856362876912804122297173240833096206861163218947611127332533646187796271664207836980998827131411157957280741629766124683878298460371556930721290525157273240484935341013773345857504335086827105832363035218638323526847799558521980737852355884040518788463925511614591705870152145419086689006057816163690956568332999543348012292568149599545557634610453493701644367528520294556231087475244540464445099848717548048689010356821637825411220274837654761821093081060278268159868506999625257861316991078101716192961780528107077071271319928467079744305494543118352588613053219953349730852819451080263719130811469408336771711195766738005674940574387543294882909484101111949695974301603431566617722810135832703153351025646870358882650378388842250847780775320399755456660228240231203386906237614748177897293255828032901053702750643926099365883839971877631892202568102882708616913633139066765459431181118026463473217276827522762886570226379973562184946865912733824761573504004112212973049987497409460244592855232005451651059190381640431764214270215220186828063224402786534715419877746921556261394604670515182228379549222397366938622732797771026277077504591099964954711613219877929662555107928532311391797205966628657914617755519724975584722862185622866464616277948755214003088224677217423667114857663708297667068977794995827852629211371675354352866373975108329051716967127617425997062283059834482938499239526514600635637755752693921912572152076186121597237356266468390073018697610250746221348476214601483053211277291891023338318489673774541144385566002603794847405624212582924973529739220758073361554714332270798071175595804939856095725295341281047100366323280374357622903126857426062680731658463531932406912642630523594667401348734405249736668450912029205952332584489939117318286852258727578367386499167992066461329204332455017364449142551909471824814068027688964333433604065455656705756071293963076899906490044797009706420432924791368734985456553022555004266878217993287232129472750715704729184118325252271643408100813158244973832114706616153428464966881547788690829932894810599440270413942893722432057851256007079851099851703092564739831799372350118974919119586873268853393650698244884154300428530039272744614564769458144235781193143013693823928984088773299810077939640938012883295588882426018692801227691617446433519085081103931454084888352037228686087051691089039456216370155537432765165858453352223812164797261600433298939547497349487735843385914238025527711581373938075615826992354360553798548183909978444475552590603596253137674823922931730210013770210955890525160321865283876749980309998220401417634552385787246023696198772327335307883137963720298388387661414723103573867475177664057074548333073899765704932987105973855407292356081975431470972378075472410943104709368511414690928265561595982500498738670100409898636111937805709364201477990798567186761322339063931265639338683041984577962512165243813963717345450333345299982114208164327585010254472073952717135210999952089226525250244581412300251537754089592290336689940968247479545139760157014731506008652148281215765185264138864434726060280615374953737573167250842653282856974837371585363778660850725994558968610852467382663708572555750189649035493056598958304161350341326567911082090526400352816188984436693191379394148033038088241101701598238065834744100508441572287743593962308135846881833107421028597518465727894002384625714332239610272085922874152164704846909957296770114682594644069622352479773414883924220014358590427716117485850553126956120408260693441815861918707590154951694993436259482111048496651746587960527789861724901089449082252102860938856135195879105233660059379978777848115710506486370435831461454538803455827578116814381055471677101493831414884731581008790246402324929167662979921522955571557940603330241606176980013317917065573100033139909667897044838589679839471480407389608614523102441275841082269239253374794601414479153871384341593026304155499900157661895394920295800768296100220945948179539627110791058918453573806766397145304237907683156926934949740427161797803641139914256530911906134550549505265319340068816736140918640136574045383056553685973819395871796832433475538691167912487216537477842454868322104967048676538265462470749346630960412309230647709604547586287506486556745091476014863873715552966650944551042856290083778977753697602285299079925279895160582160183703649094045921530884651162951701600068326034718121418253326347846574683995107116993482125531735529302495528098969880484034419285077011224368835594317415546900216681536133199480654166760152286808816731327540374333858363567927938396591173070913723863704086191561999720864542489828936357045467480295271000801931026512985679769548272044291654303353896444899518737916691558299381621957963001811611563020707637989239254963066016019351370571479333162877967477356667605328401949899954443734078790402243107315969349807791176223040577987171239067087344837788196916890254988749735262086786170303951726311041805438140226436866433421856027051977106355133689668977179115358975907980618467477032523664173520726705999563314795364096267081222442278643631081330253621609352018383514538740388340102758422565539125560054120370673250714845860439133552338729469122532489318438974911013818000113065501902254217493733453482726681336614693343661558956302072817240844985530930591101853033304195047148547210267187781557346662948923077629718452532230704568754153522753470127636227467560145734031590630974069088843790075507816531173691588833726621134849350923221032249193181092408969295090999244770240107453647662319257169574939958256553200226534982091122562384989313095580013110036879420443742253371770327242549630608715329856708864446783040065282662496877154726695603063104052455681844707509870935158845809254657403564182792290932173056590133625671505302250736737687540319489018212093027289510833249042091805036391401278649980521755393610700999301060129977588701903829851675762276200815432929503171756607500641442107816521426961140544246046756594793705872425593559497174285282293058517658845738626397421531317385955770873476004402665084641651574800787079188934716061312420043498690223677387510172158270400498300034529082808313038834480212646704522876706090449637834630265372116236691521917132358150987127553488708076098625881504567057437713804699747108399608594719575756846337118036679663698148017513767391750421218859790255248732309542376342067434754520273773963107227088721573170603406883972360650646384011319030314089569172412678218563329266538875872830298227383377025815596601260560696651852812154837524014310134403931869704756146983347476546255990897243005471243362825381877538555581362652781969881608921765622011080714128863724517674987079272232468315772307418717508849607231367408959947397954473843576523605299944178548381517979325291158634291660281185768114577742900804172069809231092860842809767181773677306533941160189692539702279850355903750630927955669566698751491878219792088025994385597018811073094143108579905054016748198714225845670401274431554208412507199578321775628739225199550828695299506041534252656260885205272053897542185154764181292331608753513053764180204055288655323338845861742312180152327631981222213151881863872666369513526676613946667025733012858263800115814847034301130460356077108533352398978594781186690303597797517353159550475950370081481630003740771571172423828884231776245273523932146158855464355290103032527391641091371430502876517587351198183813924759127370075705578182104357246967432179809578168248856315799364010796475919791267214113455118839848840530756794143550602611714018626744671094949222541297129207085883625254355151303793920539706930171325030027024960169968368604288677180491017720212786227033658261980678670883724173973231742512045038745687856788092914381166608551250425108664449051703013957521449135693356593052910135996158450732983687363287312599432597499041457801647651853071701045387742727010853399816081058703607326506858863717943917486412234213052821814892578092560158599760235486552772502928291621378904271399435431496773066092368146860176713896866651695570560749099719773332829777738463923784086329695500152694351368637352278175618254691270115400469963346502404852544906406241743738076819276303056145924475670826005405304556899740200660451391755119661391793670202146743511405644736172528265279299676212966245553900476417681100922015690450603217732277309046430962828970535419701492272714625750904517035947651658070492320295882015103491646766073640251464289988296387226968061089211903913339418452411064323353014024128405234501843554799010272911828635151952188742391470204713924233830201652347867984653548013449457121346388400204279082825472026447082162555929890517576714239036286189445072786521587881786124909537023792924117901083623543494738023318009342958719344577572451814309559963250200792393010290580538826001679747321798624021067657349739073021620143953799702903734740280770792801948729244555673748628536824822614850502086775904510316685371705638800618352345070288027868615102001252958127124847230293705765437243997760659355744110570681532957032483387151693513382293855032303917946691727136202190078499639671378083415164323477620507823168204753897833640226843124979438334218680100289105500160528700419205878860600077147554980073166795826784730420759381708236795006067642006056325320459078575640999718484846394119738068725339024678211007856002106622747206342498434130883459486512410740097299227987268424148832283740027419651044558512794697853469071914790985751126711993450742060224059496485725924804379625853442761607912534284646223956877790008056499359760855774440536339343543878705504678256966158931856818820974403502368652739409924647948741590785646163303961323002141866427882224461119897027925535838050955237607824215295036330961313399457145577707183682800100255459257419966331728830837494522549980923338439681290295128065345700360867482319462870412507942357343483283437676039120877981354539986033248798348646580427859822854979605550489491038041581657897449516513336243852298164529772450686885300614586092349686035420747907055382499808590723378300742248197910019441959787126425983062633900849621540454213664907415264417647442667261193292224266973269304880657553885160298026420164212032509718568675242273548080117266942375046377915784872988914928229055617027512588702194678995152598768781608040691319370206911551300912635870834539702997595111527306713458712137885016390404777159013785413793593176200529409259760201948300148753130971215539889296076091986048395540676328794223909632043707737638138123627261864878137572269302317606761071788340250848231650390385862159714790939421151194129412333656738210484798287844838736257615836477414283517563287652954287001927610418581787531121422453888332930184589029735672504571847666267507828966931264089460382926223095296936111583085711242653771744551554356500353468691466048114103173067362374898588524095921700441583278538827711332128582709675517496412174549342949885669016902185831951271455534175028035964708627953579301439879121877302170165245208355884991216905847948959122282699060780955675692792433356595869484613041756713290249368412291886485713352398108793636534186896167983850995566259633246269904449072663131750610818124956150676937886213640891365701164181223203203240146997453882324281535311148763468012635994899966976913358823394068012577350440612179529212356481283754877818299442288661226744287375281026113016145309103149769910281985390562934173699888788916132012205607413885494099922698427499112735610154241500766178971068806174806525479625697185222760772511428506981108414310777277031532353701152462643796004540452959266425461170499257833367055702762441580553490904764798780509310496357907258494264652736721868952901237294546399679465389457529538041440959375913991549965576104547308153270639794567677670633266499673099534031741282466912287140027000831657048820665363349259603289925993973700656241459866779040822626676150964668620729803018682564427734668306732934802776652318687751859317562599196877874623420446190823460147078434052568334219354006215863519005804527051798912794738706048091425911179086069275688191117448169401570788628636891948837097329997190429663148428360595896565657811792868054706700983655093881452190399553592079161225249989020355790604024286131019901952904019230245033636640186793424180215755647919092046300143532286227491539735567489984598107969139874829221951285745211328290117832873690633234560648503833707456100986593255476032522251849643578884186501291647437440680452112654852884798908133392652840830665754611436335242760211180351153858500601809330119176193462732202843541857669427000487863059666801596343529619955486442166842655046526866515939912537028780694469189254442118404862054069612963068474939598812092986875773414317352392386573573354658468304005708214398976420859379988986882367336534346809956603118330773772602587335590633659789827252886094977186416870621400707326155396898189818400785650601510043920573307992846581342121878563541651251438393347612256393197843267811273175822452131641252387305576648254650676294852084363402772425452838560486676829252244590933691181369370361446851790290431497190472510491774496859521508793871702902559463587262657824856317925633747145461789948672883692972257707992547746906297862909730609136028316567371055386805719863743439801039251102403876304277934710444466487094066672003828434127749809917254973505438524063054730109150217246983888498317671444238170887985179024497491909714836574605572757609992890615619488782196235072004530053564816908316771616461535790214149339092011905266791886722126221519053844466725319059764672409551797477780674246704806218065209220777188338072943542406214738964705194682040548129645231828246494784357740024121654229358360725940674421424038516353758705908938255962391350832966546084600228905444180575998412367616484414192404564112052670603267694616565933433891174056830866123132070624500731015003355975645166954248162685060535577875422504913598046610223577636680230317299493977730534796500181570813420860176291180229029445548610905590890975335925932189572996701760470007286282137320502400012281849222529253161953385407601158744136578777920844828609399350920790147295618988770539251744817246505198933881998299112058132694309756009956879723027227536442541222040933539884786151717962921194871817023713330765596740229603835883685191390068163650776484105839144386629986350282098430843551858377448497871279195029613722169681503346893463621862470897778555261910934955364053858279282598909114422616703803195715229589363285335312164384882814397556870863504168546030799980942766202353340763221482563483682530989728169171994173516708395005963158292114517437058617700804378845223959656983834661004062290019726595970059021894206990266775736912727119847397731351950355992476697679988914459430310684829094606982772439969310829009046159171168606909846328804928777991429220086164126846685775110050767732641400613865327962212737786714114540801965556893813065045100490631628332748458561358979467669054220425643459298190068652354326663078106068225546824766115306774183114977758643166908055946215671966364146794881164127805341195238307761955451626998886937914917850928894944927168526129860175704815504673769483548599193178352150902416119813098388515686984872806712157370883480806041203576177233057820605828004595870149200817521162659629481454267080601341950465504033461751812849859782033325939051028894653625927669723849147748127222699053197724677195139652932631384778075246772068541502651675757568873602214344273660700369218518053846242863974095612756668920499155467459057053654383486075836377283175205488083255417534915770461448394705689987678269920672802092247718345225974571101945783047218501207978631780674132907936174721905768023013565532929711733527599222749823427997321745407924361015761386426881516611029249045591021456197675640890773188334879566494068555816448669900190603080662644411542759616465083927278473506195577982550167756958635675533208356226069560241408016179640373030679394640552980423954186976768589145157352185106852098003154995814149778091237609141758818658636931175051949868611041607372715962489926517075507962911913853750049029915074733311078354525424643553342623542985665822622581340353731995929790217916274984690803091650703023366506943141613836697565402313520500171594164117157078410579343807490466135218305761258944798443717486703305925098574214158407915404756241134989612780405894572249323642292198444389779253654902520539282716274193769865193509538621873077370747834348478750520890356884438291805518161337751929271051453266909074818502556295062401176743295947796020402370874911535791438081915986613511748828614101462714569771191847033904075332326205256427480823181012688821029768055496736045369412095349113217744423450998391088847016124590280045142364489610830435191635995473196140015357230596666849559422517314473760441695891146186808927112090689157787651907080455362284032728200711166368896070627264553344922277131286926879929502164676603070270741458461892254999250200226732364242126806263658189630218842132801447763793066294042468653183407950819692945376232577535503352526974096907170166029491562847648378912148818135218390254024158484340155222021325352266625368083827936721434312973811741324525037461470508607795006936796339456276805058256281358162045151763519459870906115671354516300900988413379930534118237912696415724276064261882690817007069347394034650024586809209474221976573855976052037920784330701035737150307224539934966548423876935654889016800500722160057741918735094779544089802909007051124773875201940133861892205071421991998722847697299665059144831486321763870753595858772235134926744524349071465752920540419224572901922596138632084174222926989525558447629302691142310750830528209015842600367936039407993493453484916779426326460797291842508582702909876873371347255425434498253774047509693958916326458290481761525245566359530918728898009615201901839780668599372885716718286142344449756576338133391301071286697923777567623997917804684423460034968477877249309840471296340197028974237908249588427280365699156560830456704848149817715710403033090803938201768052852415657510649245999657478729432661880873026966335012420040874121141022680571513241387522523644779115376033536729096181451571515039158815145807548011233293881884610383585072638209961366623915886721624675667057325319107711985190826020687254495117243596676199340761428354379822718947592663025036309979858659743310757750282847463765433955556417705209372471296641218499497274582316062164864407010719152147889111967916544227075156094326558763284065736864860908026700307745832317076216936099944935730927549779694071991991712012044378440898647763260091848900806209781015667627288485201108365686496864859270562940560652261948935325023332261502917891759166852055103868004999030599583295791114306808881579795672890730280560804020443615743686973544842236772163621017437656142801736721043912254742999219845154878836570727432763050111984618344141719454024952920265705132042499672320504562158171776405305932022277759679690430154896719894444300123696153559223602039755705850980041201633054897372337216205071628456285871406738471131457862744226242951099982605471905771135778486815917572623384971212922799300066849637367862990952381546850260952692247290397906835481961349826851164324788627545673191404658493418819443942031703358845622959804742583369325323032480359003950290838716810015380580027116537923973687440662443211499103641106404891015926104732337822709344692092090779816475531331844707150781478142808970378109823518145124179446170759516689903552245302918671001882115764855096345970198206689212807168282743554019162793220508112443837358259852101128055636031187072405272534068854256787714599014209857685606805653662395399011753716062961868034854709822710962636978100500044923397437556833233466069171799210353773484737874064350003230706610224537709416632101285209954767027478736907968970242814286232995889744366636541193023244025885129383549045429283730902998061911252779362401945530512447277862652646624747917354828314476092241346317216561223727086803092834893859148187428199163869447096312651896998591832954669034877965009184439926499534948406389315069395502710656981279334174853080230339763008932418348039737114150249488051437748185924820668255647415003779910107617459950846846004128787199495311479532616572646839779522838085946067012392062530673722452587629310352476203592382724790298785349234317895327964943817453212895334911280859237073708872961228602434478943063789496739418941529196149984966452825053448784070862413231885514233403188625017341131008302138641925858503413934191763113991325474883621589163576669919597583407441447407282277187963231892816661215037103606826058375732908595270444552227599974668895871744433616091115344082882889303318145633001711440099609177901429449941406043580840283546157801599626603101479662110638883173773581338089813785880651616125899360401533220652037376939278779350328146969024684795706748853772358125554414585510537928297447499011505070448387460975602519062351530630139189027483590190812477710418343054356129840351810761558868359969780934269874519937388463765508350695361020593980437746442837481814910716018213259204924228220516782986021696844618151209176067943405010857216143770711424760847194156203772716988798398483038509169335843198569541887984707453723638539585952780319140976449801684177592507969781912197166513261717566268286371904666975818103143871469397011807001373391200982117325759872864053818383760801332140797422046451168414202360682949395765512950662263349670321285048072328530319856085905493297586304270044431079331855440000880636584989223110692070096822065546236605764063115185482878462120270467347133901172984458670575018580400957884889305586951994989018320391157525186616043673649720971327717035127121458260927168582808077649277900352872953808039960111599843271328025569914915203725508658552291186616150115160316785449368689922045625139433972879207083618518011805707361082538604849725462786677201281230276400149996190427548419166260782574203931740240639177261128094673894160827586851441572693891298895805406208789796996867158241299580848014123745829457194489615248142554113449882209723805461538781745516084546664162763910693522898830061780075768268808596264346582212528235336557580449110218111312830752117137931918927511544307480247131270436541618099412463759928981867807182908189430107204172556205159477869583745606163773842335599717718045530170616962989973512151494847655545835305427948251364720781976346713425509396092763145757082044813094881290311769442396989939584355992343717826404452632088339869746731917283269231431730035558253910782660574342487889045220268768417785671914234231071104470631511593087962392835213246160256462258458278962060774115392421800346096638800575950163748121709998482653676559501886520972499686433212751197318384334566315176047361313326359036182945886060065673063785746415524169278501510341523646054080782808019721099072710602779091129576582231943004396291945512698700465562678481635916886165377052594299801429052988777767121672149571448173935998609282260648361067546094725623906672813535571806272402560263362548188028069376943019910809201366992522550608847747473581372607854709360030565890130026442233173487776315946539457474816049388349246891744892973580945673903188936137594962679693523213378958428129167648796827339798511713636959932819565407039854794293738498902650760932979162186770603940033612747781644736555619844206043543494048986744521254277033297736112145845541937281520233047746180497674947962205973903933914768687954662650231867881119482985009933378161736909098544733575951575665522594959133452005705502905321060759241648595887235259210379954328330272673332412125141791124803163014229142837806003491098635800961138694048993098642523010956244788239333124164389434294340077121211008695269779391083877475791029555371963866727167178816710038362540877287341107146577660401582384759060362932990774329117515916779579793125491435752835090786603508946023174519475371597022722880494992636918238450575671378266886009735802776280479570382232924133853522733180046205434021999449899905972618640410384164276564955514053386926361615340287692696983642845037074092135180139667193537967602625968257116626300017338840160505083205372945189031919185844043157222807172490161317913856191324179029936479064545776333571292533020972993462091873851647911598682444391612204135511337715512760923721198082963811163602978889681133594960626901537583421170500932289229796334998318061197361049945745060607986999956799549575724196978180435759736807654032889641466020381394332537333975405568411538446201815431542661648780213441486274477504181421466304065686321140200938268169621520448729415388915670213365216143013982579334496986944855964417221670970102744127377921169490714484079085135005030429128930445593735404425204496560104867124447661360476688212372540090729346140456833024364563679077331652703277582010623017669189351180981619147203647093028540041177273586776200254435374757818973757477358416598153740168672480682002161409904461900936775489382510274856225157237681390860860600172241120988590921079196008532545039411026026653186943087379571889353318510315645758540061526411769906680297547284991909787286686558616426554702825540799415776948125024693606967044388817788711943092494541710945754834401465748587751631562147823735838542563325747008999412005211562608816270229156534866985291710624246172721579277306602098475599329008402923769751261995397812174403862164004389537429145596018950054282237579504145000937228729695187487549287663157496053400154523845734651488393424131353155559372760294073748297047598700130454498380858940310236723712833858808723564970757991797977675911656415414020482971766299821446154788819835989437850285703512627406113086680061862413205520488944535309725414771980662058895936094044487159767630342331397773324127004001729839351922574951299222393669666289939818058217222932936127867409069270120966050363745279851702281113240830118231804921485383638560120149137897689352208255077643807829208903026185038874578492994095705955149526764068157867308278836163419974188917978983061519579783485322980830548513336450084773742778799931816256852408808866702462858682521094322002314695503406415769086609033521338854011826667071732214201686910178030653198728621175963257207138151910796008920723141805133725803835196450480771335690867994506788422402881387554210848110989392688347278449052193924531904455994769034829372269034566687498036591775373400453669003700607564261458824353547051304681748623213876390143759170367723996504339785069648762978933464508077990202405432018579520881771107347615304656998985684011281995929379271401172872043149211022987192064231602352883267055144279418212047249993920250326941363707978208273146578559076560595558317714404243397402140532289036390337694769226149617742499312836253292236166216249931137317174711742558656211146385178199801377043825353773361701580175947197554145927837821228832743436142748147006268984487931480831487488034500217006725892299862102933854930683255098069247071995301482446828694070660226919864210525355635023666571803488470886344024135812819949821147932605163082448159371546364133512835103320191451264139733371387358254134620894529201131307624853021129980287310156682883003663145845686273628463596547126251500983040627285123668062887451517609711552871749681188432389909949467263070679041758227049301892809514580666955474290341703981714588616845699697275111531573614873855987961199229522527242904435920110913247585033750078740684511303029238671221551010924803889259963978704118760334373531222631976053171517872542333735023721641082811959633811532183485669227118156407510454745867384394310674430386133967891463664630201557643749839010861034427023052279038576712347229506952820595051630084065779611986726530520007838678116789742145834755498766866408430740491190373993641260463717088708997864044124035291257004505767227990811211863018994225900963369347982541507407740739145620648463170457585070377999116805848766700525001775975359295508979494467869737142344482816934922685521513225978463953360888870606011413458169044906722590949034253019562257498122272373900556350852411351561058555205503330684999219104027813206598477158525812281096463712492900670464063176855747958111915103794640146962426854582694254158595563873441191851606172936518108744590563421510326878665429301963796036752398104114109392564045929683379844921651320705174322885177969236125141280507445827102975520835840000891246417294319066382349881655056723192093073416453525194358251087091013242038481160288542996573283968793784610613360393375822133513051341975196619787119894134223741716602641920143083960642388892225888265057636736155267654949047595637987493058924548761763709141039061689716279738687055413781686390666856016643907273550156365536613987811557070113540609003893939591464025882121614120593569796303182888408598923833650149723496007219125836385465862456286709285728143477445975399969633120052640336930313805572848607238332909507598749002954354966242013364243917037989576698431779851782190602963818695878769431338613844434704434431074816993360687227834869379119624675442435144371405370039735165565060470171366378674041555839882639562776211296151965122825196455581424023344868669862183135998679749025033510013343017779284210058232191765461571555158732937891571392657275387207114399048802387029271287781647370154767112903700690387341417088593734668988224588374732463861459277391947597186712137184588841387871476797202097093457586108412879700178575384060579938143275796462055725776371817821412639972339837915056912079680597645354233237943486460779982109821863723302347731502321000240912018054573412841109454323259902548406432952099290929786239687056777431052722863822475047321495649296678430154396613250100459651920247002886628313953627401007009516780977728343803442413075230745194927948093645717971218021113045056630585237975029080001284346997490709765299757253702204363723541846065887247674906297372973530216643573101956853332546274058935419301799983859498044301944869422544907668647419447622085014745479777596425921806960790589581982572548321984185042161763533425927593615457590734586964539092524654064029495293494472546710245938387391518815280017455702706484509317761223217252284471727048678287985183489899824924719095339413301623509712421835910049937535230918146251975077707433050043587993397220799908607896880968638420970142637224141935732117359378733283343806317345906914095804560513994210747101524776771905731834178901116939632050345154175962497218751098394764221180141592940505964097545068250472898490317527644382560905112203205392689567935999001076694209604726985716013330581576675321200036694648092031676489693577401201748627927578071749774758453566065095637598321877213684891705146587824466702545407339764380309311442702105670791940964453541568685386673454168671235643869258170224339211366002878911562508211040651631586907987931183494291822315257365787203944351758318974708403442272694940744216871391663274860341911466952405867887493549069693660592522402613442958239375189994762247647849884710435243752716668235340246690662685540942616692783226043289266979866726180649949381230823141906158579968503398852189895683801929385996422634362084261713055238454129805606481628316417409964268371959535656622556649369999858979482191628682291855688276579527557359412698645382429860974328740238454996173718678091519761784574341200586952320711417175889936346496371361269246229243406520982987387475884395423766417221982539265674915115555814508756967769780638816121341009409009596406912554976169904679569523947038724196082488868850049579846430712875677689881908287499482379707560912991270296865275679782129409250657599057371703723118650298245425184563191205233222086011802546844273900477053291554144388172039871930511538933698879545632992508325329213303994741856603379935694766999374819524316719782179552649548135981089566021714947328602648384236743493752716570748084003036603995981023008652422758191787919607833760979288426291039800684755499373878588510978947382297909505921253780168566857093123609028406851332265606148982548076512703607281608129769683366722561783978752515365288402258678626908903430573864980503738250718072202608660507470634137736068042339120934986242534625818352061461419728295905520368449632110193135244573856027776693303770649176854071777965833969954639436319081607054816947341088099301490876686664625824934536258285601964762351204778106401173480523825444574893639228316964602464554112711467699559085589291887963383411501562150559081394956320084561493375710387071094623935187951636379291409035082913743695634174649472043259458771108241324589169855469596119611523476721677930651197768131813431688819698220825585963804302421650230317633310902544321349502566491931671513288521593158201960935106200289800784282657051602154780736584763075608856141004474287596719221800998633513973806992132457252393418734960708225330675780021499277910340202926171562299880145377604877589575071602407883985376525983610124432186438858483271257026583015659376526617080133285744875778919184278283204550325356027783954917360977160340501716178312823345316690632780075255445222012928368937921233048083483292104873005035205177723241955867874666669501203191709673757922530261897824540943027518059108539173444507337429499726079923937906978027041052882264234627257381120523285314476206805922900060597433806024754978698895461577260294098705743981785503692535970068553083031393043094704489506760133985685497752965822950623308142616695709754529015257099809502870543969565939978396231873982931831688174090144452867434722184193290656596369210658274436034056031687550213905099002024896220908724889033362842991110784489659330614652219151098413181827230413767363588531343185520454104106597713598004847571757153894582415394238811241761763688613442802446256036932487501769745822130951517458641787252312166132835211631888560410202150356583495378614001109957052906617048160190643525494242657633505951488536832585020546660043409214880541632872235906601062204730996722100393297226012888373111132821042500888444817715326736079527913941136517275007842461065204071183055858144716489360735649116356385205243909364269089979927271670133275545548065448602905896795459053721278843425828722929471153377277528366841690469363490523038933522042057223286480158872177883116491438982410084320507801571010078468531300011684998287102625119974578111527116358883242825344691705070805672482253343813456580309645587059777615919700300460459325653845633611685734230652758376533830506641439809489272832866076666217186930519671533855245685314209245421322921433587712526050986860803466678890355123106904598457612894306741243185883466750888675267603642035429465012164901062145896206969773127836573698942999832691861612658211008032390564145748046842201508641017829812543525556803243001147901065315216625676364082471471020057332199608380722345012854775802915669040655124090995120901548298998138860489377098898308652778274211448646150143113250624612709930018793487040654925232346525405632392164025671221546970880149592889280374440783904181273022834552044094713851831593621390179036778125548329555787441895950520626447488648302160384467675426265564194428945436566873940970943738490750691894302229020166869852751856146788773542692842169151533370132434406474478653255953602312863850212888262965671399821477172257672014749913234946139567299047104920308206076844273819305759600326019476384523592064761646735939453259823418428336882962203365592068086477433736683650927802656441493316631724047716201917951032989761630992914178003194929996134557675520568669564981574627040966597457036098908130383829008291431683682576836876835900954335768760132082451343804641500503828281068292358923699374865125944019477794813630004814456457787835810273693496458099975649344095638522576176802083322935910650909169926075212478645559273647443216257559664730366221668437486922691281305507482175720239907657592939613186980310682839114076531632119649486376647568067814357728883706460646500613581321989080775544981236308880387180998169818643723867645534487453923520033313562681707816465026136019563966938928503582730517814862822339262900566447449888680109623638583589884690712267029875558036362461727096303659773874714992835777936607989526406156437305488740058450564746950393486134230799209531287029489307332017477663948348971176069704330712797682678826567832155847699507417670617852207054662992763784710486034764263689954081476486160599456973316608386794699244138744965453934375192013996332877504013219700284817118545034345304502670449365612441900880475289394999363350411747570483887791787789066648868426144361168058565768192874649451858362850062508974767137106585907068925637346973661110540435588589036655185100556104296564111818114431187388915895773027423048219781989005893326108605860765908434687257620052880915606156661909840227754885417779132660254783757685204038979071474427212455028091835016583355423397144232934134834179981054630802859186753643453472997332784655414851988427621123537928773619640402453571866526846226744410329119527213156054287735281771563154080166634046145807311982793518397841358994926830857828167198290310407998454194354591265725499637487442070691248257332328148820789647214731657029822037710928080586474387994643751808472433213095837275830714499955210753934294908192545993366571392679248913991866066705349942026384677580282373650720996952951704552695111913893101004317057363999541037386924403745910726055090808167859433022595483670266357064869141760929223334275420278974254486700698289043018801762809960316203333651512952010723460126500501392883091826832362423728609802663376861556901610815771777023472897374816556917457164058683331641060792023011278377427996124993989891122136155619963256007250360110408456762292369868060097233306144303884562613273796171117004535061843581698940660596252304511199778578806142201078937734848276273169330302962520674644455227950190043199799617720876231990740748632580613597655167847689972873143388193447226423920366688444135885473261721477832506291220769797748134357763242564722253582635418679978021100005221257046305948743790243548309995288636627173542326416732407246081201243966135929681164498778608466270856286037965524614286525669649475741131448513122948191614113431574995531230015704413046096935925150168267732774492799215571426473278768640288156661967582562032894841796479567774509550427641497340434124633048342259358517121737164848264990524305477470891042555632691199579545569903689154088772548488064629132592296304151919033174197545717284303972476790952212128395947739100128184508583350999217693128321141362055438627782940861658824500142288421434751659673524629058450764793471591901603048652812701601806237725199549925425580662505008957510809537959369678844177745247585398151269305152292210657473199886631283270964855253459733292065636162004688946816837896465531059815611542591686474309269681624850671667627297773196503328472713091003682995157209276281107171100913835892242424738442666718601969833239233124389223596880999087991471031221039129303626712126611201161743464389792731310608891092497535614986907010123796220942083880609657862471191056832242555802223801428380488031862866948041014528445809750001394164940784118720742498824759270272421079334111400271497450814462504674418751807546739401618340465883159762500902843485502100935450304580565475756128283454577387349482987636764404323562251830499961973167232222359680848404921719866964606437026863340880947977233608104078710847509792892093692344890425698578940334500487434206071416828813330394777595719915192519754903529822740394634509628874558585678747705340774298354258479460901212919437461663747835602245918863808509244915626840902515136228193215612323963116261924497998855093905766122072897708584597838364292545865175080940811370352154910761834486218503510293459112993375710430255981745141611090863298695888692144413853832353846188120099196603057001900217134041809991029739059682655982863497216903606655574083309035761065424356120588945187661428389306519604659519702207630339262795370586318182796331903812590275215484320263121079169428618085016330367063587154047431950842108900251773785010337581692283202086666271573618079570960630627926346085643831377067881813287248386819178369860957972495194588756818858953034915478895080354270724822544080802852863037942523477590971901682852472916800243411565351650940331412943499308335285168165632489054939751127480302719881670394648602987938014825653074458374183498258988567674564253718428396747413918962074582259928395519799596943134990692877186293737018598536687504451105461741052186997700846045372611333287959326413464501338215343095443626355275777126191360901406835485955744593919182735763203459134393207841721440298169276126541057585047958435749924221697371740148641699595558059556791404068931375272972114574043301504705350539809122239474563257050319568383932050290110667877068947098290449550195352614601811589201456465330052685083154817932099580941498798521272996605437393313932586895883162405447266876216300722015981063912620305831647068083068783408331878624534408513513339649715123384828953622056711254126313251006230692603213508426643334386584203829651064474628974608066441353799229578207349970758587339401879256697290956374858361338289276660983663369845794940865785590723481150453367177400679246291664098164347942601120952232020486501123084726662873971827002186296229337917464326499397185047767000489360148705859142567237481202815880949992624826647232925088848151533175336552540084703997176320199609448319504786116291802951681615414272770720780276836335451889941626862394992807229886464587860217275078180174253488513427239234064264584047797440054835230874272715161550408303113899590008882769891648895686021736062193544293270365909964594376954181894288274912199835373985118429790686131791880453073026981409847758535352913179249808176808863061365844912235546422561234848696756548379294583024679623365879440478324060213217155463791553170222238579011913276185244973847036230118683825069701962292165505466472000906389575531293054080863146713374910560678825449532618260692738417387989243063698901791654558541001236550937008152988100156260787564702320957512652292916732347863741233959474489370388890439373115933316096680063487817759948833722663704824350889942524117610884465926461561550170511938701944347977167796697313466910758611542648363877765341092060359935245324471754024375570286270239529639838642728666781978237163936043715472568517424574215130181426880025118678335246851535109432346400589610290561756638019950792047201617218527526856373299205211689649004400233072140012120460785838440536161988340949016767334255441140617465941343725682478087137787272725223685127112702896810317365850304958637726105967492844743670463562847302813518990738052180369863717498610690801568845772201575070481753314873864243454566080875820769246122934771644534329147843182028910549796520036743652888309416251924028879376514212556074864786226080117770992249247996007239467943926462202068894124225223615552710285504630419066658483472679719535854790501334485422526583120064680885426883985564680457493501899946203572301614078256270473636259712128834597754598354795326517877134016073707929945647283349870894180168514780939878917236494570049274326809596123105260564632268039411079325219346535749600425755747958388559293076862651332669972463978040303763409851904732735185779653280151184208457974546525047308480593877161139036904932743101781729911345956739164602738923216040587237015593550260623323405524412114793705575279202408865949152496124777800228479127357129368536320901216647079015819491136014449283636657762622599850244243547309291978025614109688376826691821133704024763158213573445009617057539824243904221484512660847599618540303101883533702488641576758321006852493960649499890007532440044704647033743278432929346073517188080141063991460841951075546688251761921658274073603385102297946087566090208115521563807152460892272071075955807834508537383461674229962833770558732030589901528648313337564198242690839933635611713121774804014156956055496116886155781999000678217745438678556763498592622930016266858287269867403919652864920359454169211556803410671124706011167391678025013566519693722458875378369806607419595760530538241977696252637831688405993825038578909522703620869616678095038610750725594376759249931543969469047647680706841538225739760389113422591416610201243276236762557101794125375136805115384226126555967707924064051212414949822572385651882631691822333907063978227920950342382197476720638580437175993576944844688988970437642168020062852539742465313963934023033935867391699098627880914063595291709755515963838403447228172787397975519708164859351891110929087962325419330681341533818614241407725000828626162745356739247276494078130556377208965037268705863350554588923984989772309739954298375036802001152744751578808562313501306113267929026242233559898961263932220143992643276180833797567930346160450022940930763478467878163664668428042528079851569717920907754572752348670150527981227525308380700249212221453424684367668602552679996920312834970807508520903040621395486080850518793520542467976943278963333333938090882362893078551844147190328256338413959579862721792757625278555968300685223254219580744864981851473498581247910555731977318747228568703342498904604830623872089140586773389586690467463338539371566470349276864567575913837748282435843990433799627688168966087023188280785363684139276414466328876412121551273950542547405882455169939012333201885247782221345073340312168869513736853466450647559263945420659578680545356409241596451076758357993230192721841180006941062199162177489790647938222577827456100752403157744614443005913885170579078978538101107760751237808967105826122163438896168749874272185494332018111664582298042772563321133433068705225175134387183070114965405908168811563962288235161170103488640321641688099834334243612809082603695178883291286737216659783282125984984939207486792567552051258391748361621809646911137348916895157858897580352049522017696789250013195713427839152889833999615111002302584610931992484500206365916695514296604074795414093648994623672287147410331677132106630168238512635358425262048383232067668447123989814027350333303286807268904772076162819024665918969090228622383292201388568109386876859649460241333909137012549153452256079635062203822107676791802199703409043841488408483887220032073394652134572720872284624251944512583294450627100226409694506217386691656204193663943998941927774545181902149143054389351341868184471586680854216995669040325315363262899521583838214947596247817081030295968437136938023534795344399194487073071384231848584252922148506738290596925216448608622006960846120917294074283353634987713224237591765905358714002483146877665058618064835811635731597213471640143183404882089427510001213985379677935562640502031103620961346048429222055984518754539554675190785908351670655140081716004602159601426933283032185817969436397750031858676072814469823508052626354154402318606911420092733263524043419944470089885867796382186692105362838642574512217888906733472254601678609961542422684757674371740755896110558481559156660231889205479436746232762326523401314081472911863948611980448298989204052962144519756494160267291163550024297428067520761547316110724752806030876949322778111330684742436986211193117098940451306586334374039223699379688958588310241982386741798135506363154784156995529868741191394107599121444104899766730250270214363177466423504775351345638864740704035969092593154605424837592768395251173712278580861938982327460561820998077060533095470609961302709904490471082331866184740589551888131707402830803872487551228516114378701241127276400068100104773259252989813199025018474233808939758123500496417948088465205168578997501884107886127568209307021538249472860383066933780740636836718114079415736611300835848655766274419523640873658066767328624857807172942408871640744028805333554203700463533954647675528121662037984867939514384091390504048748402339627084264961179026552382618532443663765875158693851542623516715517341544139871073774856812893423656930697684881394562463743892251004114673035072690122119308841918575163848542094299966328158369089925632554233425339396335696777392293642128387257580745782405254253537268410172637267765514619788750779581284252839427954047328738984238048210029605343031952838714760834593816223658072234135043404587996452679421976131811230309611342061917307433915880628217956083762401523314870295341760747180558527523078628471589311350542183899007474709242270117092338198533650276002262977063099675020224392813712852716709982001975818355680277625491197699595324860714448845906609311782312292998262553696352927385628095842404561092981190065951667737468838140552055964959576190482702937465448588723756562888790543534424352612510471330253058159733731551942117535197336341041756663368778012041357660764550612763271899312998251701752056320913037440771797990813837939610535143365926659500406940180733956319763683040076546290768994749523589722318756326199869299909118289520111430989817597252167891920432171132149671064291379209343794883595866365869279981322581519662012836093598376286249010298651154715888480009938397204344057508995374285077371758483792616394932148362330164284180907026938174712214842372106669448310329542287148047107547293281468849619200600151682656172031962562539998525548343278160749503651851620133230655714975199368828826411826174612204197068841491161149269006371182524220431591206294369857588472509459620708979436988890587693188734314994500747806419425206262620311569700152797575567992253219106558602761943123105692485690196126171604130824419839099510907211389908451487769192933697532434469790015038803876985969599193695633310960687461065066831141717332537686232748330060011859301984445638675378958014125221607897665482088332348836084295293734692720428238626904799386105281025465621828730833120489289970254884500559032370764547159345264121860771443628399281746455037348775620287906180450850147871488356170377482459437209034249020932059802595091218689585334198605454679322412982493471261908378193442070930357856112386750846606222373429012396805703282066025912193211014698657991350784282641802587206284929240604195189199274520671816218916643733432603647812417573892208533230041698426533907337285375712586271644102287007047371662679303462314467281868552529954895458625290436207041949709130296221968490763693481248217246514449308835113013574371715403318223347129144201937244292538638102986636154983639067252684382027693016748985896507578066856991503984049978535913410139369003106156727907842789219563705130162410543764679830610130539494209686753960656596564815467139005898311527928607459538930941877773481865326694490405607699261960746061110483760069941653368089423511826823696978195547865494051913120824972498849496481018289922430342564963980021346034540978405143568999059194109813164370087993954186989836225724927677711746930236759434192577221113345151691400320697373785844515677900231521387665356290443742376984279001493520144596091435275404707625510210123366026596455735405529715356242126885161077006931343959307730505045212121015629455014415895624737403823768845462515359088503667997204928046989180378293439583843175587710483038737249118453886475196718193999469622581725308514725385823437777780300528481759204154731462704626422289000239015070712351709649911925725337830686944672389765266974414064231531571047723251968764811837483104430336479256690943984715513378287130838268288884090317666351500297170145045979979002743831432560634715543395644722082042271847317313184816389946770163732506832300207707428943840740970233565697948864872468451121005055747416422141642593974620232354862153570104748554578868818702797515260058176276431570717663051469268595742007241137585354430171572363700157538701449758605614951683655354747259515755845499841104669344255091670820900985988208167024994112813464248570199870664740228743236897070582325713763755317952939432041183736866062509172888279985665294219665514282234178034129723505392022815604824217335782973060959482632821020990760595698298675366823339307058101453424464062485716169565302995978856096068205018147700979922721956717707531978319526644680509638739390145008003684461273454563257088041613533055659029087436980869031135801411739498805918419239967733299335663485083724443942765369992396492836388042989060881363684055399830463463647070201907219010460742059972961090124932441147519429859035201776435049745248553867072071806412815757251033105386586219405539081281850695543123519754160507485019647467850728564686755202449032828887770740667406955287614596410828836255457693251740029324022173312938440009431546223478021500382448458797041831454404499957468046840846487962104211806356056369033234942744677072750579245429355691036440073689291136582931442883634683560262836344034041043647872238370169239227487181531809779699952343567565269925115017106386681291309235432381875880793106043489730730934093413359919239019578386693597446972456338884635574596992701297817455767439141071080621000691789063266071180730764978944865669048645997577221493578836377557059486592396505367646250652962742446682098971004184621236987628287173113647309134059544130156010140474755342898288887416586067623862177117635088370306789767143826287935929815347772529277803082272162872435234211347441632942549906871819958818785000700694956776792266598413020934042419971608390002353947371816420656399765225566770605081028585903992650287992392623207795416836407709589196619623587281157958680970219322405646622387961424502443813799817333690073541463262625698506426919773754872310017993918968162562308715259361366887954695419281471386886695902835630538249634428806806325005324999525834301553431002915560249594348528960657525886503583995999049756819812868824167985766754502331394734094309702043496813986817094079584147992424741627224023554748408212125165917407497901637074739117298712951561369586644855576359844941349781806139414804933316682076008023980028179132427164962716175204942885423223433270665138581387273013051797578358281496259088665809361431437858598122323364547076172847254441462314973540875285098463005093742726344289374333819960013796118208864506868432487572204566988510857216985030367644632948042863982890576308656344915622993872373877226341453560135642262446876455543359764586980233428446802116040140279953590664517108015697105813726790597157206946830848268608190248205477470435095014297058862893941461547838865325806530389344794703934157582802929845809577750814843447897663360339168289515198235523664648020462253430060204637777206958929271191647043868060220683413708623441964324677899419317056552913894134444120710488298433256605168232741443888244874445554572732700599487611930078092682183731239443616039931783448531657725258892644066826025706434595121470565585683936944228822169979572150863062738577433760167325894370342327185006036924927760182832387236691629382061663596730336240997920193349227771870129999666917085507698006007781355186601461588543371686785806977403169398860881353205898355388323820098288607050692788936001405785498748300590970638375562308631750714650106656729766283713998945567473184854541013302008169486645509767651235093796159388440655964310738937595794713261595311182445186247079901440718555394303894077930492459769456220860521155032338482194606690115807188936676849017383603631161764358979174589344924421602177167748445978568350032844447046417098932266018852183469869097547139383940273951509954693260936511119011798494006340428470033350361039676878798848481618221848502379692508307991712545058934218938608596017688248404535048326676863410129655265774884057469000598735722110713384610038678418020011531331306233156593061189537151159739492378873833583283428116936596513713284115878467502822679258086628793013329089000241002780621528753753177647871968658976533665559388006389327753718879080844594761951432257704759885924540576750643040747682486272211422822689568513366689394117559548460629182972443860683226873529769642660398016907596193391419561553450107664407137460953245705467905394585526867425511162455190298018994178669277107971299876748870193343920335434749200813231585345613483693052865778361886301461241668909591857859913730830035213877084900451606953133770975186830945094948811584947857945857330303970628628554079573699865761076496571793955105178992867610275236968455991973409849840551388469196344416023731945285075833951069721715919743411526842035717076179088885366836555342906357254194097360235239169367725502198031257025988298906545268436650294625775181062462187586940003296805419633678110192388188567764518897366428335625920891833393879926044310810368822500087529045486768503911281315200273737719799881542788385761385521898848005223743422603913617858569174490941031187483178767148694516710394210213982005270520906275279774345537354988269059270157304165542802995905408601798058869022892338978301060734416525472390200664516105463101712188367209070319894818143638777030436236925735288013889359763930290556024097087672991604415972534396527183214456933334254903770499674000610987589818787760990353886131483634147175979676379344945389628977290005253515367795213517537088046438061861471804752797743488711987513010872590751094580495399916923587222004501607765019966717290567745741080004688346958191229741180926736996565020082655329079716717880616815493687625128904152824634847202009195797070316028673230497551446168551232624429951634627533135001369894050695908834485671067123974071976568237749244312500993298992184984502234363115240708834630663106985934647357599761723952719476956061979705953844916350628447475554983372647985698404753549562021288460322297802198401364112363105270360633084501847933038814913128604162070407969414916635963825830677324488633961255705932224738546716953743574001933567141574441279126104081138635097858061748123165767448111010398339142870335139841257695221676683310451116995400237742386334523467632070312634379063316894720960097015730113110034434917695440333915933090455539161543602384600817375504848606016688499268495856776686975987311247324342727509666274560419007853960380408962473951142081721472934894669708650606226784303517217856042117571068842981639438496224171170067870801885123167530492771806233153745316294965227109480075508575920306005621714196055182383038791881753998432879056060421510262892264312505141376326479311352870640188623641871738656788031917462095412278799707004783522638991790675978898392190242219061925972929187062284051002207799280975365480414541146565498820609558093297219027259253894086152288521400369883774110130473636695610432085011222998961851977850394843576808855973198579165458198405536730861639052881926296220970911663949201834994502317636760126173779663072214625991790118914411532294227310386912079760668136608346472795618621484725671895951442196331282290703147327463272432740236713234686691915301241380435045677236566464503173091607372561172227137631122444724329536915194608835364362173514665205153384665645619892398749976008147977710613283461386148421614084447664650598031746522720381692128711231945584584826786116679834104995153420905316663437093004462043191429942811609087101512205963483218934944256036573043995252654261709032080087483159072623792892145744987855683597734240802069766511014868832199802554359084373904643443081951186732493627311403563573681386290600116893883030310565484236577607518264164091932711713834398900863412956374184179908116384660630386039563465846416555578649718255957357619244635658810687496331505061538229086693244395414561598119884979369959866045206282533944016538279670399367710545430194621654560209211681183213162912600843020164926899670526171352931915674387048812592880670383325596170176425876753560180485950231838935007635387965509941929180903833914669039495483153180006014288347559438708432368807016179119901959216476820340072081727556776107685521018387220839821612823713346170216254339292826811984190302459484349404218754677416958931934246650914795879582550297255019163758129990694469073817400840799052263279276069620766858647054220824931278247106400607291352435905381087190569981375499905087724294891233504616875041751029110802251594084570008423945302232814331277106103024108072212099045071795701098349029936861961285420539123293348671864487672147788435249259973720594177674579319987662936544886057665150111484304652623693434884848802517178505936939149577197693071501994132093602669626010860146524012743868019340416163905629875326220678914583797700101591448611669228673010600232660159842362085592784726221774030227735820147296004239699531561279749972771925338578308851899018763819389181673512146482600299236758995088535148078741496209055291592734296719410229246892298410734994582500469625257925246243202986966254925867657549539710779147463556303086328193612597007868427433477213465399836263216589241523726045612762765262489365392994689645676526268084283834711917092928057760570103961243068144590613916551882883881815364417894754421667905260281856148403299368087820833112287540522509369194856908549995299604394337925424941667745593564309255797219450440311154678745276570166262019436839161573661051614766192272099768664903669314639358426048966879971197733205137222712161593968275527347966829055654487442920663281182664833105945597248301061570780828958887173289911476055888392517833139651874086793709103092247473847108476677142005784972993426411371766173189743432549218918263012143125587572258010594532960317062016964313675617438515300357726287734569841194797343627077085149256745872569668799827446449562218761661022977764184453035210480031212331027707780803416084313300567815134042593003808368208804058225796760806127743069621838796952132952690860255596249335794149609453688859769917422159819849961627561189209948438521101368211992543152729712283313591567230109136129498345819181149415616270448180914097172171521178273001019366034154349996677792799566137999739191122007861582882330731473779343694513942539469747546339126074437448863289673437638727397451015359047127030699598184249946831773480002651147963329110618943063193367627775169739139472609297247177443745464769122394576174165486164935288348980336983970594637990026862461278940157387517770333645470443600147741787009807452045070483804637138242462624166110427251897988578229954158647805893991067122799641190451804209653245038811280062343568469578258436387442158386794941806362936492472177009440840170683651136508990024051819242544053778313548943199413019084022464246195020811136959495206220266032989379011703623314991737304158850861620624600708040811635648257612764086902067932254683051792865394424095733934148678454612744390220623003517471177685805494856606509991941741100223021696630752486022312182669452431913915717628055831557666286569188150752218752188846591896710722478473009924091733671200395911924625528002060148167373139446288550346633100939820851938515151315133696592723001241098420974804725322768900049291900450821640565782394128326682026090193749128818179857820207403542307554379218403028275102333274388641648906566200187493821967005582357764723473946447872868614011368710525567854166861656251324869252471456862051593054408358425559605126448752460849827814953142002054511708452317482565443656965455146446811716540629759575558354578438621964636896775411810465214073468757563071854235877910076638032902251618363344354221054680475686975088603329828698161840872695503654020109795982262475448545750426173084036840525894818000866945000919128349324018256542977187838086918526626897065241896405329251211656302900633666913150175269255755295562271018974307055426271614408902926858545962409235380356946020457950794208370326400823641739938134032604553406613517080720319427681442457658605753615852455813937429677710793266432074609528177268380392969976901048468906036214460856284876936075412972886581894094276033341363665926844569749565896517507047991496685496975057477521807724019977119174032971561459524604980964585369686618583947048778779714503008559356951894789788026837735738836858141841876029731967899131721903788964738270541064172470233931487389821341477803783766462327568809928198786106358716910401101057271941093587883081580932898949719689909107090062961366326094321658878527898784508821310891050201235744811724628867961110654813794777689301606698137267734860837293003017222923811128354946067952151221769794339021110985488862980786023969279929067964639528771510611786780508253378962588384384710135616776205058454226427972473055266257287668388941722309529016966172326727137402683669217139592519573252841483747894887408156790205405727029679163562870627011543513325578740199923577415880905737460617907960480847896053702737862836392505887590127270784662026635085843120762579929160988223328804644009690581092410658381009999604543454424531925774062640073375153426967741202391371567851765211741356877313518707223084122839052873117126886276781381944243068108562768933279920275019972437548484479259139723944162606998066440588305451981506191273685634365224236817858119844344891024184783040263757930687632328959488866723114429877386097396002613829335872181256856049917651664356378658917567208674659600795600551034465633693320090622116714626830869505209181779423000053677672475899606149972972327670640837910945821297665272622166328453770878678834480105685563466247526282768938986105221064828268697779064838081093766564052040005401994178343345313319080157129218294142989418826771692034606676791267325044572620377649161499812688044905060080275541887508041929572446387227960334473239466110357233204618781225598740884533559404386893180009032155854694745813150812175044029941852831174626620367297721256743375987193205489675769841953400106154933371149290109187811509510818237267495636067357012661196377484562366046498313939282764606076012152051518640561287969360246996238243731701440625147634207946066523794608330255343401140605271572512065900824472158049217540542710557844683836153762305375688925381594961387741013035327873816385913574004069734887778157033761697615594565765900980784394172889682209671579496835891959083896737329818302161810330584370376594434643526224390134115237689259748854269491655390865483469821511526029438785180156526024828322651872675866229722660291857003057413814294950611637443584682158829953328607259252356514679729393413110470906827868347910372846896526353741274231351126327189679487178847921299757004508682127480100100149378946788393462060212922768155450949139055505416711049111185289932220507419668803310272050613287022370754483291472319432416578695798460244531391673497371734544170740977354506914888071256006053214191516334434915726707232780833209094051644827921904070304021623466117878220096153880469483911596642922268366718182296285213002699839462807987863449338892641349079437768541387789538802978421280880605534395906182731469461664801071287831690210128710501135338361729582622943297729548977411197769853679777617024336613006513583454528967500090078319021911938576247332098630667668584013189075931235332266132516057638706635043585717577875165281093742037894404627614724279962184170418680460624921001535487570017783628241233036871542985060023111419062810891724411191404304392549965889304057659561299811238990486999412830987337270146426063423280139907257833205865031515824564963387840395141876907821856955047949452884798375357051495984371254339221661337442388621673888565001936601752028773276699493106342892112110745258245037970302116353317596969163353121920578839826221658559582237222182883422967340809925341900981829469153632246039391962612926806307994877605657766502843150866896556978395231103662276376746380489787903123545658556631757885861585644790643161550721198739589388811101417925997130986345285575891050169545633994659374588777456690995517090591637321627370857560267524862647651543944541554447679979572393915266888238486229807750953353564992119580890278314245327834972352404938327493595419593549974053791800382990832106683157281497821554319827339538817094695138657867108012218944165868297357361637183741711842051423859229925291015414285682073094543712731340928612458141980800316596486348336433829865899377655980740237271536265003030320509776165953087757038765766431294412587072286377269737358358057032514114535621458987857604691229495727641719129494034944267252189429934020864337753656127566370307132803417606454389806035058267253585689276810284854875356874413400295706470549020692318966609728658065683384591396001130829416950313486917802207756373882775227374525241853551191314146873090878723449911262078280877572706888453599131149661674164903258363235401385660651954790919608967148286458929131739836998780922180264315016336753170861793733975665350196912689011781774045139859907422616154581489259515224578218562363371679722805669474719000602397909485545313177870965773280268813714094589130273632070319918403743445210805069656253333589389243850112310607423581675765774327802676920560871926654954125361755847142003547159249982874093423974576660881299651787562608407197564207102788157131463253858120445583468172711156243125790846707895488798423241967536285090499163156818245464646495495490175945407017599484633403617523383083551522173597077637360230342820635176316166495590234521507671204497729491309537918699320131418966708535328742105395287365776778443530927222160967691761958742698356301633915964078344702111098849322557927493382390592781427727308812927578096479140298327129075588304855094045359231128304811522439215789467428413581162672536837033661965509902928180692581804872006280937930456025158897920267744833056568674465915928318370675168833676863333635647936051069108152512486074432015912501252506988628447114177353464937675726697481123220212669349367382227091714202444187090493720527577745496298968024214007208544401852049726189933235691769241378592194430448787537434354765517096438622610744246139580451379807286831769825823684061401358172977353558209425884788689867594096811162284224574375594646881632299968882820066190487383246265696773954905143380137679738595498326632748120283826775286574172285811656029438063419889503570403158765185565380360814532345234464665236672858125082978340455651619222331968900029638870572930732134594089396286174871186833357410853267902027803105040303304833480038335160529524905894972170288463462344398054838579162088659644356613036047260497030619826968847613158847017386452571272429435325766407603204857364598777673990418769626527277474162592268013375352056772480429018686739842051520564646225859030731526901298256960172115213061416183594758288047496002642812081901615443266339256528425499650718994024261120672814000947547193477761356051165456455546333309208251262404459499109228703601685318169127841362830571838025416347922657953489384342072008784249768422259315557888842205270917359253801571609536374288185792217815146689033710343653171732505522025595918007700913974589379857443087597114327366786020663674454677267016422227027860618868435897298200804791516672683925303933876894252247818080079978808455067610159177214984716460007381400517952311052500710343145650757676952024684749184139239939094674938854727862959458865913749927576630850396069062970428284952357264615810993810096322227516278036662718445128289688599913620298307157122191414062815170090158408830226251804068645568766905106830857894303380533332861398742815734157690712462846327090374246550590517153937808427184332205077660764119868699564718245312069170087383561294296019812987533876181216921852570991268825143765355082541093267032323891930981504331940235423011315440053047365701278315324480069879473222846037391826247751070997150101965793402700062732501550768884894212992859026711918147677979242758338950072969607517943569365803821291840373318558397298318314008795693506647687742324270112279601479834600063082794725843997708457330284934966682028850061714008720010419826875414616178246514768233068201047473868860356688225343877595412135466041237171963303236077548231240827862079447398600952268431333010658367595347047754594517838942055332089582270494129495710839681420266124768645185480882655871371606950402399236681325831955910696405148505752384525725769350449595432367012667651461693156293999489618012557210406547046462169138720988759401864793597453167994544247391274158633173036475132695377774203013653827975108552668102676907583414204303554038236542560418550061610838150950838576081466371384980062967448190845850371807968519984579185806695542720519270647755343575372549328150975066514373088806072771195457417556336116368913974404144552299115244569531498480153353727945264949399224488084565813347426898479327243232755063795377793768293357468856900759337709141531843067210476011854028853459167249243280533948610670100102308389207816921864114319557732671970568839114329580358425076912319101920986807609676321591777157188389834677548270349507938783125891376358410631266962991881951013533639593437327831622463456244327229544382439126412509761832939458754200840518925679110673887865717441593989737971195041419338362713525633075269842266001671803403749591236411516840612669494284686023817085762512426935067585558279168058197949043742015519005478663185697378733837268651858377764934164950197990440598785966012963275284392363775975499666551546048430715038166739299722603329236314804610536875554361797039384941525333491100645116460901262940532515121306245724789386349940176060086473553802409190099515840107121855214038060792469452188305258790952547317951328861733222199275374287582708927607934781150732494928073694386126251012280750691423385102899333995184851923596822228986165109022645055764418057980628145395097395365313876966823363711179432759304422682810920510108558259420449273371040114840777570528196621706791183123877913645545255743446721037800286397837403762151281961645925682444905955525881533103458530803802002260836819943025253473393685587515132912579190937420305733626269083474675631262045712892596862687296293533465063832685332026470312825888059053887577385155199895065049940742804498320313284307498669868609916360082813294237866637241672439390480847162590094604324070663374650137574018636295996080459031310345667550821992722778917790198401790022275585493476283728990664294374636643898315146170138141889898492644381064416942761915200651183937148729092893383440367400453005867575797578673901642181039729859850113564168832423278407811411398858135990484171583907223108799942328132728079387656098301708202137220112218553440032974393180966361256610525268875798308241851707312375684488866207345738619553416488591909912581067309817040699710261171230146495210429807545205225819336073183156442321540524920786385650588273680149951106567225051203363107663358375659596368717565708929323878044521546412697089350752449957248959540437615206174029762543360213386685802206887135753731186014890437604643914845979979401495797003651376390544840307529962455647868489873589820740869404659890451547091507639962570818502436924322707015575467765301727764487593849336934274184943317410318006544964544722242348547291967871137527412191017136557140730050536595017303305593426442326286354262156695640842796838609741462506612014699689678096495399939458623906272640431711333541453196900844982768739474167077778712139336544558322477205374724610568535389785545312337281683257165507159555418792170641007354800418287137763487915550251317786331319656902544478953854208685778128371329802459139898286187195262108952257612510280997322382751808774515480225839903805864386587821003134205771131905488926250332624187760602148544408983220376233209794411153085945962963816502687797277059659890438961303726317438407317716366392071750183925988809005924093556670890291234616009097489534137038762718043913861912574773155483258425405888086388377258781372647098929216344868277848808595506055765022971568458948951325184682270919508763054846051621711019334966135964524337900359005124586020767722891112720576974495063146320274308817798296217905379432309633828130080852486471304749278530498464734089011117040850477048135547075269311063015941518849371445193359283916491589331925121301058499783873529424439735741374850121829182027930516973167363062323702259510179535345052469366601309325227395767113351375032446194096314282016515538943401152325313432808077453218698667513428523782153676126040329832559554949729659420905049542408189668747347944577004745940483146085660451265364067061958172990586632228290526937487332366577014700365455232381964482329097736811868886501311503717245821217764612728388874863445692202948333715965065916517949260212586869263597594715850764815712796969846695645478922158552749340694557314357288806073095825332049821013588510182805245093215119489020253693124237530360316955722471486815919885554649138796338570797733024960122489859190875989391712211668357109569483768015369005976011750309006939298517562141903180310312836904389527712876292369971697355142732029684282864765567167608820212391358454511510365501921893548330328280814710426911086616229646905275965878898803058114490360249089673049171616823442918508869615039480753733616921692280532095485299846506913221708703188490585385861749090272158181945254650257840373644910144669902551715419173374022698024876979712741377058284757382324456153102360022849391837838066044643249995447885006374560577946741761703330400382575729211188094262097881291447825735474515215497514443484913209920467676771105171140745290784209349092794203264786164721695233565671509365296616908284633720200606759241960187475367891587955004481768773624902305280586594792464783794914872547899320852211405592527885239545921084796768671551480794735361493016331110907473214196122255987339084441287692717560705372143741576677993306712371909320438575931882763236525165878338681636383361490426786402248534360963827437271314893911809263063706752966068804968281823476432494622610850704621132200830416758902873300898322667807689709281293164870127491301811764139093103602779689893871833773503086225949412132633145082736440238382641384517255353269399694756125041903953294699008030505148097509594745742940992918237982295379263502173055011557588816616703216509158624182467033139611925890701323460287896534347642021965819521070962741513213971537895490715858851344376043096978684585842735044075403130005258525751407494538377820743736388359506133639167444213526456284155407487569271998819177670021152263765612651514979038279753695247167883580542930188290247300606784951807270682623106099454618944071067548612588276013037493995310870568496851972582564424320486655141744484361277445882958830023171543070931671911923676121452352910100963094015448548115907526048210543765528501595770799978924061058153473506400324412375169353795847637047225074267622728934168075589341074204695088045479269808723061506840159789988820860334683976491588752745130947607383727903760758263177384344916012662340927214382005882366985172436166557365614472229600292230699165566946190563146631619548782559088054701751143488775320527090566836094763285921934380863041294990609740900441375754554770181368073984533474879853913327959825437355317761622406289694212110596378716875906698116700134258608925963526448009096918332356364476794054623683522848626971427599165169963097242545018266427717847088770609658268023249298209921175474819215445675113063509702888140553297402675130023786714458428796450956436208398115755329954458038854175131554477991068136824323931665430095433091436620645648858728905079151815976326475418983985452462995203274251969176936729462127662976544211749402725787795566465382830545597094573912632683285185208545785816778202996562307583152227988699836073723106777382913780540268045787910522920464814837733943979261804608173635746092631323367628807539942059908422699201443427028954916381018685487056286844887551729629848923478120060375142884216877668181448854912559014505184050455472072970652466595266627660654630733101808439560161224170013967077080440631343055929056219403589368892279125975349090472229117917517691177067662938909561524422781993202386925650208760256933450236340558909206589526276173658500001334713056722610138883998067613076241309707731642719636774232082946332908793620223280947144037117197529623597194587230695462532190536852080980249465928169129654624254949214581749331057153184854360787056627397303879398154615179952076541478370810659682721507340064003532256177668041751970422554273874313226134540601559405676360727203458567389820458861033818201954852841036973171632904881412701791609659727522724779949875416558875965444752688118630946859798266575542003657578926756770381923274318773433138577857107369241027854371655773267778155853825640406140263603534473890105560735778359187689920844611307600023182072850617424772547174240680803312003013667068469546707305306854744996944627751543226642833799649279913234172353128827046422607700589877862760862291925536313061154971389988176275738749113958797137043683465264975878323681804486873737792250491421664210844437593920703223099588577756317021208261706731799810179232435757049150989626486968680159755793947208912768497208056394919325357671120102719900894960688881417531680907249357331584601998630841524420453163064229322302747234378048721154465193727085102748811146624344780505770498645413535652530650733944489488856460723316572572395054911587097635112562140793024695775274023077675897113873008116952717620773723643838515579737591570741572816852517040140213886168710711598400503069252373561622752130756331512166021502141787828158565185779029050144239601564039239042746814969624644541583593706121365102176505937367600388895288652378284312798170881011966302932949674198597007964668326461302080818939350246047065792357546532061896495840647719379141989486146274710343546624102405317130018680269892669895418447163758834160213720348671491023668483418301418498081293640339848127135895202796199978903126525671080546785920673156846313140019547439106742428801271846278109110473435258500182560303197382533721354516519357013118275246615775519940179247676239832573037914005434832303007845782581401897347267782979575957363706364398474876992575114341142368059647875578771509950205528529491453493521953960812331410465063265717379857730148319988632942622640390279900753861247301374623142267418944324381416263471819959069934540151293089004038923108533257862014402820571853324803859274778194501541209636964502158903705031551404971887423416332677077014439208292933001617781452651504078904649781850484073998675617656443225117655326174284582893818625639094375969721121788554896857450220673695622377915476882930177212572395541332242786766615490762990273087395917620420139361969784422758269491569756237453785269652907187899427823093934177070207213074133153199987263771518158293682241755099641734482075075286397210391469721309745422952074393846723821397465939667891223431401190149878985334531312532708942939238545626454262556956635680320879582578571863198377850797885931285414179578835552527367817914917236465716610843114848189056300243388316730242093481915036321356068411850898843865020939571645236533710824958474896879359919382576271859653034798977974856791695008670052569217272401752829647063607328024206644940928763640732160515119045596652723460004442880155754137397776037370996492929600095769400427005029836120168647837293811961914008319736690276897048190265832515482769163437447819716660542753371454034836617492718105188073667557995963877605903934388174829069748813810376520624061640999542272647432052259095435293352301038504511228505627430058834636136630287880500250386255516731797491991703150253011292102779464923820731102402585806904596287315580416509151143676744290092933685918725550236708777078508460101816941743308762152091318903111591229713264316452012176150687884360049186077897970173609274353036171174539464851072111857882140515317785970009057996157079103234805477289934382095461851549298675442029991094889763938585434266345480438121264306574391813431411847938250147517440085784262284887120070800649382457573696297283484378092791514639568958127520565084741275738564653086592962132397753656623013306319874595269527716360798935845735448906844688681494948104557148903092326403700807491746112460232408232012415689681449574289881270843134149069601708518044602788338820126521830575365905315507199040841876391138267942888569244652537519901661844445136878364789504616815485498734378540549758844006311518986250246004603991933077165993549310250702879334491652646130951181434385706218920297801848920930346119528154755989108033188021570551728416278263669923461809301064993576355002505057837740158058612165918748513542237681153985121279986467944869830042710732832877885237912292386442192041099618905944542003214190489132576162301280655540104542488367677214094104263457837231480425542629116348121653525961582908029537687635469930136979363882531734196423047422023729092101077053802241636516545694014680756959254769576458388812866467771542693501949099122119315115426060410861465406511442824087490510712533534797311283085896361755676722118135928657143267941364818586234962944692412414484938703102957014479495706863722719427657290080653920613937908735208189370437061801007074524244592421700271561592310826298975561566476335977325997807982010465878457682125300381066527188536881391665514552920431934280068707441950269028373941568583356352118406041088247860250249858965142532875160323795794039232591229139570905260063023740062118212120694331406461431676383775129498429725429396398546823090858861625526789463318768635591489386159832938597658920848771074014178867899443105462212239821898172826875299834666714622523042895248867434450637588335315313479870117620293052353240610385751716957728232138610796634466826966060155954556843747100473868099193185518319549852715741838688309743355246143724241126836404954945437369266795329817073588750396356240919984889399259770709321405760828943627537328567587081969067924682345895437285257667337699838012479679191449591553316446094443034309566203155374315851108760156282431411537652535741854056634905726203693619426276503734760984501158895815006597557901384267977974721049707210384121434410122509032697035950362487377087821178939496668379063136269945796724768861393373430721383246043347923207505854829158531715360430751308354112948177137049287860330000831455990310030943610636996365327055612027235233582446432780079107361752892507167057326523495239156963304527553402461612796519889822562204749566267955623171402080795998361592117053259280563150652461258786206217416216532214175791517421590478587019025135686174274944274849538380899065331359791743039121044549686030093743536258469733104835004251650572145863860281464760264508295642340400306799683807880238289661029367198457080356369024312270674021487376543809548075896075880139866338952847535540498251294429704113391643647603459874191707168697437860937553113749741380792719760822135471274515379216104451524886502127942567242831142156158676797788907751755692457751054203442671789841267117183392951922983726558762011822980888205369615435865541365260759465983140701404568752731269977612124963548143430839670043977438736237973278418387247948719218484769914851201775545179358090932784187379419151011915865409596406576682387955651687281246690624612218557865560205086841602701942179214255311481337658506880190393538174206667324805006786619796840555236425620355832087080715405422077964180888417146512847120409551203480333506843929004790588460294373973361961708031105814700243023586861074190502817252930969311776943274535061689099239480955658137646850938336171469941155361567624091210126512420056994093484340845232611252087719831955000310346745005454301153435545213920804884468509359298142101017723151315231691835047646279032889100385349779416574636228823888361355126354983965377353550046924483114456689612881596547323635998142160190658381905052914568178799049037774819962867408022059401241508322983836937662899885805484502315570883858785510177770929066577175410168706352907466235303850610750269386128013584898180888780851252385509564490197985892037232550323074356351466448961210194266196206654753536016537830048626453587535930300988604331746700588577007752920899917948551331731505376061288610408369207735006957560672958126059166994671677942598148563948627049400901722462118892562570427038326776178413866903395954283475718934374882753078680818098722320120505473503477131717877994686954880777033946510419706812577394512241653788586890464457243527888300822342711751437606663117999750592366035062330076925080380075428335233416120457958384020472333316182578605151009597513489794013331576318006360228838096027633192305607584126924547538211201091029173185702187989029837276500229692198526666679017728411197551840643382078670793338706692865443874510226240160850841925277139113405894979667516795127364609277521158479313510466753944393455497640138965381004015385288399130164900442981163867896024815758731074261721927055812900584937460683768325523035607739061385975590940386452450964687898913233397580089609982049479294156249262688923972111636995013397518523395540370397040370735595628191559667582880418662990216762102709343678143342164763900030198250649242453346299910615345554279996183951677599952854303871951924739998678470836221443709041913664143612710720945763559829266684982065141556588127012808733930392404466493327137271426173858178000836512288018916372290952126200286909821138039627212806630688502738143447767843042798932115475264015336407252518938728450256409505013948482462843613553932414248892623578484087600704657369243977846300241596609158393118147670081324311537242725890091648214535570259201891313689711360335980037826536417980150160474605138712702605303650139771603607353209452438615751475834331667938096118729584769745150756772451194217647673979678586702610796558317252294490531593481435015350157074344935922267005271855193063880065154236906850384188659071305704528879896811466453401048702317815728892327726278690676870286572971885980101808819750104159065536164871049649678683471431428290427323312043414768034111076572731851050532219723062907931377137714732368728245149016673935255736361115128963666331673474443657829923612867741100891540477683641126399553692235309572917712903537758392294270976161218294805863657430167092481169836074523528473806803367925682978803194752661062154708968124707919161812777164104315419534579047375830153820850557334154837828712942048723299318234577513963088487250291849992135829200781137557642700095293279708736705829738915263338122103306985742057755138811574877443954030436598726524748502394240977502459674438509160023467522990652919584867325875798943397078169801150622913721016857499999689949332210860240272767202197264690340265997646838125021572836614617805718615890493582993605208206074679094885596647093111484197303316497676960969730954282480915636710954000670575233617154615047942239546850452699754709649318832305700375234636360622310648005378444185898647439585284686656657841362980257220761220602247200518595797921742581251044177626839492001307924250848492123712273434104505985583633648739393401123844441217222735325518777411541583767719482690956686231814572716787742447809781432631241275680882703391826605506415163742392253177249125516322060188396676051915468287171478671413498335566847435892435117189239258908223226640225777504508114641264634817262834751568674127014467664722741449188181637168100962197296093096767615910807311941619456290028482879391106277622257959444447398263708298432732471373786331448456032178002204260224604938782029533471623044969279632548427314867950970750819412116339124327148779715259358318763815530814434145544025039844959265469072512578719445338445774174347694306671294411252293487708970275457204453929584326922565285683698430791285287971968167892671813307118617671423106083855904023891625751343164669657793995080819923359080978643705731387414388751088710112762209656279305245603357380588464447671234398644534274021942662535203061752346785637874358371145580945111580415764897008198673852138747226872365926056734325249509959780109146838986805124716207844302532159282966744884374830361172159723097925034417748026969817026831476530090075693254330889820615468070149793149503451183601983009599698951648029822431625501482951622874510492605530266367983219980000854839961746713363339505507410396975313193177118953097381129573514620930186427268302765404119607943378157829152169544329297631721497663043810659928871642689863141930706873958829779552384385636232269823031439088511955463569200150199305118353012137772260608424550896825037920422997992119304307782379070113202670416398166663393968527316856314649285511780716952455857736730269730896980578541815683383946657886380186316285131420713716915884034179065988284734805989201058826227725743411856462780316504607195676789264924439714803024637098425753748247583998274365734068499835024253634144736176912344054168623073710187245029741047906753899356695663819323984078048923599021476699107980919720188019798010649590856406022146565124785462068653158168696605230185831879130716260033255727300748190242561935365318977282358691989172747135646247698920827727358829639025011222604782556740386301278632745413428699389345521366712647234815211347867766021141454907627340705041589165099180847122171505538408229625840286201043919354792492013935091575685001000741880159106269330328251912730057457339253319637595390939061847426402822800807506261059763705960091493714767718269345808766185137983179411659764718728436961889311810503402137943962034550748572118874728554058786971358374479618661640996263761033190577911908406402903524755812543858263154910519403590496836034436853633559025202488305704514416008033753581898317819073917629217925996261613925053844223387724962110466755374680763076303441282314704823135996100597298444158421038557151082637943097255297424922204035176180749587426955143975921619247199508288649172852983111941032241492476699655760228317248575967057553013937864041956693261900138865674416099244217252462320953794314175295247655390222115286112964569421477194451990473817423393058745704310087488697242084214770228087417251243648034789046081236517817123293776766770338040471259757080781134400100218597754502783978520307320337641681225366000891847429495075330399638478865567247559339025557098631927708583843105900685019007439455908422444851288061417969011454250701202083070821333526696189891017415415897069880607255012994746578493653963972742267865071502902080975355039219844741550729144167900605699957252576879549555857042896398523529852912414103368208327560499986306621222176973870082470684919542446991671240925480708869190263714942788916591030197051016586608018313805683274273728403281953992386608834343584145864181885275464450028788140914011024893779157444988071334913447627402765989305810786204271736327679980414497210253284371340468915410657150446731305392786455742574728365747507147800857943158589197327334864391825188674438611060402643461019695550634802307633422306601825759383954144527016423347248783613837951102771692881029410657851214388315720814498560931209456783991000294835620083020166381610308365912074461882365515247048827265099377747086433956004033077444031096693955363184508086924324427142234266544664325242116091893322532718292198865634359893818586445453554276084975513891706653920287445447426412736757023742143140456535660793575402002109974915503842077742118718945782688567338836594554549154940624606358638434473448305234269509757989895939952697355948787405497609955837704351114018370728516453697155229214246690961290246502115171967013550903619041774910392072002357828063299368297546901602592245348998727492450881504984221249236597187217569668893595336414881937154890103204861199235015458610451948284008222155472515434777561299591074714992911188786825062928159075414678102195826994914794401228271745254332389729848023528484075606738094392436952318865781920606574008376175680083758456512471259274994017462623456792457794997079113139631092558396332098148439074805108502383769279543494051250880263390877304274064720702996181803546540980223087750352546250020126773641450017339683779157550298460694889236569524692443945992865522081958518571185748712627551512170481558054842538697217729170632983968750282142125365166602857699125504430465349447078442429669676934151916525076919815192923428518461483621536380678219201093584094251397598610969089654079934373199431070915461041039823191602349321412285230046114319754320898800598966966127187000003915882767062576481359716518133607004380938920500186508534787075805481902252408761613389601504797764208366825543515164698942673915462925760702440390075287733517994627816420848714769908712182698680910287154902950218307082601256609392780201002661190640011494739025349387569760719207846074499098753406894338738288231423230307910043556129558878541462033737252180393541021783173354619349755552731693898587713336281607933986028343193982147258053439207582819987341696450423485903690393407004178695848005299115704509204480477423654597613171114891644104672029602196372819856246108617516002395439766873884811058184790973435081898797999570775773350367820765411922582195156315468016756316764042410057787407658712053222946155478564403586582018082579230122068794926611294510265957228914845318566577066431462161415659104905012383395933111518460751582228297929549816978555856991990778798068110858433944402112183430289411861605613244486350134476711178296149647415352499749224294649500249837384116330265280710918533374882037999152329423233375019154187111923689247768956981849607395389386478973264859981769592418470847327736792091676309750635224590484233925695859379432816062081491001506587087795779637713477287355006479103006400297764787701838015520109035269137961743352508640154012742070042739544684893852376805252629306292123578337859825922751219810796677763526611633284718154305072875124197603734432371691934518392705404793345157546987903893464251932761614772206648123112385117185563342500766083957833994976553486159544817159109651824538774196619399080981177831664376557171006380267822222071855181333524030571247092988543025720956823641424182182764262671162798442937498023198231447840472091767665398182489142233104471541234309846842852745707491940762235962337620566228007774095678338942074752248056740673375167079116733261984380892764794917137013033088491717164001805263828923348041123599008284247758883589048946744663589711825785337048758673381538187568993786766725570034562913631474989599090675912406143779746079563078357030682515307902609475957081860330535075011722677925073848319035718639927681632476245747821543628383566331483016451429457143730801477787405159127389349952421373528225682769366360925821523797242514424974846808065363013507424220055812275786048690944153540271253700213294311186518003093337515662560838327869587128264564187012628111638017853717671658467988662219273706731444059960870341832755613492565049455007824379325351065196682488714648591723037158410560365613810414079468290268116484091959712023264840841675793630455623953168555457045427669178596965812358651916744098567774991616591017829704179818780499903588476720158258436511873179645905176308593211997921328989367578036678977732945859094490325617752673598307073403207852051585566412777295231376276304567848699490290701118021146124060471762272553169177341919326130852797508105808611000730610067075334454802944233345595025614975832766505163624750306391721249885981010833771430525487316001909936661523058082434192328905242778806219183854386697749865814274406954937070619242176934272867144631692448280797399539457515552973342435214841823542360172806049863206723699550642739591607989044556944989038716277384235324434246356029106989435588640469108857454190140436374393893418711050630348595491423300914827121719150134083300557494391896419268369330598918387416889744159978922365261187676892637872294431958409359010016649231645692430017387927454366914497629851887949502101711461575060111946873406758701914370653848553911612290020201614181741561186257325006220932922685971537690787133545497533791074462705376722417045779312954985219021603358908563982165125732668029204495616578144169603654786074494827525034429889985788760862182721717848558003093279069264423807809438031405782462926429721176352126306419960793182423095164704215946901204150536198558637239077293721078856081171049880499350402319271491898497891389151932598114167094518635895976393938313641546168766789086051123775011846356820482702735852299233333610850504392577101921587336485657576511985055499152006114100932515612568493578568994817847928484361452276749830596218041251712282693500439967485657761014052816070367297782432423157746478336872759716184007824996019513677336396489369257734650341921000390313952486355259907550314997074051288168274316681003452474851505267149932724639475883426002064707219390936460468258046380539945994454825871411879640052842796825118365321588424885491037204178004807666425575768103888489893683916240311014579439684906589973174265334216262608072574759097353974298806275448911980870921900495418468395368452473465050256426807567200280901761001130481212052509459447888778860717323665996388997414466194992909606937038853728357049141419543231066222925328744714556521830588688854789031171038227814258685515106695793932132919737961946544062272574729389145159735248668642173117620166112086319968286839122844308859966352961603390872047721139368488689323967744953146170262798949602855117174754239598344992017430174033231648484753812835209491532557182676257513887941359050222649210795973624279742566260118056891306758010615688080653320831791709626859882910291203475055902694814952675808003683991884763166150340512532578862424209913757829650244805525700608272441550787224916869946000772407814404936200873458576008667794667915253306964707622936296190350774338216998041994252802183403242028850441208400198558424856099432205264216997812182276013861277019928713784275612421634703265677178744442335357402328438877188179660428304464945885376582008780600986431980448851211911051406081686007428973798583088833770108881073346249146959945819777837780508943175122771954516078101755475218110471872688646886000432011151549694202283358115956025129016554684952397471379381392947269074036150367176303416959567343849651801319714661654401866612889915671952119110990860101143551889489835198082884629838009359141201974276257812201602858617552060447248881329745971398312386947116507575131482800614512821854163656499652110647408068813854200384686956574088788096807348653006810178220975574038454453677221833843475635344968901525761571799556047614850424062050585257873518155993443598065774001968989598868942810512571272850833093166006707145745957449465568260263815296118901581859488966110378615751481405979741095277121273804031865975923976311077283276838468072185534658849067690053999290846401678617462233637834886515102608943468651420307983823999920500361641077413776729931769253779011803878181236360958579317916232335749384112837902368582055701456391671654315169816194640696291208534723601057596754185961663177723411479437016886379289087201943007883089044340293237478575763082550182848264868459898580288343457123163076566488430431803003650514997340279451870069909388002913080694695166563452574799509646577970372110293110376589316686341931387019123402431795319728053642520079643726243531992122569659087387803586708026433725730973092597239721835962509932833792219733457621568827020322878899267948385018574922175438900790292286246067143885921997797139474915909233915385433871777938213787474741170393519969423929537670438691719858844365130993038151449528718558904882422613294549303593095687839302389988175103709613254739477223271436227971647555725402958447574027414991013765376197727545614458656123125017948444494775584517193445367094372428764364326543350105504874966268619300596039302931162833557759857685340000975304085437046898185039238053209114553267505335410762695853026410585937077543471548626612456073726808797981001768640665415494798251407056463887157556515105939077944538621545673033012270720861647783955455450763154575053599301463784487477418103958305653518920547410429021532770665895967739571013777541834842451551699635198867937099259517542350265957299062865322394755618811121412637870644380944241563124306811621960251502787108375016678433928625226732386662231736829487135616017175720605267900914976035980378830078651539235250448817078882773883721589643215271648922499138147100951188239450202355358859572202031126783633810981887662720958191724935731763099721389301965735299817048417553542644564944458876740435652336334542954251086659822282907682165924276905118989482938466481899258496544151172023392917323905084546356498285309131830404026762495428667487100741670781240020515830424553182671948270809724848328900279576347329439098830442575158241829427170380730984224336171981894088211475454318153343363791219634024503593790173821225092084067192862711179372160997253478269660687824779054370312161078423062055419835269375985061534316637605874398745552221976824610824454363959465946764759765913604628379455572191446092168038942645976774052115700600052797174592987611687944232423919126641675247674200744412509514865861698254405537026859907727664918881667647172827208061372474542894917965106252390038537514921839017175123839677158788703703995661749595955228105888996690975215354334142482736669330639372432934728266600915025750416723525175236616105382221744000463434039236145968784751089931129696196548313792797370359648429520535899945271316049914629419828645648578500522917452660686634246579092295032768162265433792572728145971188138305888503989467771414285843527651443693136438671330452539669388872933288182256325540384287693179062628545568556252250287768334933848709342153264828119319031561912023313362217852306750230872445955733812454392198877001254375554175520983260708436841701326966584715881084927189203479584306381468739553896390746805806705309541241359471346550878403643889364753313320487005579289030719685222726256832132261225070062416682529098052160423309037940154013867303503190523504178296985016056599612668430198918855894570401171960302643116775369251079726606335393290656123367871890706518251657464582132620366688103980144899967214095406667354787831351678057220570657043925703517604527528650471488446100505797291221726061256749003500260791532398172751292620870931380038122210807498758403507859067992699716776187704250231427267821929324148924466485597109729663796126451005372281388093367579170967369527892366996768763370186443194080819314943708466556328658580012258658523808266113910554269307942637969272654701023309098209034972651273568854447245859548781634921051701428198660070746387936047359382738932633599646073207611330931498066499244224821874209860190168335694262084203973705682071241225552323058966353122416020608273066072293224886023955956237441876047852383975197121871044518706951961308813002031930107217293917208836207588382510792995728160135767934859823213758195750323544596831120895881699224697351394810253604082540667726506556570747309283092589942111341942006721519312641995786212837946967820223960180341414348503661691962684628514899679817110561050133052003151241410883145172535768330235395233236601806708442210667517913040256694260016170817452012681274699291012061387756059838418877007713031688701104162675385383544507234502650307722756762200414674554322201292078539624516565434630608486761411970544965455947316258833449403163347469169212372774337615296962407821012572876405966677695834967663196787656049870467464982250797198376318886856874926062576916131148039736826760923001460090861134123208762108727278113027217420841409612178711943461117236755344468059417564798476440529554346000986574211341721909822076757061159277551807802384493972235281184446725486579458316412414584752407628355529760543755443946778338782548837983631277740348510062702831226404885177991947124034600644903762853368708069995282417519010282324501127637288285974459640014290789639418119981930436162699485009093681498221694999236437888811128285470047947972885408831457335712281414949193037225693115277972987117981468435394074873693355949566836217603953109531734547616434054532232430548500978459200200621894642819450436250200364074273242873841897647170558822026924646276872592898349016121829039423441750789107785427531602975360529247619784068608889446683610267680418472763165429649460648674870844811785646895818865508005611924491434990296824252102601035739696627883966465119330207654615146088635570242729713217471007456027395402916610077995503060093250367682067460823839853213457151721602050115594527655738854164223864233470931491556024983130411880250597847200264844249914845557995886947724175618636281608845556506985917034364833595763977752193512186110246374403820531380813227607235797091811380134195086750169825475864662488069468138671688796260149630500779846407276619402981655868757748449544314517770587160783409455286798116883538109774088236704559947695684482862685798244595893906459486224399617077524374750230145798296200521319248769985281379059309942048359508810030250104147867269000868863304084563660128444388838343082757092252828927935723718306591822995022919539342040525127941074275036622022220170270175987997236859994341639142653637623264445230278121523623721022817944935024728923991195855914519321859276818315927670720378856432670518396461137293498926162976106381673575888473884019003732147181588441071000551481216707350892544186476724499108896933731468717103853854973415199109745987430484332520783818521072280323633794401411632542405306116831212981034135320832862255945629512960315551458742642151036999145109521878557340991809305691769595715138951399757609058616586347358448424133875041523257675859093030984195020734047442240828601528883889113198095203408760000568887225756793518073651604792516275344883111619642089757557655352161238055927005843451819778189528062354619165985005233157171701527575090178644700770524802013493277405138592388069155615810215391335802193339929234523022205609934463894638233929721358535402596928470112520696435372402270384305956943611969467419301513660875311547904889284439721440867871060299952799908823896754104447338066041337768862197358634320707830904109595760863862695862323731052503299256442085196284488341315280872526801796842168261821822695952250985864506014978052985094002447377802738271561569486793985815442476666822272575009338075402591766418151031177474730067501692813097606306915555605393985898229071951977885322542727766345299350142426410454797492529007188798045963907012051396198467022447277881819723602621280209163492549533385653000261109722357530512321606811296117735600730155826506425240756598622426777983937488388277626595467857256461061605539549617568741543587780481559259031062934835811079038704715952454139592574456912312857610508526664618032304281539769114154642280686295548389676519661490400494630608731824402919144774477802621845733934751922194734810399240302675257051865188113088411248012883257496449470612780232076183771766822272475486465229166961368107595591970868731232039480811195513201004184140218793756230564829179658413197561546707571608675447217889204556560627454257604510322969921467317468467940806000043257209151839767270621505017597569536554510224746092874893877919808322482169554683272272564651734435363930100454719617461845224519810969549762993362132062549091086261616887710454093490873716238530727357290228672481799675991030197599934994036728187580469999505419284679868273266496474534807045247512669044941978836793157363291876614435501153448064258039378986545080638573922392257841918896463609184123723441611198802254436209916789663240650431215205848903038004742863233553915355197459984267332478748956438717595175530231217784946198411990915520044174389997228998888770248915030215335837844089358157881691832745360651171938958432941026964871920444374256868537600043192462286674104674394305778704466262862403767787293988120091764203753132795124679599016114215732655989497120957371186556294882605675003164399607753832197912715302930789946421873693961404462922361006363352053011082116880927767883262651932871709135680231706168210966203872633709984507925726527399065392198062515306906878067781221178627781416373644637406972362891409139670265622846564992189027699918388410477800113401450467101028424599038830828081945366243060142287533318437297560676950509533849509285723831308532578827889076461713349678844891715160177898712454346082593555051279114620038437253418673577147935108084023804305024458890733713252238580083090037669976208738660188200720453037899293000400327519254311367998078952056736704140805665771536271880067292491787780424738317859394220722982990166133487607055408563369156679214581278009081267056360499487801561803027416967980989817419755541563627853556939367108058517368026800379120472899481148875894534847664193098420812204351826721496426955935032883512818509088780279907192644440432322458248804999917726875822406077450081052629130109181559898697554261545327722735138345224801816462687896587752697545778335593601963445399565629911543003327306374220693552693921280029566463956141211164803982569214626846183817727946362396816362076459520906824774799852429242940387521362064160541354394050245477680604493959690532342037275330215573236870368638444285620048084177292863601166924887558847590045084077144887090195882000636366147409438270817209065467335259803038998448599380298973363402746314789286088497329756779570779440992752360964222798129025666461298906887327604702941691888440771122998397881465902305675252177599459779437554000995688589807334051501577475397700422309865387934915394872541149555650150686913142627687294450584851070862485799485883313262432150993867399247969061015905860818466805840960261749753025643821201880675438543169759560375638851135040278218252535262945654002395220365766215836237473483114721412250092098423306744417196537970854674979828107187797463207638924200787220287253336374118776020997722064974834936693619118397301340357639428428791722142095124760408161447350317446634292666195994485152949139448401917046788586843629747747556345293054321844586359269335331457127567483530689656519482787772695923817110370391056464147007220843608907112145711651991825919431665529438784831776908362267607818210653346482052430299830164214147784064991975316023938393675941583925044529060493092726570426916463772516853032415689165348334960409344972561620124846574612588010457729707184910268330112131081831936839541976623298206016492201617478355567486585125485774089132402570710952576921299294969605452593471030349999771542231976644593422179076515179224862212185717105337736961536929225264269713593317631574602291080510228429965889482700143966858647307638189380954221332672863841410874284587139981699901835887368541323052847609043025168128313849438866891388171009717994369391401449693929149354810650374014084996025414678747063790234864649570725157973037797442482722943908716483717308713311169617009104605662417185903953996455627121523349633665146652909994586789367765041555155106054415739511736952576320550724223014770958112323649365878795489022675732283865925097302791508615247682734891246495050437245273840896078948141125703142510614027157181890060821925340958978954250323330439641830639939631596953268273558010090991913517091906069540235436606694529437987099257239845060705975360451035368366127228312489018772905526610372742906301128726062624474416236329387637719682459738055134104050827569550179779010095692647879833951660824940530337047800591138537427505138062800522132893501892500138944052555915746589839338665450573630227636831863646568369085413506804997625663751891911038317081631295943199774985502217896120966872805237376488636728645068029221504447315774106898650836615966602371970712835571018884018217317830056312208408273474620350832543556487041304392391589685951514026954985917871273587852305254365070638616258758080682144916823525021830617012520455722320776494061505029985078626810706996263082959715255214796495324726337794229888077796816880430624991322656885097734222780547791905517588020546176383050923241697295815111965736781600784022226578017734392811650543054768204126296962395681995582031856487496669323182064729757888504848825817377568283576175923431664967876499156180033813957113673407720875330957696097787477546100469397780549974042128697127831373271639787835929954910661118393246258825669739210628829685002647642734289314509040392353332255563221611246477949159710710573554032503732078111579180730344108359890200897494884921554569519145043924494386833529991752526694905228302915790920726457895767891770669971984902058368712987307969023423673271178625744599601756799748047786315809805438131716256546518559780409388456395431186799117144896329117160278643120760570032668655700376344487870190207433504170993926592882624012825866956197425913422054295996472365157051676271314676290695692688739778013124704921357014560420544336767161479615560937532458238946707125934039027704185039213210578683827292339453392110188573567295047254864703032776898044157423198171893942410836707795850267133316075959778559488629251341995797746952451349090020427829936492339054019729588564269646278068608213255005615044062540890657506512689355171239206814119814921810800266337182147677330221322561715743293878623744735417690829464805372187485188012778395664095356720877462647634308770246588312102633419487295554024743048491462864395653518366152543952553667234574783104265894209837950264508717749653832594738263444788468935523970658809525564445811131843335426368973750549429238503224962779212738225246633592052065184263751884252109675699724338900722970620363711657910102170617556024330735410528443965569762266439909966893888943131551867826256581675685178496508533259338637995065929852173122252835583762428412326603592102055948319513873268520430008887757343369751896816377302915070658478115200841871888642071069110610306947604517066030481802888046946258654704897536771052433974342024262199992247078092727074103595613287720815531729540624063423390798135273002134483619996582784474669126657841850423592929298065120338208102993387388443112881681518614399801953974418717685587236484460991861761197298793334570511375995753346711283796132085880086436293654890203540397950250892462671414480084986935577649090633424219734664300936802196146173883778199087484998310847675384824638866842156753128489399260721054682241118440946496119617842520244642038575476001910423517044823304001119600689258870368659203305861806829969048796325271990047287413354568146769969421734594887724903573761805691312025392456404573906342347646012581715292341304516909498945424694954599949614353032436293355237344473237496506872921570655888324404708631421423803740538542694368830899915128176725101143390684632914326495071836423517262705176099966333823333180445443088023863759818484283311494904809368803217545784303573431071157692396073607642112900820347476689541984377999876920305063529980185905850006179504292196755899060741110884832866684616289837544742405408559029519718934787994533695308340838716325043087254704888938958591936181732460910293512810590054080410565804432935026489907463472192211410617025977644675331877042368001321057918564126479444638430433209608560021121719753444881402055271101723290181073736969964628536372453194176435641409248547907978892986430353137138848735005338763297717322597907078145406966724272861766074527358318997508978814836755272386811906459023539671662633702153810902586692865567811862667106778982867286464410480648427436805860474113059007416520207431347988092760976729794986355694938937831780380904294271354266920446886818543475013395115260448012246203454307688505582034673331772248092127616673499241179791709499693769251635682112184806696734606054527900149126806965303354134726031264893643387132675005302091237536841578297883400749349532105152638970839980569013854179700909401028085290494043534563266857206209227774832103444688997305664552005067924349041895729073756154623092399969399287439191417053016750302138721835392975817292118843227622319464372482062524379209967746757030939617930927837262871854696464416952880434061052267761713946919967122714983501048317484042372568369039039217321510781172593136066667906826828715034857701719833376837799831722300810294218872790494330453211445485330019417621201308765136649769848392084089052712204746119313509831701328599179975969293243936236325529226308181910821082327316463195302680076705426496393740741405743198992354018982986748429695861675551256294002145373345792476688900698470667971176455409276967167387069071701596781931506467027828143990156967487564004173218004250060121874952698575384412823408434764471292378658129032994926482211395152810021093055356792777033248111428522620160095051705931144989920391741165042372919407926113480972192535518213978956413950766759193671306173279488502056050425144937143486436099694963481710688940816998069308580410362349288265917655270979138625003280307251220967407649609780177573130263133225198317772795978094085961503067246854448365211215442043899895810807020763916070110671365779140126930716546553772879446760634186286277821396631904324074632532423686260957701035197741990330641410286558374229701802945358745109150952089915675526844415727955460251779707277726086828062254619213988720310140090735991231846138620775943948210321984615208178416079020932948542488565776949687309015576665697451835727956122820639800881925476487585542153459070971265656279822635817771917997771193478667255380732018817417043530559820904721743719966815639414924861937027785953618394220442405370447763299282377927096312597766697727347086746002151903528321936044345292901819581405287952906287459944141754276657681521949227486168772994193033662091429556423881243887426449636982533844597940088675569994488090079510161327681028961619496132736156755788329060610145629531428323487818819317961501164430473930607491318862480529008105989383710489894436359794319244056806548148324133643939144398967921007544371128514976152660637394831208210002501190672328642870251084788087021749451465215365501924340930245073631954789800675973134068016775184362744272560804039505427841480346287095797789523832793927424202104092087954190957373791199957737458421737125079084383739467410097888473006895522803517982282528114919062101692700101958156137313495993993679799582911216275879092566332547015087473727583791491247934510140165090749549684237559516614002391796408813426500533017260639443478523275430347183328520566110718790691859599333153451783480128357730787462280991950910907533042714229455198409507818763845321661009829810895483717280077487256740371597973164139265636618548688695143110207679983050104786178644670699161581936722846053606181217913835979806126563009957559922982973908069673689224895554313890862832439208004689302956727410684772814150200551910636178796643449104925070274764080953420296527263952472102231317410728146179006487840447703514216391825547549345322387941978238371033393169728717485459072683688223946280977833482045550644539819716777994692675236083919808608955670449958483049738229962381973305548342484336665992072735745500806790607102169094409295205946152835687156344208120091374614845917268442244282406950036194303908367749941701409522723215314460576094899051611799229614600441111731827899546212307121232607801070179511593696425469193334497827330722799631269091577344625907872554694551829484163123005813280399266656884104039441848219325080699974935524499924890980068608328870341008501913781836546895952051145243194809977565321191525198180646009788319619253930963895480707741178255957250020913267890656636932044917640719912302024160098897245619967669891316421192300606648333171186041649123016584330255679129565945313829946374940362443940810608431480458519744653999350889852913962286062338840837964809557886071737296686995235497672465635021745666702108259845327564297624195665843132859091218948434705122277516958743348387794226731731539308244372440742904086296183932333112816874731953105651540465194841784115501413604531759851333995585154226422006685088460012512662103113791643612224195705966304814375504512712860916139881188779629230914879781531896226118012385872554067450993431094532479206260188039444927519871773073197120853634610013426483816941291755542378580186696473988050813013164544020788361921768774173988021909100506623843236108085395470103997568819048656982766526291189716898805952207320920535307189161153243461766973424639221306395312923321766022516980423519556194119192882082119144473337050807364471378734292917132346628793199217557501780314215925581695284965158529108610821785348165145934270156345080794926147558006773615697222118166823846356577265645276762979623166326838479212772781591876082070348044123509097730919699529129740751501806118021476210176939371294837532531596186519743252836994471605146459760282295891768934570929981108409265247177364591629308938863146073774869522198738048346548812502270859011715651417499571309972401408112686482939720116275835930995179163537950436869725584690145836253667589330643107431611026384512725110800336345238256935037731658881596117144153256864685383801796768454350949751470944806358752986609499539314973900675512805324457864970420885762627324024731280041982673718762246681271190718886272705572555150580721722543655958404666563529944739426695167920460460053992258471568454274871896894631780600612017014604889284880142786473989555252161650692836475803376875479611974799106854576185266140490212632644723736744158292180174964525137175501865862453876040005273044355421892704657998637874757908086254241226874573816608228714410638942873059071173845374721028807878600250628109065662280948803557119161647879787113002735875792807957236637299141793830841276207768013591434040649064406486104003416531914498904634506171016536581038543294597892771863595988989892656620721607437320553043300266408693507264730612842162267580746645067070384607046341919658485177777471186213895615918174376063430754047579541496128054400426423105237278731074505892051715428723503978083310602812139937987799748415935882349216026472746794325180939325715959517511632723062040591365800204611176053572998707457394399142505977227810485242224813282339055780640645032926210723622878534301531069574476746458359998976458179110584765083672275593054798294393785448575463977096401850130622956734503543822798245408898591252367051511772354978716913910629911230696549230605759615848478975424933506905551447833234033715932880653536039528521359283666873175651657164315712235085671903223522152851140629571776855017299353941471045407591898092070648424028582067777179110636865021250853525423383230491681384166154646245149540591149431383193904972383763703967665662328179864729623891576808553312244737681386470776009585835049529935023926130790860728173594984190976041984960473603556354801204758511612576816118266125769835616605426437183221906588291830253095961750086242018285326508067374099755002458292981132241332428220071877133207131404962321579897537135127625593802778151799917917651812322178206377030248159598907985767603580542888725762404750164161051751034254468052696072808778407591880995333869667688001506899851481423246660356038068981617397483700624041006540876798020147335157865706673448199581076379809914416027515637428175337029166533379246925007880304813982702755182525973713856202233164451337203359267431146357089413287746463700321446492028076284201306721405577310717048600770145018690234405906365580747458060065836944803874026051137134281275741446394826193859612524769890881702866294393217013636513245012462204306023351747267625683516092784055413411733365911825989020888768531099659525559767234443025721801686513447879439641367069387250998514442497838247742736484087392950872322713604446230252051221480095355206371715661476738074454933607536361800472267575174027953117338080215088777915151598372548885890618570596222127043104070225274722751364303008063454932641473023513623316734874662670196936166090466198275169825772773601001240911642116773572779143039609965019553157178723179379782005022221433986182524155688819500255931542472445878622176118981840278860839861804112852931125975637953834503323848219112501264097351387663807910468384138109796375807751850279510581802874810805253334190616503503825904258064217281946239881498222459006599798979173795232651581877983621315487212817285717766885636611459220400530601653108338785270767285514048122697128797932046362865196720316146391770690967409836180213469340731019073566286666731432280711921126396710858316984251021193142374177286388254450819270387130332464336794820068047459153158622864869792457675295055473047927379435196177039907070434775413336307721120535989092974994921942542694045845423344620368707746218465839024174572517062194597528000786303441699194977340000178565900951861908784302622723688855708620935770991635454976717828881967797342286330673528644288296166110064497607597608640851871870052396188117273361246966200985596786536631282752590533365616285411534778561601100715534427116221383176524307921983655912727344799782713204479011213555390210042829159662818371953913779265143983477928572248562648248195542734756371159780712253995985249558427833339342200882330589896468533348825481522176558840770026130592114065893455378364426739059707939020798145516855002571978334250926550372384982085523200524191462056805006625853250837579555274837670149768686184252774521523271507484014866003723803379115762975258535892574589214245951577951269919207936180113998113582302420239267850856675537836177075433858824746042207066955942861912464116773690875067640456944605900791976562331082547332921248275637916328416810864168507824471272660177704200320445914572128774669166811048866183945018537133160780578199758507288676346722462875240283388790387872894246556036758579137721454120110899064513107808879526650223486947909641399582837850478217850628310275591860960256974081468968490138323138936757925407667810693033274893607475137580827475887796447203551797283780211838341761608620186581349492425284723123596924331846270365037273852639603948488430741131950848306168947776923537854448660060435228672753270828933525278369342676589205788864002783422174695355615419290945290538355478496458235118764187826547421913095295503917557428137537977063291740052523791559559973180892836383793211450490887760516636334052332546290423412546946435441693811922226369954767104065011773265306564096117090664821458108270791870798364989610562559212477731593942581159563182438814570830504554203263129680019777472341702742606057801543131839347637468816778162323967163333908642532142754276776250161631822789531795315814610992787532221400353347043977787702821139959789408384918643761625982114936659408565938951584105116208044762240147094866502263129256513425134550829117658188651768784187806576275481506666479712401712566477758492963194822191562732237803960971182411793464753367374144313221876730271864447108304788287724557974884180573498961815807777305748169251314679814928560756869322124607589323218334868966762197957307812947053767297865004561160260557016229185967275375980883440532096300548451090171259342873637175961788955939693659851652598152376432589690877804728098763082490825139104206072184320678465092860453338814160630968586896246292361030594429261070563392585647083836773871581764862714076982380669879502044498932904531362883854322908274453213744341614039274072434562850072377012884669284802961558161795804333142787550129472974437744807492299125328432523817537502575428069660744522872000741585919766789590022760805910891962278620468734034602860583657562514317512912218741522002338190660055682618971640909595294239009672806794813003786858504773248815277039259402367732275710882556435335872413195514084250142529729767537938245436966512463653912952739213161801029953771276925463462216060225792938891553586517037147653065377548413780818175104919163420014424967692015252121549713480854450233302878418519206271775495042525168643430993336498213380712907950932703897092123193301146602616301480447360420479868075515924571660853679747830942552538970678514455478069835991276569874339563502387852668540267211046781098317287746784665007048713862152357018516037784282020598605833907842960951341095399267471037031295827344942677485843905705542288464318933833192925815510549296104535618055751176047687385810024429577021469418132028493816807379066940597316693480759553416383947672390269462692729608237284988537534820812100737024987316370804878564203514690854211567211866805490837705809853325768485247300740929113971197387693695807450925821133679073757748398126265123557080439182987318589438328953986644972030449094459173212689604465100485623835986808582882499423113483052724953118874308480299906153536195864660957257067722245576323546694018358799704763394341815919610205935953540093195909694407854776793050746798529992193626779526587129433814851223895047341433647348923827172734906338040633598030837281774880358064430069397830341413260900748478735014744205108909511522945744871801358638850102129591182553062530175402110987509026592967798782174429443232848430527531738601583160287560711019492728630919613661421432987109140338213318102302756950563477580012837628294501053956639796024479631850375934476456763191904529168187244980755942571782622061197068586162486924349295690176038535025138288825855635226392179873482798549623075739231891006789640745023173991261972849577312394455661226131710185314014130298688060664528050053010423374728002188460434343345148436067356079582051909667078228918829086477418527750882589577860986414740509263409368904526420042397845340131754933953557827794883988603632532156593588080268713098056782486879464704979714694847736549285828190295425001349285684247292372898632163890157930112768324807675993157299831960485817604916712015935509901525849613465813411560178935312448672086667856424726428552557625888490079340454079334958668868334955522341954133973901362121773759703317674033389596501780291586800850486011480163043792244755280230377579232610036837002797408228076754975426085916901446073008995224989726035740101516760090954076824840679570732311211568601558026032968956041083874987230098438127795225696374653320039066179553003882049192572171244264474297120276753330840979206575015115777618404968933619898383544464324408439239370348281328238910234669385514010608898723325573135330528921973174672744367208263914035318438451370154618482701551557040780661851926620318959098589559582540863414811387480806352282078546899928450466081779072179565197838217738163707527149802978861929905863395208074482347603030771484494076934822091078707113750346683539501403240513122286948187744560117064353863872078668841400297555968326092508451704427471191631750634410906915130878100318356645854174221164913431771195212013512380802798129402105459482321078418019689204494201290694503775031897480339562596232080589455638565708366416940242265464467157736544996490297643471076550217674897835711837302049500433105774605864564739320229978012394871748552207529890201310044564315211294535058245918577119904227743871945794963014038335059754066983190147903069809869406581795102151104116310205817916914984593065534033421258164373180649995213812107653619581898386004998037082621282644473303049091819232993292835262266613481844601446713790572959201520595458111649459809632034144857702991871483743412398142127325935333589220303841985659991823168710747004120654714703242550297728612113276455727421943053069150480238031039462589184700163058433590775229803667327537430569893832862273499357393352188626375942590941928684924738944048185539044617314832851192527438456630145999983621226464804816684907452572871444806196615590931347353694141560657467611965183143880125104434169246702325507634699819703041288484605816833278471784962071513948467090996372669119329916258905739486359629687378783296979008952455445387896367288969690507673597280435437471139642407856663602555573282201759733527932265199268561360687280185761231249641142939237545282408330716221737217034466653627854339777885718525333404876894099147749362479147416794537347529989494233436282215040230253204741282838067394810634785931301086528406901908257422569995871046310050482777639947934824667720943015843699663270397849162478902022234630985680988835754368854997997836666501803562646141372295889604162720970175709847779502224764660553599081155990760299461702154437203520273737645890677091365744018911327969843694241497209439148114497048311938800801011223046805982822988287778320645192325372888619893567978309275124109179892029615042714337788660073771750456315071217744023808503322186375218160085451885898683137172436104745521203579516426322543152716992191121399298405907817844969705571148617672175237557334289381295459126803283048513816444858137569173827206897051235063971523918367168617410273419228565207688022159199035949893972936815745473042262437982375776220379966539338972649447047030066790657411433431492737883137734981420227143428812500853759438442811542050738397851655196647461954762136638315982189107588663460288177791522479146284819868554207781567998555953861763515888233784498121000750097387184174944027472739290077631089906090352083551262267061495229255767616312164669884991724511906512843379633008108218003576263315143924880256911366959210782022691646078307294402914255163761367261891418222499185510978874651400170316276309126644015582239580397827696474768752032496528179127049374006504448068545716470308945947986564264356525794950002611724018762265016393135091988564347987364926854952562580735387150166344683547038932444597337229601088476130495903904368947119484754870936987545360092746285926230287084081777504161685057771819687273641636364367848659590476095020326685362988346260752495739889256189882385651588830068967680579255589979668884117629390666593157622204039226592806345962513296900280310335196898603944710172691376190538846204301477530742259170835624204969504630919808942498614837319508906729414384193220043151789089144630607776839149365971340281423499865910509114632273757953464293949544152238570747630071961256015156205623882868442094858279730326623475185487767734230091867749211042808715028408430030528163006346290068497833422539065821419298982356578691953433341501864304534559143461303662726555863268707825033538292603067550887423913937272623985511856795611425115676662390329654564375847516394524147566058933357119779054401367060967710072015212022686723409218371989262692889476637973601160349120716195093397779508900927234234573045617072041308867150388476414783280375165557338801908244519150324671224554519628614796067338053529226713232294527286659204703288488167666428808301599918416430773488938687725659706053624551088477339333307273739978611633550573914544911758768478719507340262111424446514172781934312939831520492081398096877900297617644007310685219621185446938994833933257381268428184041052813569903399721003359349800277262330767943685458826095786679694319455426820002032584545567020218624839934669390845514575133460198332151462760903440631645870393459776244252056780982963137890106311863542509266870472287998335575661739296545814091483375451350223090801351935983734179021881126089222264198418887045410084819529602166901026513558253922587107930330454224912445868194369450657839118684162659556838925563958419168918200407547130904995725676584640851666887821388279972830309419999763405099678053499209412978067084020061644897825076131182818270698993211842147403724004538503440102754519308772859125917851212929300715565005309257293904997116750523983098839395094029175548147885779609482821581604599774949439127998679054396567959942642559288553508266553386942423696194516821325871665816916682895542969816123490073067152695988543135740172902506239753167584036644857203439646510660870249326255303361612863805985989849438615510440359277842093250805423294645905525520950848367594641487536470176165917578264572776107942251295110056599639395422560519819416798279189883775401218111832883582022441333433584405162897858579381831263546018842591011472952556475594132781717964817236846814857174994109571156965613062639306787246814130209832119399858652326211928278265518379600342013406263659851969681693712725157524397182381263115248900429631509809399476757208460216441595417326224444941803380492259436032690506690652735108525924447807960124495317964336929982792360286995438040457502051272690603043676765436033968703012522784628575013858553455176077565080220800917108401487854042240217484032365964914708000816043883129126510019713492377798906548268550360631999637397446938369642344218762202962529767914763555140894210528750470559960163955391812274710483342872100703385560887853667836482879638869819046584796354133780977891911589055809412714210147886348941754360957535713759164875821365510077693022072864386413963496840476028866436697536326701186592325943764788333038046006874806727343719566489560701351583211585229558296957888218749495632178279661699450722616742271138582232375500589804967921186061513214098501653861543752370465171659923869994678345925307373738744288880782102365261840324894470234333079284546747707898595874035904412020866428247589093832711741950553742385040972504749551871410545295723172876793153609707374683147960646849151758489470330125832831048946894124448564148100777483822987098150005535633457989072797758547618116198141100286241490529732687408202268950806350674758568056961058473958292336499553895362496172345232776937592993204308567703644965536107052874513272005637658833278218567987362828228714026472183523966471435641686056591667204162829240072874840362273351732019019676335925846321312654214980900565923010655242037966656582425876046753175437387560969421961769740217234394677648889986482912278717604877314088658698128204705014891285783159494589247437733781955791711290703335869682774872580651872395662714796614166608593989957074698138693406375084718122343492918156414887500778515495306056861083645290399254874122708133427665838041234751135096061685475148027190720511254123979968511328945828612669312471120956632332683803903671022683136179326213846119807417602281395956048482305397537355831255622347242082156385626095183874835659046618026274236978139357894367248588087536050691078551757241950018083394070031341244297278385027903858977995654193793980305308473142298900594182911241762185816936363721613923747338241118582220714274140685405412330202658187262308373922675596193257664219711446671399957009734682907285787401673691681500605316814473901654496155684339596784777086149218021949407598074809857018321016050939864980017773038251037558770440135032782436236507259548071289976792974734863814353407739049877189558229609346240875831864787346177059299372359570633078996436359891653165962880317156737111895664919069492094491855056545802888573295594573602526015069731919400470375727790236956264779362605173008899856240337737063159467739390888153181353450109787207651401459577738937806038008021765146975009688567563184972773142700799888887959778403099325017212900297239112641669851730060412140783059122650577288595566835869288911630283418037419357801948738395717610154752956948516973711430441026043645977135010591989324460909219539400801942432748964620561563946265186745822370682263554370439492570720590939958515347979962846149462965136060410470025782478524417037760107191738470393806332609219043715068988120566510821555634299593195788689927165407480211895616896044112508246941321333614248347566462869562322925782593161140934447108682294650236664768683552804140950528452515712353322155180095343000754965403528381152153359999687949635960370756072036415230915664741696491691077052003325229060781063437816058038360276257691768105920370033759560296151665363253035946203012763507330666100054492388888941418517868931276992427616977472028154226414742317208775298014808690196424802951779791463901442726737878686018517642427104971282112015944996905522791938791541327864897306696782448569270558070697823348889608101013680048270653074866536927621825041697600810963392969829304001215804662524657952467547339489534037435911533315497881444985997465831094496964117311856859276123931969952709312414346910566837133559243994439204385141937221649463986572097803657925921896719931016538290931481015352583987483279102118366783002729653638471625181082378988713637755668213115337684158405717342315429727981497139779821830306114283538346808431257923493680245890475586747825777203608989861882048901322425589342665657488862970324487624680681963399576104802020199881446479089943829549304001557433598013383832164872872095410042400752324993834080342419171586056734352592796116542553686200534345473640525729919003698934859089102349069852677192457380006790199623433085401605900131398964133938055012758548792133658052176897465514844222736170376415772611809379591336083166481729682332602039026188306141614096733445389641841290670396911410671571325745571594854760581822519986635488585618304631107491985723596349146085943561369836335770511637610744871532686101327055947325546020765520718335252222768791689608160219717581818854256267944160043018067295614953912679871196483163232683027187413843206317164096285863713091669878802809009296980300430807647051454822884221130180304980759963100088558073924259971744988474373795005508265299392819902223276029928664947379438193373787063964241318995082304877147736512859837667608929021818879654374674890568990941257118853060732919494358902500200220266074311022290678026159480383157231358289529699815491486175814899150435572790551847149136611702213943557451041883736906489724151291097310800417831210516379231493510642174087863544186278887765996570125453189666746185183008839629009593172974068495725784392973665048297731379798969554810783280567681626843275236047824203514539637944845432152902655955394269534170019041335335052479194943980512716916730054493552301167247156660112729417123693085319178338620041223616089830137227489183652342734024294116846398316966426691508338158613677676748364731064678315282221900580062866708953884755217380503529889614219560186465442879141412818137950190068097061700140125988105134824990242918981788348926313515080015349082820289753886256711397357084754370021435947377331911394859648463978886761945192648004692113677982278207208435650667240446577495084949526510600796344576664179748991754253073742873655052349612699261241218530440575253437878725803960817945720368212291275432059684644043904170463942536707334836249259865522112351743345602421926729449937087531421975665135962061832943431776372537985693972186425035683874292742778812379847050563897675123943317804385655110838332236626514445022631420361816301376679361806731315040597297821460588862850735895258520678958173688152062390422652011025209328479033828861477325300101256216913671013764961169377917786703691772532965749393127253334350613740394657307004704603379979208705208026195336141520294489532353049723342066533846150147243472843925530757970108994683198522594599977407876099068891789691567082684079152675695238394126266099504676911992515555731132650028892800939948326546692009454108493338299802604525224691295471872269723466006398563646756062493525850129033621171010153490901058637111602496764600179311988225367123069098221872512829231188190326062175525374036921555965276188644591187619541421336298377647749207764987017832065343326536980568964486981273671535978172094580222348048901816305337537008809408956604996885444930904949304791832550186077115395905050218590921748804723681015260542831862596597017427206724221022549925289757673228786166712637227630938042942207785693131688534841852023542947851661161280568581776381405083555050992331372060250325635286686429354755004908869973251447155914761237940985680143989113803882990705927565650605307081452381770839395915866766503234451744791425315488518891738258763320127589943596892173551839447153001535107223774746975222905512906323492673153491856936271954964226817256123794210878709315824574052134031052529522179653995377753386070738148847684424629483891935470426256155170003617417313592334792554623297986094940912929793635651041770982489927069762206987124971356721266791125547790633581853045230774099991708492138883186389580917192219706605822031742811780134192646860325895463994391604297475299060149515940470848916521120385666252967644654361408011999611085276875378488321506334860005602469378644474093634183093402983871527444299286291790520494409864781757173633352114763428190421737151167172583172051085747628169300012428688763169400773301697559854360154293344974596827356296306239594909092735662667914989663339121772626499568901324533439565394586395408396954941121594014515619651425235286990695379162272025889732382811232442089797317166254773380364470324647699341751945303336776838546705433787044424914370092961678314567761842682776709899307523147842070599719174773797905585207449287298400577960550802056453132008337554363542511411569545668223703384517470304229780177576214142632527606796160480829463611239468337329878374255765078294748298089846269267056489438444630647932004930122723080468371913645327612772249392785312898290364186563769362787778178515307731595423181480862043432512413999346806151289361622994711036858947527836827723395947883118773990666875540693755521387290600280553691478270112817655145605171232796890735106026549627262923581460039411921360272169855595385468387298471681507018255943260222399148338198853142402933388655240187348133617942457607591401167759608959656795079623853600976326802240934617681924621306140669263586639782164880484394452876899045993270928473327986819230679114501122443148093185681576309756077828307295231506613643970454891783642706357531857925987261929852899597263982899919795997709973384645999037327281111570945059600140163047690881979471167929126561447226762615398151966943130203669772287469148057829238590113861250911101256238420938214806430923726350740672920008641737968975627667398796890959989234349395453181270290255557809308959762637087553795695361877963828199491021265548693468058230202181488102035451414019039182043309978554684183957989626225712025206959924003897332754831800387919462035195668660120536107859780381050830634564724570414515848222636418993225059078003452117358480014227969594495512199447312789271670440072543997016203886419431093915994238618011516695412035398461921306291303749649657136445597729147671589907503374330377289012324023547964224565170196897495414966972681877546054496693248532019240337564553555295131295168340284741697824023273292119295030768558474549853570939165157960872159829595039086376395289581625255472876013348321305448259277662115876666996939000622607468447431225763483765022370027887088819310252757784380945183519662266979787502366593594826749417192144931612503932946551735237257102144581575397856606911433545890699805217856963858288735753930603317186036346489437860701101918131327293910187348888289531279717431514408151789149264397997082263080505234405130100069134147926187846237179740573678173749264836380290923836857210824570001814037650712309532808454832063735421218185187266927254703346915780007660144117223651290555567170300940191909938053460929792250157408460969237579288732304421252572632311528616510456927377505731450679553346987049340821653538564156695595002721263051759762896985292524297085186571429571372813476307327881662919450983133744753863712488868574398719392541907615097445550249374713271641122502477733042630127898553893223824151069868366920896908745465367601332285880314264029463601321348239364539323146449709901688223136115342764152948601439613718510744143656587796397806336780156074168122726689834853593505261175309598934818196752883424412512749594811075446026903103449078568631794646286835327116700039221779256978032314943014365752528957397582786119442109361553812095751435298575228056980909767116908853131982580115589961053895864772228247483029198951529819375575918576529601712506528965709536025357141814635315957506941933122018404883341850621599776673343996941551778999315692195491325691330641789500661504865672268518992794569049131272610249109796047613044653199040658018147997525191219620004492915056225949793569143635803964828161636314225036689539796809191929888229918221708687570142109446313153536039911106826486627300436979985767334309149608565791183676036815604871456043054184267423319926417899421704509956373201529938559122255907805145111486549010898239470200187389725007903880740300905397786734248989099149709484183898816068040188883735704453176900871763078380922888152784884553934742914528372960012165061231524573224306282445639300349213533600041770880668053587063654156501910758081902685427975982069254544478961629775980037401294071630374043408349543273052371540438977291575636389140334823860559375166366111109196412534940505886476091646580484891671640813411480092557048005116021317754120936393572812653631572052776447212519173222233937964256678228387833650470218620653695545845914521199755651388478427534954730154075658558561235045755337698595054345464974256162832978993996554516093536579593428125226219845813415573646571582555269871701326332876225425434849874745933572764493938079064428595969976546087856082495869208816685662604215874630764749995130987460791646813614709939156001917380120672859114802454775199088484556963026044211500379268322116832020830950399378728093768176775966522561258813815320623638688392842285046927410894733553448019295980401772427185526273883424369582031907838223845890080137760636664597679615479867697181382657911611337013823449832418236622146459624814267349947769012959886932029076934687612165736955958434846742683522321596388379601208846218387085047990608166921920560334370751191238874575329106808015027170028383351546067127495457997825454118179353566477687076708888035055191887545504697950489517345763417330527731817538766553701873765925576468384618994420638388965899360108291649448532991829498334683130378460562104210924913010463044745738718650113642352418282326399693218913679259643148536891440864124239870334750975669796768406606767305542013609592100089260675147344934736568256239266552355210756334595601586575130547290542808034341278185953533554726939828397229635904798987802523167300068824367794541688263921089582049399120825796105213768914506491216116335578882307879952880523488521415569843047087782493407530818155397508338795082604874426939065118732131625370419723079578574958743772241851907327374150353145719777802947592940811624396092785562467645435178125699133037993510078723665119110316656264355230547384331033171874389147152067579077952455700943982774484788194306269264653724998759852370432049711304339218577523667524895588007424739703463914495694397230604638187169406874230147752577154412522550108453733339367198434704473160301626732212210469925314947932794615190864354592740969936796303274668116262325843677141738032984114031221605141319024185923913561955094197692532660168649507124831128412947625782926565324057759861839653250357014891890183689603832868603832012247523218963190668380806465365016687937659219051143152415688799241887905564334239953781053971001819145767343803576432672320748786415361730508742463087832548101677324573290868489012973720656356308198542203564401256751309616154587208287475485420090826614592437345948773026953389661602780370142514259131652752282185180970029677012552284406549153674307636638327074887193930043983525233401213497601087917582345682301327094659839988595000517765669146655641709087516802917542657569678545444095015391637685676827670976966814639964728741727113884423587887470168607998011118341194292517834575064591658744059859664217356716703733371250480807190257300537356345198036693820528559264067654427964839316977243655685618854948205705954755969225907999152629450646480113367418976924756355493544693748130695919373272799114163995869478534419579473255451357214821969613561749027060713876963414562437549935448098449006898515233820409808852121036403538148463438424451254623390421008058549175026252946561879090910992454857607964462041666631377695518138672024654389453226379640159337461441972157537252514928682593622174132165128021083894323004020641053792009862990672217355587508043425745641544883269145008754275413235417582952116308474002940929930845728181455978018670153259050482452836465730204425948894978192694801426832774009267276897378269548941633252347816225141954466374591232264534753784617722980625464760745021921441269705552218433556833510440428802959721982535387061871775882682535208036900202667574293571215181989510003076008302900322714508837523364748575463077629209633129096971801244430563923819200954889080691225714645989430452649299345154430111595740930964235101227799701415382085320650389078826387512105388336767956876506381215717818878658651448247603826347283611919256076662017974022855797518475035002279955888600594517130199264949155567324863834167701082980418195921809296487466738945356608132089264492697376589133468712426180364828243144524194771338779155948604383643513213316513079152776960683180952175573867806195379590127625476651010394406670823364794655785087300066734349094968462901236596421998089987327387609312876445507524510605199874292657146913254691650911265969658771948929752246779777562271235204414669485540334730510218407600258577215792064931993085350565568951780076273326146905310711321072630945168981177743895816388080336598423798159060398134430783347158757043075990998283445335498782734666810554053527969142866183215248565481612797223430594239945670498015010935855839652270037690252462096088289639329314497945683926848666235855188848607050468967273906494284804663671992366203153452619074694743608079857287904167779667988687912080120970635141386374841067145491569462649412127624684556184685426994360674548126302136997402124424458891941958233285369427786087886768794343043806462894843136832686461793958639487039786121987091673936667606061566975180164992125070748841803243133824833752998234250487096918317860292917859317178503094994531816777087526200855690478187185518478108841439566222422079542462090832813493286923293972545379002159127144477117197818254809667942890385160242486527589399286866245823966101731760507120468126394381283406266990020083911981470950912844243877641177753993205152511215415321625339675252594505708834408515158337378925901031777917461434303230931879451361354223375830484501373832688763668414225525993104044104052944088572610453335609421457293108199722498653173323326882932376466719120140655582280959132885535774736292474230559386061431829498765722657080077507972353946415464846525293031938827765107949235918117221658719875008889494320994199050136802421349947418980721873455009608516230810195190299110996722576984932298819219224560827094132528959526814813003821062312923026765005385613099352205783799900848849818783911163673110661554090951532908460599563120921331941784233449323154278306740176805546479950535399917317003301900496899509918235690407095006579572568560119053014245158000135443717757286910294968003892559372311167902788930046507781072072353579962131483419594228198989065077756822676304598674431652547477063095985205895377121809226126800215258311830735643820484559521532100674123403249129963027964078795893243650110678469552122655674660117556001757395834366119945791875529853506343754761585325757900229578438982421679771551339589448027582192978384449006063764302395215434026461661537427408071887774111009981621753226249218230884539205412190690916914062790656377615494497661799788685630223768883396953551290399680041198412978314570746511869737256160243702920384613119252691605757397334644865268406121032527049253125422044598009751648703323617534340497732628080354628964329596266129268148984595793135754505947497200362071497652621935257250602171521042207308615807804503199925355250780990703194595609715848914466326152058244074324905194337180394466590667883596977441858597289002992257888180023194944241602771439734204905236138422408723297813669623588484609592194465736529822660502388321420314004663753132084846310127850913867250485431980238631480650982991152754779012644223736077780147027741216716569038800488404458474867712741434043874732590830695772146264905524356973814107084170599188810356964515115311582431146561862384190577633111840354688233554458958551871359105198709692836474238423094451089589868140998742214031424254225302367645156020764160738069145918875308269481294390749957801404471726443548086362037078095377001182279124714774610531963706093053039136253518603230244323097160590082473867795236916584708854642894695144157206103325621383017818826471272403212177207940886617783067210431902677278509226760950154045129973998209656923729519515692957370827743072870270557377499418396350359466718295756115461020707553703748262171692816067683087092809537150926467912938107932278427296014215103763196148551783105622233117263587133717570078566405069406537090158852991767801769996686728887875510907329575910846028980686069439087250750811306364511961660342061860496548758399252499423932317550918209545597793154484971680658439248996729325433938561575986898059693621462766928449608799769372230437972048545867695087959419209530164944581820497608836755581780068148295840321305045370359694838776491819095637800997656704323185301950757169133508628064724489060280120262278528172477773410555631447963965020693174011189950115434874860789434669388965337253608719151763206181913881706746664898083195280490563435986169549113153898843719045191180491669127161811797179292895490544380641282250788800952820690089448354307724155531953448215139125210129220467552722330197386047265868221332681814457166848848397321910157250956248478402586040680554062764511623184660575525528509012682263339774285034373814883388654236482713313189973581181549384501343833145129314851999874823631365920230120540308707693126848346840750391770507410143344462072140542550915981482978732853363512237573176010222007734245978537730225843574907222334838478108185013335435440684331043108940067973951004642986368949972941970129536636948384043412753005030963824462076248363033201169627778340001132852362886815453916241380489813461605001366670704310497309231068763114491389751674071346407525080286029598101216057280758037566298627988794158293242004991629641220779005365656263744834748709187861036542882591044453106323630952363330430517817635553829191497173340033492953792672739295822610909930065461589856132306818387621166346266126687925241048284586706630602910266140845141721090804126267320845330479146085931673239362574312128392724334519218467693844184129975579088729900946892486519251308083524566840325250052250496692192534025683752235305604247888911667803186862854172764686651461113159557502953826934337274370814720736185223558098598447045874357917783438206555127734979268244350212898140130416531134738825779368329774937507929396140853505827154116925771683461338012026372845751325019307624878160789325269105758736579024423531452829882331880877110043849725525357518577227809172097257906623384238565367448776544078113796864918718668612483713941059334152693701955668603949303934044831443008886379651344688521265808592642269725249417101865509849491914596832510816676731353784160650634165709885063453087484400841448887431462332229274809416079031525017377599862007983160127450767982635539317180913525583467284702132685757465568450445294694520362871340385831880867512342235644183125498954314635839067028472674688125240498462344902729559943117968904651942181371560115024276589210660952834944310244236232926089781645924511083769810249931840652902112913788936192269914157982473547501231185377596721133769036420224786544314325729228398383498426944627049486378555027727102095221637731454236715254840947630045066575267231117371821590844907422298369533968158237447171237055821271840226227255580128693556274402051714847731601715306486374202769607823123153838152009146362914393776071694752855798800860599571703083397995816211840994644971900145807273025436004657444889966658762030744589646389015251636620470211344966660690186526044312613223974129283200764841312602159682768380837216094003714141679809489633877087141410048380731831399416936128490830975739474692161825906399160059228481678156580144857791115481039295422295508136196419247776211913738612758344932784720436688524677035248193414217434949092050504226653464872850750881531625922209116531297601969304263271448903469728942309455250408963659973548277776559765397675004931372744339061424922083462298451748044564744588867950183297326301203408516424898400132085741508378395747753197233860887815175268516891639262577032564027665415669455790879740144925591022459022298549719829170782189084930627289981357384374246095384568656771802786943466703895351045748313103574161763717987074830485585787049894060131814923497925551474542512546847481762389373877353644070090691428543313060403827566474010337647526135224683600650148033392733847546754242869493987969703769574891521567409477001124741628281136826487915300826837090705654435216606206792106276782452134280667737070402726811693242633971773279899349871337511037451457859407856125960271717405004843326721353439720109959002625261015159555695644560473006432436572144384280925168349489078056486711306780143286160464776316849813595476004280992351180721010822407140138381927274597837924016289537769842081407915924807314966987538324223419111380724655178898222999819256200587820561257589898815184239023072933580172180621225317013803950982886010204229476412444842478079710327513561174958287554580030128676617028774727607249448444013044345869770803609723402573372765104444373255432333756944699803502720203208442992521175815219539084827389744737578348755723570235195931391991428684810492216522925314247346142678495032264561527188066842131908130672884256872722186735297798173661293960839504202326112031674084374926756580895829424277207068304792526382834415124985450402945629684331343871477205365807868003849183592402891588503966049026897095469822377274907759629776632893248128202176596501073128593881411267651717659590046648207277798143002831755776143859228792298466060379099636439094323362886274881881376859331692774470592140359870173493704097626560712058238127235145707893345987300157371219180997468490864325196026268181725433849412908989239639928371065268039279611230934505497397140997088823287676458307670472612373355266244874103361258988795860060355724715031996070298710471109542215223797158701504002618561752850422976995985452187226189833718752544605175449964982448116238204248657808532750424309123433406475432140666012928344355652436144052905429439104250304115586628465762984530179543126659680953521998441103785789219225212798363196958915971087284641378755994611485971681239792297155407271623269408705933994409318120328456517450876161453866092966369534439844537040049112458172135477904134016480243714769066652251420955605369962047609327049381728858229587805873635398606517111660239422057440277720817760203876382567522840484191985313334217056184986025567787757226968118118954963229244486538057089065924624766842675291392139482436489836393473421422186148209135402020500625427825281680117502235148422599868304016528963526850400823662983873603876469011475473285462126215931402207109905723892884993383594745915678429829133991565316444497319543093714761775025960050203751188776667522083917464412028772020360674090414692970428485114764034040025396392264622352838831287761492322087075544575016827706021713047517285738223824797366164169592032241895070805325225470220407464491745873307553439520980478751549131367921646103837786991026618237576495317198406340785434564323420520719375061407716919717282544018053719570780864345376527362572570555497457049183523619292371218833583517425205745892030940386517397100559461583153239805205594680454855990863818698669157464497047832085656987375795264994743216924300682814701083555822203440566499121015152356118669623274956726819354606787030796674597999006137119613905960883371381352709552225186538088313243969388499755299675496543774745989941697726081106103940979168917859942653660210237990637081611604660321580477742008858590977503460946399913072590128268453771136322690018523231357677344844583761738146202043437771313457624781831382477911325249339905814540211848390452125233983674481611199703319947846179396782026299565206263073437524102088880875248425808928247253638300989422142738260966424481265680956205795407752986611929184740933338940376816576590410643953730684838579867465433876489180123527268073323263052167991411204787901715463348150209505361802876693143735112053749692533675854371167654316939459613718277423780376776266599210693129005744436066570233877341136484468517273454354493830824838620823068467059162137692617570819362848469749271547411146981432942154388913312727543736527197902115607079511375204703950975612906157144712687241761165947479847141825294721222758550456850070669790939769113196832851862746380504099896800187192116035757723610267664794753021941347970086245591044160635549593048844233104039597321925249151790394399739215902801114124614263775946780899331696041913809492613122540726365226049872548679186248513761523387905124170815747496660040823425249027174905414203615809440531436460243088479121167126624733180835973588827763227364395882148238893969621271822384479489166084401491337743755949964813245498710717406040671630478374640856520770216479271880364974186816030581006583473374328163980924767627722333046062867521484046947683958313314874843412363614462212321317170028380536130577167445890917644078167191180042335479579124261114278988295435153020532593221295113123915599327790508580985309741596932091754138538734039750151365489810099983659158272760539995934985099631815743773378171300836493105517750201373576597950357644197120312969295874407214217479508248671924256639200911083413631185079547029614987362677476171301275435940934643992840400817173763547569050542187318120699265257021219666954819825925198088649251914935655179434403388584873393825872384350982241942501700251245488328549651460720759779354479546563071744031328508700478127263346866963933080588374723118370242130938423093203350582106353179495588166000207249988204283968357949621488512747448939677502004391070900064479861257695036361562022787303608296389331726586307156806596135820784702968249743977776369631341412373410685184427024996308941997040700899343738756205815784471745172648917440996249317584566594824014993876962525799502486819269368548094552893713564750823316762295254352336849857338020465351293154843741970674146057391763018018302584783383122626512292118410426918590383045769670305803870306365663988295504624632395266129750988762493501108356437624318956601622849442752260771053866235009670457333480787770587412022609379727798397789294571787395006852867656591381783445899727360711290168351590002932606251696318462935193412313126809488169502631350448886071801640506574716362428776505743683786882961660384843428587430173293992905599044195364805905753338246651497439135182406411667933799731261052516970864020333086537723049168036493564863926592434721991610351045426160429421042287436910599062653464370068524862852050449179411991386661360467955410400265951937367365313862965379204711245305397096000700171902110381312072171775638994709812814642857883712220214300214107889542503071679763701857935411147076344703476111387019220578648313775677274758993197447608950714557993238161986285616000693450287573493863243299633122747034398183203785568415371020418453596480769752594648798912273349107333488721347448123110596976784202324193547589028320931177810805282438870634148257783322870226837356819839533349827329135084308298509323950972509293353307208224187518665971402117873702190255968456161093383784742267237300308212987091222194946142492339200421929034263218421461592867939283638449335108510085304451413153885023654278580912449390400452166708476653708512568099912366451022409731565264583959889064484117221853686947417836598496262847467320602374767655835058616023954473878910217546156167075026197946070744059150700632951643317696570742499517478595367560225494883874758319495802338648766535108936958692808127367429280624968001002499541405027947354933760028949712189242101489250847001386408269584857665133953220403711654222590843936061622629696916859514478344576292457771470612163017154474256355599940888122729259708703177818516707902830967521466840100384961311385726304040296092861832240366891998245157290880295851127701604481991360719905727883122012102125378661690062004383157939924164520756109708695005560780257035497517824305641023431648030869981250279719032746504010089459699030343901147303037208750507214735279506390611254533839919886366948137189519546798073774914472301581229313518935737264082717251846863194457244897247908763354952406989954965235607690806373148629330535875116052709647427400424331031612848096961096382885580005261649015948209118522761868432253062415543195709168290372355943969462594952933849031357526813184267114072033819427323190301448264135549237389229464367535927081679932549452269992603154265141964533356120306064166068619817241712263787390368283985425219877087734973485718723852147189978817253281531845641545580504048934159228739553420349211991048802935784445787607117412323265693320301207122827511834538305411200823965503771581979171080172585821820277243757338991917441686428084091094085458863013021820736053304181255327166420396184549504110045031961142243476851307526175770967820965618835217526948713973214060013321284977344065124130586828704421658494140766171579587202029440958236669539525779926401116770348702867346240497615684814237100303261088467741741345103464777975573909164944347246998006446240587225077756793874002418113908278613077567235428822655821606335401555020370888540328229615039032352380033634339257322858844999387712645256830002603805279391142659563375683184312220086739415694662461915912748156200952004321418613289483999531116209394147110041629101891007795601878132327830101489031119107879066764022588348551268785660872897150300746626462245782071014671791864245677939690976059175387423137747182196975207468210548303247392512399020812142858393404479501590803952158995568904916727397017094030153789278642262421227879303810893863447631953513807729126439073587956718210560942108489698471573916572119830189164919149881649514507400056642354840869278408846833769518674012243241040563411329260322044679881605756194408581561833874319328102466016468503673002697421133206955940288318736626881505547349443013335750938048266241872599068198781207794293010715761029319920682708552387110356978080062372985563681633707601302096767432628183434881586516532542869258998004257992555537364291188515297010170591508205785931617602229645459446908658721011500147063637360250373744682155868709569360668962259921970496251885301754148062967209612436716492673808853946590565598225761357415627332294839030716006255555635210778332294615496256077542927402134469793363190812996901387767581561834274298565755503963169161197537042220400690567662028441067297821449156639166259792685878929934128059464852557551201586728856257666670772871069884081237582337792640043972744205703005646430154850755023863883390986774133233127428756998907267667273415776039509120200834395205352821911897025340950889163726008963990877246366556848285433988051383421069726768613882228577371019492087897455918860517089651040622917220511678889468651157022430425601759530206570271424237251170574944234431911470641872001779178660494195959340414414859581232685569704046206285834214692597051994061852447516322819371136637731145450764993502323890721110376925428077205074759178371272535061558243477334305433603939543222614724075938067704668832177403524554810561372615092200597164913285216810305279721564391150840361121772373818299282550691141695656112871262063109696440742474707098665824762842679449660237633536551148148899044930400682719659196128857383707638907991740859116967206718912233667693489482312503886974693887078258025722612331804900175215855134207132341971260304645306714553828804380047860998056632789212276787358077817869326000441430439844650962771713076210488617555275354376154745940137806096835012135207775694341411036189839015678802380943932617260354850876629174408436008489743269587409124385905610930625428895282618867479020516149760546656908643045196464787598983991263494110813356513997650838849444796455696775832850611177233411107758480338738826440475881523670105856348812660822288097855211961841499387278034006010450568449371709978914894053951760571389281679018545421398611757286570171124203470454506150288117095032537333073077229607633238633091749019762002740151896094460784051417722992568941077511791539759329527087726560648791160765541897187504454034078007909482300955242583435004138190282109356062424393556041332303027697437562989997913238936050458570387135596334062759008848467529024030974293998695327403060615679411095033844896518071497445115471516803414810337820060575549867999120763371640800052458493330153060473113818684929773814766838236791477778250215502789245083381592335370702323921532180191007378592706101715535391424841418482053657080843794183332026448651091379958338850826827679621353644972510303845024639609989421747899723555266291085063002916296378441592313748160080432573207637992062504513773051624750044582179609454032154156122672921483690695069714224907074388602773393183802708240443088751411067837718106259467754046958441211393019993334961799136918205505830399912697882143120394489982303116813011589290655618526864192360056824970851956966297062055603571290430162649696905926972712320616041274841977699212006483347877187923780634682765843489920257536476489642561658848350342071087273650013289951077389028022878467735491035639162390077675636118728064734724309679297264232602949107708101062716713897474990636946948645905160561370340956597646066555079277902666610985585942647287379006796855772299117938895146567421338704828762515493708860366703817470012751353820472710347776427549136735041651809287970847145365394575098942047592543088919937734799882402793380363850017766262441732554301025520545106677058225504175834528567879203151270646728778331600316759239431458669945136806106518502021851783675345879030696147954864568251053013205806706672048249210246621499265934354025890790527697347720670175575855376819257099832738688445530483955317606713773651392534197709591193644802142198904455367195583163712653402733980905321662907254745353036025904189409515681178610723162250366303843351869092261519722844923169396167728471626238405863871109778825114400943036046672116749398070262181339582145316467393881044471685173148693994317420378864088927203607177825872154453120265043598573283257269373694808550415048113815378142201343782392345310030497867222460339230410164639163181672819550164217112268244736015453313808025483563444860880057878478484884955917280288151091359758463017139248704174734393254544195600828703952167337757287095786018063416359337022009464525848018684055547647554707793160021949970349569323143132192588532758177715691488755786518749350844339176634998290855505101455106133923266799481253565418273145900805090897022777653933251092609784763487961228123868879511917383061729660869669010254575783727886672816854442715252683692776062304582202367384996611896101237319973335449667910646299414389773953161420111244518998369680475763554827530530084006967750488952366687961816346877356950413664122673427265889825495107118337602992436694465024342896363871504739933947416605737075531369022829595288742252899133245404421663010823832044471142514584974321624736889854327919347524115925390259075326080783337794677215435136838455981053403122784252023248988769305879372629898416112885957726319694475912611159195662649852590611119229500861310739977860246338069852719149701298214772442049575448724339906872864794305161078552246995983927357749172142582098629233972444239804326444345760088725447412519904966489323964030272692488840106921796254074485132823299274522658039023626660574037769130605125431437982356365214682417122252467048970898242975140938974229391708741902362339398362583737760059517366060155955799387194986684187330434118368394460586738512494392135973142994257270280318246305796968055334133835260200019220072968043033660138437311313259856192214831786359127770229020162677978459571488699101241470314388120662791315156720926170760399635520702858218474314935154528443008842384191995036974517120285727428774639578418613281469514313528889151484835932854465602347667402892457108645534403736846452617768532513971792514590125190189278904246271140934779081130425334696023250006328564060240398361105288893045520976274596768025601802518861841348559142997790135841570033520419725538565338191136789943356540856124786138448241906745043630753666494684824952361620973026226519762017817154928558480097886346052942581126652472049279170855135191716056982281589303084821316085515266564051888137035610526239838657553534732706670746434362037713062060837172339545018293488494751961384810047998483064261963664772087176304806614140237742537970036030766319377910474512861820635319801636575086264519884861371764259413796132580402470337808830651742878569754426905057878461953489172515455041944772171825681687981951875671463323826322212955181260595099133154927580744696824737678504891834781226575988897702763189804750048868355970438614958639486973375365798541192750408477722391918053251422244684399621444847612611751450897909077291714126385278917966198390002662856427075460786620947692967653853776356971596166043698267377595312712328665053578435501064230772895590766347122520968439025761194323953523196172101064157230002641214824611981144037693091083486023483361765331222641494343853021861714379410716232543002283345264381926378487857708723441059901112492587886523322010492357404694956523416571580064851885786363409166549757317162267712717310903413275776673633257018828015141295380666519777950436066455962970967401823778338040134872206217886866458618971470788697402737413558310172834005945699225975304985286733334140075631915090274935509816402703600829525212200488932710037156812865018089904197980901363143264046316676398060303617399068963047118646492638499742147570179998045450550787304500449990195695716204048577741439509153602939544889698098286212193634851192048682887146663006284459849765582232961711135120123120701314220318581357165307666629248771340169438245371139314180983153939182525790636626240854424696044491092263162924998267952925958778139308219700506272364948734524964960183852033791216696010887553119693583912701114672082116660296814556858541283491297909197790561170705155754495222455529023902145898549237830994740752433293812423486031443924837600336502169113589701532377303035332031198973960260427964071876803659300046330391602089154592129720130077239638482567344278581203480285187217658060887770049977904129979957799252611166683031927977538959105854100909383702643505549932559790105190923274059016498729685273998275068649872487948571229867144800528666516227976916886578926648865384708681429163940046178861181340316332621043909605478881337436604479731240562725776190736008441749345965757404172432687203007363588636750750227851942085786169614905447623983424740916235889320388627398332557173494208617995318149175888001909444089607058139039262736180426570493017866591822676562563542469139556177349935599605613793933220723175761631574188453083210920952092826709506874241438016016358070284536259211733575249490373287387926245142703617518485780562814039148217827704840812006949475491647475678480119539058620327010978813723723288101627187792700364374497099714413134882899636729360150463074831046156225716361226669096145794757743525363928232187421785699322143852676194208986231065365099400664661678124012064235032941422337377044605125166972986308918176545338283031261101109261616914627000326491483759475579530688760713955967739537272895037168384634524285456750279413502346389688396457677722543192343145014461131454705299978863091833185226865490962493732931837465981783509141382652670212639895611398910182468165734096153420071335176146027167759045496219510233007003539720804199232676481330038310162610647161378034207449563292249550259291048227874888371462918183933550255438085656334676342199414787158388043866966139508782693502931039524980722516002714599140592016693936255089701639422224802924910493688165592693536165898238990945468426276990094328447739562484935991529692637019356321176999540108677479913782859052887426393885592088439529395592067632181370039919571027831879928460116231662689167961036446062238441352483665609103095354694279164415259390934553981732741818466120044343371557127940505652532858586926169923195534074130149842355295066482349549853344471436275625251271097751179119189156698909162597786177358865818811826714497016617949268170631938580751948877369725740124192106866496149754590897368468268309632589148309633535249845276770510448244129331957549203050636512108368053098241558610134262528940923310434694978787438282948355630405913562773574992963010661168562815039111816868693437383323309088661116197151412286223799033952700666935653910246587581519074325566485349304194006248224909068241672324899125255926364646886670254584298873904952550613628099657378269737399515850702016015607063373792575942577606825957321483024092212657135871357633427579209774080312112632518356804849509993375850343930933167323170811397068145635768760826429284318298827766867180698199236999400947902565633322557563526729274587498613454942079874220926350914407524472063686519403895238853314294608613413706327837808843743775613066639893648504103414984738067144021571501460916163798473698802721707825483738217242114063518466460776530393715475750844949488064998285226446518491231039249664124632748382478904804756803532266447166526839510370529075479602526447631781688962291217651217217778922996969909595393430594706474148597686802011903273074032252070314680262403033477702867351616625697869647090535611000887211956760766206701754141139767710640587313061965570171252129367189851000155154096898766174376017717675875721613100144500734651406125242790017078596982939507888761421707845296096676600014659314836489286337009285653035467402318853798431342130630085023277467098051911752396968740935095333425777763754348705951274321446103754361977573515392646578908112298961859736326887795788759898069660487448269866473917589361879805014127894263036291064056613239718193831340240667961982133487539518812775546864998267038891676516091572124149245791535399958700830579087732961575224189549836238787062092618419197466772385005022283036228485989575781386711884080236043346799827726591117822100346982396179621710978095040873632679059977830750852348783530980797995526409545076344363063623216232485705487301427324222316241875183907487326572404320458938947624801474346990408214598670954334528838933210602066907551770411330336149238074308887795831849810047226999240711170860339870642582582430859582673228868000593673496444692823189427939703293734094908036740070667072424459624116652607171661017601193426864893664130075005574540103521513388431607436345675788171711146172620410058618767088677486096037266369839241926630020560990537020434244849171572084193847422748867568716377401478007056617973542420620221193027716719711333241460963035238435138433826488599790597610513451022285587869401324648953898670214122650465228099208164967220114182433506425422847058213306977268094851759527185957886931417338733212001088593783237073378326226454116921326776006517337812867307533873811038006127276213046986260869308242363438229936059051853651341609382945357864231947202137273873390356842611196069182808875907789158354075259134804153346257868577074669796693998376392138171297597747157621041478869752125878526241012870598073391631130512164747626834389252927369496703967898550830442702450516232500899870799463778677218212829684674977607548931070238208865793736567992813314164978880728067128374945145904677107196913544771536297122524732402412252473488881951746496062841422474816521591323637736044046459684185418375898547782280219280518107977599036583115175536137488534387946504532646104664684703002431947554364752218549524805781019612412161048623402524905888354753118550681743961795017013261918010005286603575954710930887463044208877481482128400791097204227359156893639374140809829680596064998377851457473071932966783314409292243800435163779750203699104561299820626678070798788418267756044992051852082339395605433645460306518614638301733464107929587600360774842831997669508236089180260435902985703143178061813830773080330645502236060893912923720043480995116904442349636719457965744090166972293227734182435939431182888355196351821415072164764074967763435333382510199129403997776988326140482482664983752023976763816384429075251439893753561316333365443570800061632488973059256319326699349298184220054294197145640968696540326889834994358786849677672895124556830420047780900807224637050685731772561886214148097220595700072279419598289370508005861036268560064034874159060458259631830667271630172167360333031126636688335844348332560426197146658033572584674810743603443441859167583788937571859015735431000071761305464077203998685278694673265368453905111865678170309593882106162994351328847370082967318369510204307933110039114884883474502419079788735532575676265017977147356141711062912077134112654969533813147135736718306381401814527668726388370308772210864069409744534933792927433524724863895339297277078551934437012657512403515447424696448857136898515121730024282190694254657172167742914717897656288656429061580476233280233893046655505157024699410935808466412442970350545054104091048661866730410723510600877677804577085927482304936704307097661277981676374894163002360209918517290827216433895758646384102911896263671171157663673513610956209469652068539670185109348462393953818633470372611401891585392680133832169746798288334840635379115315123141062155095216047507851188137876686928300325762170182231877478066639906663657404615606551569827934369353580875385607022907332325917601905684268192536341029202879737051144842316778232834681417330030191438205799191745014986201291402621654100589925619034311170525462479523105346000343008381548731575548043744494131150390233976631289585524788448273789144802368293983929489006478721825193657160482959953086829872801307033681842682570234481934074225424981206284664759508400989100620865358395367778980173080474996095305224975882337346821840516857235951423477387647785387569934704037980703096735254101256449634756287953708512320741247259089406101429490132291978874799688308657343335782131807739309999744751190591520201403469765921651672982563139378442459530642396546654715292180246790005516459341381868443039175461776018606354816494062510575345945513127417636095401826218858453521419959745268726373420952312873404014150016717412792984082749766470704599244282871572409993168928741999580912592249064503373998292288964210011570426372394537619304932765398122286686524026862453964492401361031393406830331544312858553300948478480514344619950555541817816801981612758028769246977393868294233391702891716002026098954123246539677623367281803991396727448756758341294751764491538393609164104071131200503221462034318128686260921910573003285353472276065843414678799543962992960124004655390422937231739659831964712753709105266891700133406424721336332300889736153182563642627901911380444883388857677854872389401023543943792911804288401646888109000937898136146348274990358502270529661448982804633406986631001203676043903100368652723819210358012290951807480024418250363494172036121702681669660023460464970028613131610290132909538106745176076227904748744369522703406978635457045536224074447653327536172470468179296346191035647439136907679048703983030450468088093019129427064811254831393049795071403559113136358689576564539625224761198545600088519082932839109529403151070742614951414404460908411053694958997161033802279357205969970646745523662956720268625374535710174018633482436817006792738432286874381033738616968101831342759299374362010823369111696466673492054862736484465676377887622675974468423951328982000841618887659420142819547657372382919783339345525790879389216785197165802139736927781009543896232213626754073000296105828844253451352555530569440494844054771464547987664833100195478844074091961931647500168397413713124720670294425285109448408700741209544347715148828128447264864029483296771867417756465473112383350318842096011346203522801916342998370460030169440355844665220996919654674438513954901665659191383576927528242944087224208280165225924963136166138855509290880672631654341057263854244131478703266177068475570050547492862090642377032731325693213570385188848816257910426957283397668857895307216765553962668962375547241273346677593441815598456889183242665305175758438216854705247581197049595002279074317449410651572703029194335025920439396428224037889989738191063057042710756401998104108128474432403472756240403424223604054471547199365509058169860686328626082213517006732110732374598892544672709520285037765020833356668319613125533725349999731820789665761577749435042291670417425066093598799718495934630440883271440605853099001058242867741672272555599597217183599572742157165756086809837085426138043831543960097381525241235590449979734057382677548976411809608032187334709882339002969679235609805562644711857630291847249015350618466342196468764161955706785122941855995097192162350812573024156771626867273836518567229902933688968871807972671408034703426287532978964155080596561637922508773426034880828418012207492593075481670535273807639159693418553754410283644648014303435996006170304935066150818618616659176567948326267760814423196120328722878071123876838056712122694476648573647297259910539565641966826022718845163938546052675274533526694277581546298321204251715011860093506482494603982748580341022959509902379694058923448293172669746608305899570127911827127637138756591978458605194397038981368598900132565713778073101824386826179624894350852480475887087170029479374848995926572449881821327042045948406892790627414614933759608454515853002403606743662065195024625362697336710719326693556747489006348303255599607396585469063586145485403202866384959624483091880887430984292419473867893168815721234484110686054332359405454772518992160684183873257946145194163012493386194386335092441666320125690944314361507613681420621873396855929592202755390018409871187834854614911929451050140012203155684329013974347264725866255411310077811045489810519637490176808028227419835097891880319440824187623354833409405138354142151041818865596239757923788782236835945922418489350708871979895028615963299975665711195683707378679548821262950527723447846044176464361059711646787840073766381079808138448010875250184905927218201734480511504330080189360286416087719356180096378288867457843671716323232229174702878662567165126213714735425392897659617626070044616159661379450854067216669157152938161628335389401660059589100272312439542650758992366635466506203035481688595481268590144426109413911992716495553726866608455715241468705198477758309373937078667740892278416735161302177212068510480576301421799438600364393789406932849321312967699140113987887522070921868348588017693195192210718308959762172356519436059565507296017312470526587077222066876574741168136206718284390844477396561525477038428863883028575831143310596860452282800979613424246933695507060710206245596944132426775209054259642748765775142797460946022424452049078677951024611230807209215971931840182545420668244427625738517048997092747070878245569453691624184648776102115233107030883569351483170966889350402412661235293213248302361897818464348019933829503670685035090593044181122618262268073379727121136462998193268972324226498866762886505499827458303887561210933396257532150755940219668077203505929946774116739091902786325742943568458086457670834532490655868877055314878054673192625171845955082605323440919578735302320602277971880394115017119472069064901762216106504340688320447621625785559215688333378537394355323106569759060605309943807266440169638743128757572600916880317433188729600650670928283156301647023947794655726652777255349829833352243480471893596525671295409667929234887050795706322585097781023844634108495263893719327494955530304309770757408629194916568378878618855230931589036629454661979948104379167051394200899469040066515223223874059391306620988198290018375816668361123033930370349880163812495003581825468481590283524100346715461933922289690747785990822450098476205662623366425289324957466174898768197748576959913628852951764340223830187530641115828768793690967639922259148202995227377476397969091758102803601342581345758676159494649867438937261375045021077948695557072795497289413811642080423745306794072610952471720006860762685464026297982531701604093494741908865541073958764383165524856938073618819985177502744158015910417836948001359286743306909701122376510090147621740941309099751828477915726335458954077676180296845429982055763518446798505651790625920541340473371352603970456143927407083328336018990831249678740794329380595425815097298011960009487190882428145276322272882884348336959904990488750941245161852903529123197942939040384021892730980741919573311275755263915700054884615713742086677954787350379055484421467790205468188279395009128310209784046419915936063284973759410685856295668166027937090102559924496047318187544814026530776033703645239408917813159162623418791948045938622278017870517183521535675684517487482746463172945895268667355510961044456480089046356034820524264184271731770037118763235760182600876703355031260757885871215861993395634152210243241437281659309923195073337884401826093116155585673343566813586429922879153943801778944020910226048133941919055416800231435178293643154283349779730568783291173451070165377878533395183929686886885209410515884076673980305455559882992846611627386693028024094840674299063988581894731119724584884516148686379280066135263021128935455922135118309610162986958365289868667811602106798326902301215898504687224335954781363425090591411631431473050752228871405564285050595140072354877036424320081738498450753638287701983688405454709543021040111695618198458345416337307647069213829530871325010829522685377704927821851063022246570944875023585252288985181531673896456598987305453017553989618809573191207248029773236933063730765203887909811795994520124988042260193197280476370608449719793542738301288497294533839009506891715911085796768283078263527536141344096457082505571542266310008831991766699022985594585481288655834952146665259985298958745445466492805920706710484885812742324515707605250217706301338076602657614626649325208323558467467613630443298577009697203288898845283455942196542127170823812838658518226774688643650434610634149283097472734610919291315897587040407980366631467531745885182230988840517697926801790824368962896210631744508895772665083633800301747222201904518831405730342134664947433100706017735627465456045657369712541265119670665392880729199289945433935145382741663217483133384823642154082283897557212990137668004660078643710029197108590835877825031487945351123628575370012242848089183314114311348684059576320506291965271919401204074294293980027635253869382688592210137657551294217687273236219470253106738075671450485519571252419930080932344218179696650323208248409206197708248115836868871758893905881477778925285016742513266763594742501186857934113712340016610119926216496256758156038883962554997849488343912846732450799535248855785827863652116659617199431763667998426474798020647949113596307321392548400015348915237474962577686059732457152892135097380359853218298134080164405460847382358632147769181095421812547489013357274544064887775816482356021720491656411735010507197639207595746151890207947257412086509674342997270158139248833069263565411317981917886069751443877341404274223778703922560250344452959339792104540911602065180934024075774884903383959097889564536028356317522099916552861958509750756956799421499866082135858104870405828562830290307073509770769548705735706180511408770947685713391281173828231089727159990819825980311507598479380836156704780152465422320090815743951839024721719783979546748776562534316425019369580983937178923683627431493501602171073306946757557617705436913741200294814142551682305787555048271949463652319882669774749807108598536296569663127984171143649712090957058128933100087967050174703833614373423590105778516554558465356450976177913149496832965097853022227403364029829368678350306907019364313253573910440016988610077321018571212776396274260616992416127775380268150750752030636346701946279666133276681347659939072706767508578906720146561714523380687661633705819092505539376925937597791104609172651109282173310149626524894580290948740423035665919202734938780943729838017058822707721190602165274101812028112600992212083685941178740468897281919703072878621862526143999955681998131694657931525477516234136320129149114502599167772855296892943456163928252326946527734801774423587512790912425691384238355800909248411317983415340912995512559914898802019940583276567243407361697158124749212881632257735432256379606119890382321484710376967457774698839183685160696991574166356261023299859337157057703680755604307984167168484577147854887182027544631332434883719253175528554097682366006823212995568095676627706711260696909389187845333907039021012098979638291300042348880671201967518148893948383466372426736377303053982756136279493009417653248165329214167564483847891031213352011167489662565485963091601042287112714478023542658296523565480421845821180875575579939436460828965149613455667389291496818015076929280705997373938436146231169512293334853351939181205103309089877536412944142623433701854924298131697451116804091558132028395113662018496173799555978332948575408997924522229673328894949979326524324366770111493536227582273097203740991994707959455820511963383266157951701003608978667852622900813888654766185765597235392045296653775855377773848994339401982205146878032897241572890168225985819268626820448881021382896164054581880278060955976816729225779388629203293824224703500723808958536984755662273234432266425546289795060035172869720001595304716015176019338019171076433202893317181102680023221550217758829035910514025790875758154503844507201385242715744441901933076692151370232466520587515903892679962817303437386612168273165311695979119039649194097684457757169491505344836763620726919649328351593127431143933065709647344698802006986433314795145908938383627941004233115566962828796023479348349414854433664821390671011903154050909493448510936507840901250953933795238820542567462969667428248862647056171475124255176322207995993180038568055825109698120617726847442181768023687610513451645957569983592345472049940902152392229448578227381933431944525093599946988125618002528650832367876503154493146836294932714438891204020255182945951204458808999059027891313272996009568204062877989436153349590356546248850783503971112665606500263665547793041310532274558744636511981283305408304288926292022247228509146877825837390582498422093862585175086230144999507655829592559060642027718154597328736514899818728451649403362618505479011328380704218271165882351742617285675528081490611212256013268185007608345335468981936956977450378843257241679745771165708198517467084714281626096192465003323357499335097008881688854280493313367245642313573277180017359476638325531603269082871213042191135962286154706547304700057873797278024642701016825087529500750639617882658072939012857180133582903488207899308343047372189266974973359449900739160682655511298686688074391311224889721714904673883156750679357920539245324801912238559318215431833901198323241203812918812047562931962093442045839575039876379046793217102763184936677167769999969742290365816984130435103960470346214285339240787208907236643752355862309547030765910543610150071126621483544315170200360271295746400299763839278806111503266557927657223485554582653950299565020804562253930772520141743846123727081401756794027843698549067045553835724558481860140206332266051700316358635865087820621662281898625891639917982869222086937915023224722047668767398557401416294873221203635302626035981052630248292315817706801531496203288229211790511639879630408979676820647250712518208175984513969419646731098905050730563799714069971391228519274245871762311382492936199540792445002270985841319456374319613936709158474116800797175084384203015763354127153876365627870684635298900634027105947039523875338637491306371429650933875873380584537807706704677621422170897634036300090325479592768135790304486412542287745130478092375451445740005747757937975428723487968872431186311701946511885038243790397256549654248309562502290685641477349544899680372911623302844544369448042421407640227469246219035173395272700898034507099114724226157022424887577280067766449697309753175248262678509434936585122480021751895758919611564350821227980903660332369810617845258475303873938072944874884125787476901430857990980918223759497602776151635565552275309221598566293359208041136752445978050357159924623593557477217221512479560344251504680220168389636082046010532993721134596534940978770535750704527595505769666566911359040962819781289913804788360407918815086096524704515072723373520185653522035247979615895132690200881086324914279579924296056212907724757270486599586714985490020648878345093347348258607312171736003327563629255072458290002498981692349421158205927672632909144010918927718414297312793046856852117637359072850724337988658246055523397600658718178901322953405850347480176662839563817737836180230490638380189838217503585293041565642750613286924734732144165993142668296985106913913870762103485646506551298564893679556485592083665454041336191507042522250328755022279621777606234682463823249714200069655875897197980221742495382344363654602818988988331203330332423775550408242750869937543483495844414803721284367686466852211837466686184727659450870739840120466126545857398026684320456417740061858070310073006645550094305618335637064006971796865793927255891731605130700612707058847473192467710632632232380287159126753087537429986843523873796751597221826647160122932466748985830174580294709629215339344253593161746459410027521573266287475482466007608969943785823979437736996819369321464129409707307942957816316347892504675461477696178986603908107041830356890726364959705028854074950599136396908509536728447427452011399916346074164889996221581340734322051299130239336987032179364491968209505138829732484973647342001262132233603945644952777395128088949720053994714714438776571894192067330354047698465525250298008775275188471661435577295612587692150259895038181037165403995602605443589913129535606991191825242761619779411106858402220846306737635332866580308790949032791518248050164767255543778587195020596254328994836308531169679233047955481957804754397554703764049601875715127521389079516873553383317189088264955299617128830986749327681748346739902055669939401919651355221201325452167742054493203846328811497342355444161218515477144211761917796304491574694615238225770691087567348541561638957477637540300451741705255624471630028621587492346522989145082386937164593773408833547732282073205019634091806825039120172616044498687739459247713604292572729810679530890275645741244267876914294836952835458066145646488551146080504143502058838493656474785246466983918210751644860226076403060060651225902335316911310082627151836195139405022121501689938317291411794361876563495981539472830484272003422703889202264990396811038389235612726533067444914777893532107840427399678842765059829272238599776046692053732187239110983498936334172792717871925482161700968595285844188808605557077911540827969204995573196099539711672146641504519271023141298941220451434963212271565400069769743076094205654513677961618993583338428846829882927204820418520588629110301656616109334365790118632014379884088989757601959524987930627709235251913191881474808400312172962369028300502789170279330885481253526475678682565338735473011470727517123535597630554658474634489129544391761219208261172772285916391775482562436747657276525736129686736762419579528926353405894687550311827663822718856276542151433775645801635520843283731555391760493862869302672446936509037312098080811063431414151662624161909052458948830430705338833460996928182422808854672780898132359576404438615227535017935200225387341071291670442538508525240907227701554834138853428862880833472536485538469899128609474648431519024815020318688046040139290276621210808426302043666639209894662998285658876314656883188728373645644829817256622854069999603065661434977963807372024632973023474501131912160046443723789824083301325652129522840705799015372338080165362730562679193257566653110147422573536131961746350449398715965593272181166320936085708394592447534409558632675945810213800557790299609635749299220522570199947671614056721735223431960849093492525304933317797555217935152078092144319235729121561098679165595833491277712571325702106527728008087489530323046317839544642896366020753170689128985227618778423340307187027375812117045199214668040338420253305152531338840420918784085370858079338956044267013734343840154032288575158878842185511869056598672346676248910038512662898966952405676366490049790687112795750096480212678386988937095192254350799778371570639754117360872633773050611503296131388733367055764791616441728867761967665475632312753172534882108012570324261124817640210853535634757146090386687448643775607696527874650517644848269476959365928393705662570064895231925231050365350807132113070412470834393527322099771448750308737317210434561946822492469568795164867121204162756162828438863593378436243665432458641148439973770538558237417685764960374887799990553841061133823395660730182418439468049499905138936408964259232426289033264631497281720514784777386877176829455709840319945193623373836668947786710509004052936512122077003291641870190139939597894677431287836981788448493387636622485886740945708871766811204251192088344992935111476916385382365995345842848306926894076987380683730454962943606315651563640254128816935715185658714446733495473378848052649009883933596730620763178776623257752378307374156758182861149661969357353078966646056552467614608334512369756351895391682320049311699363592596578757236194996116641189182872168910276141809861842244193109374020214044650499007789288897073318512015736210446029948947337072759024905508077269005078310628680507696487637224380821728743002447965794261627139760175888947404096368314842424701193141595301844426179813510828926789425941999933231175147351495070637470636340854003656106773477666560780552013636291126589362133598020971435037573471214862935173788001120170235194778225510967599937081400127393136999061556552229728434437043302892861512742823799034956273537490858670104187369662556477902123598966020217893547988562547748488845743694338441208139268775416788072968163060241834124738745988947745955590138877606413673109935579925317874075534968337468485629959309003234425470445207857906693219196519991893768489881608479215395281168721259157620293914596332894126867037280088143139195277643369629486256425372862596136922319896179039263886358657318256049578338224719441552382587567097096566571758005550051642654456588062910340033683922503238246109910974249324501394115420435175235309736840487395061728860902467588434581818497288766835777711933596314682162570976895223844532214141133884575244315282299753988081364710821751844914643065628254790165872229264830518770312550894938310141516348110118465469678720828909172141732183540920942995928886171466693978344047042699270979621073682744286588247071850908591995553685860590510541804955481662020190181926943463768089833298407045441993544642368493312109362233854067155904558233417062008382387665983425942358050988993149913864830204279729403504962949764631371924840472979569438357340001194507991849827789461997359967938323569004202321982899545263045345298646423933785907597065474984815665909476073975288028790743970058405675059060187470811859803057367895957084190858114200918900352458106276480402609876028113856217100558645386487599654125415350363238756806667200230491798277288630135089111518699457340450359774775926996037747064117982308252751681311080854348051585640152831081967073425547514211652556154570420681710678602809231992897015567001921763217044776515298645381902685750330340873157449814811462867866195436818911036356596282905253741408514564660649081863290672516980919219957775430726129883682104403343690358943691086029499390986728381878354783112621267907610071031390648470871618025371498677210108041817577233486412740457722039005966266433136061771981530468754914591318963650904269475125279186841566379848181618318217929604497253537741014588245029706876182319814878771045488000893495746842742508557883839300426557874276805380518462844079065440606935670765275471930993129991665226859207657687206591674290763119426745903647228116624560613608000349657246900716898187985885477416751131464033678339603431429271368391424802140087446695902205294626146240665848472370532019852203475111328608171376862069288107865339424773435247579219996442698391191949981059900878563818741614362071374735933105229721819866336065347781723700575098955992823632774747487826996008552494621832399450790302123164594530943004103925112453860967896481332396673959946322827069412979996791147340541079874631870063877252827438850637633354852874611546625872250077015932272932264188408226688375199071224187484976725593249772284489869648980040164449903266833158442724493519061496489194425672223848749597083010928559511473788996985108544527220132490949227975296630519445859206177478549004071994448150251840470257592034546147232880627068376502192728563566468462874320089188298143487008899221295248336255700581638177444226147097285408573536093832584277542941030671898434316530246519102592892823419692245100273438757372483698612987035549659449672137821175157559549224152732622411281821196083866131487717504355083276476720073792200298255667930597867561560500731009464918689798222615700572317193519396432221144185083819477336907491918995233516203389911150411765620408617670993929005473014623992225459971158083093171676410978648222404651873001082955285913866593743339673087672317072156675488737943523033098520301823956019359310634722847288495522680775650119415517141198599057481280134663414178296219242490475857379872351010600421199723777680630423521098240652524576921227241576669730102235055405350052323114387252106060086246478281100848169375312800357081225337754121841113607214611822180487337066407440886324677954151256842354380650440801669802362431072780240770700872568750117224291359949623030758009098310788658716542211136652536969907520542869020092048342994177839706122106230392642198521286902622885156663015580800782828356737496424229018285111958885803458197831237855203933897672466992119451994166957943782976095943608529264198689273360887425765570315735958789079545242131484687562929125227508512080171624170498431266137471716452737804803021591520560275547225044139538338015083535196236587628594845023493406995577773519379173399284337326709396783191096025463414607767371973503438727267436249246053135902785986572199561322495494964592427307375640167622509380082432340162446065700975252002086774327986650465349163056846060823086360017320009529170889605848005550158845771800792254847807665104811309247789471000139062412828560884316553430770102106454921699072348281801267588030639528392822189980977428440761725629371456124669355775878112806855009340261596419896046688813418039991806420730969489553773178801633868360010786518432319747201498066313252324383436628588511747488103708186038310639157426360376271289501126685539619195063280555314468115838867729461269007636634559875000737754038136977505918707265137744609861616364064686351918011031240756743904965684760608659974985417995712313141052587538888905615336392958253082476415420209513340302873081581486011586849671559132176871820731696146675557749159838537155562764292382249003364189730506937024072661424041762432062473245671090736361995115361625354234448350290339818133375862567189172095727216440312517804466704117539046530965248664918567467724093671816583789671066577912141367486525514559406562829645351598886607913713875981400343595474774249884707784633934243150997702331048476196260078855859738933251739381261357840852255491730072596619886094982046450696482868441130455917699326018515625810048971417730702885733592940609202291849036066561863338596066174988568219967262367634812319763476126602472883719264337702750330201205258268128211270838004693885935345697454648442155026246077542041983780912739095014669790313245442204588500345340602832851330582673175926349897620186603772737487754713993159615448495641599137043163376137636516490688476913222184983546580919815057724412476495145059250938535255727193589703186776977900591989376280882926178780132202143132168098921301362509059306565229774050139848212967373190948846877085165309561150521726668739942733795045036369550876171917011107363343119592191377951104976968915160744138841321593223398834038365861396552329599018329812677644766345745170215020710154966893587403324475285911880038183111442827939864852818198236891981217225512615045291357430687009930973294378639867094242303411709119541766848060228237748967422760746967449156940213624273137956417572041882308262757395778464554338975175145473744851468300650674567872223080423410277208860150751089619344523035231874798946919625158028422646344952121746309169862638039943737723948737447811878603640781234349145255197040308273438636815599124169731511460950172273463388976462127791894773390483109389227201875037604965447294126355389718160547281316103531463201063030563452342584338185973542242082481381900686132334410230849420546861930756805922327235026790218743429515166697938245421307473184058429459569191023055153096871186122804558006300780043416160301954798149652120950961748211120044630865266829975418460142280006357901147230837054296916137190331125817695540454304831704185593358436128080531376517610237021426013068172771855244633778472363941326279333306327083091971562453530803882698166237061231669345324741712098312630467452948597587278565161586677345702923743717757298739185153567259576522462127801146427101427924238151917864696986438428435227964327616606311926830245022402740897178190285670489789327931266326110502961771336409119820385536978421006714795807317128101552495945899757136177618530460877858845686988431282564950523560926351095732513980647238701112631265269774218328908866414595530206376216394128323655703427893492011018143137113796700273566929165053362322702393047410239664887106877619627625628080882474500242549968122856294260297676918888266272946595464525382839085576905913424533935085255356103434023498885060350586320051730024627496492362730210083675499370441197294963592091483908714978916426241662188815105849188041007673679822697736769963654048044803254609576615248952187194969922275304511594735134048991271376695641991715033858003569668154143625675223305726267647396742738273057643218049715477046092645451979116900295195699997828126341299717274228641123293460781237278466125321876178925990262760711018622732581434323359542905579238967799823386614872650160636095492027648598717969435701676167015276730121176802403626897413215115451414248219834709322771010499978944817185161341602420161308029656901551075738678636082962743955991511934823705807323288076747321428042433192199457794537710360333682646206727001054179822906050038034318351717730604233704508644408733276868469226432723579940026580677474523726827361823535479973739481516147003503196314126615025861826013862268404229215574443215554944654860408899044004348440093119089820171432710460130434731685230172314392684460407279478382851979576104751642519887704272292247450496662943809641070301425340565143673796020332541096451249841188108183055976961079602189454903942426781026398078098217216919447220990069852646809651516416497413982868841478063437815460604929759101057240535994912956092152645348619773136590606370065038289426727564294802637023643784159713277382150909128527150729728246363452313174832821173297415323829271686377616219747774418951669910270849742297187332142850980539969522015775083525176626420003790925649571580720519098545968695097713673603602580979841398810141036902504945807761654318014254513703148330103258610569409421095529750770444730944286261830880068395940249064866658582374736342057108761837405641604590153054577867996702228997397931498986840415600551072629769264925391656663111531784908364729177586809298518256070137314781657750887228304377619740300153617210693471752730062580423258496455579330364479676902121393433551828061640548118123953322992195685487685936817998458528887358674004127449739041558269025361456751659948152330749468615260604211788735922046844033563073262909489722825506260235976738410829272029864736263588365130097995678202451846218818084482525277392057176272397262182845018826040628360313009362080173821538398386612504903973934538093236847211091234518715485117989068815762477670752079796197571083973174226959381098783907587294789461704105046297520319510098913155111416023833679452959941876261518569878132188051116730200701126805915500278615339209158524964663386468722661361086903645842580174032993240205375941568053164755777458319920042752918206722129221377027778019175355067484456734627348813581140049255629796208660654187600645831305575538166693430610904488728197232279363767086233292645249145318179089859341171313164947208460861290013657394798642404425915167271591951172706314280790146784634905143523696719572357983088420834397362461743828476510339773737985439312003481142330986302974841439672241084184783717694842139956341658103846757588951069695130627867307248321290725995750471081674237378082947657465421693134228226418083822804091871526750950407599423422214399344384559637793454144669069018861069029104307729619068250051787195515955639066692645141537774762530335946925527316700627391527152036263367681588768157794184633105636258578945823824710667348745074189590935103616224488717785093038850988612731231455444140560506524097618685571087635706051913563448976984949357958531856953859749137983150769632696096231101472850761091394321797092032432420519978513807156549262152249236771115831717351696861319761319586285805902226125931615317599583727112812243047767322339346959235694006706980624426782061661452301381777722055702986002301858988864780686215906388998517450620809380677801870158591294290595915851404517090708164992220486083241791812082109924618743562101999923391641962777957861375012342514752839999039079023359111090754268333117009706159357307727186511836419129053007353208792104230189060176649832040252115019793351554649093355391251952872429739379435948165969510926782722519900943472022232394306215833395155635834339626748521688240351527257669971810364980221353829430504545934251651083369976492143443755627491045756623928117995092023348598317950684531249056768582191375836415013126773365563529156637455721254830085452955137481343363510399899274746167538849769693342676910378754391620444333317177034120439063617392011792307246532131838148740981289155678552183049726195772857595125966970293283978270136981785250887060565716686934857321643814613732230647623644762866722732608305769483591010594146880920213016667649044433490481992305094087297182480867053229291878931421591783629774527298085078624994328686341007325642279373643233555758546663220544911897338251773740020053459522399972997781797781038923421816546700009898188635378408964757338360244478739729972432876607129458767160961935832023227616140806574913516271773448162561417647261380757305856026637725008308379477423814541694589689110856388883173357330386426628322173053042578824988472303049843780540390442233362557951106281306861032632696447840858911252047802490829498285990717041100701917835992203038622855812784281053615316691048235894810983795004964776616322074963892540084277713339089264638584594902566174203351713919484097974719023894910040848454615769487804734524556697744659262913001765386995949370629282871223783526793037139286814710279388152697799863223009083414684693530939167494001118831717437368381268515277914827169071599369310049984697810968130372582085259693455497470163189674706084860911690730997158401498695058244926836169465897467719098146503434426948526452020441024504559855230732234297440992171508858263891934877590166020880068997665921881621163822516401407951016914649047010964532156750440876738086156551397188736328132865779477416911126196235901431982266179757118617996168755668411111279796321350485595092427578830892396243476272473373160139258574540134542308516357358767273704174522647600878937481906186378456861933121623717420701915304349095646991969731625299987836567947297364656703370204508223750272923142446481264887290108155052803214052141122795200709026949364306342965410113066137924319706565524303719119442836327839790182910688781360426975140834755122302913376099428696944411489704460900688266842584635120024206744434651640387427787356138615710464291247591348043289136176880968542457709571561982656186075656424357855740076440633015553004053456939509759705004308075496842599892670016298938370240650021229316246945868783182221011659858149566594336486282434842931256285409886970396527773175473280447008196884558528509847623525278161845883337411843837617774132969778718932256231843537529955882046538496876624462413505327096119402866111109259762263711487164547328166621790903515859130029710440680192557769539554477142550184519202144844252262827629802532231348319396534802995884521963330869201437718822851862073943566122838856822412697561252093697074880006742246764029673667730200511126072405189461999253213379869884847593495259709913062539209235651483885925193433639204324524378600511193824877435826633563377148051190249655037835022018625125886673878917293528816782966537706263916380405853001618089318318931723970865894181529644989296045585202195559169300056420565613174223889973316828682406545397147011588906811238591273232472423704234111992034993989799972812850538133195380193181705681469962840009320245949276457717337398468226406026440153698271776438017306131784764840004166115495329393102740075762085338190614958943484313638544942062456201841526273550369622696984338573113408367913900430913998447525828257686729944589774093970951527227227816721932838191364595054796375571568985823745235486819321566126710704186979075668191997594114846030411436938143201015395238319286384735037482656401335757953628640054265347959099486035471225920950841430120454237099301134883892620567625639917226982346346099657100836103975331409325339928626088259919339736539387868488898315823734571832281719600230056404761487584397413482080742944350246603160285824082463862985757049487079176345347159490702631664509404094616327381365861507706447088628033318087844797467948769292125147418651852336537294839500716173181059468079369672119101986665998109106340693728149547802058442647258990676067590003552753319643983097796585402492642967819279249733821214113219094228283980332439435655068088230084703595745747735648545666280014190191549565283237501109654480208866899423660996014145706266123165122079205932405369774920385483160772121372024423433662393915475037426937703801205004760881818527542493209520664327053684082395013713090508765915367421297330198918331221864975196438710378198916812548523737672684085482344216563787050144663334742608381513197399369013405273925878469606498980251983974065945480795965803671762277943588809738521842447896253080456781771150893986296307151493387409280897658619945354627275373819359046309190534349798341035118436966960238301593904170145347696338912559715327396696492715850278065324366769095142498515296900689509098848258880240911955557669149286569330086605117264848526881365865028510421926352294496963472506027686341016052259495500017573165785600787288623517285575068054716520778592236178746282864308319712963251069063822067300769590150150432404712521473915816530541055883603888959005340538399658715615619522953801923082465630890248400430288740570273695100986150199510389477879268816083310200972242563027345033137346982741610268849435717616298486382959355474086870737019205540064373272997418612923303945952795721450179125746958043100690554359761282655230088450332572935126578293939338957929470786401265314678757810319037947098448571317449137365225305800169995262272109419630468849030442141216153823359183519790122705821603943043459623666311436100107532869255775423436980122329459691889070274957445730754635510447794562953973497170266927581914472765753125409274313624913646648857525308871360397936158010653968833701456946509300570839122955662544421336097607360888625198350343801031161300050405698642217334806454790399460890531966062480506882842615311989343751559259796609361923384944850745327054985427318273744959003815651808392942227836285155726957770136581955504141754666466951412197957171932057350048662679155376450665968327480318992726825538812801940721795371448948430872512605552605545243806563157999800049106951216211334307525027131802948075069667988243691989777567350407921468036853908116199138817086640715951046280283304197529162255779968937525942833707215683125297109213428827086212394912448932442183469265124243974307970193509851988579467957183815544460897748005723410187745685597729876048835016296105628556055049725196588079086338045730448534517139292789278123732628081243256218895582423066653380209257929744265948547220368757590524314549940458764204738251925583640570633078772774723085977449572823364245191645851942551622291974191342771829268652828035235427973571389207892604115714206905322435525551084523345654422026089702284427749078793130966550604976903462713438653660764028382212098957148611218353989567111741064124449743426698449803843186307236315990445312002449400910660686565851828656120978984459435108590349164418470983673544746153406299491686362794556599729471616264884164862724320934420214586339343226189637736450689019246238176967099076778792886993299717430140796366875200515793899027434598531024563099017111837647396168130113255912362413790074991415172075032454756924293978433084660615740457913961578543421159404854848460755923529930814167699125400230962910510598505076812725387552853316187833283105574402034479272254539999497241945426857296281846347033514187377699906970446060688097869200108846224057822120710916693333536114772350488100998679835434469215531019904744242901139410362487294830127356084004557167484659487247149612928678469139359856392727909748577058686247973368103432037340116117427948417681362876999581657872202185036145603868544645860761672083900164005747469385702002702258557856599673390356973417796124988213890777096944100783728691471327324748777494367030973314783476097792647150349282225847735638835550649555169402322645018949674041294179643013938359931096056983036855170077934455328353984770443706625275450563813196751254239088322772856111753434394340144515662298560880223047861688487429365624970995786044555804167811179216604384671032040847235309052326885667534668255289475544121685941845756206341749003636353613754036551072674847389747193858674639188172727403565806244547720182377046453106083540215525400210505515996833740260061421511080506820068390783767698147363740845595031438399299476586382145115471356814061965856200513484101843063962157304358541263867652024202142634775203855159387168561668434676007855701596286425521984731080369297142373824774386855251521922672397022488804640432585834060051787279556127433992478900167895544698956193584336489774008517229700181776129235643999552787440842836190425536084005955086555906295002970550031695669757573992178397467594994764132378981524723656455005680808461919028104741999904377222288669142777355826638586808793391296493821448529621106039352026417028727863088256323499482066753895964705866484407922108972986416208898914038469999634533870110010345556925169368860703860836966300815029426301365679734501519601613649720428244784083627939982575754714785967129958298590556044591511400139597998884764603085803209277877699019089887429842642250833598878120039793184292290728622348388248730708978140668674095288041855984435975322466149569626134642836042266692764092068892787928527011634078366981610763098987319345572384952342071494461798119279586599208507295205613241101368430287540012383198609479959933577371067179755447849940151495201617368664838228001521155801046518934202819973292812717075539399801292571559229517460657167732576275343531533499544820572578715687123559475416956356846400387231822972563112673192515700313643033495916788659805243405735469967978738446702327361950720481347094919230243291789205067907724264926404805197549644552016484198882494890995277495856865504938953237776390866569247693350591609078969081803391843968493688457960955235313854180801115932191088636526325962647221500446367465399582146715835849741323488336690877570049660447871869869299634626695082361498850570485372680450303821063854312272544302586016415459888582547071800668850473417265549774148661098662791947011151115651989869654779186379757102919978347540547702245845964246562731216058815831658531704046874395427904419911304456274890911312740757024990014797863900480614026826698895227129241583902800291886001878005284506046095416897540531826277932315674174297312914224123545089228027753171808620489718864369519138199045180898479306564847877816550375426785690854078991843591056845437602378047820200758368512442945303937511301911313494955643811045799393552675720203977871236930509795807504395294123102057685137260026817585578258175314427228273016119648176178796293761868792785388479469272827363692648917181439711454224702236443351198445686723141706397032893067131972903218525030523078162202020781748946722491046681056721291783119142866878254766648268552197678540646423498246563441355955308611357828103191182939821229970145821844929021365066649524403163543479018697367528435697398321824387865669214133293306283056845287856048403109253634016357042340384867512076302240005530604962318214304589971271507712763769287444265914593787085331169533418126067250814184133295233054142064845445333977915428602854167083764861167460771757064597878843676792106619094244510376253555121331620306317255112627709851360077652141292507510683727775603610472497408593960898522738015618768791225312342054983271345062085801057158697048913204484805223781093834256050847091181314378898224718421401326972330663257960858696804282351929440736375361538183768105900139855929624715204079902413174760429525361526707739211532023223496035463625076858012575078060629944919492729026646912810393375923448289503216128643528532078357281766927317876979386682270657512591791162245835489417930976481312366993221421274002703552810407031722145822970642337864532461507082263485492423439685275768706388551188445907897031474977421754526491733441052728561829144575316457445539922281102253767897037019595942486236505940551861846150767654404614030204722017268808409812704562140560141376805125592706867309719928460288612640184811930376049900137462150413083988868573938722893680266084569495509284862443896196151884695200762694234846667126134989096586063192258514549953195655314027828504105429102172447399876448182150623716933835790056587398831937928216659000479756325654847101404114668159399066365776509944580070744610271770553269996163315977299885223820247103973761016572229147109676593941569139345980237355144124218740780293932938295024395527555811942838079592691084859249908558513063889116391120156954004974968202879655730477206057240814078233674258709636554248822025616624137041609093024507854215094182577488701371454056674749146407910025669686884133707610491174679246536573959647626057829708381871787848031088763499387806753236327265596649588729087518726681110885967858647895798497076036226911371364375802826005759533098653900986007622173346193166874209157368532383034116776343318702795669911820216998673457966601931399700219425741413989502347564838024210124484471672413530710060471096437985968982172005683812100803954154390463153873835003437961462742391760696187468314727355974661293296209499679025483285517629629841504254808670058297123601992065326984821088052396361048654079582959868344285091040221623486551779691870405277962298324577783540325489687688969581543327355848773604840779128566894647423142362403578810423512775492875189295250882766968195205794807571507383878488528125949209256626078780322998300970669870296300333036028492572286504099319432800863916472261506934206694093924968944349178351570982612881980861679356699356202771134412251755569139148663926330690650303896371896513853753077669724917899529623263426425189555039626456574220368192551357756286283783874901731378836157462824748146165250993615406054184319838559262301067387210887539923476135473033176841845764674359149430293921229134953971205544813049148738580552258050986553269249124504958933236438553560518993364320071780793367467824954132369821022671728692085812328071400815252528006145148220779654257572959145364951546888996146742795847271901113199852588474557124084461690618303298474809176072776788480751150876530291826103250299082564730181678072899789597013955180241224902567569017974823072222376031938984837601202959477366865991941790833968350130251812573593192461831374867630432496255969295317708043707333416848602434362774564896415868644875599008660799042272692923878900871888519062905269494979101037954832115723965713463979411251820712902338759052049216924462949459440915899012463960620220556384470119347006200148966507403280159650065623373804389854373969833404413169212158666012933205115463655983199055389882545239583491657994911143659813370770503227024701800826454410421912509973582330475785157506426848018922980531876164628597142698357334425969352364992450473273992272833752033961764195138344381211379009310137622051951660383264828959894834561140646304533150565643703977055157613333649588005939382800746265505370364804395135352157408830463682899040683952382236291811853272912474327609899665194118483471698622217513021198217175784340339064919417957731600190232575615235469627854399246401413147199084866224554811033894591881372466922287827769174648451323390664430843275650416960195310489837099628005451404639858820590952478895741180149605812425867452089562818619804758150993569597392579295624092805552533277366339758642162645198563388944917561006123902732755644485352500058656262165452507458486802504491520877437534412589971752502695786113065182072985325042655827078817994658700635332616005372692488188935053861888566569568500264889957742720414099549456953293864623109140598446098371650975185135805824228229327943395638176384700591619095449216900238226301871796506573982230654218762032399661365147835048954807381320305928120015838268237603267014152286806885475695806664057932649141196690749038042824881937805847504571787239676611414133095798778313832119884454271134449723910644210009254490563330917622126275346636704143331094577862263640346134668108343844332670475264897410363678646264245358725864608258108981226049985837444569327162721305197124501156710301191149577757168402339323281391042300705783750014027396137795085791042452806788779154194688726675850389529144275850025532310825247903692025104248981781061176579116408299735159952034664521742850921641944154502941449868702231689818108475779478898676719330527157708982759749546191396590610689552705582065564500769596440972919492902173638739553246995695436738108450028925063320344748519129960349449289421552455366274280451159167420878095298939906028674934780372579066992467268668744791542001252351281648433336983125474244665581582150748663469444275195322682954105746752105929384626468779614730697698825124626730998199464465721320266888594690950754640069568131912465219493201533666554157448032758738104157069469351538888002141743509648569405813582708109525128686970189388789275547558110210389732751370787114378068371117890246322121685331391842617401453196276446065138387420881962478077520340200531675578245851796328455047903618860940700690693128032234579102652378480243115729881806482954100777531718355874525791489246282293835482692590433713429599163329308542251109680549283706359593314134730588547469343606263220157809762145075521413230048125058255899266280057787455678857279243273271786056274588928714905528906120124015729259877004195052349720677485504258433441657888838416243410554637593184007937962507948720809714759875109346009950273181989985724672435880779181596306879123177698355811389602654524202583880632940809850184438705604219881896177790052475191294246738800332798193208098764164926136703778563985217855279093260473557349963610192983676056002699381694454353436997597861890554790644225239573227550779233734126512681828461577685210805086212284307344504841921566942804396459918791336162085614802396032532762805970335628410860477871970537075524693088778441696205614765044666477521436863397903449510143377566470094893794645888159874894822437789170237912246004675356223013834643131629821866565273529716577455979570326864086295823835536000872194471670006489165484287094799552054876684043986617768013999171670967594744363892207362096658996337961643187048438092732983336329432091938129308417628810685552066150555914203889966782229256038505657872771309146784109916974693603024581824473722414574167567561686094783819708101066204442253562790417470319446448732444264760585770247088811661717165779026398156078260231638437169624986399503588754578850792911859405137012475245182642053720046174909379389988568781501162566698655419870352529740462439078612468061314820257485382494349931774069954038397779106538313012043532143812507675094679748611208890120520480810794455282554276098668018948056452856813416107062170734484761371172715173774023649919181353935428497496203882307806826741667031540629153600409631315835399361825679353097519996741799228827533117784763514425129048174017515985783030083781062110779567582828975957096872253525606628484740046009466814673938915736364195448204488619396624080896874981501132433660260982458615323617647615272341138935366433008515617980222590322973543822282600845574753446219054387469793409313782066856145856695332857456705446797489952730563581634204610375105419349916632753763097648932343376257063768153716223737843909440614165037605898807076937788063520378013701589873749563827313894311854201262822774799865127236321661684501336379141162142927805968266044638130243070462131368138530698682829770615362871525515459220109674585275074444837212652963790635258112216250382365490978172999231733203507165764611571078200786634479475515281978763596331144443006221027391104156233563873212183221538891980259317368620501759881769662452764234531000206389241772267458978012511106521432293266152345573932135126677297854502830073741009427582834385261928142560578225828197982871974568556000807121891154773271177155172383090780612664856412812464086057903521548213614003638733327569191053628327166335601032044002788798463044733907418152309999964372858561628531781548945993540384919165377260279041451248260817993124936754068003289586859972577938313111012147567662975614086042781132925625008861385959672138185869680779754328305569136375642727051202124113493889178995761025345783256937179627024255743294159201833244302071834527579041744692392314350676917738390419869005324884125640642679435142177288917717704300664277665604074937778220301927314866288555406857456044499631810777933777847763341349873844718158416808094467336108890304908404833109953286123011472045242037862141187327776938201320641493084158057835140348738281340422511599065885816483978049784947814336350238287033687914595989394467302187675877166124996353516659493317837341233178641975235450402950131055952843068322357313898069032915136166747677750545908405012487012908635100698401816452988937140057592554358467281999203005071358556539374467105428527152004800967329067883689416778430895554376837315849505360587466492288242074937188219018899846147213453449400039201799444340429629383844533047564822995273485205266488625443975670445802170418402108941114171756900543420996545418562439054264947617795193733636931024832279118083038766443876662893596741453304744131876633239926053632625604104058166296928792513225286279129932328749999647088722725218738057925014731225272594912520626096169841199043216364224322807696429984451495331693501871742634754130849491370056906346228792230120969446422836177353147682905691965092359911332344409014152911253114082963016571896646779691139355739247759812172361759034199929537815377627678509905329708565804677211315192611163493871363851334961211044496459453022811556420731222511509411414854911203804288634485284557065549089248595595577593496719491501011740554164023104205397064521372570573657227671383594435545055945910703678051477664094260479616094583000802697162574575746291379776480594662274123710253038873163234149773834543503836626339477334579142710058511510969474140200378276563645963924144710588049813018292539418412069224213005644659060997107853205297854163436978382345680607029724873776135562235929923819038592985551238434079648083093984440362011071618959659146772022745920890414637910228217222347859029244299083529976778696211683180394466367647316844112838058961232656956506193716180877768491672885954373042892025590496054677420302737419617211513650750971543237367541965329247798764002546490350546385346851483610742987833757439446469616390799666894026666065320873897783695546078616849022571736474177358988518184510060120494189787643083651287286966043135412598126420448712228562637063605878902326715569329907832874136752279610658333360128382166731061152236943174003914022423869415264926653639177053753402505081817418418967665853000691865323935366121889421701848383069311179025463898947123047709189223053770384092539259310373622126188946797862991417460518454611667880400566967687887940583282026575887517040594281303684692757958587391629403568943484967017142731338020522073105050202659862376813639518959266709277836066928859561797147656468113033845923610963686820044307562046115377637240785584017316490723635469965583382416473552641366716846091713023922690260773536332349588453138506101670334672556709858154613153170457890845374078719526499166695358919144143274219156946511335968304353975922610243894826050527671777903822484156767508266794533254784052005448726208480800533140362108535532615790992122289381118344125799895308652907959368545275883192335853710011618060436286429900539766504747138469190893399531421207476874846562532331877914974939323571243700551536156963870233238736067859737856320872067201790823949142764033599517813831811047120494254584633708007215454921513445498159788408299464780821448614930448563596250161815854366203369500344928326969783152481668283792407949230472557178090704429534200467235120782698030300729711387397393462442695575100305692675507851179201892628876658282703105171538793909994035332356652462717257247241378959556130425236080527262914309654566745442158678192157649247154151496765201799806170641403110181735389651152568902890518918348994208533357320628501073931211192351718737664824532280859479072659121111028846036963152415246588524855867403652369162890581220846790081901032362086855213444570453232206096405898035574416178721673161546028769840119666141660856767568514186783112633109486075456166824615248856063109458154104725126985111315378412052116477272522507037308914841832004883764808639766547987272006067724552805907313778134447404626396025336407683671326614652685041365728703501845418246557423969815738703062823749640600749851707729495137152355890958490408451651428461465072370307042396263028360698019458853323217949853539720581070249092634483770100183086052367209286112140151843445036686936082293024553060762107942417588612863065965804869294052841518981959215651412938776987323397450855244835315638347023590115258172445780486965183432978960276410509574530758907398765236577408032701520833246044615701699197666802830922569223029231290189346070543101395177499994945159073082436098728428587258650851294704336694965043522614862068023177715467338028959849586301193683963160618419812002050889549817857431143591232319077013621051525617687422684338264395375897252618126317640257120006393381062872519543902471847885134830127022376644947240090465877733021900859666481089020254150918121465968321824887348532332454774618066046012577309992195794964726679485322078702786117419227445287873524580633867280736574458842136542197128719760861345607692616562883162167162536580151063818675183849135203559249328007596154724093862318353360023640453386476001857770170387915395167013743974350129944931003357033173452317491587287456221045877555608608717029166799469912610607055293412960854355715704447039530305728424882343839594789636896092263827836902555881236074987840878401931343901485955000289415029861309639526718329348814297796894163657489607084013898480524281741715092107045773608409899620619569813842285278273707243564272635367169468344334718318592434632880672833191165874279860229509210057329822547132633009131258721719877886498553881587970809308118391463930663834797678769855517084554464320079884306995616322939370657003843733408626543569572096724517854121277813916028926859329365906455664368967828998081258380254059511570791882193350886640815069094510918629359530265710750641793209204980536690292981402677746771442044183836779619116445114723174989693496484486912570661168218867049697092071602513474436292921884303060009824000431453720859122919143016837734139494140915726115917020588653218079036534380516383542248868132149784966965871214018936837986567214493509733659254389055319218969099736713378724599301915689411259911532707838572442496474873760874700030215097422576813514366295368128760610463413126085732387841597268417759041941233535735312334474427916473654857952639755314740189407513780613871512716758387713271221316010852977891452824122475160161083724417528783881978861697170001782071519068825806414911010334936775122410746074328251206860511427064610590279956462486928833442619972432227959742248383457865009719914392966522644588594936963905690992692175965914191763601363913757902525555815714776817169280819684291837069562436008139658695342946194026764621746092375193695920272675357606003125679176901298899413251033482235220115364498593220607123483238675959383110774145240796500633201633039192851326089535583140388395451569729641336854659842165087326016766034148205024338183917533277490376169317482333882501144385990791095398308009114366489393977417220741631965664407222522760456949781732771870170473820728573526625546683566311044169851789843498261617235199994535060861185615110318201707171852582366079538246283287503432550430919543614566964773114492275224086525283353267153462558302231128733197438710512366250461639525390356473070424875115879309318513363952389734065619507934183057912287536017358282204375474493874576317609009298588067778683334869871151475397474212183968140562480659791540821141938791515692464840336763758169990631421097428691589013351140278593191692654352815814910060088953364121124598268396403861818299030438618876527130335713030426770986635297715823661566986569974978995223164259826374145924155324648010599723067570122686130921335054197005866519022710432138783307539951336658189685379184757140314080529174802099988689429017545199318490962178920878482877295115287634033749008555335250570977206672769976002223796841057596029424558982057365502734127225714305896155118620354059925136889168147668273689367371685896079953596010016684233100320178990656514152662127669504843268268971718428393015789942943836893799589436049220707238724698664788774121250002152577495254863381865126251253808823121995594170817446404404469372020221794794572912843364192682750111522672926198363587550834306643943135864942097437392031376146933560633280480524166765430350227888150772237171257172545646953800116423470270379989129889043382381989426036943495537121643863427456374569578752059130623154000601313031709840410153641815337673579527519972814401985778111171753617456527487285969447941303103295271496857136093940243069646137540586600559356956394299429966033483613175653600742590921864828975637971324908215288439166739666309279011357295407388775273948986973621105695648331433224455207617686484249280424047507102808146724766965237934084563874629332633344864270209737996690910466459003039164462776074256866852045894939275040533573811101536208829853409221440427346539714854367126310996160741865841559847407207137249676496297324992271998222520522458589679302947590267098667740533232354832637577869206999939739484772397591447119819062627557480885202276417663486461468434008286788772844733842133978396052322968664524622452020352838094815264011323783635726394957964632687363852999819627059718854831172557866056956945551561050855260380223330069411827755057133013993090092318815480579188326884431342720588749571448597674945479666554568653517034054219428924399274567263605493977765583978024472802794481761911726744672611526796821616296543071683442207662434194239400119446957157172764159670050219814728959198404539449768942601683415507021357254617804636970744551482495439517300209382151376257330417170518063515083740939584452794057692194768205525233801363460012619443646569528211212250373325561826679518786355744503257192614354346212305639896537955179288452665223603032561610825303938017567959603352356556711192169077255462043306236128802967754948478627750220330829244445780031660625899969391970927537448444650601014564661819464656563064753533522154783792685732715013135760902617663628617317445721305963788353868827664611757094453867414796867203387058865914711535752418818073861657883711370927580352958130035271241464422958551006045348994638173401827006090406095849758167870604512054179862239253587786319298549776766409526733084710456256250619800695968526931399983474580843020598801496055483564815948347948331408163970066795832229629933546185996459317301349391226397817433783513385844044041110552583994060145166789617403493536967617989585216146573312980349813318675656324165941352027447960979705122566356470329834261346163580140827054897754300086212250560675728445660124353156046385803801400837586603532805999578931952137205114911248150598802578842686024506942169022913238539906260265742754352809343357046684827106241594942190566327969275170659076008752540285144878862454750543367603058379596643547888278260904826907854014102087699653654507434095756430957918472407769783012642097401284684105576714115810158416677472158329916233513710012533129789593263784928066448569664290208283362859641726627076233426648243658533226454218755447282267133997993833004220115094446663980665124320080483009160169269724976472267061874599472868662433388848395957709671315196114163605305968779854423228002092438791899448970289121678032061004607016397299219609561019991362901043581425712224018715227676735302142791952184709001617540779155507620826165237321549244251916336777271475415875400085527217878139203020483032050555730672884448803753866207924211635647507294497499663129389193213867266864683061886131224584299846677036384993567552143913787384158154270153638341607397840055543744287063227898590660093397067567579287168246952826744778733819779722909344441470912177177144649444850619265210618461207771417409924615383513725057521557747320018013381158693284481962796034812856838276067452809359951117973229680755821387266069271405204203588556904417652884602898397746473438987036374216388541476758265760586468629091384484168184551735996123007046315981981378641915372313076153384502387842319212297997804944307494410987331934789570639529009166195404904432240934567862119184788837416962806087476735836060492518219877333404164792628235155972731153636175675807814957083584655321086225696252694669654191159314797291518165341878557949126359428819316170521625684287509921194960882925135187199317223041912921547734171435493580683580412873566502392181977634610838736673357372436055559662093499204137686488409396148802592363680202244284568491159575663359721115883841808066364111322505244014449674290343095355235267803889978155731806647934703413846107135200001281782599256125334639842363109727288642686825307633499027953073354007474073506616769851664979098174803959250491197372369890440621155436235159337458918885786847233162524529260036516273596526252441484743301736004860325375993604342586312115469033068737410141034175961135221472309937343947465913260751843982762833721442729429420953690433444724673926219071631839105702577802211214663278728862929487607596627658049618085489951909954934265820227528573244569706730992358395780647809689934854787814647109218103465316651851180995297892541246803177892816060815527818135151417385811842312227031880804920615659218844621475019255393346311863075997004285847821064085069061191914901702866331971867514331996209569481489134621824748446794367648187773559364016384220210065100386746473580262479215652208038388937229652909941698263044481672771064945245319073236495418056362974902582591821876219249687752622286332820675016819142567729675317480149140887111646943562332968018433073024888813429167204114133242337540842550327550120159515131033841437847106284593193791586729176163882994048255327516076470173904073808574391780766009509338896121603538836666499045060263042350287007729974963943251015844726060870051043710000584453766513224091570148637811271927189519236876106788332052998691433731064801343903846831683344377378653339847261092416232436639259923862316982456899256806538954062286672905343782916906189065806649608424784960345656041758728186062174658447082008432722916002514307771726584290281628889046407448421859255677710869059388108843715388921802359949331942167873973348734247433143189970963621826357474335849914977231343514758914983560975533880780520322114067269039445851152653408545155936655409740445233884795144100613700698356227180062279803436149322293420232368816772378485136141667065622449349955048236687941506145338275010371090249197643370365005887232661136315389449321534669984473700370610720570526879307841257134219262873525391375594274837367952565256638731668478962581913134887114447225949978703811115644132692981781326061343578774105333967080917805665528421079717347617296984437624973739219820277975402784221851737859196531160433946922735997135813051797011631495912121484520159175307679510676993462077928647167103456648465310855228663491764597959408558390132837457088435813078133348636093487557598393312268504781635656647163992046787155685204194958680357818962372088637371531714266301457255707913380944091555237733627198077017743309863111615607623739264972057652021297958760540574988340076051113503204363720076689656203736922477952454115475085974212031609419663724528367946467345617209890765401777135750942646099875570308258460373714166323258643614697355700485644703764477258776535554418558215498550140905058136937771644869931432993931771075860501412755676253854514725233696816622312109670618151721840854966402067713086821404517210097574222001929580730498921002007763870805380525033823208403507006078082754606590575063569776389074421935319347404874392351884838893126240204420222041111775378824564582747913360878199242951879412037450685619988287559932823275982325863777298461325843390725498856567028584224465584224992230451877172649784584348807700464333864394837367781772939695119311730532363925418700578123716615492773480094383913409234919920669104043404709247364863660487183166156659340542089932498649544742150361415297739784987143438975448606089646422492176505896843689511901484545402468025468019869977460794257105501917491431260046296881493264609078538859293338484879935068433974983127621725292507585032757208332100981730254681073621201483355006160314916082012807721943236510573693640400741578775781382947777809961401156961319070024659720488338519175964484463223045396425344502145374681252603681920120136794491998527940045900199152093926562475465154017565652207909317693363997269896472599463494695986783806719745257668920471987245177106916918310108111394479407392014508348269319966012227985342964635689854925662155145575848947592195342051084589518880100951382275486756486958469482859057194052874182666275697905847596816708257137583426356543852803433355898749839781191099932094542965317157129394167390766224142379562337713254285172691549217613674277751023495103588068273751217231167983155627061540639051903869197248483816571625545731800757915051202614123761380347141832020048960044098566050368576671049404839686568400383348463097351920070511649463809957040903639511582967850007620025779704088199729053531910424377701938065008095754890105190062214394941941695954661992216055939141429465624852956175439615045994909841023918814499751140732330807652270657772025101111254187032356002051696026783573707289702512898220202434740249080586580348849744830288819931362583192141100489357488540095528528624195247524848259243786312046913890985365500423041330950963919104582374177681250972570390781797250230770945059936287002036171814586409371709617759067239580107077761331965952169088554451795376099590133360782559687577352499584068564158851500381900058172136599853620232639052767040793659140777415609702341390559873266389459186915883228701452117412680280187039172258502054087187580476655522502139714357864706315081004512553934677594249532784632308780785363177249853859396660243505639697259551305984189799166176982344776397165371316827257299415948309112216609527502581775044233845471893515252919992128173369019546740561472488010066873694868709407774402228464699483425879303737827917400305223252671047817614264227159703097591076166791468166337326937166785472305864850375885707250792576262638125500310808352051901267163803929012863695908103192773510314402056099343535726303645474878394207497121068215035215894070572474504734881952606778827935385521586816476318980360356391829477614344501309664908970292080677838257511647215486507947016389684869790687492015583999055489161110017592111007934099565520495444235023049836634502409020646784790505685726457379957312275726340664141638154397383991327201102059898054048628743773207928326222083300784347095595439227517487977181795152065332558497796742755947882051388500842905922773176873185325187465740621069770485747891854008734803123895914909856957465536408492087649110641743651697235223483241909907753407641385001185256774339283850109643812090693447750507390099583027791046328948966645920867993899388472504397486860424559775156093038235571780607755111729186452770062361141902150519299871337705474509550235844206256531986505924826276055083453587416401006679062637863371497497499400058551423781401680496619089058761207291831996308466710729975207072988315316707327192228163187410089969776128892618604745692095176286614890140005904164046258648438444122969397432894687309120223858294085652953496662731791938961767271367483966674790635428318376865947486838384441189573609343647961788856111151838247636305591258867396636733464209096381579808834012985490736678190560544757233141147340282295255977656996736764325228187984265145226277395542897266502507842833983622420671620119705464084046373081706166110291557231978428595876331049693862782035548959984277189047098484313545570275013790990215790231126779036263015281716544726971880203200572849592955143222902686207514590903478543258001648273720710673712291172967023955912548699674433925039381254120663369278836045675239971572395351980686630813421403800329625689497855978834847954528206784731175272063381319635972241051853536729925602897964267989995348531456952875213867085693431278872498222412733047886077969314858515794791111494056814084746206956451114156136776475333541036906248824959124676116013370250422261949712932231366450931287218386869776941425308532468412647543456605791588671208418326033069694072251349253580431698777281394152413479974273174445882699083246859475308515786731770292434443609149217323232338983965503603419356137247680764163985402702277594165196429925074776736900594803279315496193015408364336703892159685994949803665537451020438259120527157015112134988881000211889486309388596432308893804728269689753749152691670231198837210395513116399450556032206309578952275781776135427735995288986158116645684617263463381551978163847705845972346486496137969470372719096174246511719419199645775787383978542803064726917543630851024575816678007006736767814810953408725946632248501699471314529799040856511004985930472244290314381759789879462176227308250648132011395829597154762610926466887556620583061021762923193685918292409634077746926684186810860336465536691350391902553363875132301940981777749599143820995846743920298160262612325746866469957624053575049134677008549657381862567314394285610569613383350640420331708249978766336382577126335874124666813892329178797406560386531994212189628658769223214265446758817035242365141562472481834415869274727955452151996478041481561635433855828677883160727099134646049221045867312860848048299496141627342567525687975468590829863828379906252217335723188449059402059888807929116850818952738082992154129839376559257774539821934836873667475923357756377830856920029042763482468914726595331231496780936017979916501345849962730669445984419701727343935047178318377731627588161960167681285289620951879432992637053040733656350491957501481035654991490067735646862167377907517296326979172600194635504821461935765149379414789432291837610332612370004101703142943463286325750048192426426022077984305486240539280568249100129368148943910067700842224023717314636921215900002547702293025464599940209585014529006991038275393093096468204977660387469844497934025450098750974818053993834677924248832731341018740859997057544610027688590454987930647786228911521871772131548651018952650109930035688858136272957582919136433535448914812736955133826408490839236343875425000710635888090448681102816835746595959229949755986595080953578849628281324018886400388819059116312107015274059348566590654421875570016884231886274524500529443871963156126421924255140605819954785747039371146473585396465457347739218046182244452739157482834967968933604882900684349502978907637051364686088669650874455000543456050963840673270016698554912720648225562000397272427548116110512569691774349531343415584316634048435377317074501407219026661432210652991741122728671267445883165673627970441314572718730345460263178539502735583778835826154841704237617978254388764899391764621101968807194375823870304217310573206345898710740837187005556014850451127178476682052346395878884785151573861567779073448086764342231261864055072658562935244241615260483221629428848894882809204000396123372098499700440261507511832701812463936592190122770102215442684330915244951451169284370832997460207946626862498647201178172999409892179644258968235332581088955072179747142397809251000873456925910168718446310669873126501050760223694768299406114823065098624926669357660047409605520668258180238023627127306426999355412393813611362702896712762042025926922710674378482847607689730190441355372590842104013019726805666285307861968154202512941817968940065075461138614217542855008271434268690145586553063880243453751265670020755213344018253927501461839678245178433800849613431237035526774053412023645955385318017776295148397448754046077694439987717276760032131690077280326081613162430168925277905642469485889996707310452126549669116804679846407651324248175917314208258350719467494263252820118396723738846232941823498065278450527117887294548043699484952126518787447347567284830702096309675629781420032666085112231602136415796904042301054186230057719436064454616134548162185697996018974951191171654813223781642294940674106910461559935313806084526431480525446998448981458914707048693380690679176713398896299692190717785825927263024710554049344367410410300670242501723306546852882638335401486208440021564215048795071327110817892447224578600332924593735622093598943542466727968431798695048593830733231460979676085779709130073306793415462971360683100745210678019570971885431486183598410772314429735681461789834094085088444972755392322009451936872539096320333813643318440041769589461602091091812573829605920742786293811065092723250329178214298339452003775731236515098365253709253137481427436587729473219307125777812222049071603862721102537223177029964424665963846465761525879707288527077674831838369469603816824777022515158355356280902303954866956224709980303075772454783893233955431030260494562578289546428799953801829749193582482945702094717908628705471200871449126406297124919502816558007462878682838662607320257590443086248268411120569705053693755428395268476812044824510070782920099742427536222150170089638045018298479208900461854092845044760872683246471203576870009663825066305857576806861768420319779257176669362872823227826884188575765387621264540611611365913272151815911324926846729536533095378856530738820431889080337471115627209396978314227786091805759697083277931336068419463247474890672621691411125263938045824438462797068792191398007272529506213523676430869017853988382126396242041151670020666177258601141433091816333113466464280499168113307930023295919395816485914966725069999356472636402160208052156074231701976554644533359719443274945940706021005442727810066560338557050649786269940310152675909937082060684356496572792033701315233195410865773024703093617321434164936511600033323010306131743529910658245493433448190354644496762910161947593675311516357320947870604993198689512847029850109915580073449434070584943711243272949895261202995628639213760444285468334746118077989490345593093531348297992239486861806859255447940947913234044342422739029480139832163214189356138603466699305425086829760308240994400940150056289522744296975516438515920197285835504446232173844599850098596033497373291434238428310232555465760323159885650646336886443745031136037057268195410857811268622670527845811520073618054958436531286867338222527454858293817429335553313885305814207661262577480620939860241650500985153180055923518982033559117690444672361962679780260589287563748508600909544961358124644547794921551099423435975017617765585437723607052582652276738327950491204702043398166420193771850045545548389580199102441918917653295333236165488594460824021059648364982297294061333145361931030796609835807529833848537463659390365604019543194472369543990664420824881124078560075658833177818872293795564455837549846691893048316741588717377234927274200238073714348029932242351928800073102538319552862631032541520162521028580194067847820728490450531217132218824612940517307991857742300958132352052411041866848697113894423020582135268019588842393188760824804985258670449389738981345691176485385112340792404571227048032595758357414753695293672773616274045258738180624312721933813660944866543584479001274835126524026312605420873246284489423189563715798946919335692664456723331563599159601300228048317788859918391732219938137357290331383615234602528733875368850824412569399957819029805572932226690823152674660990222455991478052479064650277583536962248196446372575956726986680164025886534106918161642225742722040348781037927315388973258751713273701795039620605221989777775249692074922909914010370259018058062990171381549758003869121735106723439958788236281233504198653971360814019445628005322577990867523746327241550637999506036863362832068351266908990837211972064793411491537462491560148644857074881832821935844095802690396482949715575971511561695580360271284755350364079952261568106462176803514687259704767181783138910700890523501683851694897203078209808898741221788027966922527575938545022294682462972527898754981118233760351207871543572294411065446245545594918745210937126436581414912388555105147840861238993491326895410808168752206254711587539040675684842866269485743481164472587447920164021723354113354683912515767995482267213224509726609952272540064779219154406826450047305879700154483572343065126526046863178974687684129372466884277167952325394909011865132379959920199953669462328381255482820826355458652869875572352949009624862037159479571780019778945978280683370668705320577458760628301831708198083915023651014071199451025814266106142946948006285357641722523994245283048371409281114143452354111372730306360464746880583950508331002212781347817172969679074390759152396947499159634721913310274005763150037892801796936819630762904225350577123163282320159596950281280678226340100574363257930969932489189678941280699990999516193997966320860157885936892146723720236367230441772425821972450989665803091945693879118892879626177605702133648671962488451857063491189855428529965584156033567916590845818416459427290118642571265120881929254455228759537235879400936137540074090390217284941599422715075146263925184636264423931957222201767689501343360209580883279567407432630225409206062964869123771754503463895738487043741311314226710727323358392615251257146674472074882930153119597464803643380258391487774951024495840439496964728730504573874418550287749452456721996955266815495720888794281153979739864133580587953269989897322181015852975938700607326723317669299815013072935969573396941348355390667284168310283333314590513506310981339645961173400397019131385970985888133857307385244714505696166257953239432774254643345805174486164822782695075792563623075903729232956692120843735782140071450023433167918812384427967886350031304921076449664348256036198425786090559376786396418774686847193342328019230988188414171729041625913947622668805402190119526689674401259138805631510166973022782103279733643466659169365197641878095475045726117580696016227069996966871162613374860922499639813588551736519519057042381559765525759106516115333191352260822215516671954896811680166668530613068376598519149905445803146782986292979011684105698265580894784686487808121151219756293189595435868030756680222810878167843571824032192484315195613736604072673757264728707561436410915674505812963255905898766024759616726117246022489781678783827421968289781832867481711051251561562662232938883669817146727225198333632657052500753293305650328228005293112167625736478248084075424808058310614534243528053175492239367029277695780025482310517553598934761438443529725404594822604349804121795392021273903252499451085022598686705941212656151574363224465368018024627111566162043865937852342971862117867234514571712245606533908872931618991298572430526007911516954852825103486664389115150001795271191811928595671108179503929124227660852484565294200484705975729117719764760145898359117643088593972273654664392609428460553499209074224473526793657630226129324483082056385982399410859604491594882030281366151653401180913869064716266768932941323433590985040231285509815257629407642636532267178014895863949220215786372710998797497172557457647294568345532805989613769876639410246847887356319284081756625482248064262182001810117875051232218288784398243895392752214194240722882865617631629799850469683744369915400146617820318008479001049612515735816278702653499862960445583621325528000207847862607348768709745816556962125697978059871327796829875698511902034322624532575030360722084669337589849363533813465757369361942114022635268941186847907765134145876085912520481029138223908645904219807667750449847263501068456624491750568396466973384141719014928431476594801192733160780732954175311863797590997455264968021874309955160605917561080098788599534816780171829551882494935568850647821664152696230574157172117351646019415887257432846942492537939425815679571700181486974963209699939469958625032639528266558090391166939020731318278637879239544613834736624787758694069367210688377304425530463522493764615062314813801426148586196366749634944980488046096373902389686763217433447033315650345205198382874693365867468602390696157905865678979956282124005727898195426291072165739922140900386593793117748680478702027519792811388460817812457938590162351964918085788072985705455882032108595467890989631986786390596353107484358340263059324658052661143756341327327662605008674661967207545296709072139390279014297877092690101780152716883264621511613437116255743402551371806581477156707420241694552935667090802854002941971043086248452058363343616773232343736789109400750559663102337678715530668802409018637494991755794204020286179010810578433040000177488866187584836175618218586365515726000695362932719459286171346681128684038785698042340457985877717024926199331359961370383717551997457345584816298002808652750400754752878710987257129268935722904786778451176844110970373714778666652073876038730834829262641953792432991621763687214495656363305252001517088496558011192154640617042659455343865936639455717336147143972305249753053868746201668988336243518211410336683578058900609829264908005654121336883844974618865626004706505365250332641162088444413081980636952164555693137692529205492383818333021879945458736182106558348650172210203234127232999134806550936928459871003149238373411710147895491450258010175825240641939728859480016418907388712378414747034250833972336946397605868517059423047939558418612732545611507721831767486814057565637287351926068065211036187447545330697613685412864713426334100256406881201983291555201486273504362959750483892260425847531764673495541058935054641424538851782368526184687159011461558813730903155776284649960417756000107556495239478210325712218814838630857350943652350530924659724580359834203480600546739116472830768561188000997264656923842340592037700510093315254181976445751925128271727896222477683924240052830298987902974080228782985686413717779400422095237967566951867112644780450881791663143642061900094320175253691055944184517125791510101267552036608959970071801949753586932746985947221204105204124715169419105470175761678458897571313003263296666029753983773662285367786174775026295955437065686943451363613732714572938993380797102604955803029195961826164809170460396899426288488472034510970808682917659820023998037625153478893987625937193758296862574330471110985770064848566416027614047399950894445351753783535757519834939373694137542103381810883363780769716707330723611662212521569079696742564060353550425231621860296051210896124526523552890113634334874944709980870185517774482703026533535483610400451519376492304309466163414949953679844317895396499808072151341656930366090442735812201982772745141373042120364966951071364069324886169606627989277683082308131496844587007689571599577580536215355849775132819224145794189698644089691411137953596441516030711110420463732026150550968722690979644084525267617281937236658862328976365863082689671185864676686182763693159837975291611737333723864517917890485460070214685178352770852242072478407914044165521000345266829951717432791906086224898570024485406580127268559647793939481445421157190506038626798820347176935853517308766024241919107122448834003992700089158455130973704521601093534525436924738509824037363415868037852137457518988151731303072124173292309453705428891535303664111744544235234406585023302116553699218778844668931475078441336469359458683848154673453858661899712003399907742716820258513236275070342254172498370472308749425657379059364092159184362505902388593527463736503528407350705457775980847071514502035029737645052170012451938071297484706380877170498787426807962220614164777605585294259959799731843935745829559754657047855144373493298628105160313312111389128992586284097333727730551268406734104157863222087159248283881673333067542120776471126555356315481891372043317700527705102641327904467812807224721644961598682784698837546723594580941198684269644059732446492777540109708711728824683751151084200514824282726668443401485683848360741758266634912349517857448795289336168171779210892745071974768791079345758944769529324507646676392196901477412739623273586137917339463543641157678957788385022174461148280402584436836885913216783436032739609473660128007467078292735878254810928041295286472442342357306781867721956116804018304023532574108181718991526283468070671746386326580295209384516579342856503229867489462486827132444398633837422982969256934679718150870677787981962008278820762875164456657534031661326788192424827952908452112192619972887805948421091272156702114612581361914168983101753696703230737398990869368565670631573538107105419514985224174164053490138779965076184146789699319718429820822642711642227850757612417238413949877990479715857068960029449728981001679684697198277879048752725138956932234397462677987185236904665002519659735573830233544401323644890337393950317093862154993441568198099798906822824588306125424419540569699370765587235914150934760357354956750790774219213972244577696280905911862497365252942191765776506982334706838650673357925673671753284244212887357319467930101233962836812481523650598777003625977473814786217440308713690074284744600460014918152980523583672778126570544624474920258056220892306441037694563434195275433308316245533377895260219684893593123528058982421311833949527652564283837240637450784226850392987018612191243879472789569860439536704421798364933303028734730734952649086135910591240656277569616726016020381513193976171271261360365440399576466295014272123477442795600183766578019287799479511026579139633256267089312008505707041944851543498185204160838170099488469114753125454602690602831634839956303988318286751614795437657821329227660940207814726749366546023931958771575078086953034277519052034654589116467967205824996126249809286594235903375055075469793887118933701780716757441681273897042869065187373487504268382212523760597908823068413069822805475554266817483393210572822569570358264752425306659247248320997551168127842815428990775318027733462781910864660103636663755852236351746887045001402912182947798701821640388596730035923874892014616196909989831972238613629157364935448687720727184160723406875652259558047999628115953676795393596988732122522609181544706035916511863636759581451397204503523133789166845986047099200825905212291541942097748413811096531321210018144867751702951451738228101522260922603272548646567621763930279423339820665115134754735888251548508491862839691054494291382990627461770212892097243091526332930269348450960974336943575326006222433460228922192163737387618797133999465297477977050647121992985140811687401372413392691797204334723175946983913111383020776585734633624716133762715241946590709512775672731685477094386412477425766430505319057026935564827142380369445578566522607392685199559536241453922882735476307111132029980525816728151157184072169036877948872875768573235144723272706724477043526593984312194337573735786848361041356526413068017700408086273024397231702290323140642455007314207600721155503508469856531761696107865639107079867977050336130908924587586130938913097686258287915289933905555810614430118730440753743128394612414536979717861882859289289859647605017485176498260549926439437428194718347773896207906796874102134726491931146166773465014046560430622982004383890249233017056183275778469211192609156724973717637170034129393423279051774105964455741239014475681854214131696222187192495506243561726540152240080307868079441185385900879534825986650632238554439251086013610765600959793514947419074826025113062492236983333544936311591000055817781619040297799891830936351151008038684940258566400081389846547975568250963506794953801018452366210477997819278943982631006958705957077821563756209386558932039845616298779438300506622089178308952473307937147062304455430917665668785704273949166041772583559709530015955313699032163623723921143259031478605665727380691115042842992488867215492744786621910760610982517865739047399002125820228058949743540118767517628674200292068529883310047699534338349395866834562234111137359721969333159815799994753702678159415707654696781447451901288684022452005693253940216702737296736159525233381022298312948497215097934799934829311249561253562754130449480417771682189255311513216970972941155978328677860791134714882486723746888137924352035271143783142775882357707406850332050207859072606104140273628384882779668358287189183087524167441014363850268212280500934245478282748068391156416322464463204162691427012891759848817239564778242205358107738078248239364431427025048394196318092736552866848745641966017131164320013470066696335540800537692639764621412949935815311682411909205184080940270093256894020953090072600936970537344177630566403966796779226738726992146815800430550345969623147810839702166471100097368087967320358569321484949523973442796089750100187879072583309293559731489917885610203230822794166010009669426667811477231433098526158325668802297203882210776699761166412222742545426818689582032043129251019039889176101837140551980212048370303208013431046756026973432188974486656413612997773176566207739052174116830589556729819337798142011055053140673508916750231095294866684630175795188736415202850165438173864295178173213376057145905786405788056425654577727444122804755993742750390300909281774957717155470603354313552287562085513571638839545402905774638996248720943139131082858052202086163021449028175331438136409713616452337202317894634845339278990569310761385478701074044411148650494610386639415226862100002826546800806627052827166752014550515865468351677816192541475046985263342542448933602057912713486977067473895588928175926669546977439219916340571401780729692979005636485382715429552494534364518155072784750843288816503910908313776219934987894020418398878841222290473340834780696916292182570401110827326150228544336216624732239621377244790693443759421660001730500847555293015931138206314568738306167654743422340909018997276987420515713423433186922770843742008479469201140999595036632977082190451887904294634753398241364986168253529794874186517718908922261222956735634698296344656683148116574665474855275277450461930927325459838000062586391882558596553966621812147804389574803225402146734760861182795812821781558850556041302688500171404891220146141257356557980728968623495608679346481593073447714029294785319946463069367628083384386694622608035867378981825621649061514789563395106421268520213747442835711597069737145657328849530293245080504087195593254323163150845980394822310463671242087697168290709516126386878848470359915460037939138211823723529628033146272286380661084854420609371165624322415193866678120191609744534032288516099892112093661209794653822307031966334269617461784151324736361159153305238887684749864106078775501699088402093832235220702560151611619085819538072055077226868989298650898357078440156412752640197057609531868167052951478196010299471121228504597418406580782271778021101734976763626218111404528911975071197781430057039156608842809333007922409700315645498388808311665538164278305818568860526417815477550362343263023752599083069522492551798496789627782989327334474732212844953981299641845216418832065036341215863161322163044799722188020915505794085795734716081913878402966834074963268370426423409176249733689683924179775942815178622602889431604696241832029965566988562388459817139557506019877336361191126084721451712629242006108735042588902825254094392111823735101874770629693948076206264881138862726860711989571684585976455919407776631623061653095266821314744964824767565723961607108497241590599303283064440493737436398352753857183555442018516126349707956009641809805806430468045232793011611600700200638405197744687407098718285510357272545693828305484998825804962610347228943691101684449835472264096273262273770906996882400171849460294789964532370420301869441852047883052645369983964229696407108925580897763678620516094309608361024236802016209369219944437074179695924824302546230264593754413775750015386253390150475994134374992983866051027848936729621203123227761800249906844869371866514504863408814057833527608449675266157723316504263961175050771502739125976164184288749513171080878969295578215829090116544674182428044359645931822468959254433863437976984923357978759302164324947488495978249056683340709733745217672503967279186948463071646340434872160336169190959569246494270614571216195025492927607906426086467214332648993977114931286977853065762907925816595855876662066822918655075012438644924275394946640608102721392956866669381604015888510643573438575508114879927902226257741085285996310003680300875353163723738187180697140626729031662959876202875863972776392436746179927589415447562835196374253767171115593595821019091180399084002709045965703588657797941765328365041659374970456465782114211531399051535017230763261618005249765502817317651726058514139106750601371160329209548333674692650150142885384088645836071840787801708270654685046710170152486474765357211943699950941308744693178039328245358676319647709372161524303275229004480432586201901814979730471447437815078734002000346261544785219272701246225652425986533742369939231345219480996461122605670140849187038584052404572131558092012365392568960951163363532527180186360774038849459160771758731045417930319037001462348771991089676157910040777728316758027133736789717940443155266259262424075918240041406043684537354804283445516905704450724146480130146003181357884852138492033340954285902905492009670883994066464229562749655711691038140345490982179309680603977243711056538204186430683624908382708775476550677546554517518683340915241947361183084711824800105689856041840392817043844806774840203484403637114625958794061529473225536102967870058132230441638119139350934159550396206692626053950373125382181180252502818652842378994368372891104174262933121396899663410938953830667548230270399657627375656720482630809952747887780170962954856320261120414701383306567513489883830983534033391199700987410687444350437410818469157578963440405109368829519674874919591209715158548783287312183740303910289472789462056273357048641668388200796789748231919138967641507632836790117144081613770976752159279767448635098207733346904190243114926621935038458656879626675644196872396500143417185882820114294713249870603846070590080168169835244523460413855273855115411303446515510583245694014290491215524298754534023857605480843098173374964907694546401048082278348122421244141230508689960685674117935469314227784715510383631880146429314949916570217351507592863493937544762782543387481131703610309054952973941742804087483581297030628698094839699119107466277087344285965885762280165256085815825343570591908854174850458530343149465420738500482891247530849716159109214650280177953834594487999675941886139748020459969108266398125313621562804276084232034029610046596469092796736846579049349446133725135090809909884436162125982367499145735684002783397653967319923953664101483911585882179930474290895925805453520350141490053433546172937637293698617448162480873594661347102850776514074606472376124873735528667813070751570662161583623186869669924565360846184212005544082237352993853905932923240772502386655822342872801213356546323064784125540461383333445443257866585227909095544178057388843143495748363321915062922225233438633146965724708439863833794301619991987380783214447734832136803144341370211801047881110179131640702960063070271097658539769270295770275603518299167660529679890627997720477469192696755709264328220038006469095686888531503326718795434608151811057340695088795478432546997979626458518814638858441873154128262239226154789551859821920159671599248154639974648724231237030031236813441379956191776745908951837553213843589291113177104283630881797468746143434253260030659854709832195820342898559631700369685112049039129241336414320885217507783307019634469152686949810606163758743344440612081726719821871847815807317535534512182841571174879855759068210974145259573224305992624165137783987169547474452498335351670886868583622583473253276262341252699796140175908134690938128863280850124386932714556018344824757417362680669140406559112316354245709161313925332868628510825081623514431106793837445922097387904099396769090755750826771483145859952564349797840212780885186023646052255122504348813765348835000139325859999992645419306513668044166588936637448714064134607392541542003931885314723154472616344880666606153253260373666014110407063891997511089351216786119796738091138624303836144861171286461242682057277784582567657598823765164334919305614410144753541410401738698589318508421127326098344980842684445941306424155430064000506645355007749941059159782358263565150341062723813306144474873202488207352932742659175534138511067873289915516612060390305234156805825537230207671524352871145364673049309738567538042443711125066671652835768497626300995849490338545508699628932967595371394436190431954238360617354998403936653480478704181068321261269965013014505921695614597251084562706565086297810253379908973642315580476213491340384725835590923408075702944361141929784777759643475984281440185360727199763150453384800055256414931318055148534160732871853510195189330676911189435901107244810473263858227046130588335342547292980958214807725198898096532734362227591364294508444535499469332353382120202131926592749788051283258632846572699024850035306176226039008763567775122254227521481286176248420195349216372195079130143089975659481376309599766637140851357181191494696278036055104487993499097527692334314539095029081378006896040833386818716319412849270971139954317294658605884880129377233749060879893563988477074508458622299924410599883173048858424335299903143440465837756752191864607998917984394804065875220979920175935723129396382936961045541155433049405807850527821564514246901346513702143607115874881083660444003837754754225720481910515389657182777874657694800220071001414597513258165999642075347640477848506300405550708163158711763645916449950456510709827961710619027666245270536277059275177305299033768814149181193300190275744086715893209813521406339385858998157415314186734247174147404604104305604670905952098642812452178119924973189418689422628930550106778461785531464454010586927944353600658696311537661921932512118521600796072916499349376126930989437913254671836829033813900137562006276281696748943427165020502250308358782568577246278255247616963905051036117865329669807475646205283066434728010130863718710904950208002440313598503608872644023955440162664900170180547274256816410034467880267111969227007983225988430924747661510476138650718042138413788213084565067961918298819444623689838907651466380615323398321342477047368079045590199474068452573131758669546898838508373057009336581567397171938488727040317794359580835649070078511748588114508526007586926936688249865240349268517312030312175425635091186024976988583470469453878575003544018731772819822708335956133655879352262416846453853362998769649477240090694526471663027490135528639198447267070891989730419140698989305961031837148130372668653423265320761412383264853563896779234572734867819698580020806365349546490286126158823691339809397043860953089209690532116134895061002064340996574811916928927610755098409168715124585948226535179640801427533987547117465856993022743301221732116903357537205539754113241593207576910347737964451235764428541231385318461539812620077883993390845117526496754644908006469071953689144002254134684398823305778744264691126471574222476191636483297996002460479809923070150106768372452586922530919004172461201553161073328418179252495637124318472728388917340845357737567768076010967877411538954802446642254940962015879950713694890421846823439401251398271676925362740935574367265267502869863649030212141859312361242220497731413425709421384760860102920521034649793337674897113298974465675084145300088859604256640410005049764124867473175107918920553246802071117520699579889331598938028985082083514208212273881293481164459045439160181133175181419918745878668141447201794354289710432476727974448500155748512652542116129507849214723140207930272792904151037714239213562033777794714952196664464926046038015204288910511721303188888112315362088723758981712153474367727018095548680356181685093823648100192217969381091175853368308284119835005568375354614101212800550663743024764897621362136082608252624026037818125118752521343179758879876169337170339760506888265375487554210961124022930788911112684753232248504024648598560863359769097301376500105473215649696556472733295094847350848916790922119690919187893671387346771634339952482071790112917569456720598275331323952562121205639858200377368522085657509594871127626372984292040864719970651836385667085886050995604124008795024071272938817388020195486237897457856878393329767485075828536483933701900072700500721791424438320599937302056800668611186903678732422518415450251763295439210284701824418611950831418778505267124812735296187922632210921892569635085856488633116063080084487892162647463701844254658110467251608091120202457560044294009163433809059886562300962859297463227332643632508890987827885545524863005802086201886540137413960505530758078204500269902835104654373960305889292755890419758047838640878090056227395463907397889212995308728716100987594228825541684150825798884691396621175884890607278429043605051446697775839600981609505947427994525945928071605676138791131641709009067493277966339473873796285877974843326350356117323507151531059600254950090741254579007046626651479052257627913038224678135262279514513454914887809004971211161623842589552675371609275456599038993265695379015306603179386101946701756577823679655495252980514039235960328149676292430344791076219925510448622522225669693258485621217683416552941802187232750788334888548676917625541597451062429951137554527032623999390036731838207587161918637077930999303329676337997323620796292061454593920357108232975004453735463431958352581728908319502485227474892673284201927562675952033368642428705134026803755276777638604888816078740623466966851155783380674702023822542509571086839957065464970483377852316660835339457576515330237362510332450756897751606759054359214401685223800441953442045597387593694192152947878689936631084853818227475687137363783229713638920333397083495450610358446828215243162396665188698475337466015820213787688848838035520816224073976414676901991323082128496578290503074075852618802330941827678824937723947768724483730332866638148567529307864805184614761935500262791757064562174535633976147890767510142473971024153622226468083276331895920437607801207514265903900023770281390519627380416269779161746204024226144883463909095073187385855104539370260569213419678028679027781396730766650482095575129353633328753748146575533101156327051466701101935427186005745921249810959086746442019489394782704039907602317624154724917328327844594461412176425364455858853607039143944190065435398171066886592212479956507043663234138613295471101827496515655451974164506876041627389310473575624135915733746670293735412258057333869315881926862911123341379884390259443093619415817889122616968672258209358796818154826685161760042213792831384413711354385794515290357084922168437952326529166670856480155745931257478275058417651582774295316364538248331789975158513566236368217294488341261374746089118594399209232808054301524631976619627721006419821214224207197067800123322966366927416058406425423310991698140001288152786874226375685913008102565930789883076277867055606799822697626073377975088088899554122453790320772853288246159141613977756382402376730418461996803942514948198882592363592213718401717586030754023358073831669058070931916144213912463540905294782875791882962523593120420267404407723194070621195563952804262211333275097592462672462126340887520304556181368640842559398679425654384871658882687196282561474266586800164102806844406272505240702996027939303267397515478166716652300871284889603085806530938596785013782132361081560391436884785578105954781096918771958779377029176852615838957490133175785444213933026190036525604762614724116948338824796632250506012334681014684733842456070358244446718290541927207529293703919265116483138390578245974147845672664595742593338903207712943880238488163147796682318796524290119476826879963136105632072930667117298162546661969014840521284386681691765490812490766894170834447321875327169540794729773072467469287726560380419063122923063189510406069460278148030455625277679894387995694254015835280233292014207489500991697236292454798280094026705782603556703216273861648438412134656579263994891312389729802216550392296610881400931258735034540970157009397977819441429412692139415969449396239252817045656255121324015786282265739706507319243507828916635429884975792543097612444344527820203386006580817207616733237060503037577284968196869451579050875190651015576311689355350282841725021113912515784915270980296922742863931694766880868520654449368022567834903823546895095109483932887797104152568599986042100524765940162840714528349064328407554528634560532961979335532541026399379520694023827084384959404244263178323094306982294892871602869132118541346596802305804670877213644900063085599105514437035677015812847069247258930616318025985030011835653115996611098110958468379417001835694601932770246069916860853433340458656898318244214883094519388188668525622342376087348844782179149934367056969294036965082523998660929419851752685461725084705244224704447175981634831969606535875642971312060026124271033723091595605379712231084107726507246713427043658564263286092934867559336496119080018443018291649664942713391530684630590905309023075607296484271796728822643766721568737079420444666007049992253215595755308469300451911097098189556106335034191405513743341230648822794861434179616728552238236685302238136495818943937871807329887871519281359721620743441523315653166226310926099236855910493272340695445206651355801450811342496115801712085064141915758661412716947829436910505527025841461754053321817413513651369680550641734254126924514032988259814163885939564024853692020462211780018578210468797161404788049406544320179261363845000855672962199714082613402262492278625209145758617456517592600263991931436113942280867809460071048578510618065161085665658350231394727311161258891816175687148022548354159721095094110311934859658859505629072155481993071939706233581795592438382728405168178686736601201174123756005236580404954913440470961516522828993293396149217705058500606859795655565957480566782258907312139543471376633564238237748073718695180068878024374012080160143862655925892655059022402205229730350112157354597332619209625577149452255084630391752760888449878559180135181685197139605051134532438313905502778284819693585248643152564955839200516034938910205028110920539769456003485326904295358796919826951554365714884579896802909244264019235942668279321939500102494543127749603038394506573540759196035028684901144784208894273244934122238242759621345161907140379109861592662922218891327150880723800528552340393140046426701190148339691294736782537301789228219515017324174526383790927847354760338272226566080029751838496042454130609883024657822788981002024679918707017469137367217462066147294506437719308633332263390975713661364397389462890499149517575075248683904072068949778496377810936016404123500805907405713564654856118307920390153466822698778053946504782138083497602728207264853507954209437905733123966185685355194119840476704605828161014845251882376549662628867525113041252896446860022954227424640289029846719601709748657940377905811659722456197663595308212924850806810111515727907657009166809965572691714123720463543615503919504410955212305346611518942489300724804977505354682331144291235982684837723765583251601362435429939455680593088117933361377910130829118686229779779877423052046797908570659344240143313570528293247637307139339603756425404161318476905301082199176523703098015303708956837643594837409758503766002692598083243875343592124468945758406784143604386063316292790245958480183913402395272025735888243513954759897385969384003350419766276321497950891206661010320926579066142133373318688117154712737404999139122757177179775089816680507049577390613439665933057354593086489218083619594537713924755128274198756695140012537266663140900367513654402139095383142537493933022550767244703455663981864967873847240153710818720924370802226229744623019567727750395362214723476317186604839533989779748914062366608674532520128413965224221291316664732104141224757018360665900590548750509246917740968867087235536248731771031411009132622664126067737195065338534914995687433331669242144424815136108748175080541731969874781190611875333514673336872564591208237288088815893124577393708815739723016397875102324353574153394097302793581740454045426716710282127617032295200605984707937246021498549830662876067950508222230148239132045388064289676189803277868606098053273642429125879138683279482499138438124702404849077761758449674244978796325073854092993501413802164184837740645712351928180456675415638879006903845754563796865451460108915946448214736190221868292674965649891681312560195534423743380297303441183364086824052563828329899280890601940611039530957810922371251435272305842844759392616326449772112917913784659692424730186935853439363271488095097285277524041014478283402122465792351816243183267716897614018903493407781398142930802099425742013070966370775390075505322900408754503523375272903112417184720485064488702241031860056285564771042663793414855089173031476916086629012390391663516585791070785469813431475328160858646193795397036243418021086891466920541634517731866421557392042644944512524645697219055495061680957858745405924945308256647503631515615099930401273466101231660190745942333608133399703622253556489391532593698255506124136975265348022935187482861951928702638279286737150553295010868028471922623933094782129178625762718279523461550170372597664100543741001306648819824975523220698297524531992755781053555171610893515222208459583052808563195795266410917537620067824947918753598566708245136427675551758655190712010837369467325164333923333815869772260630330408288540353246295569389792743563539277748687910165387952870042967827909344526418304679812973657090677854929642002442149738634762422344709006152786451124368588968366524151682828707781732904529957816911044052416184871260016801070467823088899854673851030882080077964338265448038025716724328559172798999123086184300647458701952343147762226912848221701022674788162457219169630379086396299348640658881186102779150130219860347479812994049068137445172481323237597959199898208645823147199621704932301882535003255320120697888630143605130044764260721303250199067164818556838411001643436641310666065823671254499502109780674494144308071674226213822084867059566257248943212693490822931223257833344711262784317602597180026341836874238632458931134626624298788203635468627708106169835778455667847265538022507756982949394478130656925518894726381647195819419068559704877327160218113540911911210499937052420548876175613556421698797544413917335297641652223504260924573970841822301545638972999253872202371246953584232296124815563284904486392991454347114615950712487249374026436725273445593773763261852381282565505286543431266043115848626540278344608923349789597988597844235048644226281821741016405322748623109152050874327599533223229185335270696437717346750523190060385782494708984445839949472413390210182333153248096477237709264933717420095029749711116557116567020494646815649278611350854102780897864410773232687878662912472978340049334092971250383307948927952740781638052605131983979211942859594657790200267133680461554029128160209543547867121370145893607222540439972884397067458559188873921571680040578681832149321449273730567151922693919953142708087534468462093030919128401233524997776350179837303974235735906669967732121001505425849501017532179613358430070933195703782927788214424121145569967677782146415587298236026423032705140644512591455504297807447719056332977719125794904141258694462639701173712857519723797945578198763957444042333697399356628788125899746613415852563588061241855645806089431950260495692215486901502956125937913257445330025232147348394144059115919566796079608336407454166446899122807982318547986275081514020067864697919535350975524492279989516632248262133673460251644882052025810976100997941390559233599079050221663600421012058637366372596333981315967899500944536187012781927492809586432333566857333757046302413838073455241319985881704527637939281555681925320601053691246568146379588694173893178777385984912906044640978763148325765691327081447349880970214248240204816874596265196547203284712413662741557411526273959635541025689143846162692065192217310659075224824757187913599608081190059929309933564606461065446175707767636466035224797243342796926036579218369553012203166412673444018265680773443742081127656470724110629131398253413524531746128079209436775984918198461301213538112753964074611209712722791145063803865666528683488417900123243639421126923580024375910948712997713420679671794862557703360120316656901796398795917107007367091859733033007630682897002674020959960846696886987731513524910620176912389910108682656098393327413942405793266319963053803438384676871244420490437180420806402653795789381343867885026321673597756860963726903908773459431092352365217705372444764509367793883857174248619845034103950937136635442847958496395024948846167578667625791674864960639629563347403963594295432458763711193180789093872099009405270963661798511108329395837498851272598730160848247649385870236892591835161198341836943465447338451825176431806278257214526074994140552174786034165171320816245504652577529361862200937370404815468450709641045425816806472071260646861275780456961074953304858986390727957188866417451081711133441735795387021375390542754134936559831844261548956756583587330590662608693721934127962637255685832524803720794280650816063530357043570909098205253671297944283754718940094774920905403493169800889155117708591915410708404672101609404276050684669095578433240176252630853323654761922130979827760245602052159370605191596081526896441594484743335614859250407328554771532085767487151887420302784940981525831222876481703038070744994909047020404616059794860738510011057074282317221359418350444173256135358051129311218559847738497990105950288691326957813969382266377463457616745145128090774457709629926244362121103031246694330660982723369198888420974957844945121260460663350114463169973136912014287207441774539024694904540232976236538331176359505361276290618724410180568343886656362280319490154043156298458634700926187192731521524174773797550646304760037968486936374527056593600262501529920252475899346649236354048223784147281844837237773401513027856597924238557456000511970017442683490530087930425573511523376034007388903761309069377427636749323268143632247132173312800613612363038866705520237584578013578301532085962446033028531966424498429194326214202446081689042066123578156893676351979956765076741598245130360404160136173240493193084998684473902316896400070764299293951914484678869521436868282550264848529684278688380624618031625340475610988000213646676936628738644224026196585175940745364033540667799813980322337641360103191226429478879026144781893663699024005582127451399952896899418733176681516166373837685531562871436181531527313070611773635858149055025447117573409336671913997085878154637796453569892492656676890981475864357432374145233857119314081541885583342800172429752738864330207575352172578339377340951109498724063214134558476035598362720818300512156760267057630053111671839508177304188028610464318663168631934534899915138975212295317855926758139553739437940928041303927991381575935869598000036455064625891292981694438969319923432894388931242416122611905747427104032862449480541951764426081255705338022005956241128074876724023123829594744633481008308992251119224043673656631277641988548518369616794889912835098144595128846438755009366608864168480263835919675371685071896998791577210037261695164432813781103677137166018023070213207073678475938754189821836599127715621148161479341300403638690614260144185476131687606680227615574794679835581408417579242047521246632036729429344505369387284411139462749889186620843737360876319774676394864849599698279425019953053891562980571333413086266426935347988330110262056599498787071676380048881435388708519677794333400125198735389243767086024145663991108838261318562533813218706648519744663259670579373535328501778768389761817119662335135115833969676109358370046887078826969828959039590173154576027228089101462037170112922396626108067081458548560776201680097356961696528244403081298090348099050478303111394789925539534275040742905613260026716640148454083137751948358934301978421406562633825229900386806023521443597070673115561883114680374208512318178734327570111283269497251928919839234815068471408233905020365764964323533044822247519057903666365552182366199581113173484573220464205246727840663231178701531637924342452172571821278412332192111577181752939966010870303566317111998056356897550744298241839196769908230132867621541822217113205680826717211254235881903833851051769328968903417294603888491071517145157498858852527594305058741012946935067753967587333832779778115409421686789993685039792847781759804582696431352166376939596464806185281688029600021767198764717983359151970190146600138061115104298982357955664681083274549545549203578346038764347145731484392170342742016653080295637322828175775414075227193792648177379935556488567880848092782670412663438380385591853627113797137638891014760731260905032726988993282923910110280258942454385899857667678809009228530104295747504380106451860718218868135764583441835733200585335057870991519347620987857041454250267956427444353818828942432410058113156784229144495196586342879519180535933391445595341999721209904913730217222602008388468063140059141759686541129559220393178412265959156488375319716262190990244122531783991056403523312824163349659881152672358083591420175837442220415898719304465838698842757919443311079338718270642157769115812658263462663707545134833916350547207676455494974171382949909859133376234722331685969177313638797793648523786150232527790183421602029980953029803097862619574429954780185073988524650444140772037145427641528118996130107292701189793228207945799551297019937028033686574674935921726907102411743821991628378078856744363697940105015428714143802333156333540962221161922541586252456058866161424524725347824014010485758752592920047860523445170525331885483688753727824959796812994875966431807868511079786995654345434046218494611389015534775153889558182257923004304827447043918587711338783272591483861423982018077283006499233914543794470843143766960104341233663869508427281907222281070712624362801490410001102908065479683862875971468881411219640372896932443316439334041141197603822705797464689718208666796872284999903706844497712013554224497753986418277052993549222570724659786360096546022132837027855734789877675403749517466584273549292200114555326236500494732279761872238166038514377577651651659896578132820273195106621877836216807076502540766211313075738814542624184634234095019907465533388731639228258702994390823705020838554853036656376398483418890717002391380615719111580909019101462662416852502021349216818555016673569377340896680796326595844435666767599966777936780318563612674421717291004217842415861590532624012876365589410162522089273253991625631859060251825040467585201562602821368286981534368388259837564448000101384509184844109439284560213439653140996315142926679390543152327686282089242146555457018477959779674168911191866553677375237811326602828283858053419064960678767312098299585428198601705791650564729009529392261025649086787262561098505927277462914850380709398417739340103403319102297358428976503733342841797155755195276213338596017645790859597397435867030977829838768276236185400622110716047944991157419365503012454138649148350991322285486601268669110616189726688590980269962483990631941325211504010214272962598303897154975130533401728460572680579601624453536521851378961886157483158465502961606561511254486324197321283286201923303624849767440711215457033137301265272266360090929409839959825692531529588043294458107516861439369435768755825086515779122582604872478112193709506996689149099857390326289463247804307010684558490795805718756228901561845857963765117000475691541074204793316483207380265739372214989315072773229616899294342228163509892532078607304917195881275277491378449819925486007865058930097825056720238326189568132068242177824753145498085543896145064992440473921504120462431867977151533111260052894115987348716413934236870729172771277285449328780960153825468905007125899335985358855141169084838791352518906892715463366090271560862020530756613251561331680704503726259805227810079827088911457544823755708075849120018009155189041944604942238548460923537640567106084772072538125810041271092791706881041271382915675161217514808336665035846055536912819021074577402006432738017814094433787816102575432767809339027206007702819701268893016491897032975116231432649197024895487721672688449073841376486394919785548294299607772251809380560067497815707187473893111787083686183880647696432007679748117845536747138888578929035169792959208883498694556102536176386106518137755145122964480987459133598346319864551446740322214126216189943342508655424093337022458251261563380136381989560204659604831285906269293829648363660558572830861817756100353915125455316872510051702041362770756733904964166333115735424727818909709510710598570169464257584261765113815641987928574126109444903368665898671576137741001223937715339050770840499350736164609663141534167849546007293105892335460367831376322678950927130197996992065071048533121841516015236461350317087829686345216462181640065636199295375226511785489314781962418761968666239131211525099495988452778238715254442470606557381066555141987620210749264292070997933089707575432877032635293804000966056989737820956230350068572732030593085845993549703358856541628540475919287352777906087470735186332244238001179445779327938684772281146734482434878554213509618920125821829463141343445677201872672243397613636415149310882823489048743691572533308067288722935867695354757893350450094172472550214423179246724852156816545671601772579605690852335086060504678496572353789678725077500520917095359157840667230853080079075470835434365563914346831762192824224219855202194870426603152476551469718174198990969335189894810413365180459225564072736145743883352426275722944145435988997111683948275929258577482094441579103354842469784794600643754395383659740634523896950740720178855844035354202918459434251061299396711330297364237953531453044409408556106002686880709380596687834561972970942276059731827767920862586503961182331534401931076100489304137523611253481832877911370958476727736196820626668160684895954886510740442389058774519341544923006883268209094467859081778717833028920714469466854578102223626906211375842913635144176468886014543134338581763237008720287005549773994759309134729409333168287361202883023856079017306315209502692138992831694802212292182596654420020032648629142734184861491379349628338888030013610680412031896717813866882239143697662770516866875429187588346199273945448674183253202975273990030396823154551250869480102587875272344477174436346452473754007395359507455247387409959222879491427788273111229823307265634775543080288664894384683474961617352195801622261574718132730091637323157926055162578886746646386433775454568541562254209835835284274572493284385606786340136153394680094093785253164123146622005076322041000410029130427995379758793141055287238976235377034757058346230047663485403620193940703693181585320911235466389429735082642578423130069784576563769523717091950849122934434183644558229892460676495369419002030620544175991606265923803756238532181195892999151320891839950281149146019501167092544455990136193071968676727989682807097832602610845212437499589461241748141919716426233251859281629633625983540586605172138626728715118620287540726200441293400772725990691623873186479965722005246325433027084268587134832089832503163469441256103497065736107036447936267782188547076351750894684442484262658425218070991091123259140942719175739263546332054816609763672273320389137796695954286515593295619760390876872647941273105790900116511844056265295504270262885996269816733744360398791785462366970509030921658809259735316942461044162493144620571312401948510235189616728179090794844071565057940563299151814395876677401090319813529201167360179222973916730314198400589066830154303435311687038993487991503600572652310143371146713361402739419263129165600944680489844545231304176896768547611571169108450363703654262895122532978644579626732061227770404030872869696666946617102988203524007689553255345772343034126257032145023974830012569978174182778469123100892931209869262485632167543447263199046363401248742164713562880334026428044512479604837177425245577128594578097454954785490607105551082167693931083243418017730086697433527938916199994915915226143955502792252828704070679268065448692973982657976228871145883667870004513198278834971892588273775826514563951934584279454144065670387871729232641182983455876724402917579809788011438578116108087401688867772251782664081435307152077209497760712713477396637041269645600832828843273114850401397210164549249498331301386216837026844477633959419690241360786522461348554626381850212522998864162189948876354656313818946326354847265441537825531179154863558574148092114772126134304545489935871982257561304291684531186096415472139299391944277029851058284710684339465609989446453584836114800384116037510234588032861819117846303549751495024658761445409565965827076334582517261237172490727010539427232023545193860272752675074281502893140319223281977161846037700939749953586343426132113042057521188285019152838701137051542513160181662907528683754384083654768960179988158603462039895024797993018970083247633771605475328866370384724909407068753342872013030750094796925346663239598117042723290541899126891747593969072580159121571095213266539862723637520778083495746698742668726524509656596259086445322984904699112920059357106536239191709297145202516458494632341949810604849383063370578071429182630651362391522836307864459867904818217947470266396670880364027735114984388476928567501611299185133768282731284266325073968637207981098786858146554916208944904309817835920387020666245571558184352308506195246060038309973910546677849696188440377076172020739273736134203281257775673745905073076514616531509929676812991926871483428063380363101526994401589053924311364822476022326490535089209353231990760733179105579978535100663661312627895920304881704728487192473140589859454848129217327691311750523248863554459336317008097310868963822667048854499889563592780597002033003346169233503215898703929674028335088205570576456810665166514470685896375273248360973676225772777178464433785943517447170799200155149479972858191699623551073816691308646209242308647729957505694884898051003583331022562028483740956594307241437761648483838766524005529102999327955187367956529929338371206781242673170435435956613294827554413665088063873344529845113358963016035369800547519950578120498535073499219124133989204227082013082314142132694773952419796592287774724354192038920232670736564493129426733230235103563405245404057386492550662212914894574231737129691807304053934178726255363132660871941560150883790826418295591762442931170907145469514192191454426815470856629053532353956796002612413721573606110456868471257938982573819597097060202240339865505325510398464687124220705577872197904179271489892919595016097866259061679165500159473295080584763977710988593391324977464890080992067762192618491181817708982348860325907930707090165812796389917967954975665574755815283506604111325777469431957910846317547548654241367441025885812484144344694640910271613345781012114647167750084913796543371624751602156757787592858087427877589946304400779750320434233420904262958786775645032152227951934439948322174071289577509553581622753845154671733502709086740199569400083538762990720356106191994176721285576691032790845183012156102541295077038666550883125082951538473386360671869446768348890155650880911483997902154908351116670874326212809705312912574437985926363886886049328956278060059058699020168447886309635447482479484228310173769997410185995482251468182091656465679786564125234259844350561222417996319961757327568399387892366559709297213311118616885348851373082320174040170484895202704155356268765534536349202726442767866484901977661526894076497029305912059616340425221205345832929579546681047080352257712008645784614146676788786136042620243028766437691100602214093542868262295550297464499179510728209690461999438370851615396891446648065974072505004008699164480246892215832248358577227188899452832312439437404245466531085551569768355255988390681996986492597568948174026400433608393970216734862525582730209556184041937751499460990067499862392275279030703808239280813581353327363279115916767308901470973464370174121573339128291209848100212872707448399801238129328578956276342991530391137950371449003518300380954098729786202506957604442584042025404964353788985036072823744472942273206018136626969655611458283057739367009947271671681819679514075417057836939698261835725062424231856207327334236094798142466900716179899752663127802633304861129167377785546072480268380357877801246064179720663665233556086926234085642784457796182800682397409173893770016768049717045175079518134649774868057987930835975697448788068549330018566332124057490431136100031829214598277024381915288184124596961766496028496568960682708680796467268845097356206497968631142549675950000277817620900599847034939342580753900399305103468659412728185214389141124650335230847239163254844520728060235150552163536896829123377154143408449791786240765590630011182100505188822758947835577398632392580659425016013138848298759043208209535463799976169446002302864315576560304738490263370957003141716858255482955228293522769605769336221553178860454509684135611256918775079626842724883798110205962672165641306507447291228256260629977793251115700863475083996932357911061988597656834243669591146394470507503923173333991340867577206032349377210226379839847555903570213939139800857198187355078215763066132363264397060835383987222597705465118261572191345451496020406538633010216502034113367127771622755730824610286908540226814464760675983151387505168074227123814472991958772386771041283000692698072514161509112393701231198450890293396515381357309582593592431140125562213492866124582044885439297104414126594542313457702551239756527165962678173465634094604489395058646828401871733370022005597172145419448183817470786526573029987828542742378996762196192628995259558062075558323120992332432244462830720020058292140461601605740812610008425342310312429549336722296160094655146964698883092338146686063208011276240913701925144619542929249064036754755397962387630264667490388820414666818907644925579981062177317889582417883827402726610240597580377364860467905072249918037988021855963564198263400673640357619042109172956612922170552297525087804513737779582370200451527065191481879003082439924268066484114299402289457851564112560535024088631215684143462471795245627668041893305593609894136898140883978679136502492732654566586895335060670993965329869810125680542036915193091269031547693203364738878025375192890971489494642361321943307255597679428647823540415191031321985039390458303910101974349221343312398627894417048544740588609303267418349161788364297054071598935334916955411717641433047855966479715025606619721781636540318332092879622305486543943912349638431822475193794861661398374668255707734558969628890212479587454429062822220564670850816758769474354509834682988705662738199299131080485827992839949656208978092092498824511338316317737119519880285495446763426908423585935586796048232925569690378585679218815167910382754522657126606873144712908913167962306602409869464158711885181868572946590989646722359396084757063091445025627896313169702230749406623509377677845394734985670833085873200015317751892068570366499224504522616528934870426740275120463606936079861676057715425267004257271429570623093755869892627932150088199689677272516565012658348396142994664000147022983134941485743223499355277833561508397385239516088869468446355079005251698703699793500697734725419440948229905399345226308662762473635598181966927248574760365211229830671732191612642980242361166891302630258154442497612209518601869941788254492390944616186328372463663282039069679053216853216205085853846074618032726110546159622941155344401355221702118550716086463270405428531795648292812508818265222125434579273816550249375975149834876057017339056395904032783920180515845579871672190948244729524741920839701361012249647420591070866713723331427780842055074674981193140394333778222404164409668634883599015162277916581615640316296722239227304354607973309976866924142585789465707561332543792529044378468595122136224927619753130460822267635134736091864355896806013631856507499650831287539809464581770885051965864842124056114952804221264123446183437453100130676430629342629068528532607860179714609837584342120307216908232451754357125030728781398015146221628247165279657559798173008778236158705601063290658212411470951715550540973599010378807338380135950649865078121235566954221757066577193593790783287149845271554658875328096687161223227468003622574001355384331282463647801720209572961411568221527982722253044175510808258710604155222237905198387052420003130675446021379129552631578384692348462042713012513537032274078818873194979761254043410168105137529717993460599996938790835842636841869791486874237919228991148818030818928382872032874849021897679420356144893963292296875425506518947789845758175397275710163667786099868989569030375420923306393807137897148769933100659261112264206030541350956344218007329179677028171029014648748885565525328825642807004444878978767404318269058311363406274954572135791257057590087462642384374406056955430430209229755469860868795580273612960474824731097436713189883393631868521683792389948702463644272327245417037755753448219447115449409520032381806664983406475463438718479580951681272189034357508579888802225916182577200190066145367356851550438881567389385147138055873068613839442748390044418863972607343452285499771784042105699645426680749325681524411801221127685429854381933428244861478576549732760809895899306429796310061384195658231100768928683630696657232971801310925037377155203558782666388975285196669633498811747926172776246229607738189319534273263588865489833952501111077595251597639759779732741228489137678971826688965861861821862423840404071294909972409491130593707589535118119328974052177051667035621870124872886000319755239834935080079163772781569095636824133078825215605712150053220628813601674710877992905160867212520733221838779616404781198916993516023715733037114663027074523696735565677245809262847294996935745603320105900067344649191780547648992922839334116395987653835586607403309093798538517116676306736281008740064938908096897176740923972171909129903788637421809620685814676450055090971865793719694682071930833357322627007074771988274340536341575908948908981048060564557962686366580992225994652320088516417595831488014817511042727868961637812607376005879407857891644642257382688051522322731865244537443595102025620077713354787896834043754669564687428057094676455674225233012025803841067914345667446020340047254229902982260174129727199100840551514828080527487076236541496409983060873496879639638260272498264392558957682698874142642703780506615631092011212794187465018874243509743927965042423671301718936658791309685063460089392696995856874780447804239347244631800430676554472674924166131053703582841657747473033220727656441400614802063903289601384431707349032493138530181754917123018917138245329404177700598743213101730286440896741531314729500711186511645198931479154920866265125212180134931523961238061402632404935827081071426508388025809296725304390964465420449016021965017290786567483434837954116782694461341717957410267899374378395804484558525111561771791824279957450677480363533807044456338246108140445634955946507187468076504772927527681392818997743744729713758075263518039346643070084799163049844485801201326420547042005910655678530693414246561384979279868293954281154115135414436690813246064403220776421685814568031320807620371093513257174793075040336803877863957194209132968018688131965702802877633650215863443949719889487536624279578202065050035461602800731127576127604380128300131327268408695975717810301046026860405385276396287307887367003430252340840917134111667202546572600220475537684415344515684072248141127066158950942246435696563397158158002943924720048011447291413686370365214420745346545876293791326298172203043449736353387247466101116891851277274059563596223244575172298993376596170977429704334574776278201695097177349151587246433906992138299120909512568378562618024521272582073275250575157950758259687830370473862852809670645836495265671655207607735348904544653993827165749611354669112984417156681701596569787808921283877858054998305676965918418559817934410789403642368338485087852364169287196867178797076065261536673512350283377607426249785831748117466720345831581550705175781447670751395380091776809452132247104998756938920575543583652771769359203287002186242262425307744307346802749813244599766960189161528794536768321771897661449335055810385887001457406339307276405558033623267006094922054288558048986872821276061735873743041697967618504003856760617840877099781326612869989920945254373939136116001109563702535820943953147143111862933391586614033724993646237692667130851343974993208255154411353243082917338745205817857007488805147745225455922831580921184824506670503813744756368888231928990879655936779661167954697079544430009933546747589818616177210454254627322010419789924882576858823870231548736065418738413245072813219288202597328385057692006188546330720314584178152049576032101890613808613095590712856940699875655002935019509839245003038376555363781954308107442019556875646780241757862634084512317744935832382840103166633768787564532523728643312510002314517874963354629226149689605633100597731533968516697647738353856228334956631014354008206662811139262610497485691916716416156670934548089441652876242546548334413208899372472483345568036371714423119275127821221160844971005577433309835686046801103608444931816572510114631640659857273227962280025882260443643792367594229093244038579987533069402549348704394883992071010079583933165681170352366053671337988180353673815074535593405045440952757701619364657947976513681205969071914293001130570558958980760211240845478384562076675562309578554383563346706348191995410584822825875470640615900996744779665217951854572303578735622137250042839251412699645417775273446660149672141630001762571941044468345849616014539891304728718794271197602539888486433628469653945129464750580004970901020670193703184165932808456403842636527432296043544168956427880948360265285392497614337777191595532725916829795021059138166172300653336072657354253491416919300959168931353221681394729605645023384200861734472083398969912408681902923995957634160464529533053642803180312623039188824902923586156340129672467025000074440744441821056885075165478565460685240988131889561916869973457815820997703655300968501131841893709778049146875081875952253423981918931537000047977290243552033026490918084280201615231582941266967624706348888572230090836251076980036176663531205816490983457050580975486839619460702492407625127962694077620779842806942760525027554159486454122826681792014042021849644643109433152808291520160332037851513132087351595360598542808429309808286313237965382386912463255722589570017131475209442523469332950221394153781718840139093241141875584386500166041867688502458502710850126994612306194653522037972385062253319706371169868655205130286617593967286862475489080507102228370845745046727509003291246409678315770685329391165389934209974787322802338949320803894198480441361879904938139205612231734003559919139531651440043386275444955521439731339215871737004278148244984639307133425295352204494499727658328974849805038684180253307163577143336917873199783767686687845795890315237896316222006235478645884326982439028240365126619083237283967424128894548027203578507283925222300013203537081701649035173723455808674861539952772469705696921963137062460071093485745062862543004529797056340559390053743022067241538822516066753947750352216856534616203386787404174177395208778065632730190448295556671558046738720464479333044286938476005611811652601380704462706690491429716545027285298472600867969195262498020425809935030384580073657722363396446177136562521509059687272024396783328193973692750278097646943471838995973852859196991603058707088272616075412923919509016999908396421042292042864128939083002696658829272268398469324396312296047689645887572714243075009680365644512603987427887447754899881730993475346213934327144103255595198270924229187753973961105431132382367015158554077104749761729859754932231908310124206566492188540937462824251031349937384590215407135505864927928402095593020569436616303972351044093327145909858926603496498918888015771771286594951852768777307773471241735234030193790565684222510343518824137377355674377779450927014895493913148780486553973841404967752940404406693375123267248820726414782186854950087057997671002682176908022677223272537250331613389040223828665449873765730766604893549778236560906583017270541344998707909533470464039117290140740265145339833962772849568633283225345245398161943311807603925271524976400655164148064516875365789377534572209504183213545518186300600124994099057041032775528098354291575743054035937184159029866255202433926621209573739970867137405494482784541065764519218086329827345780898310627882270213905169998632747858153735944848407433417347519527070493467642691198533050377037314875792785336467353681720198849409815565345166726572161617485371383652128077153082598406411651966158632777801813980623918250127205915869575425831121574256717345853779778629172292416959503884702657256231649294096824037433538077793905302118325784599170028039257225537951921792150634156420376088976130331146050837934173372977137032478907462390155565263394068753426485963452573552308208688199417609647405079114488109046659724681556332765889342429809073177557593540163910725302870080822253105203587887190868217756745387605541208006416835995466334169117328841451867512427533790003982177864542935902313221793156519415627303067761874515759946891094086325747313639705224419417103861057782626896757058255893365320596230347263487673024843235970045405929640383219899250122434144498132705269419866472026981537666433672027788988577593868735115839339590201312005596216717210317215010434223120242947290965743854572423924500745964723067481814103819326595193834553511087009218143883113636294535142214457214410133555832291872744499528059187121349906786288526096770978918209740944995350368974025539678381545884109671751741555587753508377614528566671793118626910183459183896692627901320928320042723545738280241911135184953655705387647515142910584765691356708068229836384422555329358996673718501049657456520515130635059166890966516739343399006295695786319909581506155648945987804667380264337891899793011011905809596157119903916792514238129220087040930091321086207532978342737015321940810388955875831678459525974212263434759878035190518061189184365289697949878650974963540419065142150940529060616273162727409422055456093494070587083519511822105745625064255294825152900454230102921136807229557757859257154244395509631349970197780134781918515397328095870664901734699001648723561133302582885454842668241863093532353907501313242405968061916464306689381053745961572295420752060736970901636535937832651596875243479975233591104850449806436951896882348912086490734885504930025174147726231321660359683339114194083996969408706892459800485643372266149112672030706718381559072925328922058566903765658364260641084923088357335251770708358902308320424823681215860467504194694308760209715983576078299111597252181822980628724697966493733682082210569325569459146764728799016661620781621713304227339798703565041909076122085477949800174411388078015007894621893482786066022778294903888342105585741877809493658426634169447464498788384549117613497908547831487287578681667258454545426568573651822534935716655164618908253197182455609259512599214602713823884301608661585188548200387231206187046251309109544806101804318038412201323601379246265561615251374599568982326810623708886131403447926173769101860343381161459461844996780583798207601740103113176497478194891887635182602726371098885679112823316381427374400314933824398490334263793911033242904322862290087013382044449497240250188958574526514840114709428527771277201479899570349688197437116662137451314127808345654248218343181138704822825374586590325143264026594959108991792127111418431148022542714820819299460527343997978564535583645139534499183842445612505019074309131561504727772705770939547546713987821153989869222727158709483716486068028133646974302758495604943273730275498292172025966404804727472237345411952546355190181030691524385786814545749102847574249371966359622230881872339010877776664868318896279240082264417321957184195985756408479860461169802608946656114578009753427324476830133308937904870518134466365404448989826253116130362725516225945039589544162378284696472136487718788360270865997336718892925041956114851324833376463127852754572692997187023227618558838219522312045921099011137050045520173591971032530885085755124381987620819126479487927067029488693209473554108526027303075158589133666440125743027619479448751861191528894562467255007038077791920079996882180628904813368881614637036669579924508780805387925305102870126673981289657015318304869221186942216459327870406016895719134630645308965415685732079675310187846708430838842304751933550827069541641445353910941133946473597260049054216405180368603915022245729914503881207792184117744486637284737407989098077866863619531097721957854503385624852008307587339791446651722107718971714245548606966488970533116894175909110582352273121843405355891800460177712053431361874864561956336054734158531364981124359749955786676809044408878675049288419648978105764750140371464903512901114451329727022167424923944663383072406751911426280935412363794873050595524232535088550762155227734588138628900610497644292757941214153337189901844860063315326520040099448997350643088755252094376082315139228087054353202036526445445354498583770842650407555836697080072901784131748336175616113932131050655395199171775622259361651475930141085977662269692612798471136137878205280469466779495227008154457910001432907185255929836901611565590383070480471289091136287892147149123838259386753761471779596728915374212269349920431572624647674563013486595036311102174870816962483885692609046612320439147750627285695375122736197426658742833326831021766988661475734794766017473721268916148852300305668293015972715522762333537226807007781973019918454405510035410641417989678846710655843473824413417443500722813568192055845004189247760402922799499797052480751338743475002533586701454943534306610233456102416815039550012893625039457548251715313506358209305117671676502838990548274540754368160550556620712194234344457192918909637243199482152245236175477495562056539865011651087571468783676492239949183978053274466126059532081974881032527973356757910421410273658016620828425575814479711204039735346789657723581539417365717540936999829524859074499076681202361395205055219726280071609041934369415456628482863710703513500052632012876402698984535103816178385894998447618353659412253739576256018713141533414971661517340117289169479806260807871728988103808907487195554808412058814954478570948868096323236779808315293488877285943406358488246797875830094296066268339240641466657323576478651758731105234467171223532412851895210815016394172413065201125261321492591598993901723598272963320991478955072289518919831170629653944628467221565436399363979766106155282047509222422229287003337671047083694661211174639230543603051918283816860052564077692694730748723678507977021668102595449744837695404277203573871246954367401049121738402764666975182428264596628253572737023897999883829692659342801960963008799224974117747188897552741439656155491972113819362161698808018192931868658733030053926085700891500155344037633261703342345733656912961856250412616832309856076488576754949435331012971810997597855805126729243466640382424451980445238806225190298785737876232918959592834598474679589136100753530391807181690368718380524222236994861132182485521860378743809378491610394016085128647656689377250109755674095194765900312797515860758992750982670136759883511953588371418944042742855794077309575774965042983813934313146765253039563212723136520322706388132838753063068534937941035881476227758984764287288742904832255094431294960934287064003468624328661636910647755638268687515466062458210614728756987252003935344386915456557920209394370705420835514024496587542979112386900939314455801666269370911963095815494687558471684993996691388193773668481897898955735405569647980778886100593723756524599466721249437399974314707473595392289819931927362190065609423965298048433075727012898549486864896417445518335458429944985872396372191361846876459271150062211440494299228111388446712998765549249782419111020703763285322026401263173833231614598423371282627799815038635674767573206667120239665311628992680924131808393819330469378561743083916001842685210750666136651644021378729726039858841481827437299849398467103414074228157274094990958914841680684029264224922089555011593810937250306064595619627486803298426565533987573020076425654777154562817374960728955482462135543904391390533709135308504485376223940950232283928451704004784378807038612842890614442991010116084990555283583565696718632719095938698085817416134570686313708324786613128604270378046667920939814918581782571068229457327801216746996455304892555592130592320616360003236943624125258708981897543304388677129895672199106130812577208060910682190051977967236649754267149860189531796615417079068361081838178494199004292375285975643792482168466054057582486923289616226230293628651500935697450486265799232494161260991465557427976498420752486119119330933468953562624797097240878374517306120123716658539735084100806198425248549285160102152683171552502904946440201103992753325681853220458175822558958855016154902650522514524072988821549368087149665730409045814875561598497120947707906420959557705381749614089701247849048425585031508212737722178026376058115792519766683380484714405653380519111955184276833460330090148839789643645749886884681403746587243911543693300213509330426383503051640137939710082498779842925503409930576472509992199544775208920154406370153596129354361882844159291984744605029599811661957223093806391156022364312831369532116855996890674045278666854079266223964435096935362668363479284668798947647975515678114355763565711498712922732216050155401615604443082910150940057760159553507415466979022170366684440648054292811096645998202002625234757466485242988140141591943766530318408267649386433530788803439087332491254021621529040461882997999695343474079712591520097030706265135503976784566805425225135202950089831192330326083345719159000456651776120882553832176391082359014157025680350989234768644035845493040266158614341610543762231570926265933606352147471807875818038745663930548169650017534886932090157280731284866451138362000554394594683635810863118622573488955090490137098928640237459560555997279414704819673274500847243951749806045013089678257013009581039486256322507536568938247113524709074643315123960750486912346730615282610093457075262057495964338286738942165706846969481368266184264211712669014351449213671530059462047446877924135860403076702577050409517040686826498600257524278341014106489843863484320766805090378450001841793170518199703405469389082457050109487652589098022776394500822147366869161138254222094840281836018532830438461330278655573293899216770923887303916006438202801255040509150450163557371116906160095414423269716173632030742523832566116019357335549150332169382854961918740441509916784505675192556364651327734541052555606913393233779430053060280738258517034992453705025930341202464279788726049199450386878547874805068353480553881416415764691298839940284922607937186466476962384932136884966895640460886098217190330524575425057947317972604352330435236558274040382504000775831262956776997582075431809524373475034094160618568654391733027287070848484353515126567562269480263885760800867960204063503090694510026263087813784239265640390898626966438417566283079105909747338873259307036580882517579342800765564572404427927712419380678229200615985484201681804211565586545375520302926350299828415243801566378391092396796541278811096410466383645967957870936779507353708992091605843304236674478421968246523094406676497131264372345891311753183389209950846678290848390281683033936122598520404823962981350136922488789251830338339574353799198271920533699581185609421075864559891917858952706934017924201339336980638634801180093823367105469279247919905670907945720451053068956209118217356103814366586309819608663968324409769777710656575013420492036830717515437289385470794092259927890841270444975749070397886398501767646481949441828577347867347227017676843352295792810555418554312137500831368880698937952529843548307263341779057644221774595001334455637402800786925462543886244406215212302180203717684471258711885523937827707084276522170244797518107955965088090296161680727750480588116751582143028739919770764870366861687004262261465451560082749450859644368976628319931067391652698320451702086574880557401120235512607936770238271785719269074072009898063741208402341270292931851006558406108751786927251227910746994532447447112656758134510256486884534647126515475252116952288755491747172809565735704175397135917106058636153894997609070896610882432883447448503636842677375396733975389741052894595023070757865012496898538289777652398653580449425158801498806626263592181788793356122458814086174242056059955544382129633130532120571107414073822271627039705216903356145314080338604494161659029462265898571398303242426429079728097950959338351207935402960012504701862658095932985616628686803213173760573064871449817627228633663853634929918455027618131749797073975245619877720745799548764616486591553506812782778083221988001702972142073168881537360856977529034161960072360808034159845778481338388718665207075802385228200372024982394085589809954020901278481101489029984997663541381325234761272729858890259148050859475502547664574392996847145287583434595858205132198968895214126673185146870401410442482227336655854359424689430981754325096673039425316042695818947164107639875348927590880407424867595086066183407667957853657860871034531232690338786421363676537734486108795535581116694530601415809251538987608613869362823146145095750716179550849503473868105899142535063647269490358933823466071764922638631754573505207320899639147049840207349099099872714666399987814277385349036124153115623360019481435643199712482766888032378736699291236760206143791142238610476534375546525990719355578166845712924131085165812899967019610876000288911058472854998701956682852977476752088796731177240610475860934469137332969166164228807172948391164126806974334455672988779159667354880663434444338360682141654029101491556493759491678382610623169594923562504363793482753141024685152636862111646840848526542826370087406674330152418956137056984919680712902543174316429014565461229729187665714208268120950442139625063428414974440200743485822784114332026485561721191571014932168355000428521322279491573805829522733580913981238978165924863574997066914561385372242737929560595900385807616901813753795190491245731614598961579198328699654078376900690324211697163060925218776449831438743469097401593050977905481921553325290735359432329449530301237415879637355752065247926672380507727907472894855552992120534410983543462314377186801168737742333260650996089486919212096790541012364700681828193687095693113420734109356345393028023949045117765919805228267375257009590586745272672410201533732106660300933642676290130073840165025648282737905034356000392286215173033413770846433208603734874760825110745261828749453875965658495769113691484720182531973272052122609382718865447630543918369398803899955287743390097206126651727882723927028152891737154414886373652510813989315153866419213086724937271691859189826253591995860244789822699373409346356125611157346525722270352260428212134411698235529586942037015711258018075672345764554571755347255804484866151159571025984409673648007577454088271084088823155398861358570677651899330891549605707632153064837139253125553987176430052169526225413252653486508023950850435701361420324181657299390549256411307435287494797533089372398406311293760967934758403222490753687028439463417840858094351902259045592013205143380809781677947287717565157216931981789453193768419749411602092122830175795060090213920971540561939413023821518107946108028131648457045399063643705999434098250164036858308529630741471903907307085308286715966851338311334100951498453241164891792114377872368025832001772082020097975575762511330854392258051224389614744252604486322717901282802315024023665894784438291765977548749320848137076143945121737290074232469024077513246129066250741634313626831040025310968401874416615390193084551933244103255637236168412067647845271754913092128066059729994480003019886584057475338941270662390250623346013788599903050924903481865133756796458903666864923063925976409595482843785136092553821617752906826884681656366287396083772153550277146230721526202589032458453924873153612909375391392868324701294860566222752200379768964659915758954670912880794381816897987022302832730221084114606221683227407812367765102525550938351295371707277714363918910203693237040944336675447284849954141966495060875102765069786714794177551395244167923831052736808398556137064019143202621258681313411719022338056043416013242576803034217033934398471960057490558165248757602993885922182836418020238125485852781946599361397330539537127649983375728078231065287108997291024905087168690807279027197400068793501098077328476234734408847450724701724936718048166209661390798555721055893741521851204957295591559371215584405408151081423804733908629482931463774388003018220381772709097801602903724267726857624967139199878550493744461294451155275359060906406722315582018923277940925083131840971750385806813190327750111792984090985736934498221486379838215870743265289280348094743586050240471598080288297413230833828510955233231851524375733348752214825330238910881218566187861399713528924665385711357162258579400360026149036454595832567925196644163579576215166045353434924458438726817774874797670362758273773634393213869884660522885149923016718282477900491087507171208372476125688481244079616878108070757333134570984565105398770660975349822848282003033144916251998039524143532846660711508160208218393893822004507439701032340682342115038914860550074635612665886638916636560024983931109262873350341121198400341193002935950659426668371809601839943607131949422596390940175429280699168196946579303335288471929217978972564428186370042748888336642726820851656414146647219476897620909709761844555441835670795291656034210520910767346760137803696438279331495420889725396198520102520837525053569807976122497866925957884959598062129679934024256616497221987518322802327468227805599906849129413901503161055747303439218589814320270586367155112493115892509256923189322563134404945484041371913939461083390125535237980166520332564515726746104918622232833259582075422525390739431196646188448594563716375641715496350925797974979016051460597716569284554096130629039731448338850048439923020410578778146814679949740884760372981124510684959542898404679360563401578757269165910751711620199528292071832376092315275131580782916142264653349939232041849986007478956890472205111385260888961523690686894176871742459691024507402912440367023586123429283964108775485117340159003214526519818302640998580120249996553598973934992834751202614103719329541907350057352294381748109520333313199998293265922523285611122060766933833273190271636296421442903747463970420451667680554963446470304797835623441448007241341374703679287159078486209302768603393693872121807597040739283352194316296845631565188810197365018478043091907128843034709683629765857732586690255791019940915281341841410211290552240841441830344886019557510345633774402729666754439998652819536874102885218993483809847413900244020794682373634889528370201133784727640008006542408785396880127145155093315117429382457532141018745425859173513575670629456548367952800290162474715850601136120103866725030428696241704980250988584355182014036826805362492664308520555406924112296020273909040444017473107285238154451181629623121063740886442781648531356671435122285878568642403154259551557840624823119860498267051164775884497392130011420776655496854819354378509372837859325543576986777622573666290849581914299447964222573871347306493983468651630211425262904372753224698789776367648607249540723168393811952251263469743131614923796750188348854045744217045562528826422035803951768319964242403798642549904792342028268661199793349183768798262473999211574547316004572881606336000166708220201129733995919584855325818630050370488330420800813182499011013139387256573435332399110305012147775495142600592697705505236166404572137956927349224416939724167779904753882209115428317956629619714486502027137874574064200366663891639565730066941976647040478087390730801743532365430319232507878633279440813134261475740321965903194508498521829190326451644239253032519073863998949095479131274322796645047225723209592264055108845344107600201597399360881652313905063500670646243843422009891125971133707004019924306736249486055089387842738625807297640164624477186614089091989534582239440802881995191315051615367391032408407868583772411999290806211020653546885742778414574619928435930262406950493893482177635673780696216086170207596732260884896655515894057941150273325057936853822634419591522573002239651071540314939975577967286543830940805804245608028175785470343820517787435122700936855884650747547851756757325330084497832087927650101193721010634657028937046543163340567289778712380002632206113117521404006658709711505188119680443085852443071023816801263155946817777248505323826015244268112002522786555848019010063803912427924356690251976155479819697990977397084673515289881550488535239500639097582834910900092487559180240362801467623319217164953601923310900240195835131294962201711014546306665048982913340196156239335079138816696046831645896485939771365816592412724201082368289233408345787477763791628204870210230926554663097481938983024920225868876719930656015511151307558848873773215639637662875259164100712095942391039769527113890016717150780134243095606307264037598850026916476146275708978718343841535037639556587176960987733639600744128870703417581327124511154103824884369473807590966878771573811623792553496204636961560061226597272219429013388058224226576868679868393788983230216916449923430761055260583540687584899866066858401337098938681439043893318224910526925715513300489529682282346117920073534271018306607061427501034600187562636236376235840143389757627496659019558176238550881867789765758135585572362388621062797670733791964909199652437186358368649187329541918777310937699558022863889642115777964996118328845573172582320693031543914014232924499254733370138346335838386827727629876912054857532578896528425966154822042863645201251238837962930802465246818036165669731468835289742402734617954394850186409243231466105732401388996268047067543160303724510600938752231069125501122411732761928582656826936242272169352436158762112459917559941170375467568200041903437317344225636993747562499205906786853553680682933545784149879126209564391669388534071706687734456380632700450641767556733215238426784569990981400514135055241069534489705538795322495398730246071078752192863190011409163981498738720121895599880586710818591922615086174613197408124429230227850488812541758372669133620602714608070871118793248601366708541821082851034719196175432140671163947267954558331772028691796623584944781114689203814922450288889588113991542308304896160242562814922142350675783049190181259716819700123612226984950268520151795974883757921748633508602514882759166445429245092907542600100041117728326378458460946807228132314551870244542614171647819123028218350592486145272194152069756074736769438105910228057074081992253526881791698300696715917853653941998388157838637771429377138485452050702115272133391543555172156040978717170184992932253984209936538151038280435904346607209215577232651840278551705795256128155414072584337479420734393766850322817516164681871576798213644240748396558910264218669050281470195657889376537539491769458821922848125221314710674931901018538479214557113323377949179089181473869722398607767311088767630292606113771611617137305424151026784211700959754955152269859446861575202569693355296890440897010382744748466101384090167315862542569321457164353123820911134447921850799431494945742539063427077142338464203268664122747866918978134462591051936840800795042439291053858879998421680993442570805645452400141681064163636949358875869077946862237988293363648081334499952109164186939868050452837642924312715509526683048203758939892871413355197311888411281808289806081097844981032569921026789232439805095331818513410845475250977773912678703469859932084476845371618551673911228764170470923675226369558324345553667134718744965861863789166327202113559837661108347226316532837308890828559635099985640387455542806485293818873634323580988609377985479337948747834588154847543350918701168869562379646000012166598623075525058912791252501433596292348756259972037613039575491874079850092590739846548456441346439677033942944493155753083225625671921963904792824175707161708861090814687785420612635296216706525317202429107691763914483615857412516084273519798692758052814110292451117588030195455229121034231722837072478507208308428908961454335002053389055016935965275499830099982444170960385085781375937004698675968237585468554149622516166895915054697117585854727765702732657370889238354733608441087623268370645527690300197706643508477131048056038643298571852997805866667027757727647718274004463754017378405884387309183005384498985445336542561166068375656150595401613811535467074062761077836286413927605501642603453799428325924250045738290575556022782089654637108373790721520332392476794821275343366111264851226765505962088619511000929250388996402383126500285908447520081390658134860479750637873477200534957164828484557403376582069433358339168916394260426147120504060628549809946753430575341496928594094265088681343660497220087884091731693289638205981168907747462938625395304176969460031471236227229759177802682295116186006175559071679115746079562266235674649728938817478114780344076401545612472630180720211069470493445232558595931754330256620407159645636324559950537818027445103488348485501178762669619283603333564658928028436004342113697527650657885309974971403584560251326298839956694843777623358988919992931154424947966079904965306343102208696015501516578021363901149195672814495283622116678011547997119377169244556000864856515001644725226997770794488597592637531268362891516963982670263117687825924609043127663499705506108107185264747340382396776136445208922033906438322731469574561389137194249268202493140270233217525849388062830033004102544214787083862074112559487951538077294714198885652549375918972603357037204854964060064314253662469473397785890835032769642182720654058015958706794462403488492681709819765225016747587626650664804546174392688249558977269461352457062461341711805400984853088484466929352732625903841615601320015227742403704904921702426633915460268366424236019600128546786312398111751097981101635387531232840667685964583352153393491794656644699567933387062223642406624627326250439070447364182249458025576371123684660187526171530832354575941026891045928833495071044353876725458402507639488769266251514136984002122766942866312197488512574381186744238479980159135800741825885288292057423353780267818790263274670344776519800445362213542301437727818548090154072862051564597890785490232800675932609708245642501087151320435798611168681823295530703995261990085156581543085371246574399086156634804329233237487410475712885889300154934761030608704064710434497568687052326886242168197061601586155924113839655192130220534713600628872802985582404469210551921350116395602768610115819715586672005610049203233916721686095720288254731744093852428584062246417547696752430380490951117957233686129358674153215432780300396025374398778937978169084928085863314009594589779636273370193535557433690974300368922792739873330601704397170722988558545892780250383272675272689237336612151772915108575843188949831571017504999605467063699926102158426988838205737156676506974243020269408201074794936442912167113706979359916506012989107798318393511888873162464630665774830438392732261065277745820974933276987758944703955412686714121336470733059291820392247814920090034619070785406416799706391506443915090520923614484865190840151088631116611063821542764115606684616080691944563163641427901811697563148289572633170228789598944685668505999244893358628275975754569323084566804109076766394172758827188805044435105531365597654817321848783684434676077289627717068220863014014789849845339965582313773714988330317731161151279893201981841106685329341443498620969593635066260974405926777508381273828249429866992959074443208684105073239979004828449248177028176367492119209554130827767850983900252092739953477162374372682946478736259534430203399308508110281965772687033038235319128548635283165567802829150197782526468230445100454674143940178631731355022109418477269243685879360170853258785105955997149974952614173343096334307523515575121759219503247265820771217611474618610883122969987475551289853166906330442652625282177712174165354055256794802388030642898759557934800946451407208879321084820106310845273577830040601316329717981699019016169272031708358885685143545621869019553810889845319808583909964914804316629594902086432498509139852068359534166471767277086754552365156617831994218945807682305003959848696014776077901572687195266551274417995341832823825823055366435934253920548131873852790360679808186203337007358744561180531274060909597516498367757600783572411899756721605547816098923660430587681290575367550048909556168616385632688626151286742125229558977455185378931063222025902445218933392567111446120290457928849555863173036650047379110829635948426312923397615683558690712651050216123467296583559737264577084212980376348524256375407003870136264536125765216358052208360210593201651522790200264409881313921601826326761501420622766393530455866512058046437954470435672069537847524694504485534061782451517478714117924977069161046480461203894867344575878407017724678484507021687987748106650768476302527984112437647203514781306545249555603863140669686906301196228369599946652764754639754078978215403306090332952756794463812852179403481132807318101640364183592744747040032856258742345187449263356268737068880264032296110602923479190269675003514866045679416036623530939445546109102012801086645213853918687011907588475019399817644357145989008941206795917579126334474370055546699265278365884551793989891570162243415237975729070768976515153840186757311779965516633955714843426972620135232504163957068795162022541441029355387878409861981828034719781513962280175521639901813261896161799615678635121424093136355116621755575478902626905675381735492331133174226624243239124295319840700818025436963169430828033624058522444810183650574238488933715374365287853059825027516575354986836066231518512270955076766605216432275607520760159336655172623044988906972822260847738121934067958965726463277056228781646987194738379589357995263172929528451791051244241846320911785953325093642098300005973906596237347181076955612700097878566519267677043504943496804472462730338368313822536658441227739459603733792861722207694317467572347147977791065542805305212579630219179098003005251254235438031202368793682129824202046439825298425110977705793622000979998632055219408978505535814001749041804109003986670522461794313952864385224178479633404543368966790193110748045873674965174079570933877932546259350675242958118060691134808278537915088333771930215429314493379462114040759190987531382350158497564762112754716444739243052187686613602784875414772249876563803522555098925844840827143460780146653791674005452054922939561323438032896618895200064015787923799284115046409934945693327005842407518049424561548316751263350180653638780245691766623370756096838151863193178365039937348249515054488441450194490248442779616758383347823856639940956773919766818270383703825761452272971485337513235343081746367440059168427543820745881992258058448545828705256533294114806330130266211230145857597718997562721052673104076910653879799588468784055868387192942280890700044378812880466497424799327103950218533003325643148631979977008830090038655150368564739513041792854353119949415786474097622305941898764835033160796277242973109312375988909270866534623563591761596214106829317043693839225596798963719468987898585356962368790915347558410241167684186987586365143500850156275871337448068084498380948474020631721866398481846099409570451925590854606886203329864444065885198656187245562567717220582958042503543613748972598458735750822242429248823892934813514705963948085459826352956839568562020423743389595321250442232546916878697586809993127141274831721343305354237187924641881971568165033307838899601458484609145044229847392449900790166816686900534798642304811744949347012410460145130809053988795144448167840835575362648096554144056056411607052784002288646104893310948587924765238921830935561204467511738302438224659760301224186998543042208886520603448663495965540225267910483450596467793948685220229528150158779538756033768949916449632304031285795007902876365829028718520219715705346443562288862907725539920270949899737197782048004968927269153878588662084998843321234770654290338029197558450075702405471778782520321490622999886500582583361598842674125090700068902859595548160906661901463611648447815212955732409658271900659914031852338114299894004752364199937259111464396967358162635485516232829794547388045792300712920569414642067416894514594224531136533761946240418740102542909229318581617171788029264083431616586811759646592892007891162198391608259497423738283588175041407889983779540221067545193516588919997603643774909760933816060520641523647560286287514566064550739571718567860504775342256953567725603624015479881003616580136345112500422768804036229161604961155587541985544091815919522183170904650009694030175716110462990861932521388269729956689245017908255054675705919045260252668360476633185942408692798744262676981177050846278330589469434781123205291311622883621458199118180285502697353616259508614077745099596775710682951209276645715163513782247410440319640828579395635966198765065216179956575859952196957941980287194091786910004194103534169005377137727651544658924352305041368448773831767320337755216492293865707893039324952727881066173133625961330795043460444497524074004826483708324969835270907964004264469945747916758116556849612901982887018485699541256203338620019947395487031714232762921580699729215371005556511681535910489558616749829475790918359963610762726625203038409680396483505183289294463255966657374744269817084266290410158378397319766436446639032568480863353360088364417722082511015178395545599329744133098430197822019788118123238025463859070122104402939553173667997501887465653925359100343673912399799682098548799662545122915129319072066800489985592688472677782668612665182787907518273996810163251345244679991551831338526951087318378513665447271428402342313570582191837858652432082469720950952311619678148456242570561794752677871141937520100885320711418572149283328544501749229049566149093641454499472282607183308358611707638997666946306321447242727428808920972652929076201029812249000210165009682472310181923862172909702537668053223081588313038923223979970706449430660144689217458722966521982338131288602355186073715906247509579848368549945748693276994216324739996806954358039778448139001601437705211884709336539574490440338265001242379225576424872733651331692869786668073405858213755412171048112856628572137083515426773359065570311319251793809242738914743936573156800840731993514760494396810803323808774591256167815145327790132927767806778455683206194687145531135998317089625547813938506075877176229990128466398937232823146783469752370194293135294323347728150997862530536317119360488900616040025662455769697612573676888756896030103123161295663693811447850887153171588945852629070657246874673124922935754303737342109937598246846686844880156045801255219017145254379110251705779116060857711670933179905292594077241644108886401519727357749108717811838758234521972340849737218439201428031003651189242843778620729082912074007185333837734299148725479910933602918929433738041496547763317694771393940083936283795701129858711472310324613666349982888289623518858786440342762944312357318006050925489867297282770895201669091261017673032316345887575308156042238320104415083939806556190521746290673957425143092816799517801951189961007899698909204692781299793691782248556326348192261633237073666817247062294892888478466493375410321103642656134642224547044442842886300170330959834083147845335401882860779855875392823423994464614994033925727636069661043666872212213585725967867617379291225837114908511662481877892579623235013510459704198949126738900269574693345298617077165387988222812782007831418321829663572389778377893979338863409007390902515045999762773506748879937176993181246720410217721511191111316013488028780743591097310315694119499847072346300817053827218458297448298957765565538738028334097680612680666091188900376760265947795532957930543189430469676127192928583016543463605161041375821768611161993847256100727483566988557922206896958392404153702816066754141119656442421600407554266527083663158751540118710559037994139764197339992492104612134799414547450498699346794232946016934323254357281845301683552746629101831651603552520555426591391771976480601678869347586016139591507192890918880228340535198873934503178091900154782806444785390199123568901090841458366340487662493608446277315888149591168318000571436289878827007044496468698984963536205451685605216275992408309631857593741046077113893663270547406696243472326054269892788230947320846389839823229849685478330954025518535073065709804097237218672964255861530557979705881500439604058577495143708762089638239908337527610150172579929659037664851260810454790811176608990675993690099850505021337965592524479853333856393135346841871234606105763982931620043151413900210969444290956362898786445929406221399902314361689175414087816178628045255851353098908263074270160352886384204662934635906944877750824307411210211821760571237420370803779988016097849583432946868408164140785633000600731310596110868924612003871989829930494225211615108299627314218009949843993563283821752192614721594572458802155491344488511978214668907979534904171388813723880607371936656280297654911179370251657959669699527374752519841795880349958783553176541711371689238829472827184300107220624856101162770146348856911608461382249852368321540313749265941780069966495654305322857722349813383042287098906436815007308766990082570722891844669060776386629471805121464542282510019628124941562554774783956065056455133269902391582655951692488141996906051950200996472814654318353058556632698011779318244463970458384032179901060016060135204281554677206026870017736208277184223426338563209780376503954263591999246160305408410563699845072558035375693444663325340494449394689431766366998896299207232245577991215149278245994277147031239202946317355205436142235228595435241525134809359907409238155718540723272589606133712601642137431230193974097917582641006763075831777628645080844551287111668355707816895104810306839534442132402549819073565263813588968721445636318947939718270448121318411160890499541615803893854817430877466099182437694058933956059159452459802628883082868468960958461011580916567898056985894029045749601371295932620116941530348046035985161316329079024952617282368597476688337996898100817282098754568104142238690351023488633900952466342540385589610729356879143792528469598211865879522872423568979035471205538086807084429400466040813430090449488028396865732924590944576091756259582605043320718265648620224910991368735800882402514447457961228740261664382359436347424984828292652200743873497780946317446192193292774135122552319026062785328395726247424667633304913805618759365940520048971562159759963554472637974592835560867894135350397812268317407337984291584031469484165048302393236757243410025520150202823595046815172502919855883586433860783248845200793401460356155187464667715019265185355182713182507651245992739305765353789418515499776964754211766841141227336820336319423240628706623399887823054303207436133265472418636558619465727671482258020710144592481110493677866238736358415581017265161587731137057917198408526318138259939285325970928196718569944736348491107348798387035427713390400438640214124912250461716668407236030663232620084863894672775648576672324457150808212915194629387382099916014797354158326072226066333628827538202639847109760812101491927292279191596795136646509940991083302693321138603029593191669085814572787495073145766226196272749704134561114146850611646433529088084787048339002181970156726722736265985902247087498811852202379151982339251830692144782978507846021538207817057463012111229972106863084846901904326260147254120068688078646223964000949518573435886720532221229855894069653041075572357895585907528919944030410710800192441857025822638238344640764387885712003043006323497715223774131189490754608932154566265908475972853645932884675308506140794675065689720537848376899562029897892692308834204724661002507050930471081551020457828719301244953874531948156126828892175607832014165243420725945777824776497529935049108911181552743220679374723131696753485768477163779371284587909104244984940116448804593679837605512758713338728044778482800797576643860973947955774489096893898696875502018576067991500248180014602631839581935286572466705745352202771891023566160808161977435923888400166786383443612295906348098515913797915692694410259705329964755715938454001358955177825957438036584303650365049439954377717321058127979404329798736786224707741852949016763327919355668510977043933160487654209719200693185846683654272935953900992659219109927686728401846911386483531300588970111648374959389049769083761887063208588102657347431660902644815468446130963129311166193498660016468153519808552537992123052009333247923431773561277557497928161490567703195014521869782210213962500349634704780856821580379859019332313802141375398782409711535115160703815140915115508823108810266322139877870174807054916612593848926943767159912435714139182168977479607343109690420243150073367970855503441589578460834461108074833096241988152497083091059641271168344801965237390801395909399304297226025431074220356767461576870636762280979879174090050185165420065079625821566585952722270114823131336863591819378412102164788000781388332644167635257009090713622863479554512291187164370145099897855767730411690443802492766942967665300517896306101061273441522160204025690992832840285407754496652701084434581427614835131839867172116236774384018315379266666532972131686534065635525966434101813413965610808010129202195029451387167969073412088322103494084063312553954774043520274973302780650837293850675432645027197103722149698913058590900850160648030514115891008666964419930362839457364933768073763995415675049922961940746369215342423733935363016255026051342031361186244530493102942898550910907990323031743350030348778839323437570021576751213992236524143070486414471530683368390577859583163721064347532101723261001039661856157127468981483310026671284904747823030896348859694295344201696082082908481582770539130274440547858293466626579087715923275099226118142369574801103422456980889350177361574573055260510285687175596977253569018063182495275030686760469586960804348141139381737183172468138187685366010986042930435484614372801190159329607860079449279444455546494431723640517186075496818269139240879143142830353813344714677077204040269198208115991671413458854199436133184167283946175783574737829340351967126469861988123734665829793006124254008360970987183645829405074542449698098016110490158718842963992950474852984127813545321292462124540671384028147959104408840705458758268135184301740872491351838992142293542249094070077796315057260450519545361942948708249920976373841586725931647307094878973864122084795938579662501673421048162438270594135532519803517883215453661504708587853696066566930793289234795219921303981038158278746821688792250640092697118991027023591436694584672563274653841047164677906480754644098550751983948258683199671829770862912039996586705111628394196373882531192370163310849737641964042963814722233766399560236767862688414511729974922084744735710335324586978362002096165815175508296036797465249798422680385463748577238308019299864577190312493192131490942064444254531425520507817019121222785481264118887068505891434142353677698487418880323880017502787264478606805127307655811706800902801440140622646468805056934759761714730438100166473218353192447158382460776822466425218106341584517348666315461116942048933479398074648950237362507943027169321718475071165926779938039601632066317349365005003020706168031693081626837367320360584316912044447578271055351701872530527212681909891447816319426585297247259319448756212588177760136830270590670352313413839677134248301374735139133210895888688107772343279353301488826843744006846977626774284440837130436933860109875406860901716500984473460168119267735657053050012378923875716331935659301550481608870055782317630555282842823768024089842074496039828626007379172742660999176531298639965643566355228615534993881551578268207602433321777762229029234009834342844886548105832005786134309714762526858060846647887014649166322842062684307709014258659190156220765741937138978910142991471538728455666924708528517497863627221219602923989588601181049766489462370100858334466497057399138527028862098845298997723346596271793527668454277335870655712044083315354075347735920132685108136460786048157227159185002231106348306624058166808160820600976580769263981508686805499939311909081762863626190427950623514848734612649198799774496829554856767035116825408584450188139402690047049023657510081865725272160475025188206977420102555652303711030613206684922479495484566469745743408190267894130124047603355005352090764168273170601951581810580796263761496085953236305184103787732418614156111141515274648840135995175337319546106899824998111641644733637732798178431721035286880798095356128962179875275560932541997417098342953399492124624747254004496749006414567685258410918234860499558773912038255541930739291140978698963468446171325463267835375503645411242199866306570794001381412674872700965303618279761749572182792302084403657585704668403430714097691728625683105619866557708487211127090071343585985468716532710623580134258137917680944928224726952654180244520962256615061785111447555591920433138065646633782304038928424257156184163164725314022828290653037664903133457097453885887475167704506802813164396298783956246068695123616740422557043396139251640227001632064712255178393404743543031025838287378772426465917940578574175838080299752609902921077303448544222356122202000407050851740550081775671084549494251062223968187294446585801522195038894534817178401342112407495207001860849550888021304594324331838702062282291107262949183567496681205090158226993370612885870431550907947784307617866760825094669252904117574010325598156155868326816864414969681208145559347560586768271788340678124457521973841087477290175236737386111083532800583398719296438676692831006992067384322488149653611570173402913016987035494130213001154946331468438867219709575268172507477242674363822424673481783032646185194274078439112742839160490154235442125198532412108455355080455432167212193020294359911223901292731254089156633515734389110033069606308843494698929407106315770526237694888960586008273436233126832750845892845354685639031413485875777528006728899589266104062037072395685386104335093344639179946699819860740208067858227929471500691118599235626698211812413402756059182621816321263795412200951415858179469754942689530091410381511628690546148069237844455361009575660534982253309677280934435114512889909781823393640172570100692397713968955569235865985312971614469141113783132738094320460133233047528206005266983859670333268056783909831491534558050189639321050549350890446666296859895469833215207787966392785809106071978859621442145358547526985156253624212772361210319754377694414660534098406294035343401651182966033908536099538597084194138489534755205912519537242864409879246437440111180243746036420123114270579356870243467020346437925970549249250662458958758471311766300226964788207892201716850997612324785184771895141965022115215104218621997911356090887194309970707392842104713595030022869662627175295749404088421829154849964787829949135065519332730789472857266130080123011697639461121489657942823415042081811006543917329474781367054271400926841923811378525485320889668290412384539340589682738318597534558663622895529489286337918205932576411028854598405578418555792711102178320946204679856086586749670743834521524750199431031080855475044678148745695226546756727471010198387048316453385099725053257491234090090815414278330338335843126042750181298207342829487701803777874920195933255702515466480123241625201134808417641228680516114366019183497992216934418285875845289040597048773757135172780443620954088409289563745845159244116173537219349782938325938974608699529302809707697558352250285076504945551311124485979882822716299937963636260347453601087421445942025203638995618524179244710074433991066738274256469942064966363995906095287954441128538103244894079278933134783916605190419912589802121799213688966587917335614798029929218761956153154165049168476101188906449093636600385005739758242579653580347753996318526000076229168033912006252377326057753376266226091647940839916223664305112117488976941413505001125354051424437680579143882870359764807959104569257615366741520780315516191067641546514780161374800747641231942341664924746903912933469863147237549083190258635208507563894650350411636647598503781872809398372526266362715586974766203520717955697787862972097792397109309583570828193349699123084243006576735128978000569388473183298249379381809380295627523441904348868384966947867140324745234818961334510563888720927858636323379937053671491765210351601889550516178617486224431743440379778195766640315494738278637622520893284600125878844081850632085736299170063496062650166351982986661687302822796953802247200149007247674987358508059401131490157447440907969384347363178586055001803766466743058428937371376707003045682623007767700191405507654331898190863956274803159466825323472229762515584088643862180039635258414012070764518308583270779721098076187999334005404567239127997244079999629344865500449142064177303607758978937962638996907662393552283404912892122539136655515713760317702564843693080548195876254474566682620995784322368766397396990314831932010758746112320547841054427588704696092380490207006312583739811636757988157535622786616948756971754975659663395015610570836956862868313700970722896906196209389887506015466179690959147618518525382365026450151803917074529858919299645837644156036006367394275295337722010529353125723891375214675633929822250767932130729206864005189804571448297490760389180287838296363116403932207895050383207309046096500917722755139848668837422916176809970185030079032733902425579036056658167547033569567272759277755722296971084008152144390926933252900341022753335855784210696152288234018882207199933154974291824146046497556807055949741159108141116952692659363553273326957233830544424969186521741732437560336604509183586872008129744818214286103346172298022950105659898379574131215974001799017177796985809841629420280648944241662623170514177924218122070715925649445308260485159975297633350277504823107544858945534624259913392130616093391269792552202493517208257762764587074487794270280522431574295613354339955823936179592418903662922839325949579139283503983181962495076810993374469375348364052819271554336373682920592950252935986778486741035512335131646532805855206888765911765883476294409018177135558682572059464141132980961585823021542516759411388894965553901006588064063025396351843020056126637882194858975675439537131400968447677445729290463030457730669093379775538684259324900686435695734286855191506386793836660722273431745602893766288836031140469715441219706187222844493977984922432387276039579407097141094481056790216849275955722705670461925671550444815061236716864270724603223291360936718375029511738275734128081980027472856432805624503114975851005068801652907196017423337030896090544177613386239767323193842788003926791856565570130753508292337041577002081078151276678207597198741862918672246234363969197090780510781739355839889905904933300402076658409274299190758858429292285797883346625397643195535916823491991883996446049858585157626284113276268338801186513259149221225765258254971293864380652619816279623125593764643301947695256866243059818770665931404344779200229385094782364697155785943118569115561664428631035719538374980507866698057470366260707990857846981240585626767069294303591473976491196615176757229563127390392536065330983874385376196369077959201154603131625190350070173400081742184889807863120999581462078772334063232758182812666389061145042103513610468269176319450469416391938081366750084117983583221129642974356586767745977578681470469360813634428082311279472557408734509937947979989811896462839932671480058576388968024968009470870844727987225473454455648825407743938363040687104412886785684303102953864753347680918239038398526849591526950616869019797824448025601656616310082125610405967515004338415314218336978024572244052159072157878086983553434963756609529047054140391797886027694225288658177582190234113277003948782051778388982284940117448693350666440170221960454111072073582065807796410813037882053387611534798770336556813466147201210951073161906729845806193751891011010705703800679782535979560199416169227126105130439934621070852633035801695266929407655175074840749520182992719616718906366435347268496437702752099745370697739861165677271672648889919347945395469041433949936436531308767295428261920717744703774061414008050092708617889771513012799832670845609682313032269211870505611590784623886699495882238600467449743311728450080688536524700365089024586464018579691567955859553875342946770869359137839829492766712954815592781201666842962730464304732938897642597105048336297696620215610276828197699049561859175837181382996141221398423745502668584147398191531430858559705211967245801862155499090740717522642302549259688705547776654626517611733801563678245253094841157285563284762403371004987294885764357912015734169161293697084129695614161780261880199088986846511907065468166503990525667827687765211996500827897377204115515077259665452027610962541223813359101845219749143396380713230604015099610566031737653409416068203994554338492837682191422975753869756641816026837295653867008822604544545280125853003560028901569805255344959784063421679583316973558804705368302711729993773360263549506646567834567072821095054219338349586075284809003183567101308832061121704949845087165851231324848071073221800694904634988997207717204438665314108622028364287355364743870653357965861263356323033651450264774174156333996260547326319434919396998749998532708971040480631246629993029777156310046907095587749652708594219728275459924946505166232500872922297592541657046799234240057064745762930113263351238081258207694022642508948404175623935604258895527362595804831623531894391762712022665751208700124770167351555830227206083152994644294701400862970246309798706610986640107848451771048209053399270421866621048200782118486858010793449802011953537946648113901342178979777179570897572893892936572090141050829615098933808374681976406499712812925069201316800057829992596851202585870446977363485522270164292351970805937357777641297790218583774665606156257485579152143103189495123255982429655204916017376300189334928954004777112331505175194901114272251098365805471322253814959924015107264537284103875024511264146521667664621686027196785244654435732820400675819234636355547645588560695590371588732809840084186012137735497157860465710293479542252170289433711609559458835615703961478154080147069925700159245979626548278161042410338818008708419096128485881742047372206822852525282555511148566814872836856875832933243530588939401433070059694055282825713347525596120612468116583199451749356851997656166812025398047615121191255250809555510294428464170224165630248836741702156252159739795250770493884205323683391071604624541488761171820732402372860237388402833200798825116902581373506435453686388049892773445656959399043644537288491764365217641151957624235012481782917878768788552713467244636292224538305051507724998206909985068635906843980070447894117349636465021426672453923930309056167528316132830380364321741965771329285616898622555433781803257013189359861703551242037820711660335502631620332085154885791737057962073162037278005645449337708715120111183524418165700227683968465879813085392926985948928367384923645873306932044128961313641108555292560155633594649898440279833458473508074790380341668999196322846114309419559660847215927956185504660808156018523532484243416083541899889552426347123886351737705960880506874949321964826495783556842144989040695529131011295352227110497572859887349989754336750301945316520305160949840933403981811861778753315461789851821189415909344295661364895995887923522777204398208966201452783571586072563641899939895954597829698004297522668729605513004684057486834370403590908558507900108352897319699700525118101859620970034662871500397210068278160477718104123441057480093014361451400868969995753123756051242854203126279181411846736625733987581914888437731821065931078827384990655019862434575493032549105265993644394822175571731226897742298987814966259692809050542396088265265759554174397342058107362124686979172304025797955181349603309767268947613245905299073796681186008507202417401038737620946575545814476391367407502743077145427924267159620312819598407123313571598644917556726665398501830939217772930079733490350633672337435724864754757129538338349389863841525137440989021662154043199752975727472172478421049789236752574319299865840341113657400998455384756946222649856520804776385556234200492407333298390702218070790947515433564751314387968123898496205322783629736259283749433338073290309368118693907325712488008218676741256464943743276359179099970903173580190338435106303450950214491992140366249976552178276958544936707348800390290601083572355117526540475776956796778231537836777770874741963853546772840313598602650454535646452956040765530029093442218367087577329792931820924605229978333350402445217554868327080825482143980402373779046091498501626592259260953530404123787253948557347334146561434100185604184339470031096359409626170585647941747139260319468336437056295449126398623710034819281817278747833269397441532918091080587638252413482523251809798532872316323669120605580696942349641802249955379456526391686640615641304090350294596402177590143865703351924183600547997805971005608513105817131691915296755989290974519078023230772929986030281964965039584755758813756991665209947162105457507839210212561210386110219150450080250320108214255562740241554741419504544936332815503922517431295225917579349923745163306100502442343023380247271979205060071440278189442838464725683698778343170377851950734694303291327507710307391192979924512799614303619446481572549661579354026772394455239552489587858672992084583908945713656378308615402589292228163921611100547565904347642623179533891748260829990959580332508156972856204271652281627634065225766373558102714360044968982382651101546419941069459849585718909000199209980771044808864513781203926116098709607646180979680538267227390764392685300339536942380781134462275335690254015381177490690016728475300702905834206174832511646606751037633511249790771272932092148153659528291750229261542572033440193834009426514689842674621007852643443401313477920107832828277835457806448234311802573707559155456188311372727332277945088140157549248800525332063712232401252667336574192545730678730847473471298106076965924721342202838088736184407184481370147122793345722742068827222547172209923121675246811384530980159727748343338912530563002690576167141477556094435995218568546607112881855744198229046636831737098359537897972816225744404621871872500581198295069641118851488368027287674466862995878189733605191496424812408857972212131097456691644439346351795348885585355684738585260149335121490070392777722528305959888016846702837139521380721802171389033490491120901909253008197755949769548923717243602679742509924537248254872331846147099359882960429985041714344594308767098714895004204904833193304749612965383696133942154764920507463954929007689135217800100768672076235554588733996931611815148662419896456215517266430884554562392743638849988258537904818475334717418785993185355611488869889134597034522178951006562417945376239351356059501137355725338479702454182013284522583752311710201323151832270212909657256609027249436557983035260902017572327178759799652787960749592161007778761724429767970537144667250303232753488548015518241709006107875520294564256502873267394198058449955501305762063423536403041328265602586840001401780659061376774023128110110091038381468560140285866731152575613489516571287715448375806021010381398965584790196889621213101462608982470572559307449654269204099963785489792407906376573542152444058881571629786675796131350444313924128085576258863841407003466833845509990674600850358633241774220356034006689001029896706725933364786769499132342915203060045074185368302806589729976421830150261758386269247545031927973115272005846241049524766957381266092608040318367459712249158845780216838189442051503975733833987436806240572860074029607383407655906467645253981006940628610331075110224508512641091691128157902417154800062554384245275715454613776970376376552996647889918500998651443101247147713226075868189806376165671618748957721563557313029704727288521369108788490013387213558533643765950109206316240683091739669637580592181569602116708763153823950068121458906545343853779402256288983146533024531553059583875643093955473228559584195338498459533782471242005147274093512812389793020438253925930080494529583565877372273430791801892364670396131685084465892374630780725480250311571131750612082072024637644110590975333615954050921524267927855060084163691798664924673188418375312510866840319709953202763043741042553090379145050393123973425930744059312049419818226740156008844036842731661888603283586219330837266711160627785132783569121811872866531881651403829999804968275510757700678136281434131540289891280198745814789164968892162558903181331156903195013880040298187594780154396236340152178636036358450713076097737373862702433250861053947631473054330146673984439882508290940578448979136266839219416388968473866433836708839684319875586478271296752204474500062726835589154076350551963934596523593334743693485207578721124966129284796903789535788871988393143099884500970220374576997136611320412518318307701788473424034952238582550418948823207985163058067962672310254287152693376267584615264095051080992213089108039293081338044640201786052751446620553002583587254885331817185687796652062117843629337823294774613107160596879527179318268226795902592573122684983492904871158408553889714115179477722128412247388927919959592624789649186319741691465535484240729776917355677424631237376367836817045042352635182822192145366939352334014104081657634975576907213413952166542998903984236817893549696760425330934216614477596683273436416587535614560064767528120428263647702647666263559593932126183839794968889407579642575944295958914057745868306073224395593843598648771815236787328703152199985550846198976312553721255769169842919487986750643952032197847552245780835367109624382640888568016632457112811989143840563008644428128633739114750661972025567433114644114130537551310499000729212432281837572857835716743867450601231714686749254164032953359703448955644907487940373752519210775530239808338311976127024133900823600666166189387751464645636058647980329236753438051081097724245805731624973491529826198439897572067383800254199432365273196685025790786861121335876162344469356337401052120701948081690263060499799663194572698461272618873198144913088526892316972594421284647974656171425656628295458518134043714557519466939849166649842979568764963983619800442051556193935951374379394235517737255739720646767854413141355261590741898315022919504000723443526721683056214296252616764678158224203586228929110036227267093072118566627746282736542626627620725592909667295763993852143741115097438237350940922572815200026032584371973667979348361771250753774616863879021217644622157086597917500862809762874719970641386258604586607611348809919260272903889974907287734152785336029520020549602921346078459664251012542718977827557430412694930021901330345185779357583292294841167284017304188298437312701112074447577670217475768033789959144927462816848649964146457291772399145072435625770313712659815689336818998211404818369056256236615193792559991722081256879558889721144758227934742694160348718001749778423449263088329683560405929399669654650231136661489714266706399068170962759672298268186931786988565484670499715106394210633470653861911877855003269855944493470905149071528343429139402862508112769087808184541829930244452632678025722323807648209222150178867493648631804228219441089337442862561604442257111954840289552054335053221578881240267823643959754723055855002716745877162252756864329070185481809348765050336462438874180606319183865039268908280349175255770770970347551109817153784269722267982228580664814660565916454465219436678109505167249231638108885235178855789184880568639296206726619806553791562238210296489197231294728307717001522285835879312953277982862206397282443290128499918024682541357529638259393550198643582507458587555973859157979954503662296343746619730764045830765663366289601664387699219952444134798577298450187980075375458744371489648467185726237936810952667211832210908136804074206179222302029772208021479989329043526132521913597022749243702308685683226704568692565931212728724874492245763104348322115200857104187794021319074284215945027557533983348037575315004453271670043746007616952300218074403278146287986430809702440364017245845518513894072082254986900819356861592771561126334848594740649358824217221544358212803873111646114232458026483587598479783243645954027949519016222380277063031783736600720758522591468270849438861289779956061933331573743054677123787688872625318722909126367288772530904010483556380591512135163249680095512023512591633070331426465932749038230416966093206291537475873127188554549393862226707960637632126205381834429673568949300984452096572373837888565140729679149307959227883019751908058133827621675830197586425343211080147995944966483043559317167125140697593007586114591340890799850048829904071654532438381696796455119952533457488334037148922052950639969774495340532895589338807316182683652758669425691637690554414012271958008608327705497751054063857680497422248135465802251691835547371370645600843805893054900564359194280327730637179565735794399592640269153223989122598631609165955834514419872360710407178477831652266894502639247786162704495123725603781146519603297626793832929353632160514876476145939722958189461393429323578449273457244857614707379006850769102434390037890003596325334735630269306193167652267815724570138650643295988602548127810962615632527628611131372608154723992192260462808644764096843074736239439057542430891044062055709098847570404378362497068802156301022802440695756416873069060722125507912255211037907259745945075527824453503991533527640990269241960005580844490470407712946673663630951045365012876183540682228342989458120421317980167421677635594813207550642867488173995048429845627204109285976332042330179455087967104047473679958773382862281125475223280841256817966323555687801322789786187382320074451480612477294860491782257219175202215602035080409619343725031581929423083557530930945553766169099109062321156255110614589764632607438996822084643961564850668540739928453362412767232447959190315875212169294589419150688123371079939697917560352212553788784121373523007341906672469784898416265571677364733841322051961874104488708333339462509718253916467314888084837769555218293386720441309033006439267274124571701926844504221265310964067241099254435874288660840827720678953275204346011142288075229408245753383901968659508069265873760520539952455418073757247496423870012030491853157447292497557523357511858468924946292683393569200583363780506756314656954976086833925754306437850814075047521615094595463518585112960770220700700423051742630708237963072743516792763651743967634934397381682511701083639713854904966224617062290478760643623804155408992520983868847287692954061491098941260066721498004650312906166574271078492571135541465596616287869776836200536401022375102009149205961093997494804069037809606863184266937559133290826594436283732617635245212027705472906601609666456625194216570660524888884353406512287993612493102463102681778862268100984585514399287631520923504417503505015371045848980953495194525472338483430816797907568798761808636575693689398357684494825934389642460292467787351753773900564262173660539579189197656651248520700917492963030218220760564741749953583624866866821838073848318129581940397789743306798097949991451837711930791949732955665539724267040032415861212942337117896117530967505392894408987661518993685619806798924635859355959128022202560146932785151666066271242661798873568062259374836238018514094736026186535944308003305878478969627870197987484295623601137617748811827796262434990434318676329362172884535998484258529773015393162337211697123545622087947456071989393855015082538881255181850029207507602591232211395414862520135614823662288809383043660845377286217459169430488285943945744658438295120977619944314744939878764908589818831090388826670743920057709461682333014552811885945722868625857280770965726042589711150132167262849508908589461628299868939994951097580167524372951116124235953840992540959137415423922027312983859804172993558013049095633821326659949219532766907612250691537152753718442776097007390048475871816594295198866969219814597481745096299572102264153661561450464066617528375884867109852829701067668959443735509172436005204009917250450406755519254857864876062462227737752687562619392616093100435400602233269411513173654712533359437894346217702151727703952626232232838243496229797441861104015455356790122486386906054722685029974661372175869749972305735120410764590274389697577208072981207468531557736685052095198518273970519189720611421717642909080295557032540729253919689246438172084915387726795581721858306135031814595786523150438437059887694705498895026991555250158722522807339766965916200464262085192775472513141828966567582305550765875190691294272871475431832508337692433504955332650542752870282120899864451551317429147600932724989416090799437056270860013471389393296255001074066006002467510478257392675998928832813001751727737500871812517670378545243268961324327685248716794828805473392245279207358490894494093585799934562094882050960122070041882428120440172891403334471769345197308558955742683756135260410834306254316998468033992151206502630997238405032660136706614922983158789577350003053922561781520488811559571386790766282625577200611988250674110052115667654977648794578835272995385909994499711012212193888627468531008995222581674832211563958441295550408119051384250679698865586827521559141196880272993074709542614107236955310937849209730932029711098846747256517921780396980096575994221794551309587902481973799419461646917962994399933378533009329979490885974994938988772851331389163679317412768777228580028158302045791395043832840142514990430339349207725728356699659441327092368257867649777113560642752470690409254074684994351746175892275635903824293133574289585074878473347235787576582147099371918138162840485946738985302570724615043032053934284182653086115834377982397992965778433770185869510869736036375683170766981695965853525559800424760373248278844062996114351098951862758366802105533135494663762120242541472629718561769130952026847703008132344120848153626111569155011670699192811241316964909766058688378394288688438690819287282100313611481849004778549927455888470111376733729376942728694435469903551847271479139845202500234029541018771238127441440938666452764333735087573343872309804698962352440283796387592675090668341293622539374012096864881057078266442273161333111730566193783432788401243920628367400210400992677482902798136042747755333735646594069259741710227690034772836628180723487751663706874752470632964742563060924383584418651886262983013575826522409710938888251208745378093066969924231912458904357187099374853001190894204832580483068006266708633372913668752955432509536312785581408743574888913109337604234148982459970992975596149903477045231978333095520182791903327468831613614715410179508126447423361287914797013185070075069389116744499984648011062574255297082666780840572310047819607758120685509766086121834852251889699238792077792133481219318749244162384449264826264125827792094075288217829987059471061893765807028122495294497243817624955438256335420002984208998626010744826523954068406828299034611812667925154034167072955315846115936792470419245765744330898534364063825965982107166907645830370283861371536288538719132722825173505053382158599086155939639973837131914932501583787244268832291522891017165110583758567831808812465387832151473427385583629966075644368156189521707004470066863628746537177926304503627715283677480113410601030929040211726898021361420878844940222259874676231717637772217899410711753191981634630267047828781747259742188612542804346682510800962645031925370053122852735623595432559429046693190222270365098975173090068250908993019856322437334950774052171031415015008012901273616870086148119449798038982733919583490291956404854470304628991902146392801887091200346499821849804366888539395767855954038769353412172681070177639123669426361691523367054946413753149873131824968412710835880315299196887309760893988675703449481042514791852145223088489975991840579911000948841962513405334255341728273994398651129165517988971232900233238902278557707997108413819687589725800507490816969870348675160459763978405486566281231211901918302806778664365780210227313287648642478766246924679173682246958623912294936838573289588989206019834284774051927482526318651304482020303034898798494703708785262221253049854821935746416959321001218154545296492418844000810075414716912918423929592644618109982333057147589455434236390015920464739875139785140219544693754140100207715920199054705299898047489618319546929683112319521042025493735571307528724581665492236549159210766760667525063189712202367770105850475902632612017349876105880961516423939175906743339494434164482006318818616428884215036692524713968497735982291479053616233617288813731102011143423324548187446080555499418284803752950782353263945646679736663294652315891832811072040239884950197509698703631124244616699890765682486715167621976975946654683528057629134452768264011323477937667554339425846728786082494105587084054836890070549258972743384138204478723915407676374546747175916158830489274561175907263443443184439485849153470976782812808630810426107310849217248568628989688727527337288549342851938895087984417123537838766231449908171747096708152193976859293464655702511270939225161097229378265624141517179865913051036023460460865842899553219165402008242675060168536083033697162571289881334792604464168505609848951783091556184963460237853962049618999161744384604313330928331236624874978806435587132318884130839279450253975476959023860310761386066182041102735148112846522714862338404930056810949436309970622116960161061430409097177548871925060699366964023339735770222560775918462901358764860259858318084539097169086548020086310307022495927634377269898728479040260048839835646625215891564639023317582572319444836764735821904522954233591574557224606338591427431292176893322808268061997410731411352496154207456475487356408300924807659442313823838600275505875476106266821927760653658665957689840143019714311933496809248459644260079064468727026155117378454536383403743860551046945351809835424545799330639327527534211690468839838463653121051095940666474419863500471228919270033634172844527604806923914786606988679758406971188381097948432132329554718969579595472083001699281843269708761245602854891301553391470872659949672675547416665444859824328222746128638291509912553058106850356660626818843191166402644192691032648586017056092969161064314478191794353729323288032542959921056965326391725909432067432724566226808386632947060025474767864485024752323512964866939156022464336981584020342636745999857431138959304424670892527914443029807820662011750451556313374808452582981994293602898987090437841100167512345365832695152298829982110002048456407623695206374333659876466510416722062248685149812377136649223964369879430790608988293266731580514949552166916461384037417622788090359640014200257025069208517992146486923729849282542640345073725267257734829779277487843797007483994494533540576194823294870946718431573313547498063441549182590130536548914005630812311921974097731364806862930865821923167600680929681094915840908858972491589307138298517251402686729960541334676249286927308036487123611874045492638129176687307626939941103744550648989202611247479333368109099281444026065542773083318270427893342500613450902499232679876651529470086743224909300688119817741459899800925505332572591200926098143374993279300457344310348655058281660697814564634194057071048598210669785577843931678383438591087243824595470780210627181955951395260738547173132272477918897633287278498858334217396120845119350617525558810480550286615040407337066621858958434907451748359972998454234555597847681912267132835797914120452754231054759414106541957270213072260469347358593725895067408480353203581867887868726647313305013975999950188374871584404160116139783952027984818365853434236361517714694040167680959478316330004388636535367454854098807721742118682032505547586781491636132578987132805569846462714190452804403382264524190378662707595390230590013092450679696556176783226491418880308418198805200374535710139410477989176654148727064677086221116289525229513650732418555653592799711627602549816492907222569354278492518776491563612270673048240536103066814963875932120281778895656185416242221836162151187192273351285801992134628645470993693171460868166782897954628239418764367452493105064823138137347851927882932282013859559226049232077112278016023505599609916274518839313078455772147201603842754135014546773389468121756669061495529390058156066452419969251051321960113549750060542763888022074606510201261123449616557882450676134579390967755268438170414388703011389524811278802969275905948737567266676141860682482027042804820504998744864529726279344435435783441822936295643750951702442673369396763462852248788769261571515294772290719719776726484249238239757148317564424246035245802613382656075276480679199955208521459646031550450130577820863212958454808157216345663693587883477693248481676777487907193647278323166791930831935145066028194911643984495724952594480506749695159093138681175809977391688431950108451768083137879824565620184946594500424392500590152251016225774539385309407888676096613541980519184859662090935042283676153414192952257501733960253151296235421851160775319192089860708121612267883007876759894732452966183763449865671836464955251303197325259888762533620130741487264902616037546987831509536922007439833397474961975374811399720308973533745568080206779142002573009122865263327952183338953652674397908696105131187750734227625586655924771675580582939675295334817673429274810019107679195862504958765986360457278533044431866353481885922806296089610836205096302300217935435101109293118181406527946557175686141485896198492360937920106399191916901850865344795347487832018693739831053412436869601651874431198480227847710603652844374434072165003741125524220126694360279214992555598210860856392378202730279051766528579282591005708959537140844999377215067225100147445179761090056677879195429175144674686167383693791946565079930926481937114614093914684570456017589124015496610828695774464899959120511360369885396839921480645332000006090417450729989903775335394869896137820028707205998506986694960282167225662488385756687049189909987194839319483780790693362685026495648035031236083424957220007227456045850911463537690850507160859732718456804543729196573891701830258278462664424745526759378682800803864327805261127452352442732565266425364196146400185789216238800185229860334595154724936242038852818198352982724676598046039778104001417020535016473687529179928232331667943264238065158852592629267721293690892352828246053441876051520668999945644202430904785465416639744743465378886700097733608392254195576198774704093069281173977565846220229675465020434079381121179045326805861521955230441200763130033003212013783581101638586617871063509671075351507582616365038636655049349584288996619612395584104555357090062115787175065048599245835581277539385548330113665323798951166052503196547458171995762647969283451417789014505990615123939834715980277765550251346537924375913891146483480929966233877314956313656967778039651993388200467496849270080124398069962452187821518839981883862009390292437688307646861852772979741166737704771050195353129499425953309059858672804050987208977878616142475600699661398629422224088106420590590706474333555342346516956411090869802648611366325357354763104074368193533016262019129329686767409082380356618573618378536094880585853249158331628910981184282950226598458418128763367428205215332478006853860337839809520261915109820126181370162471070279470991618063211383549213034901356256917733870965607558900632641460801756357050086285852691304720809630132428174919139004572887007485118824336718202854118468510996285949860973748788743874852544415022642201725657175503032291268241075097307596585247596187756973200289973582943548849159850574267305772016953132177155308330056744866116334798234013898738954166893972868491421867976338972497517834981742662476480658602760795649500945682942580120117397910592432474416864417949669832454223898851979936623693534634162554306914474275958866829267450876697472165989679024373784908163104143951462016941264829411206071715557394590226421461235452239348430483673275969426120670131708008358432205647278732515895818066885693776030059372602160574413791308797025913780451889717226739722726754286887020889910039017582644067172539995421985387898793735296358083445892316955359803198792799577223687070723886780520956314071268219906941114861105973454892383962744639464696919380201564868943670133456679578635788991902192856743317361059086689707024199856224978428970464200975992828251880478247488618809664780294107658529355269963490384467971011310236531996830570939250667445016843240707747874129385619700408866597036331406360718383389464683868787645004041307773807172432231330879251269000945260076731605868161365647544899802664079108108453434997198353769696792388179399086105357887666538372216237020152761156746900633854060593049589920432569713003548783096489702989765252993943301967937567684047856454631379828908858417186342139552666360973247697795263064255801164980816731109634258822390862248896014049875266956635238612389713975792659647038494759978812550689751329987812418179405865813032143791642150008365502036291416274326339062741145687664332779902694422040743417548285791121987378218439404205298617616318175134478690973556422169056125225806715508242137167102859698191212926785112516750967729486263207310767503450802590861485536931896779119389682818617481296311682308306126956869217362424672063591660092507433073951298885888812900244061938257021521068945581457627621893845120119354159370843755989035956436205428916194735493038608770469986227498647398595868074135032014460896721578502156149141272547993953890853103479245053052554607946024520087494160636727190269722923908653079916072641137357354095862243140961022890579975156763347309453199080800359724967949594172148844044196545332819396362445128998373166954378890980755725085452920489909076924527931140195661729336492902531583274206530024385937597904240158201925629893264072186511466696717835177874444039495691533104881284739652274306877370938584372433587068739431517250812986267695196306369957805967368536290874046086007476522834344240284414864668244262421665919935372062796666057956727889312251167588927681845749963667064857087672670543770510569287535957307987165952775129076756082564269650880173284723462260524559889068473396623310171115503293680986203567780297735436735833603342519208451168079798818019113879596419148193016215519282766204085504730380664866778861821111671069221991360617038962620054863716026047094274868575977382046661585116406819107838386225311386285090735316397566284862085230024490688159534494900029794673036622786365549736918913852001507260333740613551380249338190226260774035621871213106396907398418790218315918948816592193574916601349731992876110731555393018403530297235024345308642627552170306825023573136444055218597235242596195735212600797985088203620534720486526836318749261861978093229093592428418993303850735338271958922883444319235799316981439155275124230679940172279010093820914587260649945077919463476585667043729600992110445030464910946132781095001144837748875834684707693771353216892111613627179370577123718185426133977752912888676508615729646806075876833904065837069399113018416556574714883807328493947234534617457014618366238375848679729956849387600918868270505790113532009502272980052451936680347863202592962422651991632053252482480463171387466732283512680256207430058119499547859561826888012593716962920253468286592119116332233907614323277598186259605122027225416008972714950250041281331134684487989885943871872449547788309709460710334123377560978545627541897639090920194367192744971377606104718192557188541413643563645252852985541889813056719727429287555393389412865694916332227846475702782746813941783732999520432578610066502914729541012980402027117923723681992633954597757344647021846203841631249908897961216469868130642079989932629908971851520552197858029689596713722419794301945847558113911365445566526852211573879812352753778127166563236172797572559087034047631825326461518654863882904266445728798360606319116952287261449272228874664327712759565837963522736676027572663384580327869875328979903045526237639789040655405685953064257020365147852603203511585358569076850980766640511160604602268241148776803866924289180164953391000866945243169902253962315880005198360850344776949805019138618308283480967527137491345671419506744129770062144203906215851337675810404152127441042476516899149380765972558312538945505438579982399726352733980596539309375764688879415284651944813992940769247970397995307317025811344803116186378769320433688105204819345432445767149126008201431505848481325093882841776585205485000780507800671728960473458429016442660180249042855152865087561653275016632723114125106418075545229993026639686633897170453378921796082095004581747693733131436556972859836981229369738355058314759145327521012292899944531515145545257001435450153031876403196393038681113656393963385508433670159352961767083771162801649038949836496305190471077659959151620352905480362873915955056229224732623286502005775181152885254238107434795542446544994298242354566809441131496912250330022356510743072927432577926516637790882111808159791976966912742883042157008707117362932004688398828850147985323834240054941222830417312921070628431475155733916481883533593013632103982485637502565436057838431409993892526943994261470475021294806557172748076590188779578057007969846474226912503240128958306623513956886959441808640064382053810082865926851615546208159524227554531598141878249247591671619737256920393347229996543284917375080554857129152943336557964343393163697033319256086670402037409012377686556628838159200586596845564423769370227482678181183722087451995730592644124544228778945504524546791146164979092105447359737824982048422418190574585228656921646888669257133492331529228997809382688047375901506758836936919011090324594287210558445209184853898115414849827682288224177062732076241555888055057100219558041925348683433245517361124333230131464691292924446341609498491915034563574556146101610673924236075744510163368637597650034681094190880893551381109604616141881297539656503251657605585013603757781472608202734359835274963982902326966342847389330537215630670612666983970855430444755867756102898739757756861003771917318962469430007694088901031337743193324647373261073460912458813588521488755865048534995458426174322957987306821531767594659995217223488710577286905547958112299509939880322458315910662795540936280189014532739487457899155766972083932382400726317338437079480080632843149581448453863866995990445192368633391952000074011389984127815021965923405862565680302854980106290515400229260980666118827652404982823760982964618834497882559500969323007051332997571797939587311414465997085619060633871651227180516421811560745219353724117507333715282172908066829057200681091421594108518111747582847569789384005642758576474543566178500304331188159904168519481240674240219875649900362468982882760694582620113378085619787300419457298294586039600604918173495601296036409236864132661294187296246889531528895545001134492505256052839168848430590495158299308267734126303520464802423408952487065655648845002618942193866327943762980696120005343442137871053277332152523973905443453764542381714970841548897453657490620556300236666887836940201081381644043531490360213511232996360205496066793862919782363599057654092010844436613133018498754904538592452741523795479841875626191295697468876713694660400081871891051941883207043057085296815103258596100030534660692551910903429574279535525972579289062911807362341617735519663801398581931717792544680653741230892071013419890350746172057409010702747447792914544163748560103307090294446706264691005357250486046482565413459972732498629852489981242536489503672404631176865395202746526539038018097083402838567533609734118860326999884778795540102097323924397933714646187509305540726507021289945715280001573599930320444996698874422599081720399358045077175199531484817278260904550548387504957685247066278374638400933006232247079721098535458848515826001815420801207392441025390610675890740242048723889435475602609902592596709807264166659881773570530418863289400601058853439710529500167248806248680475928450572309948123173017521486782087264006045029632373046736090823090391245709920416999075532386152245999081351649337397016092742518595121819787464686001598863601820681378967754091533782728640132250407421463781242216370468126421911412854475614509184018834497702752783858545088792012575601781028404472791907332700017431850324158141846577546693728597355276889595986141647867381367125707507484519638806344316024100835951852232883681904845371568925201596110488713661278799330428397002501439078106202991007624684849626050332327414627707852925103825722105633498929615579310417375655335250262886623427387797864800814869160340274278222053557430517203391048915048342024090950704809630705248120129554086895164525840836356894575960829345685070889061860500790750944802739833554529977383210892914113676606346786650411120677040706542105773447779732602381790970993597545868704354013545247396164619070546334735485574441316911227560361993765428170553011313810498727280215415864895720098629388630162106115167943644229162293887613279081819558383176543776298404178900527622095166671621488087157946651564486105374333092476759000137487923034587549169694714214033163693437310600845137887428299801667373488237196571583246580561843309535066519812492721516710852050606588212218378866205410018103636860363452936131599220492867926911194513396031423970320855916458940350604344325383796369582203195137189837118138081068334844334861884358231275514909467717144878997791091545148939120400988004098448757416977143421591646590235475547959258519765295206083654046788065086933835898403989935472492876783443736787671208545790344169521065806271768503640149055890195415921672294182523845781668975044893389778930432636117568627261781370151238490929838833225975718492580248100580352368704943726550664439033558358037546078203122462035368548218830729056038211572016541527985378723859486035639629169509723454809848907744207224786007282863339242191343451803001934784840138952783702246415944668850040616778873748111228445126450872086969896722024818091160537163381817525751794888800860613613866418847030194137722713242184214522312677575851176572207272488427617405030322479847176985978906437179716203298705872922019155506379501418705711769003513518014123885875716255009720025908255817938263603243741872727646952594622932439796584730373409933573758001998736395811454521108725183276892800940086460611871599627108866306459224553034534144542777013035303533360309608002957301049818890608164448384645083899385068830781806993055467740555936652064571932920676362071569117262846709710368803342404008014002094480627013565481869362822881623570999875757655018889216291190627317795946377832652820291755385241651004999660853328317217308622915942369221957420382956968177038947989396006572036135166900632270865964586872822490994194914451935589869911899586996091991537000817099518225241406188364845573872543160849900865248435836134890626699157743858236951702236775838431139655091619330993948463624591190269152529258754137237490092517135085611720610506606746210978663563312919526986078502315262529629313775612867550218338577170246316966917553313880490228806643777426628242744579039776054924610344041312961395731883893673464144735768050817741473908405671331699045220415264225885502229908026086099006684888102721813215782723254686645990482574957564170266155781173472613801155396107399607806908394541899394655463801574892838406854739250271154649322966625070910621554567149967324857925038179234661971518364033945883025664423433576773624055590661059592730740629122672215521516565715625821618461572764189652333233228619597610856382550094679269014927016531533897210825925707774216450197144359804291709140311920934547023736957709470884086600200538319024579653141975200976797292775812014465173859923109778579015835461914809662031991484621258588602622727715128952877215560266518140686936608273782999247103402555946200606773911347112515260156311712926675871457704884759685757404892229263933876889691207351641598858264085348062099842368501931012183658251766257558273902471074385704707694436215333630817410115854364641765138313260330447238748044721482593462930372719633348611467744754449270870829958797844576565665178319266307815233706926460628740435590999832505498396022965642085984075567270184640163029288956747396287553002053767196380683396997820081950265144844601286723577931544486044646395225723724169337041180573589693502360637310123383674106469623231728848381149631308199003070004292300062271804115018704227184169811236278469987582140000097780859624493264224909420016461930004817320411892144136158599150142680038320859688960621457448650269398500701773338942594747168245344151949674119160631665415370623699567254135897412849987661603195988728277457048354054437164453931542152488401954919777895555842878386496566159704133042385880106103233338384229771530947800872849998745518133702194429569754145846513223371489196383967398100286015890755456866063675129906652085076430872891375564835740227711834909972236665383962446155923826245881907918875265079970842622358703277673223610442119334707628337204413402689172029082837149034751938091529471218287586702395677995830187335068396419318695887416661623305207870388807675014525968488760722523889467788026353359235309592450897936758595489373532348653174184917274984595191168867741244035459875755113113725977875256089748889288345529016155865424052202260244204610677953668665075300654691492268675674261883594991485724103873441013012644088384993328940642892067481430968270808286955325707974546266743110336819167211447888355405943426958984654530856222834398641419602523158276279378223375373992308864214028780690090377887836911265666894035598939377178828658028096801680464341159094778561880831892604002113445468665860503676129040983557603927761532236086751484830781223280895492766480916387701639661344311785520275360555035808902564065249482440129979352958588733509174798730389883409019656935148286121651423559764934744173956863307651520774293145204435885178481219588778105790450711933369490036179380661395686873131086368367302089129169762238014014796314209384175043255713693040498592340813102680893377681810085719625384067725300957156856628489265722493462564724669502545720191259591147362150123984213084959984215869582350718517618057466167189208338037364692442644898815167341143404119426569033484739507452464826418304495679934337899711380454678173036247592545216664926935522484787030055029230224731489037328346774316128677392666388354344105092293497060440722952490862190071174104848286306876383524320264737548292277417034525289575661038628606991993366499541373734346098616943891632266136728475152833081641407784042859335750180140992069950377834492149294138827286036789207822474525111115400753782106338934839337464591617991031581568144785091027284635292267041632425112840640999123153156384425895420500936292083325244461609339962890997491102205659649308735231792012670254661787235585959947422523259830591627962394518444067525334053140155205541859790481769394577545138684333068961944889371679280524731079864222406192428753091245448547181492910722118103336625799609460990778741488307372519741266559811850497263033691648482386485194038393559322307121415704674728157453734735356953959502079567822211604286368214647346099331873382604830022059374285144425614887168164428945485068310232208845738437818745744050285087062143622596977598256351992398433935853808800496799593101615404841510066927462351316013275821938218939263968808115262407084039077534010354037783384070411555089709495697523727247038955593086324241705122192985571508069582900040035205095489477541610227036383277354984151259446838265209561510517299313821627003708889099180102378386934070376922990054357053153161621907476026193397659085108882657366625721253936438236647254005206674415249673479624404262064111071934427351283477058158079817858292598561995824681634786842010991937280752641383388375564144067287879097755752536557787965339225927795814380697979863849574896806730779416295677028600513447278876509795557342303177560342203640761978210445132936694770421259774977790116968122674495735468140967554193868315300234416036323960739044062751235765517542646796195895089194281157823762476821143024315745709586479660475817881108759289155379929897727196183244267111155834234133173484535841184122666030488040183212833205416673314663530282331710507214032959453843573170050761174407327264666538019801890670990498050811279052745505657126747572062363462264052922234809637277023352633030700407315924021223494383142176478791189845621886510327447079604340134520218765555393943338876942786431442938910614139880991189734140288286031757131668764133179065499387934142759360009264634825783677641128404644550166193859391108117434189170198703939683277693091886951523488172396849777505646678737565919983425861640489703775968981940310020692118425589563291249755449257581843767201964298278935987899398332826071543777811134969748073995377316286620444522048518361189203808652937309042964353246304288789946380950275558079097540047523821344090119030228357933830684922770391919397648776309826856224659892589856063802983080011583776279001439146290900930011936718337753089319681501468745799640186110922932058818562731352930645535646585770752714839861284230368175669420844729824858752699757155843347024436687411617206679858767430212630743698399377045672742628735808024780880455731272610770761207761204124925216975297127083512382153888876441864113274812350280611262056674775226598604096863884369367589627213019319074143390051625452471984572667362921141863484221869907504517377810354813320817676547750269563577568780125446637055609549627006606164600201314703567498180264122730932174309049293450895545654311976008489405700781629084772108068612314389516720968685481441646946582627662307041828570437801519088255133645170517696435029775194711852364521233617204624436629712069129601841781707621687710877992003140035629279491811130408556886348528261156769637633026489628729050483798470762617123662532466357347925439076596057470920567518642314398553647004363800896452818399457717828612307115724186770844418392258810147567631381490218193304845375073266157451233124711725800344843673997030890270747552532015946208025912033507969895515543766872118922852931589410114298415050659543025721294454472915428047083903936707491654897751904757234636261419529167665878991629078760213528015994098580111078944580699823857011760065116606729521208922027408421440058202790475403734826063849166356952020282685296517750506376672821608533506568601353685433279128292391085294388432520079100416067137489845968998482402255076017738296739209280710414090367803746083424677616964031445145004753294098338382518132371319702763071470927757739921676535117096111206478161901778275580902389658268357574811130505728844719232858079200696759837340723258314573743040129630149396368780489256327727716984526228880272864749095988911595947060198894043238983680958649979385466546054595738137655926733883873061721238358483109610611773416976359802365146164946706344399011966516141956259851598813554326900399727672998326669260122311222619486557494612071552376899609077488398711350171498693096537705721910096706742714539814137750048858384715799662903901332903684532127218128734345525718783514040367010904720842193002001863578999017902039740301785296231793011959387802559486109120518381587799848505765277264513127575089166808575003909090132565458064970734052768252084018533695926576134505824476627175393030405871978821362646585344429681059127850154563172767389280534815383699874389513560923577294731857439693326827829804452111829620570917140065370106586657117357511317724814553224027767176169109725928159709067787910598655514034057467062123424125226770255629826966134554133020757139643512041639030660595568573943076161095055001834905576517536262782394105302993337773826673867940855180249579333476493363255541128214901848814784904224024814306782690620336957071271804017206795200844672479643633331990657983847541753849868878978647675077329714574229498149081020108781841647760759944115097893078020824975315181595088134426495842410784703855248029586046028607285433483194643965621934248498813682587297777610716058189260114653808812166697091925188710936169160179716031588273031211657650405428225135880693510027905734870256130135904978970816970370697459471405156555201793991863901910462104898427094071688275945779061449477904490716235092058551664866469563211088162886722097611303965835491017388002106737891978436237769895850473247226525098752138377938913287973158530754312138088294586712174353821658583118866191932858188783823057902738683605756351394698206449926806720079636605775468717093228173041532541246966797285657561994623932657254170733056285418668798872592100080692943733597891366825221231449312622929288077596362539768553724074630946431111459449781128212670320653117191933615142844299533274807481993371238045141062933120152631750474319319544363744035091307413661270617528393225340963517360480116822003521131905315036571279655732332535541000022028983685422693382969375845169902539375511944743355431752036624364981771883374821619398190531007172586942873961511652857300377770829543270970597635492320953529668400681924253878297466159112867943233096172766374885910098461484100034694077303848443786232454830705044201326591088704342860742887593650448996656626177316797030325567195042927515015903329982115013690448310493437934806570672470064674498488178741909515910626867333115733285131756887922070299637941960191137986957162516445674992342099540715572331026046746744276363692404493935701073104701502455832623472388176759050347843249826198675570731186855140195423116682057016105546523778471224628447893929963126404942499514889017467084117301003145218920698010158907754051842730795754027006672323866195328670030966308202948469970668730604758391886843503739784615575564441765442551309869535876708804032615754544086509993440129965910771346990608174560981595786920329521740941578872890990792067084968565845491071379068802348064486011884990975866062702862339233783891457409307150711462492504409214035527897587400575321358485232614351691637726898900006933916229479600289197490697851744099107103261195515845531249682709889073533725340107678660328086133511989072375895827008245650525348092417642265555275155529940313510850781217583948442688095317903750338836598263768512556542725953367737389812454180450484254908003416111130722649590571928577443786599072888163423138717459883227657030762872279557893020157973632216472176042946724443845476412504596043147093872528848774418835589822978620434434667859980928925915267644796352294027904112889243088742244452849912645610333669228110902114094139557005178645877924215918137303745545167233365756596994047487067779862602232030613669801944440175213143286078840428195138776948328892062668026835874266643467524683055788075844064544658265354379462057988532557800636691537711398435271895446165027088561516429403707653511331733883444279370429311256822047366204682968863202690366925010533733235784754754415027326318062226598841185996070670860922172173138330357072437764603393171778068317499766813145236255988307204532129316034394360252530022729288797360422164498572148497916590015019972165161822774105032073386720324758522022777019284837342991119104713433331970584541768372462936303069768829316654342892265053415590652595773538486380351707822977192684641417305320490930808081812124133694422467800780101139688922660508856165236605768255297765652272881445108061490482553244253912161543482836276156050413457751185613473780371104056951909575006250488060742992234076639501233293628102484346502882773866016597141444143698503918048330913657244334055861655583641905840819771173816453461138205062633261195989907007764086325306503075368250850071311670675444727731111412484146678908974925225974465485493206787059317064067550356655879422687307839336613642940248189016974687561968102606698799953964662723464537442482822505399950201206506971321423216858931081185023448431848511537724442471542370726625580217044118128983630581869394645444411282289433413926780391230519829485719267035744372843652509393796342831667056447690632911686167267850222802839835369854700805374369947317091789934104049966287522565115209630069641831794303284103953137000160528930511759490410623616637812623781448739184181785076244927989779712712428194797729085422179564219715914162164551957770902188259538908999453711382808993677914268745122477002517115406261358289923865492106385920570047057931809687325822736050093441210734762054998358793216977722707746584328817279859356021164698314803837646298174755336457197992279338688662457841818756874187507757981558949102123555313132588565476011169521722776993128213091490467278629896927729157502545290593715407609397342767499818588779559015181484602281683456075067900450491546388868859028739004312310607566225879424033698029504944005955873008498871529307472903652642230399645363064413913051022750588358033853187602335534254528665255643654000879573330109802426798983967737216281121162875708392878135079148957439889701830371227643092930205644544824700908399718362460396697396571181190542382140386546359877699500569364873692783890049327729214800274952471057022588722839204596911089927496243541819490174981057036030967172842918240883220253477819818751991214502089552080621773164831790060907509583858226541882692664941939623684930860461439170596875126684961843590956005139475437586547800073490564764367917249758164852850869371733959967048960808223116836808611035927828367744771330781270775243113431930350536269931208233439011096189746211244285685596465008832324831005557989255120983482351789724588543533518345155981267697083904969413052824907537214767864876508202069903004531780199468976693063022547448203614711815910212743015508244735567084180355719820183148989947147562739130610087076717743247005052881510056952684981763751055499651022961834279235268786711808727649700515206160392756816876994900371967826693178260942849172737729857433106319942232321079776592551139887905715318572879367041279363368653596172078635084746407623408064860597144465936294885734463460571166530077153759965377915208337239482749348404207582137144573062907672077869203009167004166145060877071950611401538898529919052205585444002251032051750607444172510072682353086647160165347576778420888555093891547405731935992127570594010624961719245150810986307091004463006105883577751201108878611418185475180983310568043927071013639132948884834712930338968727918689363055451477760323753399624168895035407064798037720766226139303144450662362995475076897748230664347585960243609387501626612454008201111786540933511269444377235015631974130668240992813990718743081302960830812593826137569397008800501565314754296647883316892031165699822731395295959250881146777382371442601850857450282340833623840244610998759040203901860219350708057183879545691140914671557320429898891480698583089308215098828320180672090612871660201578788702417287340710871251244211662786087984413550664174934185039898960463991205986979275761928461404096602039064380955604669715928790453129437768896039099193298664285967016681211326290658170374636142316427780488531343448303947337933473123676576660228694043235808063898869331773567630833846272372900221710690975781963486322360355071672091794644153749408176187777808432757183575270114495498774141517570786508745337010417471696833716267843663063789203640913156887829383804824703411717038089843849180874192013485896147806993968002588302577149637859846427463533309051345381414717357807603458376139881902197510231807394234447383881795197111212927182913100601393564790922104795791448452749636460872872136164590751385013614804409920548624262725415076622867970531843804822423179220970721122111180425595115189905137629850618770908908205927886645953670594620597991376064506283180232063003928721167279662128266122197281421265532442577595230130552875266914886473864967874394997657099322217896711647960117189214521905493709023674704690977875511386680257390940523845177882319975084261782280078705965546841802892471851920453016823201961541215123174068696995489997320566096276086204016606922426942897290903525829213299925496714115430429372316428452484132161904844009186974048641964709823531560729967859788974822029033307530799239234453966864376159133339242422991463260978541912788155257818918706501625853014714948484972403276615908740784821115701295838760207524606198985040628907968189013592087810958621567549156796457745768984976927653362511368171848855275728222970698511530160096272766283062443150961034214056652189548627459828116711378649549369373852982849606966217975945483020031089676191105172881357666608343215620380745154844060281280759782346488141382746698712699540987755139516965286141617324736010662410380093099006877847389793973824969012732230457648044858770688222625489566176820095074963192775342809709780989017460261151201836561801037618772577199658575595936910128951118043598589983090358829530916712470236430001143041883730320598076100713367369536437688732474208466817371637686667518430479200195454358529276235872380876634057610396037279382775626426990131832759342463979361754939846118973831987528345335355893541515661398208773652531753005587905532941951826688929145945520373858846526198456302841505342337193069235292591189181232532682175659297231279753830405471240204410738591148180527972963648767298496957134246115080314749546078756484938351438096711511051491097197335000050384158019915803099945011303177618414080628067473737980522819734709193881319614280584942865166849339857479798316975926043625697528487180844634774324687380078373750912344044068968325067266931517944375163752078392756023721129367865895544284902405560970647810615887671392181304613201762298143944661928540494162401964121299678914048542255381965550318274515021748268456638526138761889538021502227458588456219767167898391043331321570083085755744733330063010356330884433385745965869870208286919037382389438691076119647113144959516599655114260946022532114793036625639327948840078560145862796717676622729962278526954534369187114016509032890800442399030312150687099782251129570418620011843048300967107053695399822217985299599828370865005874756958538811199961305251216046878403603951798809093256002916471922840467504716221070484614943311396107016551793009608611252759954600175831824758072781509121728957660490855301082259531995883668420710620809649251164229163781221239857705175157357706301821075095219483718103273791825481028240545981260277505415962961954081832544054900443779152418668747237434278984756178802318141480966566210035791000236597863500698693822875973779012414310057299777819512241889696358272026568914496774330439358291658487910506099519764822063400698520071280176290825360477765660624962869628275420583800252235277197078911879172066957599836837893404455073962760522657633974002322695565916518093202961515055303264706533117457902879134333660988507902753076662211130853775513697703555190104433245435945463182637490603227145001430421033779466375866664826026812454334673690007741457346467229826641935343195028106602436492209570385917670178816231566659831676442367991332278577063956324592853617305308211218111975309076939510984245573123860643098086602132852382784035450323524518996078409169235865895168831491093508210643902370829899668918596577155799770331260373367306296926655356147584579909265409182005250081451237842926522457826494978471658101354030330949825861708929364457913540487754814656135259471132900931474473393430508312769327988439901028406176766305462421540165544049561377108161259486964481073125910986058577712075316661657721081793854853565598828138073235014913621155132734096985945657841460560691397548325706977563433145647866239811823742912256609801060496308259274022245234292617903945531066691536964374494335311525616278342721930325143821422781688914873322709801091536730426030297763962504916650525588341615454416735863396749909649946767601599455774939768441840877779338752634040827449898717708202214754361259447472952750900675123595701028493938930782888378387673144008629338081788711498455793751977274709822284671672366398268532876824877514117232070495510874344808936561384637133057908195093698475336231849992851638433913715364659865780161843634800519666433456092678666080399289245130234395301696858448562776921620202370960615592665233788190805240098747585829678341935689531564133616993905302043338503063911677448813557332893766721174530635510608988667740320966916673210211568319419878434055955924360149310676662350797577429119356059312186444123033814803516714852102585124678612507915153943690325616530621478642126838286625636979757337424749271378495070544384104530211888467246867497287624225125268526229978661999354696496350833975982463089805823378157753949958514507269732145149224794486647852046884795310144985292010285699311175046901846665468195385911298545738653724340021096579968431732183340160428242610660082416333851668951215007985998515421860972990972189081455840374326356953335628880063337403573576542782859231625052296935701561131332819354016652441694662030020037232293572841170656849835939287117111949503706295299305702405527119137630446286268123837885089483513018823455583759396529190371297955388413616119066571423383326754785673330341475972879324059412767800025037285868548292704304447662480325573672718613210681217908640527804058839255860440269427884860756004917710591103683725107046129722312631398420456235158487364508752310092848984125125578402567173990855165893338284745162661824216807410534397761244210383446079086421355190649374160448608763707488904147398028991279227617854116266411603967266106574778329830767774564044747565172682856164265307265219810761580467779616284995267252626604880158547453864662541552455179766662852555916949821915257919122265554415354662593474556304506808230186517854707352366788005414554304310806609423151695011113512796060044491939286620555798104978471302480843538912007272769510918385334163477488815990595542516979692467453286767350048517099466778513041798401368791245528590282621721352478603971400230011198729059497109569537016114513016152672814748493104022709632390393278028691949777559886353897412796574573032381228387743883334800008300072008797274583912789691487834936015146607127756285147722158880393364536047833275809431334807197087669862809961895665902257837999491952354709172968528360892773402422421384808148427415951137912742010280234127537291053856561918134071164797077073024865118877514464451809311258044754764878865646801553101746953854348819230335942160039690104874626740097693757352110405305371749289452181225570823442845282398849496614338326512089500231689615131149610756590138655806834063326390882654357327951277888795239133205129215528443351091486401530015895941889074056234288091543429630475691704252162274992820242951710276673465589487142413625183625916774059543869649713444114936864369335435392445993004324793504200542506392318157205756518889089826068669263060465684086428237766868528118946191435462439979504142966763868811296934483014662183509399031207270349162013730006419553730398396384277061616749185221977500494971324114190583398408588040303825576398895548416033569956565053151905546522265301889320898910773981504260891251234004697264645447162559759396304262834513249145379283942845907296229014787017973153277167733690746965103567270102063192989319800871555662657516530026375206231755720504782898725997781981470222738527421302499454121955041746746903954858090467076939653032679164863317407723669868109995892845560972275377081200641378107679167206980136602196273983094828388325735958008267733055109998178894878514830980379790566850118634852953533932054384818849161741716637129768604241897606622529528847415975833364199436017194333670300514276619543135224199026593233624667286190334114374105629015032379634532730095745685811808840657216755531827514733689855813238190130926167629561652336527364268678940359710286749297013241294475740394765948500720833468860434128233959931096321574462290574810820881690184747307143865150672023545754281160885906995665817210821927024053802404281470440366445323504051732099060892660479815290864385280483467230692948039506024080648950714321252519429446061896167283721216872437596644118416935094470137030671117033800293685652253848533582744034292536177906892049467447883321435514957294390989408748194309864290296368656410554340192811553601992621448582090937535560315921519489729810602117091522374930752308108226485363900650751896944899945471761154382813234087388073423590307788303656614378390529520638438201579907809849354546960885252982758390419217191778067828398778786961862130114532487743405672503627929091346789259143825263986305364680672739743225871191739324115696321614086663712729802339031473145256490662361655791216519017485250632233942215144415029770795676976980117428874060865839266349895683947997617114650496024503127128066228706874932656488683663033718493745235365510401537965444081404736364795467902669173780751384571896940819149483105243069803572073968672994293250811412517707865549478607670697655408834451055777582318646598479304160764757518713879089312337659337861423430684268108376291466446039052925415245379319079176888944819596762197896457801354797729917625201199342107031114530979657007518299508481710322790950613628216211110386320060167631835334989840827268810718969461106622594395138940430915006192066036396204722810303770373595667981754642149783888529185460753821734686100135780277870951003634692625765282389759578740883059440046698968674488690693725733326953616423669466684112648510058460339308894844047408477097529113478823933781393761502643673071338573553994014770427730477048810257377498804976690236199322845900278743631126078919626245718326166205843329189837290418178383272721782610617608780248074526298529991896974871272241717048990287054655590354054298152515611095254029830410237265660349420435998977905718307320550442834127190405031155005039583341083030709394580395356521866459414324636728961175168135411189234644460385763600799324208159993325078685213106835045757878140465691500104434092451671812972632729224071972864343078454474159249850076762656161619133755539848552759061933038578628107269006737898114702451625891222226081300705413982976584973618531156033890352311930938143896969561266872382689165289911425069670975614623405700159064571143832441210344548163483684769212223866588353948036347025941161080354992331477855103752753680060947267813256672626688882148462154887286266248732417397648133893375144083883772975202271197997595261454536470913447151623080289516967352374369035926647427186879706404058564920038288431600533613509599575186158307528799219310191624624524071773148957281511073700630052140784562850643460228586205052403630538796540410537009986382320811959751684958856880902783903641595534704229586820677551467218822348819647156484165418280903708287647937553469825146205289635502906308766864289779051762000803279940304572690907484309847246659637103276324743089997987316940563902147850315305336219582933582057408417018172008214005235955199310934833992967609014797468260176212042737939600214297042241311433364724039451408898079598989107976970944263045073854819168223817148956701516819872966900815340954489148723880163344385593965805121637406861457535070791127454502950937076626170200702570288017307095670693692937682713750887627292116358551564909735825221747059795980707796457113025316839299786108388849693569371947711105009023396403765121174001427893477332469840250855438181836018364936838459715983742856675238006181261142023946639004221986878697530170276282623121042524321860574691440498257580191742656175880060307606206056804366660487685754444324017031653042743375876275632798954066895438005964042622469916092132879700367616613547145495121111414767542014175366170209194627069295419030801994865805765403450083953140970230785723242045225712182038190034752146648728363338237882022130698971341396628703540254755061909375297961340337821488089515396440881957782717999600424907501212002059705085588532004100627339674402831998335242522765520085783379368466683158635594191083833047013737826258269840397363897486900383959745940596721749699423226211231962345720145311048597379340046467065193579113962964764455573608210333426370238194224970504491130409578777987610102533756792535453640123084361580602803596946737040982527154986620746970537314659878663149795581123706201134355832666587798843593551816955010898044735096428416955785508563759043391668127452734117059103000260409915419410054746513531898911685370290296291155373476149248407417966226734050268693164665460165904156617080204870889190077600263593439135244200920195978378930778265923380960621758855891508253408416909015579748007241516765415279690237953586813088434587832589604398449030792238788367033544325665074923965663633532623567084639222725941921836821893779017917781429666050769104794482421644134292735331008201531469915669308797249617563425977905560891814587876298670815520276383561390029585953518386478410822157996324113266812473344718546661562260492677712288938843028129566281216904477799932554793076727213402240554559835806007011603779621208957690219654328191733237395677764336760294680566718326725138898884378575568931287968646038017464091609788351624719324179277206354577309000287710317349969331112676123971107832414423894862594484568217568093187253404835030081539998129052888638277802693544147395638117257021046348272052071438353868806430540768266686962248078202512893045482824355639807573128981359108250604488364138963416933056008328714411138143854742214907086752953478713272091898632546219694110723877090793462611699443044874263113303286476350831974183293555678677616880992083615439497177659191521018927486996241408857264000223425207527910376458902141649919914577202525980852079416859715164081456331847914147055341593892822224607695715735955375404349910312827184835693064955549669503866298080783531978510148794726988830827910828139945650748886899127540057794526625579015580623373775833593428431079065998648291521204575579724145820812340319085484548289661279813600670524921438755118600662700182383465569668025314487333925484804226497113095846502746907358084737197348566524654440058833167970633780125495721934680910595106221883741794245074425948045368992761604283536409765369910342078966508053608578813786346936173081333747023361014705222748021228007436631206036048302146738745989368683443985184021432982048142037446319761345646745305002110231360383431347523467791559264627871461593826810104765786703599630674427131505459696721403268099841426515093311936242558042076718382619312872116266753197548140171460119365459834671192388210073777436475142284289634854580560584734893466990227737197160419319999100582132672754699877255317118550348452518518849712421707091069027636436067645120429781439554138245517264957668899421547373999406110767439046223320281030516280355674534067110453338426314815981571795686414849344238230511437058013463398439679771791645137401929047353603198806016481967039920501968936883511595030134711346619060773207503992312044408285117755430725751324599138594804075151376089667898325918942824598246680939800420928063551918129237699945356565404485231175697765575147798268115466699103314949016452175940726141101968804353176227965271408742896961479271450326386049664955450321852808221864733545004483042552087245704972078466456759710117728229818924679091887329588242339294692468064509357715497298260564469068932410829583187175238956303246552811477901998095086695680977237519205978737544232320048066734550250701158687996582579925415489656840574742978098123802565120703025169360348705552137581809924540025551083331058589757686161122538035768919153641225517865017765725481395513805294743465257016767242142357795666361100968124699295969649274931119847758743397234661418897742957971241026937524822373544067334075441563062097362810895584247505737621427759744895072758441256286711128576210821568632581442105978788505614156093823694190770983142750171289779257763667908050067066493030239739821645418190391399649353613214675843708971048854504047214284892775607531723511760034387823653677378545261854693916401415172918527195096486291399174982396320516292232439576321777661906367312285884619124410028683016695153724154756791667413635799454898222454691609888641565082179300241619759170790825293000406779001973650950031568684316736752526293947540670229964805850030700265731217036727775795793297661288792213654092825827548090205438706278365708631598341630268118624483024291114411685045903509129835351426982730590060427324007991592717683799922511303781705463721258398269599410369737818692971923605329916410484215448389531354503518088278891921895898631253388839759273776380091866780370524968802305951353306053550506537914449204954271549740942552065931296119325558436321043064946705220889762363302747349835249418698273709181713717587297326115855328170241722439099870219358353595334520915613500083799952403128307064477219600732264851357227290232580229464649421305300515611120908668427687846277530654295457271060335929029345192385428176820274390245818412931445736862819917574025528981707326221944773307776888156567365203575001092846862932327983369699703146065762492454208020964822278857306045617334304054485093438023193218758389507059233542287965336963832856481938653969069496947020981468537625948317205432249026281326264684226327189218237953024725507051727344709428934433221551331377912235632936344582291134857576558929808308513912831124144412070385902934130522534126990583910530691696455556545538166390755707625854064858443447888443095670445459329365726149913425280547758213200828065038428972217140745348652124643938862751772984911541636798715953387375686545592934535663329062034059014387175578734308492958945326753675966896715668083355510657274852419108418272082430279296929718851281621668335843419134396172073699390194556642360916187793614101745896691689377593090284224179529458802457057010339071123146663780004913370035704974243877804659175847514647035621984274996879407514493546212374133769873703004482034240303107774690256777393765198403872894189966480140019920274671205748322865298789911199898198439688114975876436888046306916371803623694612776627220459859710579297722785636702162415075384136090412042145953190953844724291356009989252911362760980839410307124898999515791124938225494220659196916019915837406592854807073399997885268154509346075695292136865240132319297800936259236974331421261492795326543890734958912233886400234138681994618836047285396359794614373715989375105398912595786297588466124382898097487540705074357706616278839647166111202646258700942617396839955442753861844413198575173240193249230598701263945577275460946150512250007369530793223602356710121080607367528126649691620591402012180217414642783515643660895725063684648018476444388020380860455868465012867057481825330975875858640789083866113885224582199023034103789654117485609811102177782351957192503912088911770501248505034034272215632292413349608586332615329154725419963968513547915139882141408890759461137335233146839072565292398379109941890812638401061204512842915743661893024188604200073269756877317214379871598467213302600875960216879994317255703422220130448605422312035763755231607967503314388655420404067618479897018227883728704791668423349976422829422365638549325759406427855494964414291246192473340426315483182344883054079008839627808239720009661357519274948418734148789479594175227940093538846875098401532667148863302089381243855466317544732190843339659353798396805281680651006344093504717573338416841187148674030580262665839790600988516423207161550752294438469717086933636068465376294462995946562462736706486195191253449501567590345678139493956680604931908624288786094969007066277807989869638700598709301851806397933762688426921480076650361559113204510905385820250018728058240324562556905899762714073760021193168970922678015963902990580900286223406177227357812424904141849709752341008443746523773062068356882957140979061988961150370109599166396576786637059961047104790191533837220795832889549191447357443319063581523185421788310894001395744859694202869611751580402966282378932933502849310357073612870132343

```

**7^^3** is a perfect power of seven and is also a tetrational cubic number, of the form

n

n
n

{\displaystyle n^{n^n}}

.