MOST-POSITIVE-BIGNUM: 2395586649178303633730968050499463142130747853523132043729089276888405226105594927904741236328551727852554300875660755642893978917142001752443652419781001813260331198154746236456358422763950054035047059651966333924657161305074966121785740199442613771377068494328700488776733227553082328385052173522044237363994651830062365491585204103237451186877915989382498730719644466070852650225884306740440860172201104855445097284785623677478553936156651022349810763205928451023994346186070132009487893937257379462327532995140267747401051578072406574402849467046130734861441944851920993892653752561070529734389623285099428066110269593809630551113315361830082582941970524841695804331766422646615298296184775345273845886616015212360799055715168463610863140259741325236349694975855814406246596020584970531518450905436551255824400656763112339711180149456995000012256283891812495939147354543833308493865854378503015367676409595806527481973132414398327265869407604470282940869174171947120880840094276590098940805529194580153098548486372809544605506391891417407745126047194594437310936928067326127841286686112066062812229680734714946444267801112673544680899720674961315977324119525993658391435769285153518774296105515885318703244565957415474852164323136341717511786358317294904183891027715042005226671102967191158657068829531840706700036669656987975908283435952829698711019722293992641024922389836126489255106211387508339907900998236100862652588854916444157115680021186275105184501879437348187785237899213206413167595020724682891784417808602194620641459031393333445113672716856358277262094692980511584151333493370267559682473725593008567228029733248771338046595101994148167670394531501391194897265284299722070521703420375155761081646610371000279245799315189879979050630930171884071891628994242583734128779722020922705808731365602807557564373402786621517779380908683091292274130202070080500936013346853447943199021788353710291352397903860598269230893053430121308147081224944169099250267129374196010074945643291629065467223918848211567943596572058525875980878795968857091216238633276667730914313568697769370427528547262465764798911147131941775271281597697888380600411994779613291644618719087411534581613239760897953094659030477683415680082038742614470506323719306613487302567119651663410977489975378771423906494471253325528712163036612040231149912345700402160637468131730817230697206410042016421918674672249802974436767423127513093079070106293025352545151785311110216854543596062278804511631754316970559607199790199042225325424975954494765442708615647673974798666876997972767055606891551612457759783096163993767539279109244161559955228460855118717473392786210894554785004579730688782834699584514057106661663738578318594262072443635582790955184996953892324308997803883130817322911707628542258637988425180838450335291506062340880532711006740526754725546537331481437040935035733215957831209786772992771706999426603649856470456484326583875461134364033198194729824056702680802317107858887447792906129013610259959363268429312036355059554196388655082194359574789873999579883360017943113012673067178625984182021853420479906224960445131021666823451224860259119130747461789851663649239035490137671858299133409487813845531504669790822866464027300107415277203397460144510818607438573511940849673171971848137434469247741394360434483062347020315467343254525891507860914703826759706466051468448242464717178477074186828748421382591067023817856891922289733639241873037055331793768422725805394593892183750413117795791947554074427950427204702416793736533052755593153729567255640786092373724188142501686567189325534088619720540274003758092365626088551650010824714603201183561266165815621286808680746099834543195194355176294349706001714319540221907896557301458231063260267192766033727001343746268277974333722736470075603951494176462953004618536886665194151775239373297277021794983376504868692830083493647480773322229080817403119791306776851538159913434736601829687885797351714546003761765444282610551879965760802647590371694722054148685059403755878545168073746117101463007132897773109516868720436026309904950337164114962448141784009851307156630584384505973552836715203362918889534542092391923299993426976645833313224226199481223188215258201074693863488782129947042304387503090056302592534607528472395966514951277676546318375798079938957795548280124472901315866711685084437691779171112993901938338770098646516050143361336572796041515363259073123416946893370615309554445563177600910112638812356713938730867354981974395363960718337747479260603906881758935084467112089813624605368729700107639783198890351587977523832841701968504932048092406830245274904588234934421087929328122624466247480699611907717619642921005290197026352586026888354772733794110148023103498987218132537319957952386112729438605179403595586691533026306448291430312484085180069871378027240313998650357606594301482709674908010774052533201256373250470349681027137786959138698867513306620493769082571059700275718687033714113019258287960299824079817941052018683026648527274322538927540529706200696936193666924616029895264426511698474513767612065933250532116602117965953451894950746269692726850436929723588787287991467745241889403151127907981643383920887382852599775842523749087806256455416357424815484320400152170880331585158739589876133909544830875505893075578367602371831202827386185493697254049132603985386655579253144177838892919414708045472807049626062252250698955728078307766310109005873304395572499946266238657514620754791476384183928004515945258884175911960440923033138575202683380720997452616916506658550214768652862775930602725863747126804167707898853874029194287284395891162368877253139905613953513796008291774664281941075279169324367685933833312014636236605175543762780702874024616757194391634384558312251572583567126344299107555444796705237288409885310814192972069413413146321757412929247735970828131495814799675979523406255010422165588989907754812764682819056225557814755522004434855730704884759067755880153787861374161138670928865334454020151111618580767773099703604367218319854095057545998232871580408728662788358610613351656870376564840984371171524690287398458632976809687011459116071593364710409558252864696471175968953559533120043734407253830712401216777859065150784697192463574170164279394961989210777813198824964570942233000668126662098406929179398537865129115364847254941048754311473693367569506226714398095515542780788709131147943693444161503982568788921153507319755718104054374092560618051708969317195269845528551079462819892153469529923538726662407017892125578719180444647697014167390144152302418159206477140082707253839575839396854816532197330743142296477218096822635270707331617364259659728571281003092136489605395575568700410886419443726216518163255764953269473934511570017616066924240452155522375238518359534389509886383991452675830406975703441958640461694681802395000056349410920413626679549271611148067351960495597116224552104918820351628344133956580550222212378580042710574992603359765438450034782037979525920412096663858735868826845387718694500830175617325274481229097022369561334033951174936808473874772199527290300289387984969166964413039366042720457241910347623285389700564682247866578221686326376205875145181230287227903778315950994265215473853773566944180563875569161635876064254420594399864086052399702640447193589179273616044119043885996235142924566080265903931716457896573996827051777204281818392387857288823607940596312757517786361992002498708964986477816215847723472270358242179802793636502592187494056752575661236712336314705965355135530252472958025079559907362519862200215339165677985619083052415514136586604086421800381098594490690742054341171273176618706169506356631958128656020542394466907636679542201063128246928086337085858607266699743373758796426295992940884455353719517513037191490409710325683813736920395294321308276549541857485358963149010186782163663448602969524456960340609636210907188274119975560303997950240608445049918911647372946384601751926581044292212829243255011108239571931336891265795720785479941666408021280350762010726006425642122017487235509102658466429589014505468900270816145587000912326248795048069404099908347832489968014498582030409162156217237520850843814892068592595708672605206530610590760957588471643883049633162621480958378055396179608962841668160760282879801901804949906199230834261773379654053374230541780385979728796451622414973146291688097450993679891035529918042168036842671362541905879434509174651241832355909718324217943529065014341778705713745939418331181197577243831860533572333688803890952426372543196672300893904740787393796500181675134441371632571980649265276513504378915530450904619121563301934623848596727197814717245001607957335886158295394269007743543105432646314000105414367609689365663050896831166471629241612130876755542086956535986559488245768470677380737193463078767091875459832635571776763097849501974015083237225879222209931919707735915763845791207977674232354192275106236642750880486452660809292976640260570397329925985080040375759400344322868633811017316889976231990784459026262911480812864055453481649823927396442088530210156219281850578343000018118340874743227240184696692063992078204245487378519251480277841086935137300249112054035475017747301467350843139812926572774831246449010427015901307733032833570651535098472572820272870876103636573706410144988309187517062307066679574807190033715857464895637545417646001826299277262226284247591780536678371035333311495698267781608823085771304758735640011255214512885905169216457215325880576317204690203595287068107955833345001790767938391108957162348574659881665279881048371696790573150734815031709675116939317738970696482836957478584056106154331405707115181665795812865257047448483707774116541312062733724992496192160711447882403949104114540810238247442076438969545532197152843556987094207358381310087958439771108658483457892297951398591983345897426003707870057836726783558099068265477193245875171875473874526216073865266935824178070914860605114560663940984320164293693362212572264869010192109476339578685328478264269372622957057557649620949068499876572907514506049358444096444802568801332638498849259174396032421288645299455543411574644449624598734274464238241370852590959768422411865873924137523243125810232133111947220545575208844285237215124154490392072228477812972699152814708082118057524924004709520384625171701638250708674289273709149789533340539990877744760664524648889839158865944962880901391918879106239133174984024670125476591818517323336956755627782625323102111607153472778310805910112551932459352488538307852008788595206993151239773396281941822783691860172631236795786099451370330654266442042253398047746768353796181153900525691591552760065644305880802737976975006790773761464330573378177908140268853160997120262198736269949990899199085660715186078519971315842489585757176542797400608518353754172105939872310242378754087000710217628598033756342533324151979983967813668107377107152356942913901299416438883848581445310673281294745503937811430065369906127412378038154884896162954758149559577057987876091678593345413971604823787624394149242021194489472928057610629701564161329155225744030560801652441595763180148190653646167594576531411319789023856125722548333166175097965935378143314135502466512774048095190624794545261217722875592027588086946283660280570185341926245217117266768164977383641826223015754313400158770847329916259791330191695279548198121165259279865449090819123262923337188962532510778295373970619339459147059751112814352437209658036778239539218679142806924173639828937985108482135297955194354528168211441690803058158894214157738353379951946070546689323142778615184293893131589578682237143079297654117870903675685603308127692345201091749117203504816214883451306978044547608036870048313336033590204299134227646751043511832028146569787684401230916511576791115787470607772922194760098854384368943386393411547514721661066214692594275184352339659551362651967671897136346445528085860499442536627117875508933236438254535898895017970185682237264829365177130608282024551058043464232033211533237182353800631317818301775519017108469059803111860917298182104289930653026009217539291307854242854202501852904926781311399333913008073420819274381554841625567337858301979593641300066623624570291441119496065783214795129301353888703786047875661197173507352651032002877658337355366895943088799510438876466860898452722511833682651583256318028215297271345205651281402132765469100335037711803311854349709908566964661008270468984659099038157835303937574821122825506478518421460938970788308433599248412711242094534056995250808081539401786134209221259633573865709869898498514656612489801252082148816900224826273587746874713699490031616823921748947383109582419891408028182659507959054865563449180609999400253599859076219349417672140226990724429346356841990154895065828042902894411274210008105422286153119816636147713191250138344196701712627772498786510342905955933130332239177920750347195001598876881215832748540064341022155544470335233402306305127751130144168695379220636764800723772904088380159320538549476365710520682003636655487393237796539931129717350682903569621832187397616801909902266438337313828001240259464160684739818213404414828709286471802930745438846667818643605912657847899496811220038993538499963462158875406828157342182920130253270777810096517357961614246160181241348406850353433052380863346415829759538469013757230064668925789038548893125816017909019725268177933642572252264364305940186621963491954852248820130153625676541135676700963384539775095974580919926449161194459142690783756719776351498815891842890209354730724482132436078973375860849259268315625544991803126607496428775363182602100165932723186160611251001502303766999053239876194152783329887442773505072923719099006081661989752338698987027839828993533999633381507222116157009246394821698587937996878819806683696599351243011844087132653910961960355048353748976440935128075962286415366015967963235469626079968422882453006146919028805028365954112156443951481475070691470819272243794063647595643940193066088945037692618381113880211269389332810680937633125620946333739299517368851938982061803737624928110719966576215448177155899080369641092406202746878776612500473680896780430656509824144615772135408936819842516183368162938706004687535480303795468927527119884167724661873115405647125361654556228365641434504649727463645117853518691858733525952103056395609805643415729461105300515914519622910832453911127090088289250649418118908792300841315287788366543063815177336973488492442396085513763230840275548689138800158062059723265438837538008425769674090146595730442755737731686693767308950254461324020549980182660238899881210359187689571473816128037850749910491222530032545271734028102517965988295045929824407714584479288794297117187837506457893590029620870196368414510604256000194078181064934327081696927761503110804681193165979180151255127905668623471605457603914000773792987657572746790349582489452817813333054823879538789042884528188234226428572040449328514723271032693748045930448671161402064730544438994950120093872914094197612732069780352408793463460103451310946962805437922305241832808407308205278682259876745468095904963384374007395730279404968092291553654381310229985127531911451824400611219420912928090030698323199220755069825882191064637761862530795702393629756254673382511810866665481675496019706146510424763092095564448179711792005525067790460056281721143131842817047903083346628085226271245652581785861878129941534365521738155328109983533280142609339908082373838794539599290526156426280117960172026554161383188856608544461693767373776303198492713645425135523702337965306974441591143917315550708911800196766637719430956414335998597773896749314946817662009537074478667524060778012223842150090274122196538324232239599587798442869801904907321443207456219635261192791706168072304457937589161221162443940470858769278413051946561005270118851326597249744946487470760923003167089800957186828947611040261571108444942871067530820623898358260810152538985052180078720510527766351723249062956647453615988239955793034325050155087393667610076047246315072320263643937060126157792821195201388312328175899629700030473896688031048940778667510069385106480392068784838076798359605286866022209964499092713067703840344784193757222447519138292101720596867220650845403481159905091103286092637271612897365755685454968734964780639471008855709085269618257383200620074745073264097386564964773203881545678290329153107966932850657964278492400411342958505304682776221269929174412677800832729225176878327168370878034262192083425747101878979297757304696094329057773068935612084980628202596200335310551899832331599976127016244733806817933143810546132020059914504088062095023833514526636820775510871224736157902166829956926714932217612934329338694124595777138745952819617981901383756018221174125966250948907172303507940004501751433210402252454506416691571335222603937347005244540215626217240943171763272554343571222723399873741241359442734140305055531194392349801426652863018234565025584846883702827724902456412250004907703159114342781256883196237156883160657801374660942896665284415605070875796095693536080243397003885744929633194455970736947173008379519147796201946273067824088127421968161504459466931077316995410421518446377425853300560129699431361858336155154300475020913302733861646374043388042596950878472035376430620270111118342320179235442320374233639516854285874150653367383872452714932592804507180549762536752719157741582418480346715740424405947722359289280881045892504802451118087860253838684904780319943835164120573260228468707736271152731994474193367443390903609525834470056282998233058157873809495234923974952006423181544871202372147922603239574789320279762267622480655123505542565862481806011513675145298789366955110287680975510575549510466008539000820392899032670760263110391780600684991970290715264859739001189453756110267192184508932209581797244835069214718572092507203054821003315139375661577880843485374639722417052804245368586774393127395503472457727639147376902054395306765761050659510457624519774212953563014167602080779396344723917542589522672062226144943978096307230053656884793503578341488465765424258222103604604660434165173684167718089057753331023066402473817664594990353068112677551603157962122297975475914466741602944171906332161753697519080978791576223760851361923329411499215636525748288247021070855848902308221928852992510167323971036077679979182313456273079202642208761975080481554800911216233558912963120627294017215546155866731030561336762671307408111866024435630490308879971257030887135185938264585772430113857604870169000996687487921316113047286730287789364212825749251492075229207240013593484455009864548602449977436988139687323798729576067146932636644815484561146694518751901657006220085513059199083383519229349670814601313666132139561573750279991077101229602443852633016589529010790418706993134077489197978739788098858782339199556313787378089169474052688108884965577704936888728301284265230167821459071897487077700027224535337651034306686183580251224049458184064204881630547207610612596951112898150552838984961422162395360156915691822785821095425907768926959588752782750685313408382436368846004138005056772304767258788792318919219387198929113961669657569185757986843768683113082881675820504246016771903868400306282973134056056447193890231349911487954698830639727253684716484676604809984676229864720982864018657391705234375539360966634384137146271376434340264627631124359026908682040301224709225421467184247534093527304995205953654780782011420415969394240516395073034650750526554741474071092474517858047749558755041155361142359301243201180363907630302089381603570109751265022538441268775123301620096532782928044589780369907242229995541411127754878053744502033542178983606902689166492403384857177477298286665659659677091965001647842545609555067466138323009991081344829816938114411388259973209166611149559858288045035741720463842444437574895112232086760719229058587091890990931775979534052614299831220547502863143373761293817429488163787329357858880630841942721379326101583393445490333207332546933416839633346890029102599983699495908631898008034349163840024091725629911547517144076292073326798640186006512213674194083378401772758574712052151552468989817239069820862102957033640464430015784609228981292037834710637091511605140031908205967067720548742305788809726179669455297397926011395175481499942770186429087058540358397920569631264413790359680114734535302255526233240165726128197975571350777279547726866744714971346859520311393158333826673295108723562511462906171044362723284319384448027966452898908996331762544665238794567901382736365677506109923601524027737142260503808545567521936131642810192470419332441535819067836380543533003533286370066217234662049534507751803243159379929835526971774421201908530720398798125869760892312611725363520319829739876035201814525029184929587052158863480845640118748009940462913370512948043428352166573083203676909050669827231070357202961020139028792930636868194059731301137490440085646819916258737544361874831203449654086308348884958513401415441301293481448583803680324904391098785210295839198745479162914026913102457498076952401737102237915571716753220655439068750921607374547089760872710629282701335559919834126133565493586276713285789411050583105627097389052856323901694603672756979690357699864966019921221530431239471960488955582209635651973150592439663161003417191198125972449501102872349137822061864615220757122943840830473150521642061521481736817636273173424389581303754050291839301988202486597391860893637460592220397460319967261427211765347936834193589007635303708991202602388550861996681931644748257777716390395688007144121383995130998407635258812116174329819142877323820189981066011204391909991683275815213248200208808839170224532654340703986707133784977469727212077592796055257681493317969833621579484989464912107766492178841074866024375165966495868551316656655397910536014140850057717735396983576412054489612849616113439646075545756714569697818638377375459496229849433723848157024932276347625923636470843828143849378877668229524130600614328387555514604493745026185522221870188772666961852986394477927444890921670388071720032711831011396048481422873869570091779486757649049386911888275553896353489268429234692156743353125374251473557444737408275388547625029751164675660866007913430383840520598629136809218020935491060920404661827676668752115824016308458339168319248834393847233569999100621188737840273818906335358434086329237271547106846018214089353673040884562034852120172259612182966988114478785266511067685988718870608166759854813731128015447885570545878213229390033716074088427896117389305220003788646865801241681667936561185644140463989189553019850598564702642354967006959050324118483566188556374736781997030699386609543990978133855897632764092086764031136172666073851110877382202141786612842995798260596454037881338925694608879335624661494689926653089973952840025771462667675950437600881258882685561385032800663552986988844697412411686021597176951706869680903999507551692632454847968784941783487548255205809204237684887106464182605382508690034539680877452071959379418668643851929285424563663532296671938474297396258983215052791835777754041653666292775329976320026724958764948893975594431115298643153135976635802566396775939310271912926039402618513984733876438439636682496723475350808639675636353431855886023292866444056276318766922160054854334443145264935166670461665562246420468218843610969731315065413262034972589031387427880596530533898506758468683330240552846066054176254285304338082268589676196307128432340452863376022082552124300713807497630791319087857280879345476678334439661719668428632338420714326384247620085658390820565629991347499653458351730061543104069658683338374371897114767936553021894189977964573326015003672298539215981798303934328368932961098006476630826670082159089387694093717820065066197122374050258100861722532195751349571942849277445063668757874230282304280634409061135273871209894488347343522949389560375801289027145730313684242872254715190511701773375076173972852098871034815202564651159979870029798218837293666525844484057823935025576695855592001537893075497828635787666433693910340582222896383456385603582111562262332418128890514452620322098554716858275001453650204704720748143250971614643952522965989523964536589053853268475908519906506656133692830645337939057637194513149819214671144797668635439726022802664860353757832013162813088139919082760642335580935732420425003151592705179223261080304528283071253802224111966253615053171771513422002064233845793431102927286473621193080200341563918179785454171247729768922168085889138816793667513949524000116923416910233051722728179932132718521304799058457097002529075090318485324815699939027834693992045061734587248769283744205525343412111621468259145089853753212879909504890008338170403931069452526465807094118125067702568712923892761897995033163551482441479327821877121460497728630376034016682466205829266470051492771696748303125741840189288974037014441852866857994536598798543336936199975920236545783645821293279690974502080628890912307211098100834759359767818792991109018404209882277483485397734280123314817051231001178228139258999559164002831281136449991344103297427973059816508221083098569083002143943833404919377231977469698939407984298690434736678533577978144933023792334442948681236065532196034876027024790152705148213180438345336067668587968452977955665246801403874039091902098967679706674139080158554893532175904486163300295817934993334362027548574684888233828626416781810570769383266764440051261684323070278265233359917260036039858025462772587985767878744461655774477347293614877056099283990760568884754562991801698931965875011201241406364984964383625782408132319515633303630030220861980669002990613563395290607087236953959456396654659863890496986458509407580887454730574964635139214941299510859936505706184449068152337851669292014349768430967140679566574751538630924438243160857913096298183826564355230356720961292750975080314101616788647542848983035601431077541435310262876758965839308058965227725078449298528809009911205411650446423846501190261954652922938929968672044513385626116606102854791561042149955576968922524670652366776768433743587912144944646904256663782097533536107492982223399772416184657531173224866625834889701338591836304431085670025172221525942373108608911947085370256971440848823958684604775612666556518835740758678708081780954097229123787196370130822741919889989864797746182824198233798686804252680301211160525406931474303256836555764032907842917150995640191651571182332828125567728276184790497217992494102894935685310849353663216922105316960308424650923979313277053700585217979882126552541847704339791896247398670175597116816398369904318994080537530424072642572827209524853716955012500696897386789609833729053120724235620376357934977869769127949892686892164017020311908701924194608096016103089873903631794844260636262953634962886619257177457467481692121191521486113388831967862236849734667649248968222239986511234214994509427738987856565475354645278482157936113378517494192706134610260243417570655515562252424350061255085158286178479208996682736815613183009495802089777562094804854708633680045339091350378784183518915889557531921294304547504637729586537876068436966835866972567860895017973476658893891832798691599174894721951107415892586737065103681453764729054798264083789722835292432524981244117955907312036280018720810380974490758259140783970606591812132399055716300853820934072265290049477399223715531124675208938028923720896240955895614092969538405231890909781072841480159465826310594419789196460392729263377671838912865445045467479274704417735749474109897124785007208448625963362148992160519474491154865127319792061508115334155004979187846349110889679335916046263749267963957094547516913553771988625634945753249611824445235768223286731220628815838229861264380671874813195014758024102833243330003585017650367774576505132259744911355044738461858498250583740149912135932620163008848058455696190687823418986715246274462517366263026558617514412122665440308808648367442432241395844876486887302883628138108186794811030842755313187680158120551400496138399342884790706193892672246510613008443054298792423009798128541859878827866516580259666755188025121431721298368004557530743705264398718364699953120779759638082713437109261935168522934526049468607489143052853464286102765655088046460876839358596469295790288460331170891086908483448719721759881101392334377958733153109242473821142635098053116292726768171312866632161639392192186898002850155142257790508536842539631538467670247602379336379124223656293298304152483041571686004238991775970481497679506885186247399869537256414573796116790109453430482560449613257105527524612541732161965259516004671024953502711976467844560714984388853527859087390043200745676689010708295499969404030782313128106201818589934911356072585698791475948993071991972917169747283096364538188713410091020090539875317474192068620836776933817456066785510910875869785569122049121872345970811287379176632707297729354647344733622322793759880473573114634885348184481905286169974206619329335109073551454716385371016619911247195702401814082010789528964071435191654891586214335877535490936084619472636857830378569455523888735062754386654864609501903921991659245796191134235243402332772143491400993164313763523959986690755934938435586720765035536520041470830995693663811797134382983672542061849348879043861344521456872648340903036884183095936315777034707013408368446293117723584014583365236262711617064110872335889185324314277266747729418294542411996659960908869046400459303309808636731807254465873378040403551369001297207556551040709950903729696844146882276372481804582535644107144067618359340354373079058499408401348955039134772444269356920418526755831546779825551445526621829779975245149329735726496496017007194643802467685502357611357389804863219631770283660765962426596034725446081766177890433477512556816307171936800583760601240438142244138026289705937377257292537298092350048695470398934447564849812542776540972438710152334276264141632297856370199416432073203126211594170451292907083504870279270449480587088214067240813005934027394017269403728927971328571828974987096457528963020256399412511825021373171259944724878220259164176784110376000157616306106433270677238815894057825983642361685440270716369454030644691250487568672524020933854034147071559863603929209746263006944184051969206769732478995468246809904338777324823214944622849176382907614767277966442955905619900560355969692090632311814042695860034550872789901469727307297707671200623652625105261895553054511061077249496834905182703996489032400758640857899015715432326549388748173087002951242801527734468878976555832429217031486658371031011058245352356665234389465860493669525484881851033208465824134038617325397286435703258000419867686881497720766021198628337609310133560769055397154623139579500247526304789477083390602456281406573193704719107234429797740721496673369358409970985935433580519490754008647162164939615207518432655123718711328756505782109590854583330042980228035838674781612325182477951453610738028299567442331088905774671032803959985101528860553240434278599032614052871419150827109849909136584214226378185062921440939997273109924788093912600471910144739726430781414604898514228861671571512442345443874761337128129263751224737211584120585030250853705694830031443747453488266865589230601714291918155982375183574443078592085267867415047062332863084177572652067884796615179826423420801508636373705214538569875538091701486834407477702050831097950772834519173505101018810341347778675546455994842432759389134123945616724593805695254668679010907036882156882473287570632701952071724057744302313528683707881362954884385942940797227733270110524629304979461244333029044947658199871312393779145453169666696216250379677509339162771615245404767750212653077706687629835837522235048723208493660461152555190673504348660601233366492712614704427307403180530703540063655747879148308375997721128967733784095623955963389904298785620717148931446314411718599931888157500978557261919506955341168663024805657153199579411547549077298407318552052474970316735831585767155587213487316557877887117508947460469655254807474628785968862781659761715997393409768134627778553663890010999200401731726821113263767755823702050143365520413943981774283790507391662085634529520463902129822079477221570440890944276888018004623359474520242073121674611206659942958470472119618265757372050224514508261990947513607827987634733457087908555989338576455707586558867621912691207344223719124542573596528974556311084344086768489733986459795447612784485395310804270673232792960967176089881046941346128857120468335520421489581496955187302299421700699001113720652044061983398233724631938820684248364406002974687285026349331736767928962423237514040945817599565214304068418756885626213024636438868669984998021470506583000343122391827747412755370757757701267053949507482607318065084083684937386213603050745637456677562877608993539786396777269803852752376526683547467260486023669842153213880456964625155512944341247155089056103659266563140284855232415121737956585965595614636981165782514121822304375346385943555889309247813055658904326192640053226466563465682573803557180214200829651083646788119629568651475254477126070807270998875796942611341807901844567940242105323072269485624308174899419942648497680141151908120609815707058588269036074569502846955847415538148056786714955209234310351833997663111043382608815954270631913728459689718431252095857955062884684476769676531008375391403209437325768352788087776179101845402390097242927701562479274891003880526714895716434753541624678103744093578277871324447830847943067752099333927884345850038761569588331717125872939799564210359791800384088631496837362134980729868030481721009657646232955918287679714294652051614167517004168423074004116203175521642394359137371637055435844108028965236228784691444038430322401975031907132893333126782788489546939543279078862111386150859217063286091089471343627295681097663487034162045412331991402813107209590864886828036749069720869925640805401500465745021973881411348163449991286257925838873097786787107383196982120197915265313265150144263902760370020058275811963691500284934245648374011309748001943598358865555782856121227569191048405443107065970632652518601707205038830564734087062101634004828515336278659489680524235573475060238553437569254786474411923348851676935033868737373440603057516689002570458136600772861563905103555495906986168329865189705298062675360314772384199842239823947125024658740062493053789185854483712738670525056268573593528469719147687695070233041881748172613933120977911120850974007731678234725264735550033782503022085288731051556139348870272851274317274200979300587864224742614227618098027012030777113383088199896085558928522407694934157892872477796865444589459092197748373308006342889707834310920286504328764639819329447938511771217720230761437256035420718467683089173540110780912195630531145668454530803663820524879308351279169534374356165569889388028109553332868272313450301636919515313259269954758225366065199746444557314710640186798796993726593743462007018232497246122299530690710112562093114300704940026067347992685955822465607589615624581135811025645569146299467971466486720095270591807139597526399526788368639218570025154486496230005727901556943578091682483988394648120852571203129441349490432923810150335295497001044570936529354277259260328386059430398011055055561010761298532548618155670411327989499526000602187261386633148459442791490280575621535289708158507699614910390051468683078426239320525710151137973290779119405001774788298168972780622483342997602733209957400114291440670582507011287715659144111215533452351433256619966362307361670564980715920539668046788305667286249959051451678601555360641294506299607485973478676156332396594313628504519323128948528161899677721474094796685967699939885834225637892247442122854268276007758530944329781777946811398703251192951977062797347014215652061852787716075049108635102826501076734297333550223561645975307823085693411687256298579595926781473152469363664121755059948735848086685941206923132087349955350236585275603896276163177036541130673757778508238062590654561329748307226064419481646949288878179182669277498298084121969977461190493121766775043101046619743245332339345751213971811202500505216835673556916767988391751905875278070767199203596995287447409175263338954392828059289742685350881001657185959117344626825984155179764837199346258302580817133065309735737621149794801948029228706528783876708292956409163551834056940038502478983016083398297319059006361786446878747126736407606006379194389953514660782376686514206202354657436351007319676330693560751703466058582254779027122885474123108892092889829310587629410885488367862996267393603130564262678468575810037009485910884512313732348120180242213121299972179519100507731810616074057920299419309993432050342818891316662757154860931668275558475146589004022234186461800025286287313164518070868450680432807977103615549641812631155263330554791300440928387797803516867211418035915477325968109624879849110998844490334268200685811287909440477205501441507679791516424795085564575009925605651436864720576309970167439086027111538329576649456991487652316580974480968761822569701807838168573619689636541483815802516891514335174892924239355440010584262987019125902196868443627309663985104533392529185913515399554636348121576017475949632098426076472226508192639789572635914422516527484671262783975794106008854883877738356706819048912008204709894445933472570855229771346653056168018267050508940411108615452576057003976951021308948376698419680154927614133759712062322207121113392340570422389815187106180333602538346479830318680249918976840652189101639613436994852041545585965512558416124022929195825297581168901409753689947989432521999522653121840323168670528825222154551158624260476149162941219045667505636412921423986703610603651150225822529827398440898923104013633595738948873019411217537503411771130852228245347404277819446645976430974508374085659805126456373896718975411357879783756289906499946432956105739570001265419935051885513688653667961507829669292918802029860672975938551641886149310417905432003373103765995116078942589042347166324944609655437279361619352493952804836133324581013653263344868993248420700171340353480006264016505019675505176727335209880472417024863011005468099722463468760234997167576407560796108540213268727491203498986442580984486209287490254893965841941023073025105579638469530108406330034873420392926468020378422071099193349327287472327301173277453910529683067749581311395231605448027785738497534336895827817235990442121415772636053215223022315034541951671070893989293967831212793238091146331384363130987162285098371467679206613476381246854234748263437893229986945390506258849221362962072057874420905964181026243719727382227183679742753140998357355528686428946929085310327541264658774088921884980275571429294489312056910790832657371371006405434254852095182383369741273475667497234769572633034122170166779028867567610340369216686079843512595240985755080536622091757712441374236610125619501823910132730840247306700455303604084131017170725647619261196932412196695585657321385397439041679463499618771057926438361483109134164664384642782623555647248144408371208215144672054189406279203962512388688621999553482708287797763118086593970387607008787499140958547239445703562750314403041385583353343586937938793243177419428611095056411408243400306666205983411927293700663391145816127559429115509253534809566783242534059748722500300171981248627885285126834560634913867962478110714185609426113122815974934771546906145502183134252412004171630637002775416689283659009051390143143507931456108828545064721244501544567351045754723910420153024769050519549407352872522047805726275379781437159244093316326991263011167037105460221287067706237274476655220104008366503588835538745973450227773032210600956463712998047310056094949291826061512064873473633223851922917903556223389835735533517491731235483937260751883606920739952261987965849430949129448959101229597085226185250740534898126294346534846620753737128491235042278068624242336376649183457379303547754404254401677362355659196092222725310226684026063868290888780555621919063508122387572069917138338310929248356673288338489240086755042756556919677268723757003614349883037913475894288293156733676871840050094525301915279651814751390625368649876206829651002407743519631808080928026652558848137260796005498004630462113961550589745291923641968536150241277099980750486478667519799324709354768532247149788179880359963476152892272456166088640608460674831512646788503209105719194816486383655898704151299092817271489129869313520726931950653421605430549598150932783824205921986566712175302564608816644125478428087904153384833549832360192009948205393904102924875213699720398238980343676505942557144246690857784247057436863413174389295773411137762546717733970483002097953019354722398385948659136354944977496284650960165055673755285626376700614071608295207388937564106841567233075610383227289172984898238131895713676783446722259864944574574086818485728364252817733363204941447179249152926879842531402939243525396959128906783767471439989797246161007098007133887357619569816787555547767034711021234694182746634288031167256635737199868356439580073930019529429300096482355083308807487292097183699723331203942749545290051912523043100643970533540795111819734252708823699335555206524621498588750038693776440709903351401674285819773642061564034513698013947158980137854192436903660352029301632537622684956490825443040293033924621381335941117296540413102104495319341652944709971649411201452409319638402544990211314643789175833044592501659058040644399334723758575695376125112629598505908561777368560470201226025792059110540406407639628108783354090985169541867052197515731233029285181755334163260940423767676722195158449720686625914108944003324357281316308016240118676950605741822899711799998425927178588126028374510166462323059702207292726841670568965560028708591127835853623345776563590844653079003374256622190369496237877014292470522897212271059608529475009346458760198838065885638052506384405194819665658994717090533894527564431287150677776128098705295850189527789437447829290346953722609269491865968709983149586245185926531114528624466871139497817287768265827434140431326967437654682248008426333433602615325335487269166953158046462920264973201563755173648864994679321117793345928062543880071439768616762531898583997225294809489331201799477046652008480841558096480673328491567502731905876227010510744690698982960217760129299423654572443089307916604744103903870028910638387345953692445125395651554306003861728861180536960923843411823263754523613994209371306001017331094143877209538990041129886435593323845112925772831993449037178353847176459632878712093671507282478851688625141612448827371744967154357448402870497897092538005076773565783690739068261045740075078160899183372921924328344268821753623136377118000754695415466633696988385233458367324841043742539895645709016623020657692364417881507984646087378837065048581248547405122974433975430769438536042404462721930414651472284657672113765854489915638332721499139360876704910210441208651861411080938156519982081624690257470533284082971052654258692808256530552057930407411017280319477366818927263270262972845890512815678783600154073912280174922866019207155796661603883449156797190419582906035866968628015265854029518830894978352555385281706501853978646246939907204805608852455687810219502680311085201128295518413558564861902006604648305298890929745063818395286411865503509091001442128175623349280367855769317452117131796302328868394587585899122791856061353412388019592098987842436121532676537258922182336082191910859050329994247651539093159856927103948977114981753576583105803788091438818333621040790607615944527843320458279033244640037838563687637935412252871688533401548262513994409884725687970278366630450272848826018551930202262653915902793743802201484009331601743310867518144842228350419085507588119490754302173822122208663253646856664948396153715448255988022905926984091215089184060505221796318073654758318058265664223257260245564987599539233989526510587804904377982901367483189544920212427608578073450880871190423020018362459814589945165634960575380218498958855810744678851585650157528787008636079221967752411159463907646884529969071439895231969835986230582254298422354456684286254212608928184655868280113973975899917662086474150201707876993422150192242491021306182966340214394019719928435004547472249228486049805456788903725592181722712958058769077405707360435781477363603918550735322023275663365106824903657363140133227251295185820313510675823645490820019909894423899401662100193648363010872717189259725074813193484514791051801157243939776319706178020293659860241356290564613497950138070780077659559676179860356944116847486820689517585217781949481225791700389320755174836241425428429210000022527861143061350557209501546559233976754261544719050987812828388088278444481227610626727148117959860317243412334331298260278321179582937963536089437036369854847467353111408865924399914466426800590416978363527894977838304889826419019195705310424503597770900713187900261581105330757454256737018382747899265385624840617668183489072919883045956000031520309000961417099530450944906816159517647701194435633201332680710740565983064618175895475109662919898599444946297760707060023110403012036614617070956246527047181857139157766305987031426145481727603345159478407554889064021311924101334847560294368539984844295842518535656608473694132976822031963261076863376363137282823381451926849805183380566427487617689097771694073891538726591527687392859932846628100582119842850345536563996333774733375472880301332020799657532895993809318496655189980865091377273909652753894507578670347648839380812036681901235708814770031169335387890125061803635572219650419851773192219605573163005190250201594029155832376970347159765545693966251138769906311285222328428150547514475333644980177650404323806922996993305142607978715641027198997490448650460750688301264787291464040347346886703046159193138533474084546990355083176240517607671088545386095089923449162089765357077496732586507135689505697314158817507726939094151398205531852302515314261417420622790743435326903594048545233321856163190591702423219814957205108002483186835551783603206975904735531554547011320053559884242959232092316004744591308971194879223105145386359635389873504784690519554811730987410095642482608067875343642005990844345354429178755139433235551113442512269149985739122389792663018366588537916100155650186724649141307433253425830514374205774801699516897164545859218735492151254071018399967969019278816314535535594968007731126618221215466978577228376360601937076322371808171880053146819197380890374986128547021195122436007427786252641497417977063592485823969378337308193248701755853444742178575068214994779481563598917585603146476951588011827041676107702707930104227988198480235721472027649455843199765883691025604830738092360084488392361031753144686887951197260008542870389452334190087644202531052017901637239238014581096701802893332883752228087373529332648629751495215247773049916784290755868532976539432063061459896046684454504643619527128820244811921427036898425019288311881534430416762782461133477211122982073997137024023242476289628200061075304559169853825015293880671032178297747575348173128787016448890476385363101792623511249809379841737894287084230064720283061511922157896398588598964393926535022252533614518885405305664085861891464998410855896107208938796395051773220568581542465485343947649810896296983082294116408268853310568809315527215558986938184346690964060079271221100384664435402388095321793180308048715697328924723951402732321268465947970605623977826046443619676776862251787397607192113952518336368723740024643633842522305669724708724035274596287657877560156600271398724784685676231095186153805799229246208976074462772040360620435435963865387226708766437670045778725233530841142689469024835077765684348289808681119202167046365482747472743181918425489449385352548278179780935722780764458910738248328390753539743760535840242093826086766637362383498938191174841578524368466569927713138653037660940181767516592511535886237821071664779474625763353084881066194316130008605251142547341509078731783065488061960979874331097821518543511189533037113575313639344613597190349773031567689407862489500287679074113077112095403082659073628171939994984619005991940727869813278131295637572197726991702654611192747847485993112697477957619237371368753053158198715456875849007419329242332821517567273599732434930696054476908291437528426593736589894744126287962316433472932807708654661034024265709318962113621163986968555077290858627375751468605251793517782143950698995386749714064158717251794028251261139616255755482341007249742150024290036750796235571286268240666504167347329585453006307963335831746383327255874903303661633138631537296973166773036975132105654188827263095150205027729058709493042112047647543798222936742662432012518028316012646302743133612813734636703742081965962990155227581580111788516069928409695237438304383046514552002930151569909548860640496845755422167138066815261271987511226917683344991497357036874819166047673745479354388724919193436073024669484900845998642245565287867408052808852542001460829879706835625133372263808302360134330654917733771740641830691066987347830337711159234443547406941819897026536159205831951694085995470964383105541365301939258004300823951635212695153110744845791553095463573116061305630284165356277479019502109136890152785092386962492421425920318226763767302810025749298463350170399159200559111342475327328653098537576303602708299198171177394672032551420054961982041745964514747090604221114556740410738885871477460830551310243603522678763183738814797329379504025496261300440810215608376590969878188161109293163189544561931721959505014838875711586427506194844927356486064845568000539003789229089946470596541032357570202478049156095066078015261791885438102360084522255937033153436290884416058060149112067504589581499474804853090642459204833123248245017754298645945715490476588364425862595051009737547530936983846284670230210577455254631922826012522575699050534379872718642291948665841362337422370887034296368231945316041869942656894853953273294958643448152017354796471751331505194564948168134050943623329649376845625207925608213134770953248539831158700125529448819479535067277747008640546431097065923384896846336612507666708806439023142410057725391945417131903687177060379622407709543666251549563773301447451518417883947878166617632405472595785341587334914565472272533578717496536895129132664686186252100158800932317462609590436581789833598569368424432184286848180133747010719777775933136006473743948967587888808353014149971137266981630229783113390825048875832127211324386296301035032135396427810847320231202193952765863868864615592142180591567171650219650481345979353213255900915396622990029000025121251350251676787166530720369851230840307537128405937367525368455580966731385736499761987742028198482917990663544108483849656147596509110184452355888819113864791907656861891418953263606958191124666562469584484766075264877748133998656838549811909532532854406762867887099803138625310927401989734426650836174185309458955419365103102401406399786864663548393733065937636746519237786347187847837886276126660410901786652304703084209585514248920504000367383513514557446139103076582778064272136330756308473720108370748312609981774210227486740414669722576137578185018011501189833836315907179540346477902047803934558711663891983742141193374092536580861511790908405244334499247204581207012250089224842326252043415213237804346022787183548087684298558377312815599867219584648934492486397287400809645412456456816023928349699449613875479468226568196577046823304615061311648573900605071347571176092729954539256594260335828288274484334969956109407915260431424756407331751286341073692132743784013520913461443767733250673272604138338824140476056756337490815641191508965963350907997324130774171611654891089986036592972980024542293140406470894830310425265822562533052158884140783518565601002760874309893626408923998957896375986263599665098724838008775810058015000223658579627557236427569856349849948771206789588119178519276879969142830627143848646235369305109274520149894321581593606072473087163005765920063080969387855656783456304947567040104030513722201721847069168182725436378591085336288101883569176755852468186001444532801927148576152032562247016648074396154497889630731143382556459524211372215260191326127441913100289080349176750512635813823757241597145920900162242042582290485934893936543380880983258441138369553426602081287219406769351786158003307266701316235009068979293237488276170594281030849564169251917609489031982211216009172357159563496858588276733501031870586197759674705881679125046416396270194690357347243897353481483772176910210087539973302316128963633684780626215128070063619947004285950957551642981775889372810189085011479916852677694057338560278735886648900539269523962858364360984724310539256263527401512403030390455623644457750972170771241125194672204114432630614493258585617124002997195796075868069604251217358547445851586821562960175239930640975447183814086808680020320757952319304752222188575288422925941218950388107315594187926956330463518747942681050821518851595924509873454202936277612437463064738811201208912213171841296793433355474434141501772982684916856346083169339271318258350470343370274965354748615723793354040730077360616317569879544823398758733114863468628345566661337025386284874635009454936365392494206790369726762533101189097726044517416294572951823013373557783140591751284533233818457026685116371250867082771676444521851062939672551487210720975875612822556660725914346836234200051442211840321242674857647751529045271720209044249838317169647058762697490617430319164799768722387428571576032257114992158322772849147265505902209971683424334598346667271523195805583746477496957970504512108899491112139058858888883033608215674469764279798975783400639081755818444035720681364643046784871700691506960309350450746598898254975714726831113864888536864383383731590834290410195605026168526607682921035313376225038151875401243642958440149408332700273768594571093321446896046706700127480456550411644007980804688105800650517028877227430687194123210367133349751675929650460873571166576316496873901549078393170655053198512224201797441303611458165486146330987998680738788204390412607717383457134211712563985513204539314555095251688247073540730080421420148003214282199387152188249105952981260500577571286906878036406140088278591490880630372191421092361071858881216287626649916544199125619628368746941185912802795512303739930877110090211928262193621680269178355297673770001847821515934474668242821227781936755199077438806343256516420265050467182717775713056042540405358887618595256362225999199189891608557567382916585384390705088217750197492367977240646498477452078969559866729624072524111558616874649105904900117115859735587443799236120861823894266714863854353756666454224041165892448463288308494076407379122084440608139827471063475546491231065283541453028974750527250316074861626574221901255157200314912062342933261393955515853755637420119661093291492526446149931965388829547050034850959965561111169319726791649916955181835025094872805620730747510210143884254889062143761506267681261801479236856576633512993187536967439802119406179303825476989226434206683486479630030133702375317557256461250867126105322470479949764598582804865119418516455982176379498641370028135492232879758672521785476017724366210135932263113272082287678676429590859013952562211551462226238332331695193744784400551426003920118946560603827835766780492676696545237847637285867884042553322186859240138247244940106160214280178281200304474521493928347833298526125612019938588464337723680174973751971390992023456597313430659919323088909211253809884650124149097143624517066080388329840401421040240197078807333500274173860500760712798598653130821027806224169251511371486769993398993874476409764416158687091192752597057010198871296597697565274532508611208694994208066478616626730351415325681392501069111029265330182695128302967077896641125989468320941754264447661773415299427716505134382311196341221852425226664631018832949720156867212803660817684235262982346314298690293483200454085180155924661145581479311545979290226682146178655849558070787977904111964873323854919588335565223483715329405629631032627897100812115115977364947905017742625567926932050026858375472415192005890593436326717629961296814794724885930089116771357844238933663424836756271143263560215930918827463202912379387677229798513033290814596842207512335585420045944115702789478259436148813052383186347372127083051160293437985877596291076099332942028318393586159570234845011562259792943343123374366948342862972535190107654406611651508294140285733669396729738923933253528699429595462917120931560392190600708950560797045187914316246872175760159481349207502442156205943757976674994709161233742627970874284637078488946999109478672858516822154410584124630928867962048237604177701794626058618592376632800422675686642289024814362103585688548650598895763430313236627190669719747169540063697434116299180117674764888698746861869300747982036814435302425226446388884426072209297521871975456906402347193414515067774592231965010367882943444239433233558938319561692879859370810950279388995033528690040900406797466867779694550645189344608627453557090718522755352062507248767321450574906147604814686501290827800380342752935829030592942329615100217843625619175140552820936084344415560254577481052196173893158023125861122184355985829152064466204445546046882519483461465093551796067594296017495722679118383827053804518004756546448370195968480759478269204736483171681844912214448970964953736225487794925942820126115858354767372543269883700290830611688626119033368670086280053086960948695170705924937832045565265138217183409407457784264365776864388970086656320928170360242685546660672130756403322881733791092102845950012495936453974537912712674031264868945867245125518970647890405926115834731766788080573673278311439603776104656127739369402959528178589447282990321426132461791571203374673492407901527502647659171018279488447642657881661356760496614906356987523343960320250610165162647404520277509227207139880446716219939374334331856582925615396941571313694331458903555628276709124380520956171734073541051591136554758170010899293808989004293986778247213229751578149224280425807679598506041537736001112135858257315447114774285313612150007480019146817841145747041326929213117096466438781777107170939710943297130504492922252475622863578650813345513108561757956994227999611730349074547878659084456189356004593175373334591773753113653897126614287248416290700793076273394277266776090127563252722687716554061737283843930874965609250788211156907357949961389797928222399800186499351920312430745087321201376329229892377793308814648655266112246125476429645771426075839804553465106086156236993089735825751758460721498661122257159143090142671762586530949623863074873718906789655044268949746780723011217472361080385446580100251036841048703394100473896079804436152945817048258286605487736583338788530632903142778649628321604915974917754588148795254915305574228811990107920412152690441887506312349053085659769529737637584446664310022581524581928809974711268784383113727681775177843501859316544678025802874628041482702863681715635118759145539725181768432321130563772124039940198266163364979574684388806222136255720752221528722659303172409108494221423706683411984345798707859129887269107131873415872345331743047426925217773046599483458200313030719837022865728465544045335056479032598877513065618508451280249377316461252893776661164004552717096632873849337245429448079712517078487864701097316917718174628516148752149301899666675682444216987494238737986856718979525341434750785466509867145807266196745057243841416133168520819797542614009735085798029483382287329621221903699453681957072792125767926731689613838551549188990246761540969832513429375631783602170658138887773768363303818541554206203343143512627356247232162650138223777359511982270715534445191913823881884551577431355507403287929142661200944023499944500177641464777290718016101832348232569585625652775995002946622812964519750901947935879870202639824315952783073626270785351685202074234429081340222273622804728515286430153955448208728386214933843600923973207553168119216051508905651033849067741332182479867523781045463796045695592646150090056172065761073934495785964740980038285032467605120494523871691675881137029891579829964360767601703199220677824014832048317394715121447394280312392273253801728205609813786256024610467529401094164642138016222259056013817226491634260113832827194439286584138689529717735018481438646998245912300460211179193865041442587870401995381804208656478725048110841479937071527428698861284161884377761110359699506239734631090651104547247587761163395806791581536570273104706700514855112720141279719088821467624043575663607474125573761554454183360784557975812541700442321146812768183892735959343351659615531357068720570766144126642425423857528871967968635726361747092295926139494450111486425687576273689430415279772712849474801011774087778705629244664593590891326152782903016400080367836398313702171155034508889438221377929630721960417618937017219911222712136143963755998802427070311059030564873978688558236480893825188113417534618296366223305067860504553214384748578801216104635679857640395369430175513756799287652833950462782261143409249511896559972895557421128742513388457800447372696202619042429957233758950933979423696107802810196604881664535192910276693296319591279665945139715711509276192850806078360159871891169386880226098526976225292969678564349845234435570930316928986141266849622248729400798379453867930383142363012609724380905278025582901162244217609180213603424363928677334009110149944544848492375025533068770028081137214053339890300262121391138979058606282918475919168541764099543015325736063656487031388844571493149285278160869857150826156568505829121444259660367837627241752372092797886564562883087373603197217693068353487044706363012203498555695875062849916191181892746397368481868746780037553481527728220729396859569592525064759508541020384955997008639301774832223370716492251898741058674118560780297860590537243994004322325535545001763597849792323241996166502565301159843082044499518276936748809017994275573441474799724988590808541485105013830764867583456152375396623487019694616452234674870041421204420773263768753756254931669255453934415835303283060377012949727051215047047867330762770003837077376301373482329221259265317927995273976049566142761039140072434451247453486090114763506248779869751404939882794482649873949569043493555275212153761274797003747028900912756804737874342511531569978113736084629157028599508378906168676525414587013440304720561914549669623702747440783857467030391864915203059042525991134746749246306866564307495063746656249813910370202201043130851777178673608138050122821747413923759680033769517253220902610463723619550826229402880413191601415981525603393861781995173982184683787995012841671469358602681715488131663734918516967542740122834340862683543076112510181948684501539879772300220391575867161491325343780571504450984362962820684613032812004626343773611784275548913579159041586190228404609549520846375379924601462643154399030521018561318038717695608559529775410744234245710469291665127771999919892731712377054867267520708833004642705754303879214617431193468066987160230834245312882457127270820229863528928903857521007132879658658760690245646447245893872599427355302017961337991810539135674472935635782833289991277972246038544609776489722785750046329716603165631865113641827834578182085793946002101384122020065095510872470302326681045167620840618764991257611878182229383043688162695107775267547764721360441652502474520721097148710296837604806605671702781912794461140225050400286151080907936576498809416329198485507384287755916589927563841622490700235828088424413936316128173185554043117320064690994875917625977124850496969571249402177907853579426511329806663959913094336983509944591965310436881932060921547404025848086147801087595761730208483707224168618156130794771287611457036141359332387933285802290462775856384539933510458256835433108388922697007679161174459621430139549251475570316708823295166513343408737521992287580886135714097784181068058551503336753447283898703557773587394849977849623984856625165737859431350532035266953974685749231075638188631719539000879058298384433982133351502044588362482547240726449846677663715651877298466280745662276437998907642608507484130337089896438229874440584412979578357316092059263492738686176913275302963651716550449628116714117816541602654537512173776610225978061549279425781823084580111869965923020956299325747217347050960340478249266655749622244650409983645199164931572760544354535662792267901068507834045735975058701490900335509557764246986796554330545041376100046780608951578509374122621053120368365103283573091600949825649122491231248392475189209515925139518214934491165365995947634067049275701621273748312611373038412890761958521126885394941126962265714325630773980491201897157854294820214802078157682610816561755947954944841360513786397298353622097204998518197217179222523645587568170038469874841489007146341747098885830355745088789497204567109694087207460026723137215894038045306477220294817362632049989239603745203015227849250392163565944983182550710015336096312221307442331748561656738638754402900928698646725870115968467633269692884625452186694649766035041040087824232560905822173751596017973913224154991202242670266430823974599442913419196136999477809202842372363166223343375359251343327673787882271793055379864244942795680022884426997436566745880528204785361301924736839708565761176115270165837530168019196011791035912636700427331168185567412430320151141623265495877488178843786197668149502876037003165673069950243363534089012497776387021880053348148448802704294090292174330966121065092586418492576082512512189459649983660452814862059875992774910181806156878278652614769766172413736891931101774574712677885409210749499136326435379427283966531174331246933680031734016311169628105100997149119569552561176054244856130425990638067453342646383029640726223477306007848533934647110675488437567603234332374987131570702098959228246094478406589909268148413771020713741829967610301389829040547443424741245471291186275135942442651482056699358657703119089764916190757965218179631199603333577757877625109253097643050612891972441773482596136812328517557350520908442066338834802733022520138026426357784138137620803045411872137915727209007669663020536484487481932599441482565383468466298020949633993287980141451736826942936183152630436908214045856610188498245071527200441193163092622647170021120073134217453737008537946244898592306684854903052345261713395186030128699562176129580385725994360930561063061000972277568475628219298268996416397976382686319988125190604860824341416996705533870656569835146100458778587547364257872108209320300917161740653463924933497246264814640343166348982238369424300308688801167202042568024692029733723489291019389322649391642211197746941337209751163947780388493414907743963797332610971492317983604224570935549710436810941744942588507664140342013425946623948149061233807557212999547819826406407691727146049111115484224228269437534530127216412744533126224770834115645851535562138018319215563854568075737813518093509473864443031993113363172674126466611246022237441837634762274426603226512313991064446468923501759097151132962881108131352479503285523097064160973794032627898173432449934466517956180170980940101752901128498255946480208913772516533441524217624569396761885466420795560554196482103438200863899950068320531901523831069886024786338115293858512705712669511244457208910414626052730349622702844780510841498578774327182851861839813493525149128297516770038081343713043831241591523303726026033912774473704130184211410325280449435829810012259618040820850370989350746827241012032874199278974366473444659647406844923282978972716340550938066807252635684935678238569175772295919254609424326392962074190891109519972891886704320586095895774073869000923155882704414658643044728512535379520935309408681508690516488754679364538447900637964747474660559637085154995448397866390930938248239745285402421690769450499175870308145792210964443850895358327567310280534217919103840725555092222918556854232931476109045792546983655578014939946215412883699852364060690808642501196452365533076507272049952266312775268440408060909400706916846288156503725223086916857584259766145790842811478079142436881179689296425890109066520012869053406686146385436506947125032918316591375585371236727369307078960788575288576010120745693458886587565443455016052524882745738498607003822846201657836149812767805495710865592538803575081238281438010299350156310542148670144129977077888622084290369135623100837189951152166522627073706423407681746006234157989842343675394088251722349538920675020385596141327747084978694520833514657993018432651947177394246175468786249276302306911630379740290088518296444653468793411404621303900547783006036003239800722410122677963524985603006155950803965467283811696053478784221293243922198183900579491036619603274123778242157680697514200624601922000949655943819389769373508618937078867636522443174732809959935545860937161779371642729050947396217028958145915502881503411078215732195942323614574267346740338332865280553186815075023005716839331455029671377896805816757932485899623454982501097172485870385687425781607600225211059915900578733991804826172261144377323511041765629901795722717397652054913108410506744889550224686804549036255304904476095000939053961442651638133982336282852193280175199995596654551530400277971363595409108724918388860063377551902592051778506624640899283212540345093322440279249397266138645358750087433580219118417204836648336552026643637302566655173234076373819927404960965253054232331644770158155668157229480858993859108744411243556180243685338708824331330654504267859780551703257748476530841967569838063340711690748386506549066459219338958665526315257221142116300851136950098727451332580407689059703550414870984915048230795244750869132541188045867678053508378208316878728268642543944448462776885823804162972273669208045171043091052465020688023357700632025054288030160757002987332094887535672464974236061530246035257096073991049382967001664969344917670953020018192325107583985146648367028954567148347516438985662354630330370522440415325813303185862945067819588025577397824597641481298052268629441464226196407043518270293322305260833929900179754765522143314903862869520220287947638589511944172345730035991377571984027382346705447772167385074027905035195667825150673940075973533571828456590414261938753221700432667379790828416329833229310600791206907140705784197083871384300942821199682861268414975197497078290583760900266664302180020383706940195863433216659756128003134921722050579268123838621008487262779788128890458505284541986663411303735401284222656017971932882060725644550324734624591440580849967746086838760899315759320820361681620120805013114339713564668212106135086275030680331352134112679808011795848140348724725514807996775850323513058208485082952878084896819235553764080946438201966136043270116349094367026467423539737324084038907302917254478630141018211494170529795705338019333570510654954349099165566115471311499044663473222683116952997197584120519159759487469336525227729958851987178880445148360462920930920782395443925809402369438798634292939723576749661175027382656671398058776359380254755358464630566774121139636622902116282113340380583457569615337074930396009430754048382971951307504854501750232873877346600129638316860491237215952871013413557481731765739175571784477034865123419747678760983064805945156416745340578511005429432363594465602118499925328024857867709190309698712065812058811028224368223956834197475076978841828240154618440294907444391434800797821332339652834113706899864989999173246195176866121158305763492494096366426977549190762128653550192027503675822282984185073468980959822703057959426873622909621159738938541136619589919694251509250485998322782994988206568985572672918124786841958048741528004145552783489908783725086503109537164300742250679877137656990414332946682938095830506047783516618943087325579315252979761444986547096402488565506294422847568182498660727122085642219309594783786393055655224440788492632634622565270232664171150928976694386489566577673885484568277499420678629603974013939706892714287988294267681638482823209891450944313582940835585988281980261344310476065264966949622908449186108623110787567759942325117921443705810582963356341538587147806340002380527333564879733640129921525383915951236450854183559996260795063675271974885687205681870653339765024172490525879958196337562537119717596780396306897784755047422463507109038504156148920358791958949709846512335207633394599600258314678804119689919153481133587825361173604091551567316272168503226866867880279835853245006174359019444531459647088362648846121843365826210960031181246390840585494007567511352989708058923558028100673923097713128988774611793751926446111776716134325252226614601892620275606958144510815641301892399860829671052587141933520763335757083767850229426633829115601469818123480664418557353489702544290464511146607467827727106174723277509709593485637074703675100808578012343249560034548682106916600512047147155712968619045418292682009450592434530293806957064757595834938102727386717710745273210350626900722878136893791732746136836104174353997525647892308243834737348772063418863584282605684366341785962186856011616470002017249350401516469491786977359193203031576567154694279931467060995164923758033016112980309716632108464140793939631098538667648463687294905519384258317913347729818513384896590630057483121481892567011413477146436747435439401036469126237195574068472814083041258034043546351891216973622516236809135558429995915885880773449341187281949868392182066496233685113534252880424373680061712827142643641933787883814742816831499578759441333745692774546691698723198054115203060570487097520851309264618842489480927917654839516146190410844877950975053002674003347684603661966961149614657120722904106010448287121376706480359227272934814497555551392889364749327117344811091217704611695639951826796328014547945311662678607678714895145236941453242049294784077569556239548377604615899281458410764357817482958620682286925989049617175380634529778929247067959203582451953040490237869545489882585874611371088840995099893747749650844443029668498008562710812513329310249543838478905684469991815586980664893793348587255843864502461314102243583293078283876164862337927609841293992086001945230109998140093081771037950036249258620063978452500358932063500184336741538304233673102486151152387566206239105561432864863186081756984005464853604716207996075365896099878204954887901374550668792784499758362125867176823942189918072922180141454388495738942541892994046121281356304956825344867040857538208849009301902063407635255508415996948395790642969633479916828833620366604187020304540576597357746980579565472932788044575436969815751553800454654009815461571172954054492620632967451952926005812019993209075191898061613318594397482997565119317349025150160642505431364073684245159985896466010015452966195456459967604588962719918591253052933188692388963344996250401361579888943810954227365816240804696365978301379904828239083865304865900013342765863882805312909329142337462053660248213517578227010859455775578500290766256506566363350114773849856949068370682820346118966322894246959227458253052586409362206173284764336778241856419385378626063178375223979900183113346349915873697258028335581076843449830104930215078325632631073990360374919168795539264576662383386717297859913578256105241437736098643941611004138670160935703299684098962157875693398226567753855183393396859943710852322096692902868474923363839142023237730072738227914902140159085779642771228385907757172639828283800198196778363927910952203123373161366232186135861581841420443598559956384557293264302049131554282109745524682453102557324583128998561453937005127466857265101654283062816545425971562397871180426311524313093682398537056464394399581955578150843133573357344211675189138722498362380357289168981076316823436554760024488902801328057811602379627176898821365366506289814476009069823051993076817348895942277634052303686167549013178192326579686430451303532221608845647294499967962129404335948779755343609198402350327199102260263340067882532697442527084112251489154725733459110949677615836479899898748650696262769864964284878281355976154249000471636235003633088169591619096273623557822263412416912908389980328146847675968438779187446711300029994092860520036303481176921052963789102004541797247944303820823138035503886917264821343959040728502457763528408689530956321438849279142178974701060331977682079499457887976833165835782093330609009153329585886866231743720379334806163699935191294694298746980819997772824048932891076214636005685468173695746935451485231885513486481628401196936990605380538324864386765899891701734370815438569149672313843344150765957485633456985941426570268626068741062534297119624089633814188878419869116027328695814021256571077502431656721785677595773861112618708565744576978834104401290647033542234796858657476469661223134466645952739192342187673573643489440071515083546921634897106042861639430857252878424124642778999863650655037176297065983621796030487628547253593870039285879272174543420817015382112182497912909633505873395829048940744272485112391862865622613130092833526674538777565098255573808805189746318533394085704685413550178096898764860772504788164810219797303746013722867355032473411091569533303253263391131158614152036864543151088061372481604041701272890975368165524969366029961723709579862621657315546056372618140189958061739706960812426397107891341809418402882794286209467774266576683496600095496381543918634004125090172882146994220012241546159471110942203404184242451385395093304609096175124065668210026547385530775743350069304936019980791201152152322039840906702966548882235729946157963330639898574814852888163432970509881044390755159795723461626610584773893418075507996024258251084592367701400315625892568306572459029108988528801197860127678000482191253328146180862308857164476486821814685401121810530318353894206095414462813856632439320560012608226552312201981190773655559395994865503525503987586457367091344256000779063952901356070530273320827733077705963650289092675211704825318756727594169485996314392837168407529107309566860892379854722453311270760697252907349465652090405971286278386043073164072613959107475845796321312281277538580920713787539290768292271188388298523293735123097477478347558749167009197109321482356615538279989887610135399654554160531502712786787451498622246430108629950247957594335769661087836667662151415180859721423135053151253975647250167031672687690428627780150864161471954830111472948619523535092956036026781544563380622712345327319332229317808056594617478175895418528464309860134641906299006825315792583053105651216652418380052914829942047954169775193559888979012123836319566266128628828127138855828708557990436765463980801416735823600134020555914791667263655869991779138171065801057743621686317457692890103510486861224779690572145779967292273183360332571494932777147205813120248994439125299401176395620614969761206393573302968631858990332891361580378192574965764507417814668708961592057257845670361870359908067099864051755428892924940098803015174361068578044367916356353013812324161649748627284148826644152733048504696339881198988386961754674561607277091247430063049907995781562381601385858012978348945464508890872067472180802421660560965800331454637554766627877113620483199104095193408142969859106798108469486313363916288892846204293262008997436849969210276878529395251073887708896774998284138139035130739084235568406030687901178340822309709447958309344198018384820942654088859003930243754006527174485003415223379613253187827709079177787192913209728449251073971105328690809165249260388993997732930387141547754587670153466093693258962425352107684789721115613525733963052393757575803882083429200951917197787360792081682898464547794705053723642390480649851532675620139449352533306762537951380846591550857950524233477897295070301419516737444014777885120969092905825545157350185498338599594373645507006788860065225936826173644487979522239153720787728261572791255525307862067450584980136989605097440839607151452431777549661374504351865448442259413145018536086196812110825357933941356330174983191650252247555190981376076671698231837795105052214038799499000339811535154173852194521388369654500712540597811539719483125760901804932103268733306498434927476539441904702665365247654997658265427757681652097291728290397277445843247190145785450308619734560278213311943819305857042031891013876860814642219140608457596268525695868181491723348522129640560174616847770740845519840878674094780372703944316984392597809628446265317442776287101653442599343251283192708747855996341256366429480191555853036792989793062496889603268905844344669391850408909409816401466223159456958020809462372033852260459289140176937703018370075458270785885682444466822090658713932514313878754227752805608979696145307448959538302128763123047045374935964237990288280861630514507846508577778640383708980076700011372572638244571887561571936632608228236509668452181835988123322168256173535356633834294210909184160181271800575925683795760554928337601536037910318802075468370455034069368373639466165153415501140981788656282686408636062282164599638220017805898282782704214095699204811306207905877108438328330948965706186081637104331191049989447434104466234282319222098129586622962693782347229705099656896032043995396089637199861177524598138234352226921589518322724093931963171852103022121971767313477887705073220587734434208036606331867151151065981583558214055109839074914605685572553139419681667325602824385308207666608692163347445936294323908162906542102583201861681329293076080918446634408741007458544057004872315913947776614156083193904443946245079890656999474287797574731926756238032881582876872010748829118612795358058140494632792806315736944528314012875896141066263743875629417567152525286970115071115223875346085677733259329320149642339098002115656638205339990027518957982867035917054511596913462458594950216288517408940540197521340441318520317940804262504305426576786879554340349059689786036328727552601973223562832385823026737045625015355090784152723211895141790366385684889788825230867018925767101416561171363070906144436688685003451750903075726747702523972006080325842894230397876206784956634516853450285703912864926692571462790260500930962994459611153045741240648544825995833762904577443387848828719271123993743376677721718205062982184723336539971260789709479496411613930853858789765217364781602771606184685062127195726348492458619872704579086209870311024977496000631470029053271532466392626270887139533719611922686194384923669876481142156400705947802253184498136451755060534305576718341331202383018124776625321262516731007603321404611093338227261493002790354005240373413554988615033615392208999866015312002487694745146633989999051925132286364821410489835059438096108486671551132163199689940253073757310597364410887875179354316913686390774994820189349060942850401330383697851384049177813047330296734124281209913976674145792296450901349629819169476973786614670816756692778127946961929647700892196523524573132909860689641224619662569172561666647744219214186893360755541037999433506177150595856890253495584923973583486535073800741589490396439451100852327741717620720742400459505938768120259767431829113780702900901724741966873694725473830532681938570504737131856192906697695802973598980472576376860050683159785157871500710002884541157770343507510150480833544824589434086753047179667845194633957798539095992023681986331389786324176276929854481895106316348609320285907635959279431687411575687298828097983255458500612813960664751431466131050308439974412801892879192358544037228890376478943862033762514199831404913412257646889794856704623009017431323055120314965751787115094276788538089752666745397526169792481462624146511719235327125979608590149196581452799058324027014052274411618039943157319047376029636301995880195668418795750203755252433877147940916665177060947281755170235726487282382062052480250632289650998672415972993277174898629671546608540866633307963824176585162948956074273668046359800156900650400103790775145352550485046928688593983722519975167825774242933685744747779612368106052993542130104952850077345285602189434401533141304766577787409631238743072846337240800734948846777506460008947989316181942139066856306318998937625125500613705340328041003370715059509129711977595927533155968267453628434008992895910902434785440393890253847380989230106979332036844641758570974600461708699346382824893761207236736734134560355061183491958373507695047767972648241617659980625325628259663846638758216953809724619544065696241166121720598194657664094719842867091973437279418709081882849524275188782834736754182542706776182419572610413982868280605220663588057249573000712040476026103294139299097892495925892491840807989012509178351904979429607645713731197035885953065250670327180167142162864606109289016842889020287995295450565605967372467956283082053926875849162432792358703365722924257667557461801675340878584020120635064008849501325914067064064293619262599919467461491229048641768633059573162128113625125388977911205111748204951399458055046597284074461798848621668721472249071489495329176847030258509456073011322739149430141539361457531792105664078353262082765257377056755797738134712841347973571269814715842494573033201747381678270887344365418687197608868700620884765172812352242221116639013599019528831654456005017639177922766476116661819249049132902917876210194477192832982165047506322195909963234384727672552542646358831204294976347889321436584066004133499357556103013388740406276599377178056171462769042171150454681025201502030882013097080395467623391337773891326465159871904209775619405190166021070540011002249731297531759232605582876250319241749960475358840299183293949919813130499299548568130371756525719362988389734816683170947179519606918268499378741363503485815892793229473711687539273781929531129463249501475320241427842504483450548363921113453721173000376728448756836673290490878393604639104933498683843903484653581661541857412933895413004934807182476717020464136911987308768915327708525042425326879453031188921843152943580718545139719974974463955958309733936014909809079429545788184046865958079642969113523778742532484825188313668728261158402117569990185657333125011744702468530854900374227785472847896616960886970085330018888789672193297562274978737480673511712175075977831998363881719232666747316108732885579125078363366826764277186301108932547716866663633713568351666261199606102872757788729352097688780376579484809527357405278855092619354554098460486606866373141308638895477010849725043125336623325219943712613949591369599984908194644977372727124418271154497489383615728864652184893434507739979535780265419063727036064618571119193213819594160135933992292098442575539382315386960978269123718505052401471360694603426373095540101530793573489171224135048269645120930644862137692565505763359451070255535870284959739043593562576207033870208001304372259954038459396995343020202868966206630451644000358631235847065476342612062166091955446423083271062221713246682952332148640496833964879827286140750120100681487887895733107129410725089641764899406450278285048032969762784560861652786538998240664052312599161498219567232810261972439025098676229020667437513459796663845556432851735819641588072437425720808865536403163449167682549176593675061607476239720083815802555809502120058690304479914446907784004918134853157216351385165333003793762342776323317164552500021026892810818527227906136082358184710672124274535444685844151188708274703276583254866654623290201088785383003370272955270773033123364883708739725169286170039992042084902342797987009269927688787332704367450474811942243330964073210818752327863562280039920629550930851514214199340384062148534434406779625962829290531014347881611382912630204276961501437406759984025894741047656671137559320696709348240691577553360031554481954955402960911853706713948959892200836286413751938422909874585908983350399868991813880498022138501082083747763800892745655163530938859399190149132381407184290771782622816730686814713761212808743204214166684861388876057932145356495676566881396012294182508789614300144331273566565859281187354053798795398953475204804536829338458467212143294035252220820422127906705192311806104217789632180568427967259501832363849007071175433139073264113291709018604451526440091509882454055308005710082366617509817469789568100568253536687540501389442922639188780990986964029668251713665004330300621888549879610331127707595507522703731266566600270084821996748953661029921436432095454027824173611106647845868185023974850158249120519459814300798470737246996273210972225744351884907453497333290851629579716217986038078733395540658768097600060409117230979275562041487313139084678135108020372317483523593472826392723386324976887324631445842616390986346865135897528130662489066469101060150195142981942898873949890120564507084329212063956137313846874287841973629142172821427135063943801071800021614090613727394515935243564405579820310694958588746912044171641669075855599270722178766732132964024747759554044308171040294105310584845798978605674931145402907157358457402340120332632806114279421079387382409892839320789083985580390959237968880267721277034105947003225882199616615880950846408308215459016157813181428384510546120540453907014849805039358918980858592169998515940791661078692984849772223332979973019142096998375628598153632632034815440517903115822379500802258393719957085361630657927912115603650483953971213088976676457654055802534752402515692523154402943408911520590114070467353946654086192729942053601471271187200231917616388266714877206302369645841629666116966871034458491496430151284115422525668200524007606046555213119798663418078165754803948895536458384002073415075548028520736740024133722926258994808192232424856346955811040116352179535797175206847024174677557188919511044692045591974308909005124743694578930357088013386737961264445810626434792856610935252658003915764912179093941603709847917749285057045341188064706280432559794583376799911896368879881077912263775816817649849671033536485568128697060973970746747609830011761170779114188666901099673730350283487565517253332179081659203457727391648162187206417993646057145043275011627438203995105339868025844280771967667322731201338159742790258230771787809204365265724342783992513178568867636175474329258702111872838898723406964099588839234668973963982277716693161681668232626748520305341285271735913442107222362150477307017756292161693277873089088892835923500556950205364778134812702909083440298461392456249864664402084280702364794803508114922814045999307033680665130088249747432373692507593355431315186026891594519946372644326402056853726874209340330968174261844507479070888278137080301862048490108423476586305502572828980213982277861733841431325848577833186316622447074503258231564709885760380172987640224587976811576932632249314098359754425121414711223301878473751116170541127214124913844001899972357970275366888270581973229258459403999868944517161348574727006537708658256683588912161589519119734212524275065677831708905386559846933772856346119242410781020692214541097974130122266860989819562938466822972762293101551742886692262866405034242023811990945112707805431199905915482352818755807774773237757630721949847323852723320724543742998455439208283265679895909496758383991852227260915144188914777544852771514385530891624964266648257143885116544208789022729356551100815153223025051639816667578358563683004838809397531202204260503053839379620468107935687488458379874087513839810863396404912041707388550023871375297122355106067702056962089796671355613272651162517403732743044007871942344183794251883360464817023772980510942739678554838993545146406397099265598128157997845087539922566049633303498825028690024423560511492602598615925162400718874540078411383223482067145882263166225156512756934902934525387698755461710131007120476886923389837578882995489208957734572702524513884708127173425912954570450430402771456916731657824360647949252767115055660633390601753467307570354426802871308181705193530430016818440675805910194095134964711718671291197165908374034643238977733663613423163548933911090009628633194677564085888324129855528081797017617187727401032158866394420075375438401593559653471457869959695305553961287105670591372723198087540290495547274114433273159939659422141985894669024987308244627354683749008790380080702217353351873527870068653120171386388540076597889650132671098417593124964986827632755860129234921919153437400899997385045713392551840894050516996728759961884145070113179775419611388411019803708201608133785774427772226957081597225141022870703928431598716493292385661450874224847109258789222934827363468753042808299863101032394017079747835342156216994333248406854807034319428644612755218799578126359978398522120893728287397024554505291727315920849532902766718362020248347086477585125017692533627281122256960072683512661063959518640865180751198764443887178679866852583142626727706097108747645990385836593863137020534533177194243312469015062012821844426788938306331287450600557088042637181313548130510235776474542277952116795671042698262613080587353726306535454851115458075796802719665860085353234874522133361789236502726897963243494518550422635769853193866529837383712576863088871110277869279454475074046576511608630377894226616212804368089396656902088445103796392280947337716796197592997010792070582722129335145575190505370802615317007042352940204797586540394501575984494657767889338380128051185845754782161557278610455307098549083581911829786079504108713032407212151065483676153922648623190727682336616559101341796060799598116947073839350774197479105475656982277705784413854428249833840987848260090231799774936937403674246303863547366177797514242757310903222665675558217798337524104567887211553383741097636357758615432546882709821965306457869427156047415911947946229202388591406017472658173125914557268664142156674066661553675987844073393612895867943637583108336869237647887071998780749066529377507319849784687580918486270296149899536042272426158417194305060877159411793364028387755956950601146573765241256627059955908768696007596853273014140308775829406495093624151287485402275676914072596423662320026411205072546216102468921947286836286513293403016217985546392467000583328102042523784359011065008203606272987578690961935149923893627198242875450470005664086091192405291751539642183579465068391658134518948686410292884522746303139962802088905270290240665320052786331291716304976218618527355371440707861261412328535111623267303768482407507650306552608150473118729382700899925621163124169914247952475414924150174062900660206307920927263870672139328201804476612632211183266619530232560724650198763880481368630371433079946001177544121189384151993993266797479329052576046202076815753795010175927023626496277699422256745371273013760038850611713512595073365826094235914749698593799806217277673240585790506449227430428120218191398431621684992376156706359683154939690812096276818505606327912673553202773872840171187579517667424733948396095560538138790766927910426244360989096351098158363453761226889488230761875875278973869475272216961835770892925567318826440654933072295272848755188346380683071210777512529810183905318035659327293355663289205872675350063532541353311152471703675796488336721167571047842336531280795496163074819400896614973467768693941164730933351085482171639417238695573397709059780680068834416912603801774802860609755190891957776113490112430808609690943423380679917279091351130991163934255064911871432820551544861216729289694543911586159952282468034017102953923002290467156677496619092934382548597921246040983644665692075931919770148679602342705289327703739503006725484374273720544096010005115192752770410985054073474174514476322977324774065022634958198091278195849326499379058115399280716063391782354324843925408981295290558054689025702288157884362072808516946967787386655304093070532724950971721815706808884138484121487141436688547524046609540265506852779630508727305375217547994183351835706603656555049897200024120405568951808357418575378187344218435955438660656116419262786050977361253111911377261893721339695908579095972604386501241319312011670442090495633576177758431011198321769397409803033372143199903151084966215116005480421552402083597488878392889895335765499207869248879287224574589205883819139842304232236587596526933918743988766980112986391893000522551467587730085632346358727402905859216347337294886946694620974778709367374565159184876639362964172376701943201419784417455602835275533967159622595828988200839786009215019760498268786961407671124289549739991090297311722461219023141176014343868782531310933699776125603657511176346091253358441023982558242024571437504066736892143701476369838013595241483472200062699640143012154889426633261680635401876043398064232326633159861345132248843602465931222001471069839321354703541276909614069611013087440566035218273435533317639341803339810003725050042279209422310183245493493229984896780287201790456514543367990608211033036266460473389477446528668458588064065140397636862222044355392610492054497348083275858262327774913587615760282820987544483294973181948619343556417543167801471369761214873921149524259166065770179685420401900396089221323616231954478458024828246417833227877803984818019436775449043412921938063537262524906461236095989743067044168278976883864559715064594171792960464792580979691431111923400318744496343911590253888121745116813916566246671423358958212027513200372978337332190338154202470635427224408882200810502741355126528548961725751881843797792113280078271418270233782908991158836167201386691995593229029566467959027852926691552842790860427058992712660361606984240108787034616928443327656953117256382300311709230154109982371732835700095052582367540184370241934976818132137644815855082901452601398909278716109617919317684292985945999248525817439183186676165464647022500652904550240406829416897416081798823764153457789526129734665546020780922804961437325010426520006851460664772735890982851147993574190160713453560126006657879944856037135357458950398132810374806098837807218722737284850133796193485346241492935668475727390713206385922266269386632774131169082641878114774467231298708884037038238161469548565032054287836017008511095096697579885096620679033902200083781394537763958245515803136962737909170584415538540086818594426340279937556625765593523171266888675307132824233451430755679216585321240551276324732988351983734546422938721397389777948373147864206813319044316456756363906691860193059736282445712221826404777563156582561502048863539413276468035456777240127588584957262417488874330891701731817973723107563718339787929746871326412334723385768159463179502645675642966364307970772885261006344860514379900302274133851814974656341404612685205904556803825447841037828583374929667299661020351341937362044903794978680382842527519646034221036780401405936618626138119160495696717771462493373331668933735581407755547017176844455421913077795770029766542500176469033065803311627065600589470746862655383179907079442670237323785173570170287702604389257355160708158345164799142808238664794807118654474729177864782587687925762393493564298860686741384395667142625989495525221915584342746771333807539793224240475657641270462393601360570799704886825901347008738616422828221825269176839324721385379049541025231653592969066632809792722962707488854211464699833813343727244560997772869401928760625006809372187006382765870689816204373344524485480087179647438813982104884672201640789312250339648664606513502294616950606951114707730310829432985178428350063196302122029448623391717297495247835651617312281781756731112022316247855375812496734501153961620718120873455069260713200025823246368354288843934973187128106050445970617167157220230655415870173694975067835253389635919643527420945403690365606477975050296390820946847714869951524957501287021107518508333340833373716471314801335502728995326923169457926593161180576883276491818175291254893236122148253723902515474619223650971140968229919836598272700533114263480232053051753608813959674188259884127787458872244986979669631195833048855058739444561475990718164983756042297272544412649338743121985203273665630678198665309393550458902209965996580227009468958597511205580857996643717593249930063099713131659540031622962836932436789178043781522022303751584538508537715903960088022717187664332067955722438261801144122059202085179724865626150028282784674570338052817967275869024464855463834609960010221904307078221513469025733083913306790426386515194252028560913705460919514868960956488767344679242984265263147598763086252774280705620854000094058954033277566401483319061493204327356133505266211020312467662350273689713748369181929971995167424826274247800852946996756006353335789163253276308135931085457155936677364001732979409463162777388067553707850742910741544017829576027660203791584407337319013894656791047187633241889059017643966768524851749847569259425768954089831425692131949407182965798970449554101527619561993823568049341283757824755575044414831226572628987245611968573770065362928948190763983659794358842075308730001428198528103735192511341513228730212525577828680538716151501809295365008131938473124647511854601900822618565895104755787961403157949778817266582579078368714654639683901049601803122250459777966670720763008360411439232028972065929689438946476392253309495495317772000583996780064604122199049120217683007873164910780483823535303680082724229823629855234966335246816680430440301409715456909166448499657279577334025811957311004841192680980205897451993730812345922417119548438686183703816663870242317317313735806072597639070376126748946939735168646946118848289414986247840826559288310723716465325374227330113251578676938631068245959180823692853515130745722535769429353210327426454512326543593225315111265057553362484145219037118268242829112172765761008604120197005665966189633144687167810015603314724100074169275774058033723951258602106797240718874882030818442468419358231255714338902460845850621277034218807081116691819441886187260935590380382990526454037497040407433820704476830583066414154660076482512194428322785420375908743980342952036076643540062529655541917029746390616309424352458419904763904130581802932531038821626924591275615936445501425588762560428439839671342007035817716917910599207421354348714290748192583913510982570221095784139829654656857631278076780293086043138201105877048765830809082243927401634889634062424846167381071367216608022096665187918027131435664215490248484716359067709061318169648797968736719746405913435835881174817055178270681556737026504833562363022380291303967151832924230762901129699933869460779208813239058421783100811804754488547727365054575572658806733333373996434817754862287202351372437866997364610860953883555498652148513917846354177528893627203272036856927026410719785827655706666396917597433961298901392691036115040507805420920699448466072003371161655507404495210292086041811175706805978404576783755086679201844240381915263349918079208806807366756495655968625187819509226260857212833691275798425208909141067700309616582258743686119738717658634727128270232014287712645053136773529658368060008457383664207332030966111562547518286675449588131989936417965842093898195414324832611076476883439440893715562635194025636104218164659005211423349438990275281432014358110113512112772121071719521609864910227543247096355099123396193114189000306358404458866605139520936418150140000607079308873751914449564412952069162599298703380409221434532706635153745591112070207016353397596273222515328456824466278372628297336709968876249763197901440820138187582313828697227214418032882847686726418329183264292470448079346699872741620181754101181447619920778241643250834023133684340804694452784462671577570104531394294285070220370498047460240740277588668599909976201302502278545172827009968678232347083978623682529852040817925759764139030660254988942481337181757331431863088047216270817011651809024830586270280497164117218393460162494163802376684760962759864782285573607608057616085285583385013123330463317777328237607882492592876326053340027825978707541682362176538657168913736950266757672787360108398327360909583735904729225429258091506022834783190518545422685257963390719795395091902302117669006934615587267456649368178143137066250101102322627666551847057400193666004726967797488231785610410862282811441745773150311942647869553176336258495778328777879880467338150642491694753189013425019782650536753266191148312941027581082982073519913899502863123267924063246594660037585914829791880739566986456365583350644581637662928243114023659552575025456875624806342783069362503621564715773366089558433345330376474408158387417526540512546774157107308819820110320553851867601657874865784904241571521316859579357846920774316612641340260068679997373609611641134020661062707150411601602929761775017708630169715756955309822901948358399007671092541668946848432635634999030685696805438382658468471449260819046419646177325799824176779228575414961694030872176337026971781346458339038767529822950924266776250678500756024608938495971187920412631031910216460084944768003578167013203811058484062832293139756271517039790732114699836905752228043646819935605125817796075965004956740738489029381028951582488625672630705489981852372190391353852885016136678881173639043643371287062726415436621223283147199233475293470568955369752832260049460474775736088275938398833121318297141653744641472494495767562758731808295321116131131506033840029827346028757861529468326553470167701922967915261899888638862253520839583978961033343733703511398424939247433311438909547668708744477645911268516268642847594587925730253808310391034812957171949145963203664492994624941254298381163217364008523910341987511362999856303732137842477380051882487618827136817373788426048721462927612294310450070349373967048128608504173014874987988501942527254496664124192415208920760902546750676292873633432576982148794767007561162032903612369835842300646580441661527124164782818932780954693916213505938172654810722248685546843088739651901324498420757249950543229108297557445778665084555774424355819325231815163005292729378231283651257447229025114296202800533840186016476251828762103600115114324181227211274830996305931806002749820952014722962317074921605305743676277064453047700552678255039507835169354403585917264622398411450761736885115304595600914436490410344034773224943812104317069308855542158870421048395472556284033863967316822069617495962025394936873914923126352092663757366181015177658850573084932510790795435032255733303590012261656286833918142840350595659757088214356927899062686607994861692864989180512588638739840186530860449932794469092763982450877403296835400036655693174129999271001200328716775987043039117900779013026121496771560346122364299774431174394490884334100502992818193461276393007934801947306462232990662921833579474990640910147683403690907167515956599686439631844218047291097675160157883088075409710493641834075417357065509710864054111957656850108972769675939151430671697089354598802342987872110066438643919181913748548714741173689065262569955371913036197810686953214395946874922585578131665641403469208862110669932383180293950875700987513789047989418759351494265622488725425680266643595273053945300344310065383213648914785336010204791237207720966743935396562057465321081024884231164441354412980118486804230987748989042723260681695406863353359961185373359719056996374895885498544337972532123974087703687250212678979003622688905909056066839022665452760399869345082956544817446843348132763803609668971444086929087712458885997281674233512546860921106354262142444487683402250330742454218982113489240598270163394164625703846919693155219559915585569676056651857734265408422978336705007273608317548769257176496892140757995298629812731904952181641462835609842368980022195760023291319078754566994776390048845375714853008205259257480455338952908858826557863746220797882042133883746694925900421785697953801758590285393190316170160637642729728940421313966743497572027443233277705177973295762920550355080200248841778820084907873880994390870236835611245987812968683531546189801443097275824856000340508583725016399519207089706451942873593418709989261411319826436796038436550872036051943461417150908530776240359228827522110239629081020854080420899353768070295646461253463134409234729281641714405374319776798133212818590209430002864188831504314150460368539885519081859651820159249605537298822263340914521884213348060632435036575455288727259020164648272355840754229488555832634739122841998527177095011715957001319488475351627440945724795512259994431884301972940224633136157754373271816817291043250504168978103761843114428540458006318915021050670963051899493886285657443547217556661201482786051589584286304100946750452356115449818903523746779178064182533190591737184376211115467170458792930517196611489661674124245636794813640628745622125951161660845282521102873654971296632821570610479220866835640793709474723792958668322428741729817681403525005713980213776659644273836596439448367657430501024646041024660654605810295500628903163043092608906732597140564893815083566119543220132413430932325286793665338450776485569144577330580410961041326394967042843011101121076167402947811266414041051943612799948545620241395526895093353058955285574467280835984834606265456935294832674618264490207252168408082300317401484710957044213180964609138294986560128216512997201326802693063858493831868140966739193432988809045129320549766642067148962285123326406026850826754191095832108864863911376411671454552288145521710323509271009756777635136756138201235658909620581011100386173910079906540060830562198608459190086279293357182768424702532900198831773050034248155963016787340242785710213790907049458098306528554337630020773265171071948343916028672729371250887684244106012738127857723005541169932871319307230765118167118583841780467391715187117490716600449297597785191456289159583203817354411016506593965476016894248652268433343328942311869572569886557121288413856507463649219920276257709322472646160191034087636631207667284279419024366899183421359657937902392137163173427990476389345740906436284801403150630193223725966354166251184019874293711026699188273337180122111014243218620679585474522245863605102882205929477840054837860123570866309739728508762790071456993847365760756929282670260083053101894034149021134625617759040403612931425564319571363265627301841464292041471969431874602318362819595325306339328585157191918028018148056095064311594925554010376444539626764868061549213139140099510579533708963868910581195200365810337684625900302916933291640986508702777964143291718800808131004328944384191804557080664073600769547076693484147432453773942092128891419778434087585950166633615499662873067625760127694675392259347472942533506026118881233788681519121798481948688494333637738864311963769883931177914633354326209417111102071340571165244930747729931316133472283612883224074855146911411733952289644757471830485141662508413779740457751475772814340798469894943459848590121697729330600628395414367066067457132910259732399957330246682060176421164457495588357153298393120016149901769982901505761076985260826735894947482176234252162530706878477817668973245078708765537417289841830235033375642043912956707382304028875998252672689105717653160719291918284922122202043794600923534406124210291705287468638297666688568828383103801987453347464347263360762551341891964508047869988459123564207539460104366148507548279814609838924811035406961351718641038594048131205137873260704939278123911208102581470408099231596822574733081782211367730011454976681875749577345753657794738834274863709659916145085483329219333793182002113884178750657162043352075636187552869931032305438109475393497293754624836365369602028721627043788296947876966719586006438616844234314779718019107023697712096292667380814457608160577242121257872324533510040592177211407310593685814236097876066264365382046515518056675605748533224416459402775529023017111094484785078719024189258708398393579524906800532776367206591288087210266142300582884322280037312570632195986246305049135305676023002430328198728667703276715349883391608403572549777552751710334677079546559414881706863510612543357834864889592248499768047377286554136834176715663523464241417288628009497176479652775261195292423801519675339166340332144567707886696521256585534331179271163174748857839187479508576820447056279949272789374011249661564835619328693490046965995265665854044731680950178906726492035711677515469576245616862701018676424359410803026255468729591751132453969422705599196663368702186109561541892795698321188055310194962658587645341079897148802319847821555523400329014981174867346171216300512086430115298146969522353113877829040576329806969816783488069582436042184838432511338114128595195210309281200295679850786195709173013211921054299753499664548327117307414739125257595753017784598043108561731498573483614563393807762974326292276937949955445675234933718420935627687795532123965935666193379183741791069054549169850372180482215883272783529380659907426116583464180645902277261905864776172329304419443864954377769291552223115322228893565459309425232528018724170951388722570712035264965475904715699261892753187189833146553105962638055638969787995262532755196546792125342510259835031335912300036302401704331853947218044227614625423293840002893915174361033380360416913348327631726774489142626725451732638448931057432346345878995087337601402589045885211764516495825107967567168305551102287319540560579887585273074408533790165233007412253943248107918820610588819124983417691754846362561921369945519488728826491960135873416686266987843620262829428679087760630910644495507751457109543845376880138176523771552704085286269933732409020749391728480819418175035368477502950556351074746354047362092334602713175228068199424987302074814174071355327257666647180963153522894698657498777047054642869401781055423673709435279530387609700114569710581758951352395694392198845191872753015896031048660647945269811972084144182341774185317448324692007883002628185455099880105809287871472363896523469343363276003418076035084554360975533828269881459712876006475318982638118351650868805163972501466838916408150420310345102829918924373578441081403281542248009740935233594935132439171471951727143475375219800637174683746285163030977556826338205383417464702476680760606768921422256814407657511433654280206825070972563761795526129090964410283366818925343757038456230630650100864999090277106738164126407527122747437083693413737961303175995067498117829301908351630523040295251491138263783004551537468964287194833559031660916238732981803879023503368683665729569770826487333644890991760238349328026751793334408022170398803941380741458343915306061692434040434030984565458520137661432057044340289676083510278666006679824704783953507707066795195001082380067855134345091220013618705873575253480448180257369210170360055372190996394471221624917801791325052749478861046849999615862658862654801271300086117553446386950054544194826072215352990056475345726735840502776194976447193188508626387496240777389541566869661957954296390372713667299416794907488677801819904881814061184401943964352813609558116481445539872640389390308746548588151888571848876274983669938738577358838822803401777060306992693856579914734405317803452138717427582344185549856075023694901787918000280470915835219608473145421615783280657444458022812927535682679826944028388907123074415970682079531400245992345157349313298817064737343447097791968390315065222386612609633155131942812866921582094271276309570175646080801819304692737833972588966788791466727645445422875266696504183644263256649516290233610982328328137694994189141421670090573690232441932752648832644035798718408740598827137711198287428814500851444037862195257567713119060492924526111502400280647025202070444181596381141772988332457283981024953628854787543804304771979584075361439658759995885243600855373160303592031972338690380783179832427454952645708448067791589005796609672273230012442053578970233897086882146634032459170747753654054218854384414904515740641124323358916862532306273836411702802230925508991598275581856865232623413555763723437884656952641623866183565091086423717831162896660442567234002973834412769895668766306012845284899897650986927619582946866721299964853005915995095849860593400911709591175741838168272813044535829388440764863822419438231781833637506836394784729130789419447250846362868777166572277239598691865517811662545066104413875865586955279383204166955119131424513814676746278983447205635517578016738948447627004659163830110269330057178196689329641404625004384341812224667202560061382788778257421451819267212084090410131335587936064935735210742654026043291502441548379464178446764841630707564260094148483122197241556595529033143185799332730516918242839230092008489115208550679746155403551253515540787485528430876731245966886132388729357879425074740071639085948519416677349393036274640443875652938074750175921858986840550152224147484886894760539263766965010063227879640805200349487816916064947050839200467643423962757440505548255169691478538131781086362326234465717991462829308243772716356480959422377171053644705457641126494205160556987296060289257712383865239087418172017222755316495983528546220743417645001517749148649184952784449697502114836071756161582346613717614164679921803109000023867563875870206842666661476346759608908964434924906396752116947338126908252570571892099776677219759579689087382364899160223028463787388916314868061331403350907463935297552692598646274327483992394459102805033054372770738453675520037420743229650541733769444102082572894166007602650485750159870133796153156519687551530092372656382561320274228308856530092869728137504188399502270281689553277754179887625501959141945959544450043914184819609328287032660409354023477678697857670537804026576197903737652425512266958605011465336813483423358491482572411937782513535286074508563474311017833150165148798759609529027629289455056724867189441506605965438935552292672741919098666617217682249549267268937092172696945713146784505392338748536778777045716990916410418722126885762638085433316851096037768977121428093655041814048077222256765386112565039434672822546479552115440794162552472764704353190658368465348271330584385970470920786068303411304392754688284637862153283832750348846200831957446012763382359688173180085429147541327065767203664958393274006690843722624674175331596946856604552672004091612761468186702186273502432071184714401883385238800573424431088371937460991192683910514385665390636296645782347161005053646308577297739643604715441972372665346713401047745340572923785023283251341647765327888468309910708171364682527368740185331519381828799887351315651365272425862921222195496848246282914005852511794706920477497517247110612928558230319171415292993830884167734912533484995512711403709269575779320146095786110436403872651413146713818794857761476128561174153890069289428590440203736297884817526815569423419191328682854467314598091029393614899540970979950772250033751582262921923903421251677533384101997004284201299410458225838192519526009390251904196202694179277429535822104216661793179592442455491413254882715269716459822257580736535568926940207908237155764003852408389185143368477489158052302206147248755468663053580854853995412230134097274815742760854319602420936440857175533032326803831002881515505662307971218011819541936549980757952635756624194152692863034464585232445279441122774871885332296237367039741550851209386629809445176412593674892420721724807768765905637000403549039392196009208134892358228601513694121409111905515385197971611356492455794360312456595651501636033339587799105289069068814537460989520963954968937546393975380455323957886536362595291297296920405181374170330040024858617027959409662985454527148478979101877730284488018503531056161040655925887397260922222482211970412512848382059619097674283812162994370825536061097042296538584699216404517680388678988936453645969089684650828489818647020265566912096750096205056125974172938311811431835586418907629485226423877065600104499693091498725587634125504771960621593055357864530988848148216133199279321064485744152478496772659368987787029476586366923107349108489042860951292060188535796857080734367164362160365162958757777907310319030584984307333611200064907805130489217120981835915969364264767804670028616345344818081283102301474262480664892595998514234450034370590284310577907997533246093805041801368642859286609855104323480690016562515577688796181133201886464938912100365824815644497017852443456945077990961958671374695448580022203099878875882760419254820629510823416209618776378809014808573255890943337682526808157643005452596087434415677602252634387398927644560166833523161128627019506199321812841430575865655242919129215046567048510990615004400917304044112120360638361625218925192582139985877695554780363665974396933871085357516746160770196105603829951057821777796106747049442854809685976459090887380646256841860175803421447696573942185267338292954197919602207277575562623144046269306728600307588211844603278453358092491986450709951281628216783290940639136942871321615930237494910800918039171219454768566181660547161306956247053251068931759784656045927052770110253234841036614189404713500645243401438112003532843499132848876874948421356745780335967283435511344760703799210007552399055490058014621976559385910833996907485816834360431132208018448303045716123707858445565949128538617349760408926320671003851793982052543378641235844706293042004217380627321622787332670687102607953945419527385450066302690189699246276659195115899050136316337746798363151580380564780119249704857468994018846449097053490096323230872658142282326664739409418329699921323536348543325502954607667416233493566843403006142542018429106110997868251663097038354514976468552878587292797295270143876063043860113849122037235649575763252154040877133153127330401092517370007673694495672532131495066496171547506464304209468850872410122726546481045111158694334233616917882847711157460571986177216270610660230499150043404970749554745434036602137125177411735865078488289102536634526301171516933066495252205894981753660461464286606625141300653189312745370923829401522733110422902272036890304714374042012133887350802347377372777429869429679113593525841064172908546773802969427685381018263828097291696813423526540714741861592041938343894645805222086048892743061252576656195632925526735744871835721446402171771604558287007373158766666070398148562688827498041190516463748214627324631406215654609720863603075388652559542242958655383567394570651409924769153926836757143296959817282137493182062031147340569133213325907450687622157923052912268004831344064292919177127676960362452028347992006969218483065471229951380573787022575556732298107808236673922990424519596419304029732222656273800883912159666841775046027711365984449059695967241332302921021416738271162992381848312822331872590188052407145672715991939600058608725797630424045953172038564791628661897867402043072392113241498927323512899536716759579727327835517095790083420077872929361706885293798041682089921718116546472874771959197289801783701847227414660043348807817428687354417246759479890349111437000310450121170082496645062137383305514300155870638111722503414859403840336586859016079092525621169102239381472750806855250568437063851038071563106558019135071332074640834217971093506908800515168743128049168477797067768394355391172264205602692958966737443761547289718319769044245911633768885284124207695634683861392065089051302754062371581821722309317884624746293723431753881613391622001023064509722359114178097454587414320703491324569073348333092160947383409270386534652691580773999039358952439006415962278564804962599373940302457954998235847551663164804052404779861897951982473771571926725485657076115018265226036592937397844119764971141015758441539173735468990311540558626451370734843308782729517804863619522420337231286732663828680649410158197595384257493457123089729498477713964863711804594787456888167963061557405884698353688988535837539451010158571113365005642415744933529409409986075585422559162360288211484554516506316658715917818858375945799898982587254801201851559025055903795558390448085377983416655168106782363420818585423968927217688837058985733019216373481253831955759925957360520757738932508708345731827090899031059853151558413854354470890401258570779438145684236309380086706143405845618119326069968879467499065011154941748116499047345097017796106583081531240223818996116892722486391878460665983306506915691998453143881149645114206667772584429258974902584489583521106145417161934689919321025954760016968685498166081390018033647570148466811569763232278952495586076126970654224216280173726644310180203710416739268906759613075095836230012042270010264782401262455371976046906848640950542178792230992238172297048185078260440024605070364248163902606874739340951185475332913052035054190974923160713637927653876040292469159973056612584411110468268913485301438512037616698261779528919512588958665219239042577151625840533359902614816297205354283268516934486538770724149182829750626815959695696425022388313124925218470788036799285942170084621761171201513564647158691107055757324719043846768940768481263973154017901259472169671478697840592370356404540377883124228706422724233598669873431923249318952342829680786199674165825295080057839921651873895735091516220536687372589814890172923031961447925868844858552992765011394517094270414160050410013376504150084662243637794797636111796021773510293591405403270888874178253334186165000576134908757671353428022763140202570231454963169290302678900467796162207201049640083467572547089858399347371190537066369605951824512306774879651204799982457857593034745333092639479994823910292592173303596044395755459050359297351336315160975030250596338558834666591065834770345265420431262488686472553120185586612567502170604969317591931637220171024622097759423591840864108522467461378575375276681789284412184096772797761220450049742473485645141625419635542347219875082491953732310995809384593265312969864735263615971722882654670511868086986177659550521899940559227320908597203557616029150228341037630347385306309967823410859862303498607586472147048872725224619483604789888281261670640313114046165422122360910796101164445290347558496417909461659305112664818199867353763373963763615629831869670369214901819064954990401497176584680264965742525525459892331887391872385021361908605072913828392250141556270920167839832595289501904711781299354149022696757471140429138453206566798052860812001012810865991231720591080790401851255272909760572034200754871252193214598477694828759100928421294596777846301047406346360875733570519865611289255953402535803935397449448515131396638686080335917311860273799108310277503261696291647141331979692470431607428934942345692810664049396073102957693571639583089158706998610567288697081093510003408243646986953998755188161341024387733162739136335440042361053355104182779035163291363427369056629423512947099483880668999168572960757682581070066966891109785282837054565751401941662714629807361168410043679837260725643152501909549943055383790036015529932036196916926629805239879156779762319912355003034697020202607099309488934255609132251740475281200591584510572264508755912617299164209191140452031279913505484727300323479447370422896979429421644132228378795537644345021690197234925061978955056606636957854469368470710015813897049515541023483096759816540784357719704625419039599872642981090300416093217259098866380754831132968142536196408835203080592964855194792587831448632182697043519408591133367773826460494467878499452530742704055679203294800435767240288463262511766773975264704499263685506610780511550042697328572392854877837132464561692992304912283930644543882437037868498585321581951054882292621022746305566750585485475170645594991352547922504161749302440500923576489637051846454154459355069188347609568885253017885995396819475726418437121377474310555405121750764129136245645823577154044582848145469548012670193720726151844891448921547883129150678620303139929482324158376690769880368753156167056399180825636760431368689120370945914514449828155978696271988014889087705926852833412616183961704175840710583456296445647204489971380754884581060032593225949361761160767336193970508616634334333195863554952052230576537157391183690110967316658833168353951452445664630871301040306524152242938001874747581978303523172882312715590863830989247680224308118559056942724656109572235896821890657557092258859911183573001001403622936903772003166100531631753657348296619816964639021397998643550271222224632714816267227765259559384126467091676887659087731817191688541385709475979700774742595211935742944201363213167781481585870304454980310991582976171989096049372485980946903056180722796606067503856965507507713663564863720319980985458202113670371949159310486907053509325947816841689221305738209814029911920998424536686990660304683511130070146837195421654820562581833101528943341361875588261142707254992720333831663698506682217051712291771284035179438553643797498575638504007631191463295468238216655744114257278352306761286019116394546285213562963487439952746673051672520563996629387654679223825430794389548222064904972719621729276972110496663409997585621737838152637185995296530484952813935660006617197686172234322632829793544341788170239011213559334749053513909521639266664094430083066381066227791558298343875704873155590309853837542645123615186541783177444876362516808235100654543269387806444248375676912162709000247792342474434705576650943773865824518385769310630631693200487722627627387493978357838802023019325677637699370969329099460002326434962163565009909424708496376567475166682952610229887943051561122967439403806859404985027578578376564597493618862084151795861969307964780974016878782815787781765420071530057627513198073770735319201577463924122561250842355591042910269128649554294602241606291143828950421886226779203615779982890256516430939419872794043771630442297736646049164605933656918087641071770868910712257401219807623474272606997255979123534548038052012139022260006277161018099342648490937308981393281596130351367818766913267842370306002542699553535630762305448441006529676475490419224549355083252407568598579213149238436082471282485328955374431236142042037155252107745590014612292862883042402528971456064218467848985634544854146837501126903924469502690860788767106160666589020407677733770337959565793679006766456232020000348513836943629232288578017497770587751221127214650901844109428212147618307996494013521574483919500417618365321569136960777482776223739119000853811649696229145168402931520311249694646255697848898168463503460534585859377374950568307006540277034536927063918649656805668494721483285482716376950084543960637624732425465243850051188189247749900523927337775324117237678754872814536851703435802542153625786778854114182078209386375897098227377685231256084386714781118467882868216165054689381752204822882273629873586924401680403806749488927907044610334406814734804935191022792531910652417308534290331572931570815360582154049010496733198176298932510161879351625459752870989650570451840428377911920049597744505195643633450894576721439112274186424681873014089542120324298867636711842688991182992388985495254361813614552901334435380304334612948266454636345724464821236977721953727205534569343210095249190955658875334132979567709775066341031787443839251705134668603918814700052689663875520843588929435249652672692316657831875933437517493805129920333668573238295355613180962027542155020885886026369813283919214839013626644204440768115747754217187651837097627278592951246602652776401150685043418158997645561812162671531722402086969467502080825160017407927829869944321939715836347719429407159617481467401351914457148713136554467652213897406824211670461507966839798919354528167886795708943963248287280645766241987227387694363272742743845607251108100164125631636531675377635199419527995668195455385226728185120418216051997427960660380778279756292166254233954962726922699262790355306558081822388288689761145715853864772057006431219057643328911963460913452464675825475650716903426738891882329243567322577272669241467165082405522828960223991675300655013885189691534745044509110020044764217467023880764253588802055210538695299068047821648431147030814818530076773577156849826458257506690308672753556441370130294459348916017563454911171915683978579480955143126648652851948691771535322216111874097228632438798146554969686336479490964617479539757630317250495593083158393843373927398387079525116814910404178584906021707337226110490995022691556878057772535344223263966494899979327777601868777043330289641491641878133190709799939006074303430341622291884328230830749618894090335417806267456075543604367343016456901292599391138742621774192074172821981125004731342676897447841134645603064520469793017349723715167473051672160921272474190208050525862044638389923412478599855524180610105287226935134655539534724562143546456396464412022559174680889153973583885477320798855252424760001473020981718550946367014834736266349066082726476275446305559157768042809864618525622275765315471687766355012955149088338291048907661438038187764248034759124869893220034840196612503097380136730689763409296125049815469064919051386303427273826116144491726098771270563823726078224036378881253837939784363191607401237544053624845891036042495358136782477129956709820487157200092379550738442436266449000517869270060783298978202238232443032139474787446937320688170396839211948257637562449859997075782423060783468556439087694189172372705719526836800125013376191991664243764333414360344899214776011366708448147776003689242870201719713874972608423989614641193414294528404823605485538975348156732990400657414674082975075940220952957142797870734830571949617188728147390715410022025965664868488565531923144991325759570730825897022903170325524198966245964031949814839924859104280798075204449671313218510361543670447273559489568086006303036684738303588252998579504741602594094863366700250506044959154691864910317773592580089028312870792695088921103258964829501624791360663697497974092755423429075847338006030605342497643309033126003639107245420086945139844491917726596967727123255118107180362749295741950268655934229809834362748509169557088114735126610649865009862084696694159753843022332288811960801979548667486563364941063373516766613429593331844404119272071322494483472128706817058618625253810193871721939902590339422331694495904640581346896862453058323453812827917282875718275763979645474643074119728799584887953906410012214062373126965591123996466665482246288021639633335100365447519302024998915634407930407318647297362514977804731805940798468246367500704645188431161122206983615606561510406247294671985476580699700876413581484811371738404256201413619832235552848447625723325901238351665406729838124137824197211258169674236168643810634536259365359047875272519483513066423523725565550638622935071544984699125446509546965038655169333461365716753149079868650544971781014147228860376813031719208798178626020699754510902813406852082161667425928047896049748178366474492861794400990003227771743954834133606680097870774058090218797955626453956476786613325302194583519346976854301349109622427730855785305703813100047682420695808653714515524569248828014358555376574769516711098998262182473767704957653130546163921436253464358146219768492585064396014104828964614875657312229865704190784089897270080467535996509009663529711759050130774295302418843519604965553668612896291930449354304846205130105754364849194577247402173643412227279596785435748850965089247077142868658747477918778692262341911113881133022540879075946775495751579698991466123534259458524455829940911583822919194594384789381670950496276194296874767406906543113474439889206566768081897242012450025413992822431865283988948133932815161193174829486980173978692392642527271751199124893468679996211048184704424870200824983407767635371586766118431834472970906999048858220529635490678819823654674340803520853576359353470067747357924383349895622223024478251398029207819627131687904507895447130847337124746320777742678584809717477385059849521931802483903307744643637583116331205704767003696136020564634759449949272858101394244051886171559582521322748436557920635247532133108006812501696476919389409672356559885875940806931349434597740629369429933114008252357480256998702371172866763833477748703104629885955158161216222110145575935361735764432110458267128357302272184400701589465005503334271475434805084090610280753392972898836561442061515082009065558245987755621790719681085700899188069673840199094016178982227007245410139350784189048386240270829634547491501028629511376937581385315439572046553575600597197554190468021132800835133714932853030649092606454825938657416656708520400723397617780511754980137030113925264576906217062596975117565584920824583258719658054649497020371416355123298790583624153470668043516811182253347992051119263635993528782773671548906393751221127465149110449724868041034316927478793445700449338218045433869967794085463982597173310078847417274237386320180196931131135516405768776973370794818834973760265947213009607722738240420656305697723344277749159027561518311126083069722329174119883060389091814088369127792527219431816044571105740947632239555845931456047772188179987794525085131910202238220516998196871561666783237111631393411102001390464253112528988083119594948076389304921566787187216179585759501339118841848430034808313709074386604700282073661915127712710250088364338819898550442825677611917217447361887531557366824351496670152348663751679206699212677607999622905775117436835592260492756797796470761869796433012513501153613608196239628262825110639103787816122833956636836119833034119190665646003214034471286313609933824140404669761560681549506640247728814554162407029924851106721609155171866863451392392263749305751260866694825480067151885599608375400534891339389872185205835956913145551083557830913064514403475807590217485138941333120192620422003583841813575928925076238653639643227975647923677360746196913526830496763119291939262498459897074277346479683282215734531124454501513795353832762793039370230544567084855981854891964411096035646897097256328483015885450077652537483556897431091856147714480579934424607469650510805969951511127406830963709133820681045518096663567134658953793086144500529359136451469625321393362355789984052938522333805315633643464688586102435174643588264523228128082752668466271929414922272114395607658034106154472756066952760549572921597825996129512480757498946510710056750150615870466432272281745390442526249143223022403960103681102714228244201491876361403802852540095886646998856116438938582255868841079297011358083632301761720544431423773351490637665960570613159974883603244292484347180577024233994363656810866770377260281450591109353240109184476284447079908739821852117038798982280012452678273635760658376199447754520807156473311876201630212457246610856931867040356418282229399730776218520413871602645007820002567845587177157712133498865355911750654075199114153332654892007961730899045018815023125781202501116435245965390992652687846934427918262624781162856397711283933464495281533442775581543590616093894679878469508864985587144765803110046367409363066536435337352696121622078006252834935920531041094503347803229662892502963993654420929678805169497441883650750944288604161741857396637006028241916853683763436230679599695408644155331962689773719545272217324298908479021229208939826741231492525481150721557163175355196785770702914158230134607018707999917859604676024849148922142323502520664193966812905321139826449256303998123633791814087099208689138884688917673359446837451774197925954342169166506532315588645387568538239437339227617604178138093309340723149668610010524336281707834450886007935705863284356283647854992843215299101320241599572272731160685575511978982409169919765446315802160812895405502501544476844609059676436951491973190482562894726635737507392150452429775467875230090785111192169108921806815866113544518201563247089362383527233902481444991459926534024616903830171186691863638276479378594927717843420930499524072822130850105633353238235810929434628083317928329747866874900449073573313535986755743830336037669569117039930833868979083073926525840085797241598595368526403978267299344846697590033942743460662943188545732963685647623907891358718734221818598514778098496965437484595234884856569719381656427127313171172799046379203825492448151736933591739296259238752625522189569384792162486789080212644525732550377529235619020646473269988352967795864147912804848931792375925637759060546854464467071225127722984376467403899544966746507067273856648953479278936358281833406436182155882456850633188254896122422595498353378524052805579130960890445121011363969987062994889880821113386030579358112028160695433398779947027333182867981782214155877499659880042755731525273136357889882017249941883655505298491540020087006679704355374789086747860057236938057059240451716973929195474159664373683681429275220678611389655090317287721420090756059051637453284152527432994035301397738702584612043864319514711771281979260848064005521629958446021332199504206970759639487463805188012637894626362380697406374898073534461534048999292791827522317340133169724147775500109628932876880112273827343050206465806782103372018256068258623629398056306690657604834019594451077849066080602574723801373174712691921059684370263277018126026133633579382708989647495731584235467720131658545981106317976117615542228788528143805162963220196837873307274963524425565713052750581883265223426986949742636205639278380371920971635920715641294036267169523354697341458541746584354924063518105846238260453567966153572167732495413152132335401975811894616803070859948539130985158825740040939480781492980309279813610020627964353927478217874574345379020850829458580475428977952170788469969410261132453909527636463170676603203057057006246215654138150415085580434011929985036367931827793938326853232905792568540904708401979953883618774631005333026142368654440584280073818732108941116896043365595696578270238215955344180986600599446864656512512619569264333283265811659067907209120089056277076128148951755093911201404065682142879753052101621552201680344737712209956790627168908210548033724995656621148005877420284645921453621762306817932218696217468000813800743691797493916357643209533962947853189973486882351339319227185039610826096055457127965943203594940686241253649436865047092242519462105854757207499952359952937003515672141152485410676193971400372801792388370565662017640771956739673838050396000701603339168109021743116546232961781042292839748787191906506375964755094800922598091371895157768564369927806735194127738764802200232948311254888281718172974971628352230098074304927309912683352101709230248311520914108044444074468949974711538601787034743055597891765547153528542414618626928219577057555213708557990626676230662430183493445124798572117249356728905573928596281507798174639074028532337387799483689295334619900272614743276713235863089625639584737103374842212053376415690852930369809633966288218779614766854864525230963568516450287518795361618850740750993166591060301132673263037568802076129819899848560185513824409901895995814249987159268917219725401661934662394870701184863197464059812692441082315816261510857761880706685868617147872811594061245878294058679071282403054929680762595743878201136144183807696256623707912353993860191396953291261967542553760280819206575131932446124983664752614111350773307028470436944912722294575002535648265160914865218099731429249750888772146823604820081065494007273930541018783969485498781962917171962466400102031999094324839416397253703645304450813815236210450610844437913246969235175629563264725481801920985222026007503926896977947909939665706418851156857806800536254359071225166579085530856224732395510569265569778732403628561247604198760805089959013484302536479524753535325488511732490857248657668888340667070455278022581486068690446443241429157125082704292761858695733884296742428835244330934900801081231255171042895800856751127441880937377795436523921798825090776131293304221469508662730298521351225043489860965657132388002695679493339595968181436779156047487568352054502387099515398576081776995799538716797762471943299754999889349057965975627672870630194941232856552914814333606988130955995365722111155327176439795552348231175788631562398303942228983110095327745143266957351390705383561565553383384994273276650740997798582515227673515031636050509722133633447200177941980779882029358849655566382155385759479716240784258880450321535202009578548884196060988040212431944026422143391272063456853769699540586412632928804386079229182639052455526145367001201291178801663418634644188824447019615785302504477246628297240839611830908488175699295816797675629259603937529713374107753769092722753187816679657289764027012830563631228656808850474093388600231879113994939262016841844667630071507361920773323851353402486353615273211277508591193724516656790604628261538032407487963769468569112685307581336309007151761432881629018458993383210916330925967649312182754670711033283545814938981642400206306316922505447640322212625991671278844739859152211497401636151663201554153938332429846977764100268980489747280623966886432740080104365240318815382733119417247789121842434344158025493440546525185785960206433440195131554799761845998302596934151079379942977660832703310653542046270113521857361685014151681670111147993411761450213674191910785394924959313471956266923425874815337917620332915200178802569135337982815775421140053054949407109009448599979269307178573893935791216458672343160737691801285537649596539666093947738920289474249630175333171089132787871997367240427579580955544274429843904481547414596589409819256516311846133400908293652085017927941451773729811614585271048600048716933946101207401045062672169900749424043466582293640189752792498758149051241934198104930042653306800566275156904786428592234254632718978772292187497008732665850166734780408664383356135557005519134574555534381096414864281490136584906482248023176906219436247468981066037765645881772032967406507752099382203047930206489441047406519851269526456694638272845823048125493068259989308678296171356246794653210018022628495898671158326062266388927569566652442785372352960011213904414277093142386603614767554089444697540308009024324155953710940290981186857067583078857621584274843131594129870295581025231381670511621244339238099604597159729531602947192762099443161297493796268539898285744453313658821700401875185282869844274302184614885843881331773062270454310175750815091052927341676925508426942018873017733723063548726067293303607143274550147851458055500394036217107344197153881025004455940565100325350855021125829034180991447965576503353564309302405888845600197817184702066689019905795352100889148094101088950402630626049007053818885506389006557052014777894038932089812484969274067239937961817516784175776909344281458884308758853301090379924981614427805939420538270178974086803679086014434734067645934759624009875967806506465413653833444655825171492595166156298219195194697457944971797464462788796091796852193661365467281102894687391035870517947494915366558120733333400916033826971949805812480490984874501535630620114074024481586341190593985229495701473927652663392289151392271478352237043070514213909994056596540731027797162942746256109491945118677060156662946609075005766951149320391794895358174306097127031449910859546413731737789552563312879650586591082645353264679891240057884484616728459481644273626248828692369165143302631702563712020553528527186501172151008418554329916139271691962098279338859026923102411797820967570341454139015830494829203122617132881921963518325506097906949206265958936795660908690069401741997412422137779468607809149613080439721056717144968691516234020343243741883609086745562241736107340621899568660028980253826661629111612211115177794736358505572936196182774214272104034338731638181463056998796345511634150439244725072778299176346459953680769305214710354404169080230900117581173046034581082060656274621661633060976840728555695399432975777753830938489150072384749919983841914697078037556309432933186082135804703767701233309993308070246959868815538319062242545626146550399081445181350514614743031126497063792988537637596469665399696730796785215447386024821369344562764708640535034685353372707256563605456067530751745273101091144836992623176340275247223056903007714344171281385980234493401718754489602422817692628028710416904804137764425859482761912358352227435647252619825872323863774531042312983922316677034789433192377985026775836121096904807512956117172510030654302757990655229520321483512836316132212317426517369607416856096189882598282534474992746479941726495037022600714229372487347064425244877947726287746136556611903295615400179808039639309203656934375425228381163966979902762662998236253810180952547282192546836395086904009978350441475616236079535009957504001845841783338540444159766267603460947825636210718255306347303573757334085872453950012432442044904167341750411521845591218421504709789973148524984200614908497529460100547857276404566151226661964292866027447349723834031796300092601373416186664215726193860681356900061616604153128760181866076084311379643409740371644213090771563050120007209899357217128005653967797166352566714408384969581324051716604266656176633501902148776833869508774508879565265174317270776722983488332788685031765799364307763953693519661166605140296635047888210440485665604644112127624301317094147602707100398684422422201987055111427743649701397339552099638389737004912263621840133125888151126444967783702749304509395048364062235868201131206788401098830254906956754919501825836840981265411099810886709208441875120698385681725619330294264549007648805358835311513320604850302331772340842759111732357311535182039544532130476120870448851599399914265038818036303150213707294245657356509064384263707007834838757503342112904965056241538020076038988285719233601195869563718574972646548995299289983329002212716453650691516114899756315601337182870144819697594546972612551223534582510449772782851769669813949894921335212684862196765348176831725796980659050839690300039127347471982005853426010744462118943849581768620382064674805284882871027520716705092278012143366042364629522260612828343996439822060345463987304247191167129637050522438963413057736862083409153223257730962874942555742081990904286720093996266207739700945559788682967024809760247088363137141674326633254431520164537725933222931053888632015338340019255197113198581550349457176027648924805865744983582758879471462179940212225979192272052761520521822120591509894983201248600952044620718758302335024743274968637151087461258656084647685248202780945428751961333420567195664002492390977409092079831967470454533053786178357519787782687114292962252754810595072705735343022240679385532912806107601896155585510138889276505872804831766654234069967557585092089112449248650119294465793358637423580243108787985339336300883710278986748199351926878634281493498368662404751774137546105278304370069310225679361965913405922824593856761516699863651182446136497755047611889409067643523819607894213079969598131639573043882772579648037711047367058262464463159634242842458740217780449049185626415807838486065137302970904963065281668636657820291973292147763812832247392215834401739462338280316237412854479128508489436432452888553455974899943392311311886072637979158846135078806165341805133523770241287310775378977761186332674586862652110995976427286975571141166316360703605998512425361934543945663824319474419916390963532212594897359812592037391011801824425231902152586834695355202057932466405295832552951532261301464627971212570555676988168784983487831511041488782141632958954117447845832664763424448848478249827996282040338415514545710251938463155989864862162527746517801228087013731855889519111780820299094304180617156519206959191590772791791013219032721638989782029307567643237494728009408594137972081522112636103239905907716332628828870834120264846230933683732403737337210144465504325319762972751804851455081009734589703055468663148116861202820902931871881121767154246301391197977507852948244767851832396443138788585198889560056802420798324564428631653953611366612826138070779255428095598478896961703696526468927954833028808523232162813045093526223469055906983725275416993666376721673060735145754149726563644061763915185797780162530416926924759837247753710936170113222817391548694655165420458333807278065834142994562917278425879506107910979581476378035011699092227645538382351560169061208519159690316533547221903176955964623926668565149159895450531331314536059474707997494260036924232243478914288660426374762524633388504198924656796122392289309251610621464538504735856846190579799653085726783850162858199904728857539264920845041587271326896001712773862676596488970898679174298934795285786033379364187207728579375348029142098192834925079916837624076335839933979854253415914562692398107579841701565134263426578923423902247593156442944241254690238437314698115761072967654144678458594738648743440411827115229285707668455257779301295343679543262916348010509448466136684372346441007361310111610999626773494322973362176660649525715695541823931552412113246752451518455507004591823094841749724262534702818782217580042696542380411169827674609331317828117662797689479748883909660447926252610134549905225592163030494757966844014309550736409949717275451598304315815678742316778621770830356454290156018920385728144921561877380764225211768853788738510606747555184033258205324641825565235866629958785410696864168199661549672958966788777705379040768922672456999061182934138380218536737353931288974099612368625018520962321174907385534641717110389384815194352328654922348125278051969701564070828396877611561284035272585365207536781070658008553158612950830461739441489625639424000848248063991474811220830984068838100564719254873935080851158579408316865783465224187978101597393374893988816508814353666170941437954861861274213024853385178329420484533864781362579289350993399803120106358520593766007811818924196045360635902153207667587044248537062209157457253271229250043847234741194354940501442088358083226427371716118154937121967508412053662964584832341679193026903408832879323057734739727778260512675565402153032919323886543646167451442663683557322148050895565558609485536364209861955973190180079949828688871305547067849671233601841261157440131529704445225051704528999363609263954544732531283117524511123224860106237910069654254771882140227456482504716223251328658842821509884401796757615640979921038693304126958662587231551188941687637092869752155263054888025109152221036262605590645024904038308980732843768055324946426472016592566838078269846127918700884596032883312312122825823629137078625157117857615482080757228143170341550738457770852484189355809671218041323995674537248623693651668747909026505861316284415071702869956270946276932318638681970589519694855124273224941238463321181886470969046424917431222369283536218830633485459839728251961393124454702717909031150668885843232067694319955657359611361480584853314215688744004582261448869144939236916096062404829413050195409337963959549920745089163086887636738291602666564075691756374323712767688046252181744199665401081909719806734734358735924553148311667477949007156351986174328743192593067748132313987329818945030944302286532425191783998706011818750631679577740280249796575947502992619141613844647896057940081696371355037137484217894479680191152661544738287200758319954988659919842335715368716281235109044701954641398788800339415772476542041718863607389417126670926377814806313958369308894821621459895964788384547208774871343422324490674111295092751103418615282963631788085698448442744139358944050067096574746350779993644331320210457450006469438787823252868857214134020082478126391214426306085554230751792133974842012950032190530460905414940632351781425701931940188318542385803444254104708538774828203248884782698165091419304586141777359329459440957303016620245593068108062937577576086802402607145601702618754727761728948958314736320104971322162244479853726954899831501481667668597040376181358513805226759275190999604911717670105466801415972103623377373272845494388964964173360657975760300544372833201539353532499623845038373195994987160785132437402947469820382548922716939839167049132215282182158752538552772550943789245728899701357510225454339517344849677235241042674013989320523460431214698615059039480683734853597364015537057033564899592227806591778353781293853358059542232414481227962655662225307885776077379765610593172139933820232058136735812984703731218152529544204069899728055144629794190870277082679405975082591004395653489125548206056141447919208353143061374315741040412299927561672740849249400318526227994841283438341058714518566206787593168453646269256684984749552844507689235575683737564799505437197385175142275653445121256556451925551593349527071007830026877576137320037747039767669875145015705741111224028194312574065151504128413460582843387801529919520041971847576412877190574277485094660993931602141196995990132912090602182929503838422405794154359184691070450082983684669046471174975393191812505044273505144764648668389335053354798832759900779607801177772072299493290330563835336294192615822995521610141068965354153175671583363443925434237667226088661411741507673565659288288792647021548516608046627264856680292338966263366890127597709058079191163951955996253491086564150653398948814668983726580222013644833714855942173758955679857166822611772546975490083393518685100657396604142215877036904067200466984544071383726850826290430655929773101426820542949965715023205190490590887587249959075538875247983076492478834285584409943240059065272819911591181794994155098386740832398442152059783558590189499919232144761999920910361327443242945369732753879778358241014504370687675918809101777919318121204264859483605868529043447834868798236296112915636832761162537591496216178427915437858307962270885151981078416316388773816254552036551419633172399871472363148804736636749569993907077155998128082407449918272305779873208892356796183137075931229657725749555946173980521540550219008270429557672334453727853727336208384955515705570215621714140396621697981127295083255414778739323897686733181515817475141143935705696840395365253769008879942166081655223439879956642329878617336904839349847091432714899755629047534512326874970330250188359990068319929735459492164302448245921978013172713430449517610403246803012240964776122861803554868775321759065309086138555175351763832687751398458441612690731642869489988817199395009860613726426058951959700726147746499283756959261577639336408791050509971921916156672963380565061432728804495653757725426237599865713213250233473139355223259837721752777469904001736146799756216735148676533629908282057880557969920247506148843355894607247054605463271511472035795745729626240017689875735860592466876929053749433912941469655541629925278073674180459030759404284967039795841325026462222630822778836951258487055742441741563408281594673213406174401838276701866331643136227083672614236387698293322040772047720351446976715801642613747752803157693004381311745914309396880420853815829976510513260710817021998280574177278670776977754962352495773518611330290260268250045200631236195921553318395445111975453961642806205538509170968310865727564216352689860718136954173175869205038994975051303359145142155846008883670508967479229079901068557456983076222381025277407474186807639893640755757442169586996436946726957474686210934357621366907613160622591580371210022206851228473618160807721924159793550337249218644922158578552222816594706622912371985026059725543716758745619894804644006793768429574864981118575240247446010502736210011025214216678931289464683177192215251514878256393230966063423336901732939702250315856607761621570943345276023751802575969145815272065817069691927282763890992233424038236847289218372647407617955459356713955082304694462725006513126148397540388753637689913406588961824403256410253624511802920748736848081946844503259434736342597214038108102165487379832210886871274817148465962317323797649951063142010339900691632980659083145356512715135226079888933485414655577494198571178544079720067361691705322501932639323233090900337184384957066058054829049600125909455131294050881862926679038731685862893023295828742694024586925925024740882051303920277744273720362477278151335148230413044541983632656993461489587261986847406400289443160584164165706026093759294696378485005913805332202407686127375256902469957274401236859650251479637602147974551085173472027079449965104581061810638963036880852101840510466840259575355817483221937685486161147703829673258987632740273417693785877600118355469604549498914449730023472591289876641375297276341834472896867921161272076830305287143899843884462570564982725043005132210695321895516369937913803728322831348036092265533702586089929702314272555232558644765662272100083632182673573856179211083913084868880286800273764118775066526694346970072583980352309810827581271514065879008066813692646049137304260516660633530160394823593479926035782726821856645040356376124967486087163125010188771935924531683741732325992873901188543194593282468611962816208890714369900886282014923206036688841642902460185098742461134542372485004868851075235885808881704854346681774892924111968880466248811144206880731720977592059853994590318769839838847205459819281445740731290605062776359872377129228149918410035753134582558885827397318673696206839969667061717632935695874708388878695284948471020484280787911079788467193638917814430008795647005372840177389554241847763138410612665269480229121657805836243300448814685376028649549394794049926047555775645786486571133337094448337368937315749123139788584093505755894410351442797379849111059871466962931455634971067118448861201432712961693782311748841820226586859606126579870430576886968964287110414561245413091350921562496881766171395720344306790656579989786620007475470791728769827113783192339763397788188253300821383458054077314704939804723850349838825547346050768761791717138788881749993978355313311254334709002401097316429415701839710099553251904560219456860430287329212241696330389039437234021497097258169029656686770929896990296248548158396960352161390810711384170996442187789363683832136412208990494183809816767769499814197771388743303774071226916667988909429231860748494306083429144487103730691568626447176096479472492550868594185385944001482831927188631132799456963783976164567714950018604612289201172311881333332643272270125069013424002129317153100692907469177093080441527429263203809512086871665986635581152622114063641674854977476247226713084366520752878046299139425590669986412858452457219653122667188296958633580307196576155812510486705337518356554215731552058328081638809896333147257801342961671300590837203551535437601416709527753860851059354643849067968607977094899041127887827899563215436003604238662032367994297397534686231702136787197190462443842750128976265427750025240566557249562140485087675266848800741730953689475794162040399595232797388940563196325360112151022619875981093447265733982016297761601131737401583787053418089063125667101460424185648351713078335109547801736158313715673460400889117629205979148305691549674919950138382026761581721266424745245491762860483849128097382150000954538531806457354761824596101589657927546413512123209230859770904422023197855517256905342003992253708478980769031088199036300764868391907781975217753911128150342513967430039103456006045181547693659986922505719601128107603393863811992405302015857312912711257349789526225842956814961216868733675555615587456340525336642611788288915290329272159804485162282385488556364377775166638438521704434443522197798470157422466056720533828575803093299838845308264279401437825255126740328723675079425428141352783337374385702326012019084244228504966926688554246919538664394891275491151000166957722502731795200248310558468598964534929745119106964491554467748196464362819401338522811900635781977827445747276928403168867854903937120911823142098567482772136370358650773252674101080025362025438397697961802719515028829831919882508599377494897228714555056628891089607845355139533042520967042786100726974393350944631888670436750152990146836878501941859700032031287143244747725212041855981428381303023883396418779176191965261206834956412300381079306305602238035763435232798321442394490647335935592491356743633260487592034830996303334995893342041253365187577730543707364900702514287051751848960769831664953187509074109738385672947949334403577058486135603656870195558579588733632804098849203355891297614984267122810228610617067360188553792891704056947437574159746743823298868123291422159970436252845870553585251289395642209074152230038375491332002108464954436820210979318559542358429919254713908705069068655295031534740902992431177119752502328411182425174272163463391688494932203850658226979341921021239212011625166813090805996313989996617283358462100888189815869013180471569771351624806996275138737563094810334587122183016674661107433091376490377410216813344373125089803764738626261531861774220723170709266498305974566640020881002562379220988189241685377341087221851868866300338051379702903575614693026529386465027905185688518181229557358995316443748428333454860033978016703091373014580234241662499261675147846336097726832585774329221631945186811032645315965313835112766832070997552718604098468202759542295919971788282200982516302347019182832737930864963876576740374877393869613425661435273511158940495903814274778265806115004185802619574499068089172938884937022426469430717410964816406544572608883140616932269672798878486686940012124781436119667706575377330118462964543882784590424683246355397896824766304143923805619050276351244064783016346370268172671099144201532516099381766872621677927749193220728261145344295567373527940659842451650929048568774499564430844087169982053282104314898334271496105598025332513327449980154717711426746651691797790316546647781031256991470198947773710648809770450604065486035199021626563842800154377104451998678567876475789540269424769953605845413363820517898118967048398044442674418793740492488841720743775597116332874663084072727585219408925651618320484465994123336925631494335263963615783102293060980333482973225179408312575762167465826278956692059957157416029076042638792606564855330996915628874621701836195249883522831725796047462639685706974280967780229653476986206523425936496024696003927189923451472420035604457771788055239406515881254779138792601751151479973200510722552111860847628681782387009409317866105042447916952581694407758796216811543914017407939189168804679709142194843399367452507122360437563434316047119124663404693814924902931569897706543187352971836235853869720268816679688102712484982917150560931444184452406507812338203375571839311735693237179961198774473721335241410546530783852545343468966153676959840676052307906626014797621906118939457068416038670092237604587411435641859345652016729677060638559928977005465273999291753811277950144619705321159766665525296731888095343232163748781820802894455627614292327075103553305994500255491520463884240722307453469608665873707626926762736563886567970521491412156538363564925355199306048796092133832956692997691404914643967091006700986804301377563986106509283810233445714758674386756628556363035747812915325237420750294899856754132767859807799645274178122614239393055578678355584371776990843753172887816899725205636817174569251134137058641237016977786581333789746519090777710489021484511597512616435452346919928246335166822083603658272876975750951257415534875058395713442447116077854874043970780790721309842981853323163740824061440662006950612496857582125981932765254132238187635870712965469015599021206543425729493672291390250755653008647107614291042914007128472939638166269717590259016960541799215259834761321173516156541602159729617447721940775114769341826714651925412461376837497828726899626057086655806389014114577938249099050540852431080226677179165232092111770854606715150233680033909944556411743952959647856167332478710512151874416696147617527594312290613880569047067758514042827656721409146631792388375759919589850565879097587453995702422948496759697001419219372304509303711201334674440072013091371298793982621651044602032151856988777263551801729431502431909762031586992427539220916397263366862690018420667830229159979105357930618553195929094335634834608540788612405452143661031753833513803273972520513882699102135340062529392015235241688064102511190755724798057480077766089782335530174988521054261969537282068149360934281292614731220789810191265432654220378357998632099216243244635223521024246795188657836706993366769345678384352412705773922600741013850083211134847937388061148297483648658468974417738262770782175690837612176921141569397252111723210811989915369861760777959804483405839617917198401804706570298170358129980757482572478632782157564593064468474742777261550037916510166288636950194375183258536279655074623048389000994873521608035863172779890365188408922200083323550680915700568681853719082899244777874246397245175391171576990094663917068638605649849916340626949793225083185308179787992327436960207883569926926271698296152231233479214261667432756990445911003846048082060891965678952330414040392244066774263098940236309555341354777910623601137007970481932169089617793866238899146926883152507320517650682509001708295498459890830643104192816680757252902459612127791203337483104275697337198472552297047446994365234251637084540391645883536060404369992153656650328798625366353634681256326561266008203715989692854116636329639779024205460739479753708727455694045955484034852640565266470412831889502570491952084202979200921829653652904669674448590697063612720898219307306980577130336972051891539512370796514925621402524595361078533211035958147481665440647918170509523746136634417101888342698100573482744649252457969235759916450842098242332416932979581056722044135315105799135209746164389772592445315286542588220205769073446266126197698299353060448269670437637101418446519476429950143749701765420263729510472581693286828577401210091745965949652543087200520404063247601119178986911933110590904401821505723200152291988637417807238513035762787434071962229692821796548514346615546168896481541053220046919030178399480208691145593226476480185655718004032608189860158341610642034765652613356290562351220955446498898389908950967756581835174652814958410183975590507839901173718112773654667575009538761727914563643914085926070098215692694197705257991302476789908527263468684524300835368034149478750838580399464137103977713176685095930415291439602482265402093789983603129421638637442177970111123161736172961676325683340621558445823490088654084921591031549116844823167068739067016698338711241958816111373675303184807986440294028357700110437358818755071205480059338015944104396170242614320916160780472149810298006644476314782992451145700727210168900153321735587292543133895814425197078040981070673894946043621208932623356677661992257235082688589175937879924723909620568764985219049354158984778979120319476648429211355478183475445891427756200904477342443516668236444841961190508843938936874880713766626140002995267899404642127637334388534303248510970802018709187701803728071745972196828583676500869352955348523825760233791415081056107609288088339389488819491458504353656252690823819123912172599426390401067731174567180408306797984278465279264287239201016571393711851716580511762130723235777707507773269979536873395670376453379783420283765378311494900386578150835574320112735381937281876567844887149586632186815013523462732028143938037184973071454512752111914056376598100690462557114059386352405092766720365754733692892368522183392317736487379476204646796311690570441154154004212742348134206181117027819501605278227641644504875340609469973701757201222460466980970519951184545395313055225219639300125149007612315375133581589817506216736261299451973381168217983405664686346320703880775644983074944188253127509595915692411523917405555577961065699940784259400357341704228816012970714439742870342600309050622184050579361996348908164460758488159401358863433465524910301931303386792382689464455459114657622826807916063680410598740516000041931377886365730799555933385444391930252903808909860611078448394749849736583268908243834774459553974681688887506890424695355177042355667580764164391875879630479167483813637435865520824011916534575388607799500482442693882949006304345548157738584762519104919682591224483347487132526572171940815772939858625607179088923818213959044197499306758221445405488956454311172832468567702886546527811076668135991773856862350392429555025923149889409848609121133002556546338524536394160293400452606315236924350028194818054635163736176387404390781882737888503298499619491912327155099080670241051042106389599792556440513010926341942614932161084041516526235463570925920959680094563220178169077593280812048062817621968525938355265527817865805367090834810046491917720334218253826513666912505962748536105107749461569392783124690178820599380948937212909163998418259919991360974386231393810382060268997070963965938478725303484347378854438102190750905101439259015091496484897680184787355187307876617735900846432805077334367598878980426863499605889154707262432930227963844990301859355790929265041939470691032143116556993200092655609353609680021566105369176665198883984980953319205752791382498674578983665296912540416574606193681389656820311868362369832662949314260259354003743407786970993861470898911868880770773825660521793749611325894516384120130962693975102542269277710458363159450074179233224505989349800574184226762951905572406335735018274570347578884072898249619431821403074116749108825322331423938758839628646282450271185530196054463154570143306216713345578051827090693453530501524198127593347045439021395344479109873797847107130586218711684239155169669151914552451225133259363936778022655776217517742084666074930715140346711198306646766736014082696297512070218548865264550702509561929112936662793121845530611723365990478359615320377761685951031834042703521538223792953185498027829638793066906021792494695579261575323606214680440373307099574248128352795145107115492340448013409017637859049319993475418298644697666394767702304908543202512668194991782176169817476533418639813761984201976512358498385289319226469154078311267872762153698591598870168853876722884215473883159298804865170630710472258850084878813429623524441206766950094640245603030249159601999590353854993091626708424024022445280930647243809946653310157334995170414310322815584860098827942956389368819079630748991873623876757813397705813346577413023478394968700374121186545454638357922269265541635674831733233143999701244343086225722392998182651237775012484192603251176755542007520175439200560513424094991775869511099808061906011274844570209671078030155024904608329259947679263748017198991991610328115424711836434645030189302910353714524521354093619414816893514258711884244286788791356650932037722055852999046683731666663329190650595473110198165347529136317056799652525857494603566017216302561304711183102282284550453658782860901720240301904353700918560591307877206650283411507152012071840117873135329481634808273315370374102009390415040135692371096966195789179302726405597751663948197688982234180009691765021340505836426677706688691759202109589366024424272671022192429265365897363159855035676169789190352759908179202838794540073150623296057097399734022107491315558974769496728865192113599242776450077681663953118352417649516977246091504558099204393494888752702484582745379390990811128094980587795191325576356534477168460834141643009411960244610959690192724350009419683108915208138475422365575630462146382483292123131784767761162425418147335294255945068646048289397711868747466665082001479438654302702723657984739440754406687328896512153776347849601603590219579060304141662071429553863447133627459914656609921355024908024300656277347612470568274489250093298606008160883640704093816380435236591572568812388811801573716335088773510119331445460158600801085882354015326237750539081403760439995437535539146439408235488999791506362274739060332010331537988049117190881904403070084684467714305143008349535665562140098333991472419693055508940208623804576120377739975564081075353956938804215909699476382341206220000723533964494247011212788440198406789292920341333400508372540445860988407619113757413696900936665974604180516465247313354527588119791412738019071646007671545194845223998247533948427085059886209682886874705290854995422684759033761041575039252707946123520233152502791186119763710454906401097769510528128072422755903210345024719371720803523373162128046912362645470438657095020333043440964000658008753609929410476895895785036138857776410811350612285866013560807692168297091499960496330779924636055573864227926706129394164369760615635060377543666406597334860297844273522679855174940028685520463162233585076215026927544058624353412813874260013148925172933202548778278797809669877892527303502179481495192012887694366760366086389203879840327436478265453218034369755868407398640502874442857612268762240706075105588254223740159026166167096113451216813579513769499389429074317198620798220001567142761666370754027970439905951379170626881136648693148107289190892575179673961936905206143633427535225902799228555168177075531511518392700447444831799000444807303162052715888178409671889593701925338605443145965239335988366092169450126188117172611937121632107601130867120551156071443169385931219866731189855895460637223840012694707577451754056501903097295836111850678893486380102583520796136119599654513236792719283267281358450150147961888527115615451459550475500794344212194982712412960711323537073408006503414494985487585867852794887673094318212532848614486185531377523434784613380457390548971768298910342837473886772853005766396233732816435655247092461060338845511698928718202710707730634146966843703063437633009827719523839536240450059188957180784976272462603904344324549926012916802959116213145623461827602700361503526416892544813765538199550042532073158247379198389553561210956260848459977386816723366216853541467956459577015560239756413010653284914228622856105604083730931109131312979659535575186529962228964144249777834383390006604342397417297582507174875735055743933968162452970707842871026563687528796098587650136699024347191377284672218526413674379471164803238582891197883495765166373845870396475148447142248996450587771222633118798377491306768886045012745360422474911804503261616720767295522506334214178973650017450455111957423886550072228195720811301935971986664433042229910945511702443335346616251407152241277494413549663486054584102865885790996637782882753931062643540854949593677697406938340070858809290757867965010615334187292951656332576134663374218291023551965412454663041541710788013410897728193266624902935120052846993202166566707501093036924985719639033065599082159526242593066081176667424876702172627424608253061022787650845640360402469221310765505309379674422024739268626053878079998813845300035123640812102816022267838061272993889582168173636588139441465350754295743369696534645406382809240534975712056010389622950770033538289089478874953735650088797844724435526506004658410112446604196506204406152283939749292810131299623288828124640528495820737089627181666618231408735343301623001432026255054741069515069408685139708988199118811826758211642467510759437852859857818263115640584960392980202235697598625692202519273897990710786842081943206812781219661520026512967035951685842927606226913497806322044716433488316346060428573547215623097952777333472258303954713146331336542144575503209411734929955426570666512715207294608120538256620949484976857238106737016990089241334604085394698599311984965437001877329603775331474165214670685411299460871486921467396916362750357145523067699400183488792194080807846528334095862689060342318457519735826798092608092783974389734246712682908124104816639719138754982412184084387635989284820241149642410379727095691853288383162010361488600625433105585035967852859115698053781035252511173729101437593844400246584901343241290128186057359744111323724607906758291961426112871885477172943976882315824389615333989713197995575028600972851480493827552236866422502145523690552890018846712764157401298256997158752564445529941263249246054424242338915337202609822885602067164765133500214567754660296426961488881447855462676528741092244032553845448551911544607426227477791449070770525407546792036067426392958415578443644539939740149409679037846388289374257958360451714385976373873452074647926685488460111816688193375757341642222613691517304927692882501079878715336219751958702105945665223676059617016570303821906546661630672284225025788856460335101558881883913208286853877040604500650026838811979140246856444484939363017222036046274687556115115397557944096830355781070722344613404554278514171454602609486454857861621663997636042113524466345736360233587796034711866850352559649913697901326544082710119726717929388087082803846027012675583366862131852053001971172176577454053214988460467272287081594269175579159119432701057784139649972752329044829488813215004269803591009522240368090297147538702448389234581927985001504887469248115332478034023723845520432280739134115101535044282976303619700466645689600859747183779744413241433996769570947286111821328302413059364532521188143702579040856304222447174361693496826227149031143014336090742832889054331394387447517238846802086792427998130866144276517639633204016306097347420216256628658078624282955364732098821799034268758913094655936263344949404729541862535698832996456957148867315558823560942164381702473525860648408393661583682937707952250900137454267016531014267653905021849170443302748338832355219855140063556810029557053464557033734347758051281976643932272529800928914284715513933321764415037388351682354067831836608247560071561931284407507310235249822894206105009349813720759307671858376942015837884427952034147500227243535828868568299559049917510994515907504361118293838856259124970528901467978069986686823700331041512757225684334901385165941875726792118195587974385672776820610212234603212037409800335510393463145797530507802159268308770317971831228167631508019755743418822525948746861275427027596180869219479718214890486252685902231405996971185072275125498579276073680431459479067955241110243056722075975935411207131086490881461243194414723923132038089073726034762314087746911829625742700350318170465934184434859196613071209399226037654356391933179038876213109353152348045109387078795759558125126524494111300765714229874613233267471135710110003262372155335255508984292776197499110385997305533212819011311204668682750651828557251587754846301342814762223708863516271002686563239043751287808545669928492179454893957230062130465664288099100875334707468596740031194443363312352101191529090820009096904274295746208355527950937468955553124000705130051942018508665023797667223464546787917221552792069255110115073880289356301220151413895860746039619846388259935621618651088524117576409432050219522874984214653135641033889280719996206289587004438554469423614739033122602298297969600615763189736668421932038600566554209998156841552130228743858151654743555096753108925454668225333731568474594331806833852799189770222753198354454994204721772821292844664571510535776598399885805695851727712398421117569000374478749861401162010682564901907347690457831205587909780595164823462743309899782083606973315130199207002846342208296606747637829616372581247867397082637028004709035124506286402779482634864149847482115231784880737590185385416353883058562933718951470734158433095945199533605716290262286536790106842244087872459203174423130876297226240897212773719248441062133272598073661861096258667309887385747129660264752165809778883394865584371588838742035295938824950106982751595020435339832727025172008754118477159779158009300783788010645459223492508866505510071752408089215821274007936826326674386927077748691072989670146235122612980084333281740161384817316500607399929301650684354382528033102692420807598004409856463619176828159578360182768289120610255397165226858813285652410127392189768523136050265220999702014431851418583881409700169831404878541725292742235712065953734396506597370805674824051293577424551358549841940872236267533914348430067393527297797609697629878796820344518597819409419674750686128183349458277306003691466827242050699028259280823882756060340179141494647356492451700515492662630386907859107362190250847138007427796891499332141017543428118600476381955489669590759355164655791607204308863392562283820992763371374244526015749233108033093936031723373838253772473834454784114208760221507049470521919736021744186847104641887699777658079786340371993101589578292218998510175332360864405598876809264532201567949120900737122044510836088635640300450332068292554699172409588863018295473212459321546862600808178164667607193040118832099065147116407176416966038800335266329715834249818684562831227153834304870376885717801743880887455351271813076204811752004229211766439870655154167903516019697404238169196349432407218806834899666579990386001003839888508659914992949900303689351590585466383629422741390807004216780595128244573530018127745340543419523017907606149537559495674041788804196936468188273753240356470912246781369699827608971686544432944403716782305972424158010052958101583878540434762720896677460551391949011022720227584338124671679764352744815725263500470989953455172824376241467515615014346594041238359783602658343311386123777909869899619166666594736190136828794292491178988895951479965876170612263903134384010376709238517269585431666598260056779009425068403292668876560471132519778913876295929240078785604747680173469379633174718585937818174928167412967942048319606937833336560908035004820722123506183675823204509126236473901052391627557987008418486547350569433526072358552076640728992789539030528020015856818312046354909275990598712494864796265368933999584934825905695837073891107444953846210647788980994362670592242452723234331723538271137000934649866532172046661246774808883347145611210845862083831625532314401989323128263202757880869227739738766133652351594712555502129718104450281532702350491858065254007051622092599353761513261503345973491734041332644532056793794219508714427990974244029238905688987335711038739214811839318112553394909743988527628383773663616357429241558347705630463410335096267651613803307659429355181318619740532666483101421754739555612561788897649932092274774982290982131063422952484143049712865932553245632514181764453398253633461312279182264399112672264094732271931914607154223759400423030781905472238560912279360883479598319151488550276129272579532181499398376264386302850426129688212883370140504336249460207569464095376231257674974441411574931047759991328118239227281912586309753943477670520562490124796527751721037479821003111988970319641135519591369169069992100642027072804644381900725855101151697110243949851517081910951455353880703531594074206067431131533708228688607612444251680200395318566459619580359953693280454899408676154498334500802028074738600643292943293976116665310848108586714988932266683218020058503677059322605216090919468168405557416679095938838400866222595509702115292303082552900444065229948409889935469423969175357505389738463039988790089888080275826457545299220568620182861842011545149493085879837269627479461522088258858164519361029506578055754213671108609596054402116641364404070545235007734076879431151549084671875122144364600789750282892461431729256350697613711176307107468007708287141981033519591183914914473942408937849221346900844880706596248377535538528368960236399090051491191307797129806545544899417992478092928576136875646931989662676474804329674224386198607279939428585115948446363419437962314464329710085431857955124361024819720778415087278257703666736429392255385883724250359647911790167625761679195542794762745679805277486504897669847473267491207982732408976526365790691095753853386957309228074877242527693287923739180153641933740550293028755409596165877207142371365135369141152807887319410133822605018821133564705666752564381243821122458955309916518679504487968884402212670468280076131607651481928644632376664980926721799156280750770933081643338418831296028014829299612038652146658870393189542332131040319686241607396268270065574953176851047518176751885809088103869843419156817674513737532577206642981542726095409025331340498995674388426648431172037956671479810503363721340095361989341868669376193787979233742018174941315076514502671220044654919635970422408876599386079802506182160624333678417409884224664127419074244132867068466665849967004477560136142220265629006813863773881603776125394935265296572156605014859267754971950284459586242379326915359317309057144756279668779309128842921461614647199011269375591533590985799681341265303883420329339168456354084706833097042331452255010126577023098397179545310325439714711296376822496869450140507073725512822072813736351500535324622781901506177587406858541805449610606069060012570818691875958118869875921260493118305726992210362809133971708066305766291175466273331351700616874190264725209744074863188978111727847246693416965545736505071962436726778558492863449089030694575710412690598494656068069260203207729919840757716752415477669116895590466173592461019512922191917952712239863745176670965241649488707125985396561191690298387490881826445426977570702915598551864570036311660529793788602716852654022547913508791315841535148221526513789469453708758701919087556679117892667689624423519867044515063812712264510731668404523623739850657087810257868703097808806291654805322090113979300700530315241941756946979955047292289168016573477720935672407105255593938671851883255251351216851736008248436154843370877314771958993627339114531236907832363134206367534816849053444011721194306673037518526295107299008586843665582913584529644087610084218235073968783847754857929886672991453929465240255752689020704691641889127617441142264259502158800304179545292482423785400494335869773572614753021344430172978224061500926183998868362755132135644089197589658736626182719340871191084864614034618100640165485199305604305750904145631338142945675888626222409013750670311460228431306602492251310222318069488065038136670734836480485438540733682375933777328402294172636017017670620122236174098987349682893287233993121351359924796745463054116968652134020202063175806087301547401970171763818130904059560792054664606366013607809316421966045928035977192529494327085002420001086726640240968044252444497932912118948154055610591373313285526434608991722771212618346790895141074768778916996442288904848194872899108124634372739721826868568961571822470181178820844311983844065020162693246751948684663809092052641408943353592045995544680345397668975273942804017114782362916762365545799457890259105438417546693959363761065036216012065953508431283492406807872349883943853002925698708221896355760597788525836240495522849183532944004614484943038556501801225869690707641400460166391400997251723247943001336536352932103347423568481539635908112824667156219486704101858388968020322527214613220354769235711022210632194716376559949132078025277548010521950666258570918396889066900845753985921896430282722111978116391906405524750683662058853643518736299212873937006235251600614378072759917807989586788654231175485180923962991812248143283768510560412477078455804453738350834921101869500989374927046516334428442519478242824103409215628974241255966906386723425025483557124801699845570594394720132368829341268583741189127633837498476372085538177338525148658513389881258123891037762479483111421379866379251802716888036164988941863265498862378694209025749989180560733137300900454453271589635250912936603464761724902409591149240227998754705768489230839646999594707455564338306333577537570365655431175095966206389847851422464785392752613579501911717966803247604352810170912599125286024409857463404958595456263741986979632909040441099318573835523984973507627484093922936489046337300373831236189920438000450224090106188334384737525822985923323386808172597182227236421940181915075875634028000338895325286176089350081984927749914339896538099944221585107636986042804078498817631350663168537401153799727264504266052713560315703537624573522109791694698183335211415835267486487082767055193557671007901684648126384704878421342747833072292882754147491610556024049364270150509177164117671521031763777012113387052093929820765163798218428152806486423684261932269971189542411516605085769594211125226404479687252366069768646732405648078486518817475414827366474607074124635305309842804016801748407448105334492109257272728169192743876754429159682428521777913499781320101042467094777747663061721946072539815502252086146326045216179129133931160651206694715544994481789732180286236610927717206038854833161383819325013867277427101685766903343406157659738902871629018147669389987662368937026347625756361154717375638230451344040744572894596507946020970671587875941080086761189590089300860404216692634961965246974958191135711685287944114854330050162751399004847889481427894233573873465021172749205359072477053546320293711638889615417008058483430816884575753443776568326333546736659744363978777805522581058955900777768659446747723124588587294025841438513733336653516656378362459540386909788682675413062005418016772093309570126781030947063829715912245069212068472166147741203309268367043247824420975649243187393725946387959965638322591168720092813860692920915933035794541641075377355167200556136153719584621990724511330438769964570211534890346105016507962317949617783461735721439684090724011094377176042618893301545245025123371225047897255106416563168080897358978389837256778857494463870767650213746587233572453921761750996229581194972613590481523726991939162725064885749232696796165529059318529824086491626019306832232224262175396235906576434051158241576521913095250281298863304904919670048728131281305086114411121659345701929482491249098869199500503900465620384084243539068138057942833313589270063431396215577189099006442368601219462431288523888954270781895152997758854640379837859112518273653886414600404237487644768216098164112676989453971783739116975898343072945962418405618091364780473696535248398438519033223541284161887645566071021335905626278612622649049576624837616533641286485414755551606060257839973866635196446396229173849386654093584697655132540326344825034055782814627527131764383173875594120530971097331989062753083217343572965862900142867167873453198992555576649258737931461851435191421978698707040186555301781465721689759761784070850911994634927990741888624474326647362819585141437933819125213497749721076510922504395277810711140322645202459337695560353468721993758423228702566011490186356924604808276352318403348890974601671860258883065205446871953899789710065332063299518978969181252036088109757353594003599364994556618493379433417517818313933192135870137827585955427422205062405398259758896137069271885475305055788872604006729589539354983067816263292022156130068683879379070178803271221682547212113507376117452934038326854046358505156725729752969611951886742994537909761503491660891306120895179926083464023564173807763459747164323718336225920723175326565953454252409868871622023877315163041382344431604641820980130411616167758792593042097215183179093326548102354900380628506604439053937949427002450379602085313380501875623491277349771638415925759956474639991590129298556794888400970377439281472550618939836974333801200957744769707510805060044343581848433304245145309908952557840916363322303161745338201899000129251210839496523524547028396886332129246657196248874553116325714537690164937283859799226255170635419760251409982558049177993806126466580766833918356964194068371639134608874920748978584915402948471655577697247846155765454950590783112977785252909243795034350694641200843837910847054515154279622868487080284259033750119878610497759438246943774681489990337320935163433440819599494294645507845022377528994402631676386573187564428370274120263672472740324861747632187856978833627628963045146223302427162788915658308366946405137635448813868388273630959121246263577551966826799849914731785849768652497224749918562278826051688192061173654005499831219677451847949747197275721133662614249190261128497995312787041745893895666298590981210965711042103925441088554629425850004780057361687356047840214686310471708377692205909278015272255781809058674050181565756563921149022668406673907810656387164125820890504218776669568841764475061133467961787682562073018519043447278305768706584299214178994027054393677148564044475580452366738331579732158998097273563735382512612656537119540801014605537550056337272006150260819450932747233085818708613675245879175928395268172629017413717690373871545228810963543723913109055998307442694025220335504451246771363968000288263918618109552281829739551000919232860861433406116523146597640143059971429825867685222442399105148076514413258510044359803479734062575640482990622097142386813712462070615789243036165052577159953353066958805754466389897067770861009330925454495550662934963643813686801607375941356715721688458495977996901218358816097470579514743875904233909203892681082612436505816430929476748844940031698184970396600581713944701226773126584934806891323620626175954424063710504831738598428232349522148360437630761056680255425534717222187736492248952733348256210177417979465028728047324229689764822869676099880189621550642523351950939156909598542678973746042279480962939844283374287996275817798511406004773558070873106250740451786700857391965944554057643239055212483149400972500205861711552525653153144887924775442365042734572388386257163582063640639250124360854403459074573792263810331003027993707704859463421272774232114337638539761949219240346786049249915259927711500676774057616925527340600597219547522949379639071691914527961514377269989637351915019706567482823071267134404975060955256222948739083999201160822308447238234876631845684527822655498303005445215499123194392727382583956159709263186045299997973418520162545498177905304588673421019340760511314761272439870746658699035733442052700596965382696302062800804194100211012604382167016679525943216665936529686922017140467925480982418143066143212377132878384284537494576722334091702766779381563442008621660872737820487423883355376311494087264064776449957312851470767354095427981242724175173376359111496250327842854215814584521125211568042172673021572522840922149082701049317696157747364696697907850645189734021123870237209178164115060828788859454948978226308877253228352524675583509257652113200168517376946096666575852595481432316674746526015626992661355692085319696984559242525036131595637098509167786635769632845439703351695281251489003200110273485456719836971199098366997120396570330555081693587340906114432212186033825842109146202110122892092763381210894444639266702651765535662530467774177947771151248656306199443208315516940497878073250591245000314764700204348420049334804814343510049675102272136831045734004244622632664859108412300116005480536741414270511563934890584330913626678245848811975140599173163718735207114695777995216091695475475442606605996814640682873705125146907104600918768021575908662786896462069295813607579027701811151052417222036319561189077456903291897591518110171729199379114898457757719867365842548375056722063942223773725457835990590035929780715421077503432579110878673430218402032896721273062088409605712771043294046411864472023076180643101948143264082867035180123274139893150766557759689087136131597581311945875606020162848000092541882968668165781257554474115717513550411476731734447775103869559100714120766278223117054791969246128743675510335053888187265902689745032591865048439091137271961594783772960509371330540817521110446112540343657465949283061202141999829862817306054723257606667124075337953407629753196724221504178377299643650927809903857900139276588956916262206667771999355390589241712034685489669331853794420352900197851420454931981053082731747441790966829403229783264672026840584880610747954692391219042597008795152011822220654595888020095402503689835452494946659492379469995048408398304786334898030908916884211048102638842220584258670299984404907497602745347725411516092233061036324250772745052575949731591931746687233091003787723867579864791646871180286918537977831125790939952476776711662467889163661371907628366627890197939718439280518135500776781422879376354117414473971458525694723009755558143687723584294987379090957078023607718688889645251155151669496061484599605102189817010773432909963678573217383314608540480074313782180584617974027564711290848637368264767762136503690639834443398343223939073130621200072901010622239850827597548412704775919513574099967361961463261570213496250845673584754435263757939651368468566593503704400930017055791505740997029887685111593648429643987616007600433868896476451806883442561860633510431896070368809033574966279860037847521572969866064866079450425070877053827887371655910019166371690818672252980172001161878253071339873439291533607545108660312294545359330761495357486438262078615383032901261361319116513515731020221138073615730664532567542457763941529985070281567940813940566075542924255746615956500655773495641959378760546195328670887801655828824667006065961451108360885659659744114553709265793010639669122179424512524658727509058239758016713479420592890802483838620093943856642899637572596012101697246886329698390018614316793771052170538024512043287277940656728689105251606937324109976275194797870212044021800320918198570765842880145893865109006960824122931839111522818923894365866059879939204219817204125348533641570929566461280967981869937974714796417711862177740115655948081526360110821194261730454321376713851645990280604912269506400173268301502012672215082354171080014755362074574056890255618201994692799260084260810905647539812644421086749911193823687991108687228608414862238862060039823596639242685050610356805982876133125282408957286845646526891656183349121482575015108271003517207197108767527864010037258636476579766622933827745433508210459087971603053002981680198803406058259530856918625847633945106989756618884961122369848717409565278444055707034518516304981230041333679636565005822248473498120908229077923046333771914916310454323722758187698249662740421924612514476063777478129942775542106003776089135118490927861547264629113302680142910920832622190493929100277050657629517200944618656244971918914832988228095249853537688386025747531812983627470517778651128519842555311199276795933865903630189485429255411060481904182919298025993673608776751308086891720330629820861123127059524995607857231758009196278699246046686682958156221528409128001979601572109029081981764510231583514682234519511829018917066817154511897084242209694499638677682563105365475934760904152874874802719098973045042933777878720612339597350590272044576582454718794354020456335162816133052114914605015984623280534643465322823186762493352324528218870589709261648732804754476186860098371398712460182912726648646115780794416994440320581852502126972699000711424527887345241666013626274860648434382144522445670358835397453059490589091275145048537400060393307234202109335944601947584668697125609967906555578597486989982000312985859958060583947158627715780938781086747343630594524191844287668767687055646580281212899395473326437427048375979166858579342551754324011582358426496003679690467771122912840182141607740640353191233100751759150844411265221269408931780560479366694514538625458099340315508785823862962838223582404665415449891327127142117989881777713521968664629154780046889324667797830318282349049633974835318834875171157386964351856683975446425686090956046338173029170854281337070555752596503416787070430137759252338015063000408516116418609781931648877341248732701400308388250807662954644237713219957348391096751938232964420516017577500404967410723770500442599233773938838426671700396784111180605273632389093088337331368858054665288264216953037318284549019761865516531689286486777437057560434327950192690634594807945873920873868830474215636971518647571362154763030685651169117183013747825766866559819786216134630527759427451019554978724312389072219266942719862774203257995403833225103299273333342738645475140226076184008560787249460740781412592023691805924154107435233195903917057785528873474020315966978708395606907639265096814568694136616732584210814206854608853330759097352064967751043142831998869031992417061568324442218457973848188364881303050962077266839236425847449205995062441020247118865970659035052891277661382236755124061945855270696070837518560162186321490333643114571319080339588820693559793593950550091779544344033969185003355459773414412175346243617959073901793261456171022422014772908468060442347686902319628144682836685850276172445394963640940391517858474683872307222087334049704805708708283939512461710337340065820832052259848403490550531981374192257248791989672913679922974410951944158197195451055367750670202134440284758203883589622747125956166790765963039754544396712807062610141530061150089349739572082109061294308408756642727554130470670994361585119747360360179781212705284531368740146752186049725471756945357491653255327345372498132056153194222706920359046104999398520695514649209289921438803526073278562236110118707219697130807207135201181052190480251911067217929914812581919285322590917731306961696810816314080283136659418062379359723922356568903902730078101707614113724786087074745579546924247771931129230403785736533763456563660649532497354794566381499915848086588005090620431750701612538391257569331520936640740294960958307516101564599400237033083390866935561463914814795694570194104634841303380061122464592249559270014431301188222567261234218261081264751850818305924077764814421890926853015044031020007075070247123452033755284917000724947321593902929703665103539253322073845770380891600779826921993284378699397245273087116301997705852402051650926343339737326233075894915855174281806517989520288284983621832047061214873314951013912432112030355795171315680330298699314933549460665628856372343703064859941244375969286026865845737041259421796799965227073630578500553565485406975791111255231859717045530593456018828745673277851451280903158121721173785702384989692300510716299302437517560024774256262628171648035936837703321054119153045699721562294507990921133555067667293083477264403114217341775890115524594366017455948138227733739632193311919338742457770237217312759526031249086406382110581873162441586909202421918439140933360067130605068435456698605668913297995364707005006726732726978561564861461360572648507225552294187031787558962696214949016192881774539791326130222879304841394029710278311101384853614384256929193678469500804803847530297141028548360621647614023435053254345965389586079446780583840457485504437978903063086367898664653193294804219053111141280850616420855049785557105024145459174631663648230289410368911083425145358461944659019207952742765921880640533793120554325959990877120522278885368383433504694888302295312457014425879483543595825574687475526350632211940268197268663667907336021185794602548397109304467716997153673280309937571525313113830441156935442182591991590105186878313500547203072290458951314649138399068210510696830818895221912720835312104145186686704545281108847165787068217153185016954830784141975293758383065984033601485088737410381847769851070293535494403719447219674362770016567929909336072192054516440361999570475601501956854291313445863724324725052572736638530615712808360048022703167010124464619102859928603547801274372730391210064601567328939626078388760636494293463786048369996608162425436086776394759499494869123423566373537929190616565078352565850734785354676937627435502657430169961086979907818121088928212296518536371779366019634339246252494289596195118445306914331367220747062305602706190680616328041370233026607769313590961307477101785903550656212677503055645534513774749814162334053786808359996507839470784539290180763329414344141721762556008241332212387486907824707676824394557652377448284070178149495136050834318459754968062587434149457551706152371884348443989728271492112915267588623750413325139753982486833881307584700200368997059322834963024419601328973237564940615545180989459702657445084781605637277175148863291459087043383670395119003166448247910394328146928218807280355488514706033723016146797481593020254773161382122516170929502315114952316324486081082202067064663800533196294874414260466329102889267610023734200938061071497821015482608799371737354582637597517307699931781313465689259044664619785582968703045635126394494980189927617267080410828823629022084635071013663486760716025200181990638809355850607016129730045409724132799423899880142786619971558767753765764121435301148044658211883302195204589710694161284463319138044951204095046921839811727515411464576839489700174013574533791702359024323325580147015693334110130939154266831816950446038862855838592434952812814124281004995725820041960918590304179192085563953674702196041883848747003098401433283653321975626128522831332518832517642300287604423995824916582180821827406430780188429962466442977079640942531614837647360021498532636990245002935050718687108108736093403450092138056879488405064455675941685274691633404229399217896231210025784445978305026805365725412253482779124181416369420997651460932116149815626236526144516178094370412508552195755163766067865491093081754699086763839854186199759271147084803244962425776349981860624939389916601994551663181326202080296095548857718193428692965427641685739621356849267088620555988681394738194922297215432893231603621914111328532366658481213508325581824130975662660839279771872196712638365608856199760907166521324433093651654662006105898699925105707219466349831155577798071482869304613705391532004965858081384710048748687721197712291407409572111642651517109511720085173502826134034208342891838327641695512669804201655015285695424570700036948992146800291713409602950345270032696681508331292124853858031061721626713159602894778008623381131267106864623443226578593337831808687313643413526887907374653831755476870385442666467387871087053600913393418193095880661600918146937008135841033937361942467018991780339136406497494475869213723677764972599947637132232247640085144741575514357935895278562541273817024881491494210555636228159750136770379499942026992441035200040843791626657257642921188308644525229948880999920366055551489276790263973047056499795154838283083918513897870677686591395272579107623281757057802361795593523324264199606725791808434810086961438158561153475659492884247499109973486859744855140648577242931142789959493470595227481273786119341629093616755669458134557408426634287657282591541573435351850579061035524211269811668350800167204652359960162424381591215208722578550046121677948594867378711389202441088995864280917934326902360891755806757717266273597913829840051784582993218287052727740660913347121344931327865590156773752410414696084018107426858223336882281548890644988737693962685172821006352185554940595163066424955668332378334061416091177742562602452991106085763168835594739717108785300738330114418355450935124493210646354320089705597665395477686249570364403839267486409047552387953940715338632230818183379759309663554248026588709569080424969539694372370977582422899125901789671707077201336742263524637299425511712396913385111061755872016096749397129800766124205653399459280799698138729855217649218576757537291759084124519838620838492858067640942367831804490860532671364667266349246110862671043112000873385337926722664966213434553314817279470151340073381525472010446180139953316050931944167914262627606806159240352069500165060980300169392786079131735142796132379609320097831244271763401628028388212941111498853810196250724419979418151814795901288731313866542163744045163470337390804503402615126193418832096410617071702967747930253321096509256233684747370519668597259697922313424324837977714722754592304031937995066172229995959547398782247044449438702897308044942291539075932563158778929661762976086688158685310455783737111308979823758384982221129636559821671101446822629786969851092268868098657337157364378229800385360811036513135590854005969412908852374946259282188183430603270055348543419315588353772594155606333387020012829542358788198576778927319954982507824042629035082391206136932685906278049891371023056451482654159309948228025728739016191135864229077683387439484065102218710397641460904674223100656864707953020223293804208585572087541350945643160606890566767460730878703754848771713521850318749220320047638109968451550554331984836230099097987871976281763824711958100149807826320752886489879050712831058966835166503816261453638353667104370598012659373503325128733925905219684766299516882522178521459800008228347562080022866360414741006532902566547815726615352307786925414563680347949471750681609978066505376741955497042543908471847659456823901702495291628318701591518143933682693403439506648403538745084377383078258528713385830415623028600878932586269409569767579124622029952845815232595352467349306565607180515128139452436711210643044644031970991391936400209507669387756260634158736531128687552029897788701283463042451346381649321303993895400897906397948699956066026434380030143124734605149036407234724630735208963453155266132386242799141244967425417996621669996609508570406052967604743488899754946552517193902667845502108698194570589702567481120472537614878126104486812391565359291499747033636333482229179219293136152481281294795380484245583739660353498919148297878396312775623141509866945902677060585033258195498889680675579521850915172744514470347790165674299970085222230650388506866990917099922651881117054505602713807936627124612231181819976594363709842374001522256358006506161744277139645109211346774944137689159795232805034700234519664978140535953289972226694579933360955690892765292188161651665879245971310424235024943701772108483227691013282036098709616929711060205529561996770251121547651570509923434343699804686753190830242563406357531108724750984773835355205217036736079926281235518347960900594492589409900144726549529514973590167121099874977174122709718129303661945009144083165592678582550788420753909982738072606725538480240853209362693177066831553040374637330397938959394671728905747502763497939418293178460057798825996327912756987811642545705401757217040240501434516555664775768121666171918999878309182741795697559276077243723501800346926639199497723498583579843092431498187119105288050757134611108660088759130234543333106357269286514315746150179973013650957243321032380829595566693049415505597605488089482269290542414071364588541995809107583056313237853975603969771724573322515298215374901713709967940452223155316469029099491990550494164329997054254487509689692562457570223546490496913264571518913685013918459535274049596374052284033889590712869838108741123798490258003240831006364671647001674740382634719523002539811830421270343092793746884798663129398138597649596823347965041464224366118560866843254043063708725975233050396624423510587751522367046806868671151448429320448102227856821450863964691955191369864383393609118663322053875097362736107577115155978168312736317684830407092899973352866392576052434245279464529206250586091916418463305055029235241547587974909364753863159685202061901672516408634321812184093907532839159615779281708055127358047659155275161742301374671293372832086632919022648653691717710495922106027708653568553205536220598260983561925074184761574225626265635486400356643048288413857027872256207862903929533851318639865385043639222870237522926752411310563331183310605108121212729534446514758509287043062230065363196133646616998472361853036104691116867893928090384535180014160357851203792098517864396687134767163287204086210224461960864785232188355928631335998994947106434590175744589087963235874841521260182529875492899924571389995587140384365799712531173471764951037045979869588204568165653262067205496519842958553506786055451521183571358277070491398313882568011228084838479652425186195521090845071137900549103438225327857819335104002667434414640973769813488688358068210314373469405305342592506496797012366142426656963569084966670971967537870236141999573508730915877981941972278738383350726139080053250774063830003184732266669721862060950919273462058760007333525213756828962715523161936385450102434220448652534339111037222132183557075201754057899992194215818199650155248634849907141475335991649962018660491830492205126644983081004262853468484360081322512421225541634821546529944196717727966311583866346179586338691356404634838056058826941902384793358686290696447065558325528441106983717921274675420865983830576218202423504971125853321119183014483516799017449759003441059371132214913951791990959112829410379376147514939469674262830027054586885347866377399991126956855091684504462084441679055346728365167057312286188872743146381815204894049066403380397325018220253031533784690341107960528898814835611600077899834828479479891917594623358706758035318171573913106073362433574242690318385851289980773370155894781723890308702107200926233910904348046909697769505653376628523464036142641105859809641044065020000632329462076443748600700666246287506953632615617055841236520427400658548907092687432644974936675372557778259296504314367981895194384155104791141487497032367142805473855215001090766058587032462261037876902562798829027024880125735546777148625546386540625082369080383320475335974210398128251546905120385210995042573149081998079580642562786748722309964616324011498572405362595308444015649661563637250362392138897094725210610417242283875378642364352022756650545938223022956360915026173053741098741893915030051601931133901597612726244251589808068600525451531832586175811059395787366585066752773922589196737946842241704654625893173821610114326078133875957958853719913399429566504366128498362552851100647189443844707049842816958411009807791041260787257188703756111849360240708337246658081837224751869907741038378744999954490896156834605126038134943146686466562268386863460635750079714132293572157770629380838536282943560805749110393177716533142010714076744416411073640022436190820871307639476915920821105131343860286183402786970937134968589818177580673760816399456483301330040485614921579052453029426412710029106629618588319609236333498753719548995006742550390352894798217659849630557738006887831617357342512701068564536107706160362605530185652457867259728954598860696054017801167465706040182508112678418271753995063197819890850377069764613859097102523519535990084701275169431675752326032124600887726373321333288162093792256597598598108098980262778101494493757967656065564709249387211176195303229930808642871084728835434429566450942337956473002556914847665405802018838824916740095166745659831178919205413774988541173977065368895662521959329327323961881619754416477320882720419163522762816579665841123112351248907954955334941173531855883691941952349470580568932246501603577639186085477856993951019116136574108998077568277311086875836127001831641740411240873287300143906513193072477093298847902222790881766215443434965339811295992155032325160950883458609071879840813785901181557941904882259120996590495276624294905806158021781587641084482760019831462937184981043639214506452508539561669801581880907316261256237836445091609493921366106587682489438228451963377327175524316907553270005354732818322611871793740103442524240076587567448009117203404712133079345634544204700300779214565725420528553985679308319275440782458243392452195893220775475138647396340061701253520260270492403704718496022518540049284274313239170337188843130211081306413304505850033062419374612458588675304668120486520699816120391931018589869197825080820807100166248380596166863109065126895405957095618894606206179624070261582480989326150338509104255219391516033177566664504677292227465208140899804585005344091521657255362767294355940024764426015198260529257310933668024674479053224937469593778996200023236041027744801667552790419076989635048688748286723830260231644908645841733683763862481165050378211603333548857614680602462557549250270803241838307156965820786615388450276253158792229201723479359583034031634454478510729588887135200328514436398523396494010918509866393024231318430186030369918651162096343074967489611725066687130580271832144430225692269761649956787411964127139141130842761365582987088551197095867437390482419792814250245845250330344487063060354066012324409767706695265007186520741086604805962367987821225871218155681511253800409951700626188656229464491430529986801956967473918953336704910752951375799466600207260833606692529301986332958783224154414893520476667338537158385502724456688105344880098301844506145725499749589792850564462964519849615954963183462854769347358377546588814818064293554335169678712285511248212610854955650414283651534364332928743199514970807003558768260854919791554037618446517018037557863789435778402256828803439498121347973746055477108203129247199367983808032046719228327514088515876445204328267150152972498631908402242933653277971609530486719925413982814642356816241325260601334405336047008635592064910611404617601499056914471251000290770039161218734019852079707165370266587939009604178169824051654697765107969966930240284355571371272192336528858782535132322905376723532591783906612788088620251043292608229675540926132037827185582059644236859684987168859395929714751270810847221177938554319782052159929098028884616342870935976280639816548381353568379981044782966687652018286200434899196504654214758332508975994901686887761943877562311956132205269033138297110341082133801756282533874566250362447056608147340799849306118472045946614720319110291857259811215960611291650928017968331644470214794581974911477370291424706142194164696602103129213831488543118119016938675676466465018543258912555508577670530725065410610058818308731916046836946856761330385347206570913280059623966515100563773540133864610144764143472666014211912424861164139650375889029879205541255221161247921851386633148765282412987079314462816990442608484433576121667270266957789199139106414786180943968740576539586396808414631786409029998127831848579336606175953861070789150744058632901888139465377355985367014578176477648635875698794299399688724960813090170371877783576258833135650495797352101227521904754431256318504606272937973247791689468585351731570716529474761923347470143100088858680985533218396549377830624888529426882163571872061927699872322522893090786015570751084664409006663715319250133092587294130234314610878126226142085869001259713974363161113280087909369929227789286849761896176228536569964023257486611047581012162757925073034363206712748293929736293556294751902500886152378347648970007304532696368744417666856280867913956051212003829755005559165859073214173062976052934796240336605312786743459192008068129706375281043489641945151697487493627392304132550753108674525095160565254991289850078466137420558767039287039182076311245571173948746006575639671518842920884441884763833478701514191490512606061701670969633224536420551408954982739473327597947502351140528169116892317626008742749089637843678427154246594515886176301009491411154497927392571322084433119060227941091778642204330242864589023466437109723189241769323116111651205541592401216971029312931619567796149406634763246952432904718567654695771984522909597974120177246635510510482012441547302331266602643999134235900491196967028327213159775216511320279749673846599405824474666289331093848593461971634755785366784542557266431996504948430461677703140738708349197383748643865042164707771768315047993245126434123467249607072702081473820315339119239368307312117101923057379513169187741978977627186003046310316944235085060065108208755409619952998274842792746550274877878542421251237000726462914402104116444630875390487785074725890965340341152494845913375746612876369586632729677491028731630353931715071542107411642362373340935795519887222125147616466104431249291600564409893425424705121290060219256340546715108196667699471470770507181228528870147651858279908404108064251399053687921189318125390547651292390505085377585231044672286811644103872033925543208685601402519757874378685914450444475443393854372175687003121111905220698375028842264000297581193499091008615190898424836425895246037058874383150534122820590249949672288832545686393373850348333881245335347411274514039397904243575594014769735755649760428839149652860585107389596175885946983464455972149635462565508239173565421943803451588396569365046627954481573437139009726562601190570574152548053933292446042039106130765675596434256004121360577360000728954861458400487862123024252437607722347732698302890732103462411516797764574744504748907496840102973553190598534838604949907626780381884689221006646882699089733227418455893385573831216938386667503507479665933925809283519718680071142021593246150763857325667767150409912332261464708084220101949057122732074395256505220376489337497179526842521212462422426032287268725656686252637890437981286376473415068643474897627853247728390987378740207275309017107443686869460456005688780035507866978589635988566557394494611498087639085643225041179127024819099897688367688230280845737570903607402070671269136117682562003598058945377361948669398040155176772907463964113460622941091585499620903341484025771258589690658693791149283979785198762469182743178750664967776307940441094934539760909265249981120920799392214455423036016362361049330041434776739470553843025905105085511798145931678708531148017134529803521399138580115017732412954743716961349154646340168812040184793576763763506441749050348629340899688212742378827461378640053643368511799161905462321868606168772800096154294832534632190778188596620610991748253455292526962998811703866675277423206656510918809696568129463179928971904107797377504756368595995197827939790779619246716015744947128992953507323170180492521923546146357571614560292623468468354298804330479594037833792012587650577943700549800477137106846997998923674379665973921439663918770081016289375025271025772089752292459426398538509745377310951975888888608372794163398952702097537888139993345056076301411140880940369592456428491286687174136915615129803000440876868731695137706187630509664794011234834763809877012278573919987165135311893333126804870217571050120413639589719987658515911632215918047816401170671461295989763605180453754230327924216346135911903006065762817754955152218827731938453418813071189628484119349743078071261425336308014602050530156791158005984662840081353801858306491211981013788506114921175158172485664102628195975957197632465014472436007382479734621597138345236805478579255245134741432372114590827261356509651969579495015226060089377639373999273991362765505877866098407387750185957679312582969157462504397676668642155418970313767431835378165740985231981610759915194113778436000545912556089877040888394932370336918467751094464269627612892526962446314188972484845102896960430758961709658886923427384021379597030205435127798442445030339803429690042199251574834873049190697387146877327393541059325420677800404392381808859684976988424242873690120830373291929996003557578804399021750432611904555622306006823078739734610049999235094886693555539342613373539341930132130293173842067636265339477818210515798170871635461467170163683938881774612727911823658564983235285755832536653552428346973406293864350659473074371870315788660815840076781320693453158561425338926236032668851819409198135839569945728729536655305019063966588535195510056713045792329774845104238518366384333417020277143822302132255618068902421292896763440282904194769459116576908002563434785247825776095425214427492460367469502239981218742560325896173696722179920881173999089318541652194817925807372932786662228755833125080184096732553285474310578311905113006203915140021483040705448825490587990127750391509513211523547519939377994599989161088659339609704815942026346479720358117750826210079491753776557023330450880507588386884470334060989756731674847801427240716933119857745200155326275076331720434312566790990094874120060191077193490593508464869410173105913055045668514921981874160077449046701635630420979695282322879389728301415974681359726453053485826137575778855150437832892113840767802396618882927496562583824354211376129896189602063095957173059873927090183379197661045386774050399099233065132258938659745580882377045911685917953218296882450331374681824964877636887992412719478843991658136623986421995813019916964791561562951127424349348893006665375936739950060699715698055726975086502431041284374035126839843571367876386989813127927268561174717264560902550438719916614835796486174480794335053205921206895684183811753608855619739169374337195953680837034777737737789396190872019250759739065733935933774227997707688655594288082959315013620181371963751580768304051714655501350925084128850984112580783651347857050456593517334069226824620278062051318362270908787292650199383293241053268517585533744120819130611784654577439087701754374155152862043819875389380624110030563483751732106187432372214255652887089943362328516597571172053005221986890568546531604672199818114481470538089558471664995372918052393591169193154420331666768943899850499476065196442900485862860496970076365391742630679965068652741976673370426190302134191529978155043884221510944386387767693163553757031224753884159983731635571439642975849397924132554999565336470448113733145029531944832687908241547979370360845703985846743026412513193747234304300009937813957452398902083481059469555033549440963935214899626999457494859635359881121361190377631777832418577103676911019091210584920149712731040504249924344473761919440725795309128814066885330279643611151232397753392640364514097857433532398944216231962854118282607970267165479628707181294045786365884157924340978950232137046505787788735770847430042104886262532317350839491343594736774911778076633721061281611737734694276661722421089842196337058425901576581475304754588447525350141371011282288115625441357250692261928720870911425158019307688385012732994128623137647284842150956050970505854918518323864576146768215627996034350064571937487346785805736780415858574001631428492675917190491091727951638783574813184401732192924771748864661025992665101017766313164327669599972945445056809814760847934560102124851212206517845468911402666148781428616870173400007572649987529004547251188421336095011313053802336190488136165169765301995001328300540825574056638672101339315917552197854239336126983001559351734316635118773840549648116651419471608703658476912781354090676537591997411511623566692114169265643410631035449592033843739620888926090942877039965470036488027002076031907917999082974436807858280512132711392382760950718139418552248363056563830373111988438762852825131809520005101817443149361532023018866760772729116555359428087235235625686317340077707148969968057741598518504455468664277742885460866425708914944405916248330081773979503802380111993539204495599948020104401474246444102209228135521749715325204287724658030934247444715722253996452444618550617451818342369242011545089568102949654528823908818710925204150544412233336189317050041233203000626401846414750663408006266176778702992404902381755577838330444533063347373345107439961549284849404264476899732533521902160827257487244485086104212996321780122675171741239949663728659804854155813869820255995833155733885799641734192400403543393791287616443397363100248909023230156207205211190214434550585648295882994427858117992448635371259664555658497619315405590992381346831573164121975431455349698428859195685158263264848228198560691815405257878222081092136674190504646438497268337280364137198075402643864529906259561993448221427093709104050909637009079828772697906028705953516687914691607708897333988074859894096503278938914277157275078475443615105509357017347465321652768912127702139014183697516090286277805421232185378155485610723677727533840075195833678213500503871317409962512501133705883498729059210967640705154470923849374798217744774269171879969254017322845890371126731033930898063626271255967703364032091569436173577664199419854059740256983768011068443240790021851975073930592733575650333257805145027336177907010186461671896550395704326694752593639430935507908376662484518928724674762716047934911774380217418891775360448111054564049514508514844603111504156307666776482335918003398421433438339106660707595188233297734947215211896270932884860848231157486720740524997410341397740586630641518367498473190857285423134311869202731346403723529286007787356765281486721233671189969484400853128767879084163831137554499385698839798611999853804856269676721564920880208453213917674377508656001439359787330217581543325228655551226705393969754946256673875738135123224985519879293354694270665604221301321899286805818403642618591411212921028403953154060603058439758508269489069236575899686132771288122754415630285008198563512462097320859123648499462372840685992793567297400641761470112950607577259064017115244615582899125458510950730281013455963731321306678777286808258992621961936255926745023033844990569519688118246279617514894526597511048665726487869366434652781556019595496290547978908772353062511850016761345344962846441198144996936039099508811703846013253797698673508107104128789151422035902527628323351637868959940793973376673803152546905724289740329327668687352103270400361646918744060984139881914829265984582052249450213089500429108150883179516753795273680515373548108480171200391935491139082035084338320519643892826811963129974514860266229086769035808191838121519054457379089206041000073637478946571543099728801868553210750260226070727541391880498547171085333303924574781494577143975661208777889251578779692921743330457102444094224343889742011099495499525922225076631233058937443438811663518277589365173887585677565033863837880652242145299422328766995785089027880758017080294583019964006213569701655824187989086804022995447527378531103857658377715545377161476826435922968943910087375523947318298538157438861277935957432514566801286323282371221294903211369342551589534233005406519719654898641721657808344015182923278183802913268218428851220820226839560934736082845958495930942739867801142024649649649160054900342394888952288848406940708478362928200001704410838550987419587589328194808504529740262569194154620748393336104908594491380141366312367628875600912630820908042017676310850772905980607440094607758561582368724129708912139004234191312782403409893672932286833322803478581759982081800134072478598525728624825749808496098262662438209461487610483921894902859712849663370451244426258446712411114465011126777885317497556326550567888763164595761608171545905348237369914349398324170591073863696588914934765544110877576615604761649532161753911841247782965806187630294034189713521374033914477354634502802426273770108539149133876605344876696483320462732194844328589084914521808845267494900321888337820049018703352556262574650595652259605213454266775013453813460485291060291398659847453981271078397506649264291026555946357533316283488674276820912721705348517344062394787604594336962521385730394969925469888198440419518405721421864953546971082076646872804246781204605098461468831988373333109631273105627607665101380492476225739336531415779796550510631818045424599873542008751586065886001159302157294585288491420776815682299877472833974421095996630804488684664388046547680436901883495177863865240231466598163838086340644320717911391799613965761088329800190566991210492687699140791175652563495488262254305115739122884981230123202264694997443338008015658824242316973236104359579816432520954930731127303222714168095234087628726342016187181894667220732098943610781243308117241360331646877239541811823704190870591357361663593782144588791259732755515616615904304648159712626698710103869786585674905401950853607194874425569551723385318868285856463144138667514300994809938407710180062395085603903671075848413185121996064213712475838583081217124861844221788097351352811337383865449799501775637397679136025430985917321807564133706865439460403737053002655968873717327188164603321686585902097329004904031595665724250100593707925482841258115291403389833361775958328169870080425687436520347083759892312238744845559951998292183870720464995156421681772778502881022281450627615098046625238861568720774121454344205011051398875585667874594959906462623848808851237350449989598191656974472269261802004643325665384138533606485799484123325095742794750619806281320964737768905225977581301677635605736099549630867764428300565711180052335749178490529171061850424052213382894385244690723737779033613123836594307157845520925767951867421783649084612432546948207382811947110408264861818864162521081742162281119243423477675518051216018525639602732324098731736607476725562953923663227254361195659287692987130888903191892606111170971109987206118208973365840139849072683277560931315661992619643028162691650962852770612575386107979931291877527623471385591263950880115914315771283589703644507584402220819218883339668452205235410410220393114826054236801731271107749138471464531219683165393166302222599713809613952083448157626797587349911891362852286427802991672937961724504230657983114141491257073258895212919942467433932923727302896860309123983428812684843252193972988149103779146667429336296476613320798805503537208769821760548615007942552540521837806921444817586576239313569918345565845128616178357995238794998092369690850468352246491709203769281327237857767351050366599210518084842056152511021547539187746648709523260384317172773163746420566905247301956589659246429338488387216949605026473272858648898090292918603099387694059860350069613351737729734163655129168406290074173007113637145264224561268534373340644026797406161413877094800565919087447595010735609287303607824056253555727192809812003876119263995182765204775338471973283471144303126252772070315785554221255266037898028930253062914601088990081954159056562012370955516783194995248319521784489525441869417298132202306654913643643114823399963114960447634374882694709613682558756626434755977158809511641455123119878080686393304569501237972762093361558361292763914151380878384959580138938439941202023388683904510414108799018512768828443123780557257690571280854131276765934644710332662837246185448049027136510484620009988479225353136597905591610155074110348408868919785883647610497246647037230169619887762005209107396327060727455860661498428049133747553828266710942503867634433918422160755339033120744693950996486261293287352539402910135348571147535349071070586457434622519995979046966918625330170684299910196787725880431737011410903222960918405211246808008349695727915325879017504737520787568098642126654815894484800280240077024470572935628946773162722373751148472651039634451958280834746365287490853379174366895797226301528104596062154219399886114829050220773608654530781091204184969091395287686687538293389021764504185130473349519754597320089717635449836394607433021983743315961107172316461659934405042198729745724373599406255143431081319964481476977046510453780151604517530167170321836169221740051574914537561213825561294640348745104580896814906872001633338402266113282770369847248019531238756078490618937850057791486572505259489546735736299020348025408386985501814177609391890877511514059887277314406651174674901848404607989088842501234649238378602498479068362361096939542225027449841803683081955067926586468724959906374292018615788343143272340316266351691130801781328049328874717344607068834160502817914663340236328297582969305300449321410056875775924714419756763950774634329545996270931360280224982905777105038878379930646202049558008293216098725619203162998351017483705154295280685842377066419246661547774521570634762927326132265581032046912183369910791162548661574424756550184874722147240588211631631737946650923262621030094973302399263777635184473040433122169788039950403834160407500949412539651881806613457466794015387839643268756536994619860229412291514298725185406043567760854628904746843573720580669213107713153553623810315673285550427357395173017850359460047270443746315089239924456902358758114008366853508103512633598624618788024357571716366210988500738629824514314999379200949223360553321053937885760336582556247817336152491943542899471872826657305375236856439381570651129176762563106855027805539475976138394661312209271965977495033846136569698099588201682062130757195167413978339076414248563072772932286736809977663222570915261304283140338353713429914318149215914665550873573098622801199120688201619174292377028962497393054888302008530961842049684179971247070873461890822431340626777825905326090245828133002974205147038751059313737999055098914812976102902646809111147898106279037720313194864635233454913165731882072418423620113788444272794130696984586084595763687662687984185984613801669604018499826815187330442734470009660972770015285150174267505758654221688412814391104618558762549625930004384252001818466636041460785514762753976344569057210305853246068890855708334645215424208576809747963523729040102831246798573337506773588155523745030157610041442437749640721596160684516301000069481149567036305414677058959572551978534856372381298080064692202310110031615885843371775737817856679369507945546318128422882046231944397506966457316418441380789344161417839330559557448135302404849971409855301469683702361302578304506895223839605111686653366495454610333020302360957668029488698627395423817539046272294853863377126411797562127772865466686025801585790169136809486470550090115530190115096068257486419980775118983907680659165515824692470231486388709828372162796553463742521434201975632244887744389172506413507658078880683284226993221555549431600421739323118403891781547388113505148563195175178632121293797215891213726495045511170375508048325842927219931738796542865316736138606218726948936763555074624406033595729396809886674191441473339011843057711614554206589648162082268115200685384783462788175903168549879951700833610282239409476377904329073449831927920073543649706553207497391166982931918797674144850551680300552734557647302270835132818621335332082286021515353384829442728524521051283358840021962829787935857193184847880718479505854891788762252077965121023096930712227049555374726625783554150507863740721667673029840702916033071297991542030037411115476549067227983683494831028693605854285475053601014593005719092775502180274496717159658382729801555330428979598128768697380449922775167991399504425369905443141777058518343574488412066782858777018456781533909943877834057077937601638662195659679173519088897232631897865800977817632643848622182328216828479302371330863008990560401429717338812440526547434618246111060122598694004859434341825987618995119389274062888979280810673493017595245413929424185273508814781630339537396918567002417040613093055363808206622032724007915240323135608874876511010256218500973429000142169088953571785290615869228983418159788207300899984983333070489571111606614378528761708374653789339524699990580455522923139220988551927863023069030258773258608431670295853556544754992416661081438911466196773785898767248486236002208835454811359716702303481553182714866128709239677150710524884557057144259840379721344527375215664673132876457561022642967097529017984333490095418061808840413826966016474977810226879126650035224478132659954772702310292647521581789165071828044956656759257675617806692411186142745985661421189782666057419696640222199429857449591911839880986488022967444136092920684139938156492973012787353601133395640385511360333302544713909104747374965757922075597216070291679191796412717322632309557388345953589465904928023530013652792005218513861257662642920002113682719996708615328855654346980829224273087776654557793316928208663235463659220475035326619608031536687508692906438951995777974108217918596715780968020460476795873930998631431956281905421468349627211172539564919187994808647259701006777966630833995777517510537389293986873993289438427203999369592368837137125264619160037107390601649780792265193756030846628672496735047456709744811505968559957994973194999601200355896609608761774467348781984746501997119810708651054104326920816432071582018180417251036773716655675185504312381213535576292076092212446119055389007588478783592258611233656883794042667270967284788157380005263163327120078593736376136911378771333740866404326219410592783171742110917790006571269084794712108236447360586929487480467068941426116534989829052548151858430963564146509870903266354053382376442916257368590629142720096580532521883526867122942467563960449713065661325881911907243266963666374019682208332105207724126724444344589254304856597904056881802456869445243108464955778604533314641635968221608588168203412071587001076661588017332344279793745441817454225957320495052084039676614748440188821159575817864653531374129222255229762034543218877626129985751387856311976918317101741056518530967943712022585390991801670739509322082141420537011998634747313577864627435636377079082556804513419464174675732616308867288793531543155684197986186259046898364022175450600784369680209075547945971052777033563498926510760079729310313821358052694341947109312660838915900170299452392022519490335698441892643816889194980725034338164240797668856435847711488030122835859869251515682144020316508442479934693678318703808516990254674088050126696773436554228872023283674373289962602262069695754798852195631964173373331231656737023623635663637646317425812313008822146981534298853406397782920508014614234214698905588999669127758670978777851255043615330646377140675322498506959835342008997667098038458596609970543802554515095510842468544407654509131486922493506542048630761745963197752897546412477395921640731849637434152224708320830262361724688584849158282240663893031018736496345441812897573667103150382728288931147620428682824149173614452976278152728352089327004561824747530985356708194506322192316361322673020547858958256045804088615228236045934755210964926872674576949325928120257336453248595993362595407705391479429489583498143401555254403296565031370699688408058624878362402748480969057342150643723454670369917538172474393484082261866973668441728694212729920759373376575233044042929610560141206295660980884009055389307884623891151910726555851870154553133061819171212566224119833537829267481805284833475055135999075059896804671085901834682431625695545293206213055868432060945322695905693884107565770082583262157852706860392366233475863536454900556621578434408725954150802400363561744004598718804788398900138069102721116290648492503096041374805180931808023243647868396291959814141551012577755250793557895386087978328879297928376543231319173878423672407119884501811957086622922411739045472137012719173218717839375533323008031139227278778586603324913269417204557577170188243725694597972691065496378107818629582640236171752487900217618243594907294617571418220416840800986806312179634149053735937733552224826573821344315917008859334155120711467949327323646398336198164292997124392381694393987029515738341690975085253513044694072269992505312616254970600220243858607808786731224213075726944808936530288572143321002311264500262492372308366320676509566501357669227027967776854001954554161859978961348912931755440252602590241471954424441508480013458822667057422696883830355637067582645142871057052424376995990095042773482717811850095547451390063874784578357790807376824481898588906791522166328556799610173610380170681154665189018269390302453066606566930164676732462612121723970638860367588196574930947113044380983661375698598650895765207820412658921186995198502029485590454028749543030721771764475780791312613888060780114491547661049382753769234000064314615922129853321093255470265920811815537008746161072863281629296946383655136033195141933186615692082733908630339999112688721237736799612490230493541033031606720245523062582626564689562172326141036135702047285006784814185237653247971324412234586920086540633530875515709627740245259957567564343674518997744375174497590069938827010420862503441443649826541418797469276291297265223102555648899372035633818646405939749572354474513795050566936553881342733873103616940155388155203297048140104734440060166852464055334304332316094667454096344291670339809668085746064087791316595124056811977859316452321610077008673417262307838138195131024482702586769781237959605915578703802216485874010111299795440439117574251970487151862012449097166150558306598130582636557402864936774352716258303446071698929348859630649734461164243588931026474544827209347403924180237037784119565170924130696107595501196108888632007006981072174122925272034402295142373429569650039560737704695363590972836675174755948251602124289725560145754116887284882174752219557870891943427427001587905574306790196211574428036282534370417289510249893509985873794901864218056260240414025854928348666701730480957567896179634144549211838492844381504044604245373116096801230079821980090256173024565187159141520537304872841262519776476296694757975179717270835932404477113699753675635481222874458053779764153581548170132961472257937664997686043286753679734454292645226948026717887161149026940121066245368399488403873464808562020988075687435845213938840630276147855682540920945262257573496372830899477443731714887057832654141573349343255865029305258278994777728886027811937952830202522852309789441265973738026123481687240231665453203727288759370661319146415421641585023976712586391782116193056421563470059234632783092163193484617947299482904295716003618321326618907152782177132424429856608984579070902095882120298276827205784995865668041507681437651372488289276033344125595139193424314652394243677754389448638189238348141218759702115605726019732502537978623843985148066309358964219537650200788434573635226965922322232542877175336708259075945295661855059267147412954996453833230392928181971373442195119434789035526524305719831973846718265842325981868604087889872769363945339954336504808873968623657442753982488824051124199178926201398870156847006664324976800131363514649004589947753855766358948482842712001785480119610238061488172805016685319076141605546961542879827781343391573143232835268744012479141350182942711608535105298198194556569096265226888486668136091992871169652167206504299050787901315664142423757733176443620124413114721747394699558559698203467420311461382996490977393877941949559085463918403285513135760982952086090137272667523792242859023831518489160475372001493702975029634401048229658744160746426306014890157270244887074390800036960557379704426419314959316197685317895697664652231267195686522184721122838601303720970982188350576599407991179608949504699529062932416413040620488677074841671141186447195908446642555888950540405301274140536889105293799952911155258120023097246586592336244129348669825019654605728604923720532409357253154503506719745719530425685560999958753907910967355505036089364640578376498016460164184194338871785773013327771901537583236804745181306560757633178144337852846155378920012574444614931530195410345971930979910032418009519186231048820552804396467473941683712413762172191219477439728068449973258317584907958123927974703203290250747665693941609478651429851351484711178692461301146674111526437974759006643294182316297642208227652782040099767515722103709780328070767115911566589886557697215997134844615058359861953105565402289022637055353127309951655702532633310329998923805772167461546834643150729533475529307649513482299516573201239477938063375165721192915992345474373757287143209400735633533447436416389343108433215111709547744345150920626024428414636122071008331343242245864726320919228206337693922207508012931993678946617790624085553869852312730623983340377957553928972963952328450040825258075169479742604816237407008653201904689437476317117493299046502139593663727131428623942542321807923744704878362060977060343909366898335801469071798817395044704071129492035863833173896099981417505322633514888750058265077500167130107377512151742953887502808781512543619973469911686868694076427769104594475867806260297339503480698132034746932821526842156397239618204166373894024921428595862745778554645501217056303494414630977634759615619422487473460942008133180530236800914777418293902668934259372980413868997047523563058122044423382393182870667535196834498344064044022247744541076657445708727794911587397978547935158066721406414926869571255202995571634257603444813282001417066968828386650253033755110860683000546567255843098627456337154615089304396791161046589703682951029833128561708797523144963224581775661290766958712560336875311175381126218508579744180668992149431850912376752829443929880023083796046869791868419525447992832555257976622831531274946423576157963841915581567822623104119415770903398789654328783052187141838487482369193725881220704277032644821144629850775011324624511058918562273819706920173586750137940564102667462713580439242894204201580258803807596696930605695662615690209006322956963188209528936934753816199028795717859901358415886760376105385692035712371343100282508002787336383218813054488011911869119941952357334334800095982998906700795563761911175335927335710228349635074602477960590376370841295236267471473816197671382703206835243151534630610602102777608461727536014222047392047290002558289434251975582175845792786918919914620954402913158197351956494589662909483940921539027266217395996854246734766626908805336894731679117402553676539506565514498518964650648232651860783446565386757201007754835336607512752001683299353497762479180582111965368211211208060307130201882825015702688901457298852544677854956334074369057076700590265837773562495902210533934677662733456974469675122061673790042922907744952372335011058639178049004553789463603468093763426834618219103188209057832462008975064062160137825845590340357342926227927729592226236986252836150587281601931488476620948598941525252985922440052132330019097482506931112320154718280726323671114875349990174470827032620401086392034303844859397496169996338703621049629370031244358092640677177130767935367016186277509643889230241132804068307580982056520048742942970378252916489919839625304766314090980730727411839289036249644419275473016095003936745576540610051253687223964054654494270539985459857270661241426674977858026943006503264832355778931882384985237113457485724756779246858506918509052311445988959389547625547690067783076228576237328528658715269969112919342546228661706399615544334446054201243324179250670168101377714771003473997652708652981360217050107175244728632895952487672069703393436042555036733576039555664867496490909024139641176420249231752654997149784337498946112201566931273267935535374868219312990223032344818179320046737466586230483488931399568121979806448783010477480078329781902939788080100428014954155132490088788424782207097172051611740003371727122119102351745347905852929353317911401624705306836012869962613054790067987846391130495758536348073703905149883963701339843807489455236719632570356046105359079844049001761270821312487927689108337060933208926527348129176204227428040685214759643464360227653012650022539082240602534732273374073067429921417330112823721784323410569538330727393776897727082300979303090918384923074075816993603791398688440724333414425907010354083276942208437743158096060745792740866960329043579455641780646033703888345988572115957481822611688616189293225668868058766498011249763647424187596252156583460930896252598566562723528553584434382762805907039439779704068031678537693784368534817014823016356873496375199884539873200343032312333954991978632562756786543561751414137756215703281460620732407436918331286556435204483057220524761500992305920562107395525146650452743435905132564115269054751137990000570298631091268479455401505764691591939326155302531720702338581564137393717112111882984961588515839841619085157306196942008760273095951934829351579801824308626766291439959426279476242421672978859215507521608809167766800689458251376002770285289287935889270707527911253421130528267096151187254290802211493072744080197952663811520329635774110086066892326316762957037337953457911268377457776103928108728662272074582714186957212250898076878318256892529876928505700566894950724220362124908553478031549731413118853961430619946794260162297522513392000697550107944203716033093992563782736875306986943086831790220399797856616117217468227551802951157334295899322224826171422594585612521533595996621906842631825153590298834069053020167904622013059957952733909833150859405091720934863458370410823132223838500496735547911068203661473534550618842746557915565292668569840790238370888854701967730418914141656734312329594183227029528408148813688964679524106596379807001218625804056979585987340917933480675283332162235280742965657614333548242458739939843910645897227285665421248990866678324600012462091488511031806886692120176616274045096035721595227279222718332443189504658914361585899677768569766441236892982805038631144347188756248754544523597842937521543096355439847621863636063786739408357301698346222590031103647076575464227512644658216504664539919978157586732561862922732703678553228819933507356241427741589238288031785821200370855253784206856065681472239148475514894637915420958434170917693581666929281431784670776240975809443268330430447072436199432244434588758657098999734574667664728572167458983077190184126454317756998287553991715677874081857408450883559295891650144483715908901203205087878694484351361576948401315912517929297030544163248145026415261026579309532604849160146851632741374546198627906781146718016666622345863873087257738855851896023741457829872207228931203672140658901613012451609264085364201102226200877502891423096399549558976194651067623889937155755034044924588764103323102970613716635224172037463927594402820561598059004625944340560938374513980944722213140080864515253002621405314923529205283828514327514685510299338561483758553301044036621601694696618929023229307933308654970537749246237571833626436694338985761022082781178004036279411897078801983438392249615301857747085632170921052620194850659549772485603701636851664668869064503674709040537220684494477845250002519521339516754006808939681507726589435876598338992018229363000049755127792187840010952534087892226137856125050636081474108311904283747494603916061040756997134940435913787197117778660569554901026854703000036668471872240850034728420426349429998443286129893665286952893639792237228879490079300057400947740199632943151629647603625372961270821683940835603963716906038839496231394425438424566385652739599761918533161017795326206496489010591697820421624043593884939266085787789702471776068785844685542142205029322267510010497640599140064699182695806251114587038469161713955938941376955444943592942313456718164176887960904222741058412123743912239994118212533715658524635432112308515774880796908548131072269232902726553262936008765806107591042081569383572194091500778273949313460642513871624450809301574263737854611786805356357562113172321906235672594147891649008722117167502776883658232424892491279457155131366814743228646196576978754154997636669930860198755374216158617085768045635711860967123473298620857804215303591570172901000231910414049609120344241315553995906600537569505109028454444624744026207760501682956283591051917816468805538143986364377273863813990833469928052776096292184786764662367624191625525648566871319305845359150676361350958225506006312526503450132883044815041597643020122819711987296201969627359554006726605780248845705910268299427575248444094247442558993515313813582210057340918877574269870330714888856914877269224077298306473599651410772962132896584925800084973183033091118865702267678832124644697593296089505481850329125013254417511044562665522096350603846939908296936597838325398287358733698346775086898771987498974516682332001018980141614317145805280854302743101066438843372178960079525599965535113717412670567694490282286407794658002868544792621558824855179770970081874042816375730393556582678984019115158099685104175038143515758220865493004330883956489867374016524349702723458933693942035289936688201726151829891083152880511040071616534251076115782080213537073748908125013516307683175133889430748774708472779871326940496548303264222546077975715062089621430610384194797342539350656935679755132318692132781094325404967759954675064264632228202056656393788457350803343115717175453112902608915369083229566498608895366811412150604036295999075117512941170151987910082909273890532519582463000583106448291986395448174174804243827225602101313228085663457378874609238289412061317450730818878267104308161247088569062243844709833820460197172388200341824186463163278432901959560065743438179378406850821839589586470000771687784309838694206937054657829834785336764031010773792654999351564640092305489478761667463822966043342344857559730534867869648731358842145004889005567469383225370722675316398921020710735212556037642564153988179320600618712509727341307326560780187689317223601147367772430816908126273229183944022344437253371778827128513632720341798657614988916788047784338038169656581515060844870126623747724331745331821861227185108997484534979657805921407789626163082151672210309456186243271530933025862804421300889826539942754448737544761232842499440837236925439664998352146021695054530766271100433914409423520874837896908292152806015889359223145606814709471114680323906781736352117596560649543076461598035224534868082420146373364787704355111930144698237870161290995082624360460149778364630684413573932656625488653214396148432336510511373205165189255995339476270796447824597573797740876596154472633902818436770128307466711686980476142242129658863957897649758053109672872748184627529792925814258955064754743821098454955486110743972736444464093059953200489953443702669578862705128605176827221336971301591796320600732632216148596034106393382176403426489301537468510484147284888719631106327767497368765154766419897159182169332635144720561924040103240598867539364431045092700368230052445564738915797451195977515310277284504496507591093368476007870737139079554204924656019530313524321081652770232415419531863139679236960212158063761691056494040661195674266922803399831023817001299983072471456965704370463705229495061763395517041083618763956282000753759738243370450201625964595198040622474277061240427769873322765301676630720997794860721099874184364495653690145155870507421029685113388625371152697211386727702115247770940765379233982608412929153865504849761794908488578457538580061922785232497604801020526782812493164295497441258347945105425542284231214405827954497897173936793340056770085211952122010817814267513358393519583671876429990573964824297477538605860445014241574573097750671059179409844925729040794124398215925855026959907321585798354165408723588608907692350383962107863010657742371892319771800324688050900639766780842716148573556491897110992906968408921600376244100699206357641227883550496095767474105080946215108300065877077075577285385175250413805586723718463776342457658441136708839031003673117983956763229789146341722397737841562562807568160095677387830053515919517832558412213411183928604014399167052717125182243168769864471111013768622717825789154431803380196397876162108899141351262726508175561897279823885948390641474147048845766893197335321874646525395434722954957262271310204516756408290140384561659554232398528953077737673722758057957294773091961749883707022016155858389459289000344237733678539327296474288955087753487871184482519997827069186709068831177560000422110707704448184925761427105067615588264115547228601302406085832273753129547814859019327102491804967986256366060943848897874452674016146698336012439156122550064984287662880245648606152266977496015622850148715096897487964927523636866779901043345339092246830998876055213574425592571166154841819091932646867191241254423489570374527132705354732292605061137558092270314448351786107936963294873886231904108690921803175735092549298576257021660670016063069625373046704909005634776794102146211419602117980575028902749716678825013819068536235765197743369626313852890299752900088021315565862951070038012553603148661252421269357150198073906627489079212508204167714774658881200698644603082782290276726623301171034420224444278834934249406917667487563805890189137463623608704188627533164694822599344789684175749179717246310010257298015885402311795601126151972126612604456283054394731240524143241870343524078102297799582986705859345179702445305226409598425257037138490217960467074160893872592496969195903178626140999198786830738400266404966399056116444733773561666652929319663696180301537042521635063472103945045951720904980014403308380600487565797667195682815815325540807817811313242575950997408409929252061981237781687341582614281936181016138115445172940645685467145202991710656021724241351973417930781544398392569445862664776374186665849541508867639598170920873268182979152229261890911185659333660331935594742211724699726123047514060668022201487919456096452788292335473371103511633769470425699851544668963339261089929572840541637581432865093358099905880380932233043649374074727777081270160645942796549368525801245611771130988648468305705192390462004998599752492858561500288884350246894648474451350926877485838379221845472938468153299614931399409186797094003623149071916016755397278790248750550042358693913757277550668204454944382892842695879567229113174357499317887119937737790360857502444382084607642971677049889109860190919079550927603902203872447714188015326537363665851090399721161484805492408177936589831253271490009764191702527022676701259244646791011795143143806181969608448452377167627259101776076209538421375437893922408492951468096441834803303344489218528455087108273848642742478278697262893005971011502159192370729591925559844068499656669081531008938870358831455236323845076944920861590182524356246437351202371752743177688753586510666426869931828336877913327104588514697724838771192472331471009870957378373094281617686101207977232018969175520763413677553420179409021462671618356501826739815076644711316414803276488023735005935831523739302090769164365504451435068487445021855334214877122337797330731139625545252581691255078724627174489770994759818161575593318482371821723387334458785375480892237192192956007731453333962391246438051411576091306584077549163273651913817281338196504653636902988423553960595040171537153647573910907789608099406881744908886235839736254584886578993810832799597997491496465004478448167179178592753664472599322149141560597759636033749693495494223515121856853347070753118939486884812321346523134150882118704886325302664830728307948165790857047209180514495328694303065769717129558826348515502693783068435643422309803760242053287278320529805778393001289868181004495843198670286977720978360250189699245834028951360949156428156551341656684107462148923627627440213621812855899969662306353442023243068870933255131452028160934550296311991961486762317587899972172853169135252257102350800433130397303526840366359467147613926495899912766016991094112553879649702332702640904665441399422091610354433052400282655682919008127056123642459228103706710409906051383091026030392710820728689138317410104000509412675182398222951645588054053903338901117211346743715955022278325028477961539318277219971270266649355196266572292192613522451545817101801236520777600193686101973227809032880494243914141655096167841850361436002304630315441001470264005076410670899062197901084605779032848760966879353900216855474269695039143572320167712182397484077464733815756859268647703622364922762099755651204748939113408724861066055131655342426286842847455316927229735265017498067884265212737651058645785436014830881457651915311998119025289454159083256618384724109321890222545910811771548183849882419753378163029792081129829055728044863795010395028766977201829089480903917241439249127592945853855719511625651073846561503103009261445177587585945366791450102324580551386250027245781517596200617345305956170673590119766362472293772288921704782397947625881203456520602868194892981190994986817432531273001995352464687106505003378386689497978119036303426863266191240130960491246554709429400413477460980646363365005673356225319595444655360770588825629333460015489485020290086591782906270323008375197473858926775829844308462405998938861019545373475386105057799716535730941535484203107908934674797069850527773529250251307222562001964024687873726855550915529210563411252342917593964238118787613604730263426347348864905248589115396625003014237526670408005688966106403870502759218218664863702741755494954563228930626222263259690898590470104881190793042164303981176320216545153065211015353988152049830886020854985470715780340500003443680653423517329667790645620873158141265248612605757416181641270981880862675034192882612719745547631265924178520136759780044688417804749030912841978401393732802514517140330180598166220384184044576386802858840737903656463172059707428007699699734880118357904472533939002539987539071153076043082473765730922347824097081798295403544690217774409145360809821885037675502864559625713719335257370422541570062369105903327140045136038545886269212582504010877526227819327691033905548145514399062761925570657726448608130333623959969182029964981161520657314906387844211122276806908728994414308638159090764008136009374194934961386993146958143520283155524756492709702316469902689281629524855266052275921873823047571408111189757838016274496828690307945872119717888351844791393845883937189013794817630212428889621793289132887963684932944986867362786088861686460102983884485960230479178932851264823742142774041428688451222581416071558081442061721646312673384652312792472452164498827520409888868724641797461448295359152108508979918959845817350058869730503580723692436745938450466290546691007552807967212659804369323158736247874868387686043737499202617503665701462663627124809089639696723994114074455912307017651665397958197591992930528478824523847236045650840344970774881643047659496744369823674986303844278460790515404083728557047769582094383794340154723236740371270611966666509564346619069738732467998125225165939598323315225087136188833687325084786943603896797867306752714496500461491225406814101150931919111740231797127305449066806497441416213664344502051896118521636319926944557521353361907270362579979876919039258657067687024245579648231723314915997166896860496931728022740349530562285808530503429492523776066523758840303524817873234763058392110879261221795557199641849952739894408481267957554913545765036588939646077883049907639355875573876185242606480133356378668546332851464744736676261687065550610201913697365363775593478180858135620537275006540207207160050321011760465168901371262170862157643977658564557429878259773938987360874592009462965524324407639952209273371987438533010179483198102723135889242985826752150729654902658891640756742349828151009626434120849075662245557635431248539612008557101908505771456616458695807099695491812354043167487185241490437078079957739453205077015319140984534352166850510091151870713306686150035959432882443449999747146766433231004230260029914398370539266085766865777923310088601560103539278456206841721111487054636447645919302574589748873607178491337370675685297543963099833347117839574562072137169207125577805983294493095599133890063129920245720770188372883812396156840548043397851385139470614259734994838285889137514309929788918652073455880305065313722745762824871300129968636057681233590807245560361029227266192368943051222461357954698209076238927857515444469887288483937721021085593751704912359598693958238037405789889834544021681748364103425424108275898878833303775985375990313208545789057164327825876636100662139209165726131676401410239977163109345400525699412566499992439339431180641254215812033479169794645106673350166172792080207381498768145861602730112428438627848433836357533769702015654985222412521164877406135182348835175842794343402957529736021139928978348105723217268715423840265937778382031353663597755067061681425099605846955080121104039646988985122891296881370155590692634665790549140549863418192188635266875239309110656553001440678003643452623157248458360577630919438458931960251578908045118612845488774206252638044553961043792482323991189448199790441387438546268759870750049320892434429045594813188342013617963819799630451824774582460851247891971385247992360444277741775894550638594035982097570208538558708910131606039089358739787781922219528726472244483090199425463747467682132035280669446619259615546112307875881445482948700256061531666617630919345523606792263491073084084680726624849482223442238996828678394411747453232562887031449863191227467629101544516378784158221645412070478040276943082325524400034920692235075740627810772252309455251031180941715704607783371283887049062717398410710749018992318864232192622824588528061932451834823827568732554842506835600406285555758480413861594734405639178474795179554768337003787877242108172105864953643935321778760470032215447518822872446967270712302071647213354772952454986734804065186092497461056932928052086436146010872006392120829203869048678557898844485411174203976598669883300546485034883310641336643157519626880065712521764323916390643113010852402773804406788012815314122030356834048764837505701750173642336059990007804016967083108699204265919733513417811061061052902854140103956094835161222778811816166053985233890609180338231590937666322694169675583093097939721724802295978000938260584992713577860810998377169365274124693207026170615314664769699942388544596454258912944826004934189915062408392461865208348181204075569251327692668086269137248538911735444161130375452870636779901003302780101048438900876177439900482037412798601210763824718395210011658812901596742285666205138795051563792790513964654341916094060927429514773216825899139197510578445548171629638065803565651321132379942436351992308841266052401142001273727358704270953226731070287672175200855205111553937206101413263042852123243573703046063093989887837431528086048135180634632248291979805000704174983344385823283303946798026950587179995023996319377064831030121617994904896963580069618605262984833289769280472796434958673088532752162180908554000758651743727773692776415290633842226347500056881018457317857953604133851682501800919340671345715757911873786017791691705175009568197070604025915597256698643204823461465408652478592952237296204072689769368000310811982704887639716396352015773184307239460054062046850799138502079676521317406767469013240105990143527326286732271047260945726744261021391691775776657460965204268600889733962603557099059765135082615219854102375448322461890567754139363507088539302158441144225208648771018809943545397880854452157949326460742636129076915634684461917867570780880109644226059853843456219765105074849840448924716341955033756668520553853711813678537762246419607488306901087329323697616455745485423548676399407669516837690903860972659670240029131385507444239094801728729088776706716663123381263374812776808897596589914956359066959453194680612645852311304605249134529184899972297509431417814294154082351305500385873298157291274078638602067536391143141471267154945739606693591501636670123970817828317465993254323848348606110942098140250439580940893575690866366295723210770835217521179089109267896685064999875008954718454702132294878275698949852816092330075171242944944259552594500327955019315991560401733551650885182471810294110779185018049313232976603894956564163209236475500412165835879985024447214966433092383845328820146370157321429126991112888460802174471016834626182250957455973435583416622760130872834296628285741552371952136056259358744311474751496682635010637550028174489302349844015756627289376175510376066753670289575334457051908967820264810576625331243180489805404661396476687786222766215126911078470493640211569817618219881731263267208597876367701392213244685918673026071733174301685835222071120835614603617655029551516435798911122921600522148358656594555635463287583135352469687462526373638138103757540659600933037027460844685845716627434728655398252255102499902034644258477868627933910121320161887536491504916324388335305739517612087067120255663963102021678118164617680913893242377950322460416946299960491039968866421832840764749386568957517611095768106103941363875217883381692918249971693229423910249698623023098079682519729156107277724013298217892527366596795520538835592416786732338118122807763802211256710301605798152314044743282554468038378445350904175596636846589814023333437031893027175695687549501183956522875226956329919953609017366843837299199764551455625406704868455518933792667075233528694965337370836198524191782010580286582463747419579748534920211184090940626861325523031433813595288629256929088792792718517904178212338571291376108195580457956098586160239642175852894594257898141693060928559430619650864525066800227621494235188871662924040118822226288966661732265140249944185031404086140187284338304784535110691470621866155584384776552772837220004605864432947938769001909741990393724743195034411024413275670132865036011376589224446904379020468487078435721931204615049182174432151687079145074539559928713261356089013687562134168858519416604356928670115032044731288746231522477722555338805494710786724657743546526491167288228765018131734764811441348868342728375090138951905718876790575783117385792722785534371567229141135593505352068140691129264864481945636483637867830561002604873525687763361571780021103286098917892844280157481842260851072866072941296820271679679058197016209625058385415220192163630765605806138080441311329772573454542920087005988063491561197861527504091648767190143634243568505521915423495741018924116325481461694825952687337712451808353817818534401899532589888580206076036576246422074171044873974456508501097828996111373161457098620715954013332843738838162612228681631623765213419449300798673366441986813387096636883972429887785601798322216025213965698697053520974575789563465859971971737217947541960018473558544456546754798217508933163288505555360531787589184975654491882424991994419495693649765306171345187855752226902160573293204064839001777805923235418067135327432520127751692493803673124106535342366001439144476878932443861046828091632177614221014800563573941640454351542560274426123950989287158813465702809193353344519511451300325861456005868162221740008557190008611358040525852308615018177959064591239791841144933312065936558429801086996681738945512069132138931553867982162939351422876803772750096976704542613914254850727719183341398242968478013780905787423877353701409118942773310832353419748407339798594773458685312483824479836409802705507498650939713233066508689761957404366960665391810802198027621927262934450984851748783995723579449889423567233142985035866303420105173542402913378771338237827060238237618107504354690822429578850103896110474538317718523325708446448986964811555817951855018867996815932086446180988375698364919346704803081556404084814702688905275565064878622138215156795026570136206687272946728432556624819687531243583435832099033127197393776956562569476811684176105280943400032835372872595361317205509340532664977281365846984967168862050310723467232958210528391667722511103534631852757642892435069672415470605051031471651300304924035456539262158493573449068382601408603293160760487498719866564959453533439446346899700721695252967607275983093108745385875041974326313101320243493446562124897209810167818610794435044778268224105667816956496312771546189889784083013623013599866973198701410925443072358708941829094547853826968348133426513192378101927071160487857706219768047307875525059524580787168528596411097138072250059084861876182825790171066817723619998928715789307196310129387214773571813121581350472036553201250518740461081417492598177542409284495171399522568188861943248504283261338100241760968332971546556902005847597152128511962185627176305492094697698253851984741601574197757892304641481409561907378984195064309809924753356424322872755282784400646061191896946933381398890550051972843250134864324010754957002524832565726845904594587347065214665869550775509373130122014898778650068557045176071469098716458192257731991425967324197486935132298635851551586393736250478868852608154047369962460066407290569665902817987035427583125254777249058230674941729228717908081861045937052033067553437265489969633159627841419788175273545085575835256112241254080488766147987868677838088955194609072296190456116201249829270077711435644064270759484241321682412960238878623964637691174659442911930826613222547428979023489983226844705809776490834346309798278672256763447335526168754994733283027239840228479058175233154260257920877155711645239455917684760452236922547610915223412129719875777326360848484612253223922132012412328123547071626782007543163947956443261766464527526289723296420203971982323618785239300893835195301528774060630638803444989946546369143270540265312983693815879872884165354183030855740147756986097137130328747940550934235848125314767102660580242207034336873388559530742998707988099135537938157938809363507936481276955246726453811603462630305106924235233138174461539583811846127937228031716856466451960282176047368755081101332873744158493807590165952886088191674140981070160063776063505739329568463525767234628949668050695059547615612978340963150502622362146220167184975598810051040756861242468812408050489796296522129092221000205306303113476955701831113785551922277895098078759051334492842025855559526684925397937263031461482085579884798304767040732279295512244650068298341507023291627712523247357854963259387232026117023523233071278082711717651664867169341280609748740988282403737734298469431956019253914194495057417728625279549285241147895910239852534910788364956261859331658870612619919723865309961093743481525504690574846633213643107587672533319462298928705120226435980744212674715701351163709426252278016191272685235643948654103742212610526629132453282501992633675058387731421927441275739240726966356573389926016079373568500110947118870879288291582817701890316714189314817747228655285485671132170838393982531214386978892254685291191588899362043454382543985214783704979720812329558708453548204362685169232272288858626321639836264759195740318939111851851465612881602576593876525802474095031699863920922170407162640776263332947163782368758664740665215098827299967688435259425108695427845632990248156715938213027258295938215067438601057363943720904237680082731413646350190201606199570777463027358089784822263298835387559569278595697855059299835423706003466889423999033959459486554548555367836497751255772648203349958238136096156986701578123563875372560654503438117094734807958198436253586209281325071464129086578874926785246748839834146102118435877558316235621735545879726997535161257444131776561209533073154869425535066740911189232362385159282012425166865339080962522970270463054295621357157390985850385731330595161971301307460188440008209282837075792465419172781327999554866715639445733143671809289664801448824012959271993851238528839106256709978977261960606965122073067680540140253464185533361194359659846535824414820681009118487386867726766514919411605827923049487455491012266068486208153514300427582279247055892387546916161231782920038693790206538764555639675778203414622256158395564106814074544820515753686742170058757761057695641233938179204653726654012372288582964967492596636855482781625883105943945684774867254576264495989259502980888162223424220765585368564670406012039176187759089460389833432158817117280726460438826461362438602778257733927253887778506331091804753279656370668622723180914440932271239859389961510773188709889123778089561193499793194489497692240614924639425815711355913863919297688078648869338593810863530526419011384612693130593374325635914587664531161841214224314316719662861336453795377197100922656961755849151141602954694533275040290885688891099573950563122397133708501289085535703326565292714912843149649367234425668116504181664678508288767130900712492960671794451426700975819105755586966037341686432394542751091699095790408462022770527664687081683052442839489067470032163632952072192069927434185229674378052875101908591296045991622157804911221777910490969669413219219219594898963470150451042393451414924793197797267951010578221887950899346868371151541551038485151218202005763200894516548416625288307036335621489481850564934759977176628878182662374431094449210600219180819761489702370396904962682264196962674769386615551437670211562507649301203484602541168785320625155328350632830354969006120992471105036577615699336198023835328856263562055969363754841025612059539954091344381544538860970318025730903050703671614583913256050165536375391465041926633991057447599918001295104178622051415209449231711242413676880875926931928667050553760221961584494317398117653816572924427351688084738929415210037301653715783722426390987325691878284434409355188936268461391485246407807805487665343757209015208222065890441588237499879142661740662485183830838696581972981456429628578879178587496653004998114903397078727616213899958875694704935373577701702854722702504066778705312153520178747994119435917886399161728217711653354658365934984513230782878714910680172054975476661364435543014830583367649621082435113411511979236467374812363638964466395607055730403573431113885980120529113228783817901701573144126034712658875934048867651491878840195342288636339844560312195258806624220341743571662207624926899048900049617742945750236501657702102499137046319791554835533869638974385399114513069905662311192803826317014105727843153405359518876222913817734156453333828164135641919598849009110673743780416128623748267169080166654131113222652868698505415902884548278139775498021163378046166860974286684228748863832434776466996068585952925835721113581406811249339250040376764986662153716454835112551832430558610050285051655696476621858755219000774153415213874411417626555098634347185019734428825025373123568068672581876876448671470112137894664885349042715746213118043461155274992524826369430375350906465185915921295008092810955200395347661051785424027175231885996885837362061269534254644970217419090422995997151962473603670460251166205504469873055108626226171015603048718941967676681551194433427068510206791295212895527709940355802221231519297007917716894967546621352134349382609358221926859069164444996539325485455394053335328016614991722979299198140337604748050476047666604593583129666489613871999485874548964692026726538433488119664698946800197949579906447217627916667900255960388658554209597080512985137607886821781844992051509383685759486440314158395003746035460986015688039374666136481729662079915129383216974151145411649103206206270576042826448413131805145587763494887336507637099712077624052997844060936655237132944094626327195419770636415868299692495373083623574516562953512654653753303618959646180996106139042092989051057318014557112896836657132987561292774319080809850009196497199329310291219440225917247117136707580649618925481790910749306125983457831613089397197372269295174111361887332362352291736205190489790832038978554162594362660913539571991723262705578828585217247225516343264091773235891589796479261451686758264148133618695371647234884356597883875797454177063421496856342387945593552403165008463840998451523769184964981891369203803907870026202456201581346267401442921549664209964145802870651195768394364841721472461172001182857113577088975468614188326068904332890183173258389294312081840952531563436356972707443700707579583741707466764073588994490073677440141451933037945575648283670247653420694544290276267209555655021195895399041144052152265442585764835515162258711586777030179612421093528890596497769381192272201707677180924525694887147058251004808716209473906103415594921542842598904222802036065323475631413861788547191938232491968226886606999504050680590530279612873387373995134644312477682269671157694445945797938303460224297284165555005603777036230146614264606925322760828520839366892029902606372109411552712954150426308713964397414380218859321104508753813961274798045356816046333667346321542102223087231315667709795679235418327853112675070556370612788405903121093074075998042140879856258410710630709140797128697812928161057539441455944024408342106914780763924822909329338471158944327146801422473693290899964241619600468382347863817571927828874309490923156643760081232955359957945608649510305587976055902179898552020318613552152485286497993327268933693570684734849469011640266656942847804186662418867376849045756530179321022900742049070942133328325108607052620129110140730143268997435754436302415859152922819177542786587908600397120286471588430364110793789001581445083633009083378633451781891131855013793368747640054884455093318404096901305712389647615489448886047870171210650869087613912639134140015301876535912973004015366299417546250924899373430130035951544046140215129813941482593975196232617610019579038945604109797125951190729878172555597968588786308389739023335582665966626348611534519804835076761448566004358956388891790334229970664497168794246175180109356703914658340814764267227274700521006721995322843684875393190909475565274787722623683214814899301377135907722660094928103840610872922385669551664789235465223625771491526248053652125896723594303748633160198256199029524058492405787417977946158497444682993606001159665038873148136104506586197342561809164176061403686835249523668871585035692429677120021015139215525168937381456391017301374215695227311280305613229984386021313963502701027247508944500586825408208364535813030886339939006282514317283469642795576674830653307902274238121068837563288759684812901971760164015762392473341950064735240734192994707974626905886222675749582777954202228484196965791386571609328463046739423692870760845675210404422061632452226911616852205920439864583067095541866909466117598697394628492511844552388842347525453677852820271541924901271334267099185030992689725204660090336535245846384796324890743953267742110841738513584108505620345516603377772864399178869518823516343371710276400572878057955491910621932073963243209699281133640319075611213241781350065199729068248899454711095699060312749850932942611012476754876883677516495327400005301038916638521723646712868758334369026499722070856283171030010986062437770649837109536138417036047046852073263136331020288063821280443726841216507027433982343332240396390253384330770456915123165219653466031995283626072156676869866576820854459065389977457192092888754531972577524532558115701360634448886109846420211188468541475150491847880719339089972797326572117369672315670761712177514602330535861896309272712798007243364518659357246255155204652066040075136588472818353380634402089892570189196232501432577743040529394290580762929698210662398275342889995312199566781951607693030599306889832505950949256917531269541110747231387148133639687470544518301322004933901515924098630732027449915133623888017998928558253756005207537030703719953135053147641187993414185202643542071290958648726019720714581853981414414696716317169461678046901522373296637893196527138679427759212247506935392660151349526019024150928316966923538312936021773353530805136538884830593336205653296967272899584115373159433661105778953944925791434537321526529218644285435643487957460353509885025143373169629745500150384450865220605792775097445308895757227756424725040688907844699463938977668823213558027819533464091604348563316551939779250658079805890569124641803880007354397950314288385523636210741966048924403705037584042775270667728634236880290270554554077033254579747910426653317420506912580844843287932428182482633659830908214996206837780003176857148499979115861914738513626197367108209249587998884215511958775645758434646355737807107861364251860364901568800222675038278467925920154967232985181314344040335115402424984530928284067696328823309513255660749521035977242686489089670325808220118932971091529709205284675553323382335639681775344594598990859980911418887870277220839283140067759532124710592588863437737946211238521303389100264454418192763667998199889732919049238041963543523126228032501730240317833097691203356565395334765131193448738956964039029040134129080911607373277950303983614011808367514898777924051905302999078510337738113835401690209230823597706520605952922735444867636101171764896263804016331578746843062904914819700187169239382253585428154541150672766580111537335590255393185128910299678093468831951361289174181892970981340660713330821498747288508629507756229368547302568137706877602003292997689391261752084340150351022091593614499909112163533134264446047469509804773504604045985440813801928613468985898384737124533964552840583932742649896292790949112317367586170820740332884318393001018840455035883787356238598003430543267352893005895937432136195915127894843935556069011318876858870277164408071437349832182926766331603332404709249501849799546824693304583826678747505937918536269401829473416054087328519052310143541468819965338138099052362890873290588590883105581107706077700752694394845589978656396590207678922109982861655701571695962227464924786195222709265088741471099337133821039932640872581735914656254722270522413974254715112955679824026789296636535490323320264150565669076549182903959738484896705327223129023830475474681202361119303516132499139741245623169768313286258417737198204255265667977589311164870602401713635088643118557742562059343596868552494629100354849955107154014436290965131382614338919534758381042853929838698377908771670153212341378706029320979639479023512880760960440803871582468105024873931947449603774732508038333100772547947699307537325897155757468079946422327200634256527372515478740995077460808855971713485370904264125258520950342645966979224677007690053798417305439588666430554995507532186621091936502899893967367774460317927578704761416692681496773097767652992932421278821371263345517957417400036749072416104508244247277211373057509978390967515164092966046615950752446258606356878771401577724953679575253441717297305725918733768720499384808872445952622749399985129359603329061152739213453102062470150433863677866869336073308490919334339306365887208544738113538426453435064628718061296970980788536722171286134770313264215043974257635199559331303683758741818589063517160091171827691978298993451178448354571929857389111551762983840558164219091619169441024213640217272855182175007850745643996109144558692233238626347668315370461074998680196375430767959154310868302833506533475591822477530393553719920970709772575893341389762053650904592917210997132174421099145235729869063725114445239301453786042270421600328168468617896348651632565125301571943998867958167440948035919531277570445567498118827131253378420511259775802740715727055605795392577414728141940074114719376509075793930638789345969566128663728242020081043157191180755506468994976744283032895900671208837436306500103182156076029209505906828096404202535714293458637415724186456124792942207279759587221697937627428612599168385416198179965548603967891441316161270250970758565212385442587828403965435414810374328716967625970758859136642782151561367215907465316631302183355782886475299018742432317304520224997218187352632791064078290566800851833610607301162675731763918022348576268197151045869641667175832213282357387167883568513165397637138173660976118575137606744491437838040523533782793162038762506356138785618674529603767831832537831030759725556593108167528452555445782652782520387660194446367095562493179555636187594620027725898045398870247193510012773158583309586555738050687201826307363139146638476809378803713780627314273493493408505353721072484312924716200751035400975831269857896636554158056696622393769040421409924248920145728955599702915443670360446269817382417065678965530211895380091351654776921213095336697687411672390682651792521816866757590998499725709151062878831761320310864991937755285273460163820841184141051515806366075127715453852062581849574189442988927860169261984392337540241656946372334760574640121917293436648236888508416321575825721985673374630069346580523089723135624218432013544686124845705151443860437765467391680086474021394389175109372297173972129174691601099359136753296959478878186817894688931289094916404954776454764798533444173199384440978924504579625028553939691037422347410262945255409508572343745300709223033378037600664832968544232367800413785162061106766122295100206796280966574374940370586518719663157620270156574435646922537634992342281066718573848424168032525076525353236345553971063114863068804059857101601019146640501697989168071397973783489403827194652747580909526640534053910329882859357870878271659301245472870907999875035160907425067283768209513701491550470706417151287595090417280176663143016034117100297979172715582923046487440097103174286908473020269899959881631646911250105111004463084679271245859387425797508586981058859382379314608596204627212449220806565774419358542377484128485958637830157814278047518105405489067317810040635954926706916583133313496621245387364237077005756482831500898295583833398576675277657640654531762271952276825938785500305018224633538558393999106332352722190340049488269260474286746411868195423270039852896314538430933825801755897476401893257967642817673122042063378204011692468614405745651971262789133333181190786020089638350659339053997603994676122717551587153104711180339911421135468000972570247820594455831362119185551395412469629977754465256773066600118975018140154872709487758688404888776177090934917921120353031063101571915863468823218265985993853420979281848768695247736809128331594145978345350813373074143389595800827235951273213166274498476255413485203110772731861399812727364932937041945026865671809625439270071354743151623641597029920107949971025103947559747049873215334621659390341426808731914967321346994322399302438205225359612163499584394401131950167960313393140308120365694644089268327960855099969570532633258919814563518199034882635850496646910205200688258438208074148106105422849583951136138587268720411534354001852097899392726904886805266956756670857958791274091784334291213160238454803888411604976201299429007987459602523527788112849201761353537107214982611176807875602024630911169562335749806623030768294756120821762463467944577056276182906955455995147722728268696676041546397500847023177912855810801545378832564761105602469049962946300061827770458702789357463095699627382104011594116101275290088009257841649576131606069848979022126747020992076198484726554749860558477058414634061041341397364547881188402511485378478425118725096760327719120509150536872071568055700917067909715523391667352475320330048247095136673562952488114903120971831083910136792100005849994491448453802643229264205965089690458601325570274703184995691450358697665069307765493556570267979055660816898531994399060629737665674962503018119044443765383183187856863621180221532073544436037089170555154734590599893509488824347792757281722087446803207887348531688110988598441858667847005668965731785201931443316702591819316533549632871630045092517741108205935158065721045162927573821404623760851483463131307628409354983004322783297011427373959645712070422328887728484652048153689355107448778787403817463447557635294646251775958502720358000723078215645196006189510895973066159191794621621243663138759215471022778403499513646852474960142906331919827575833909212086651024142873630081889560952928031130537307409180512281937166170799162048015899579960804103831854960079281005887428651854859539393810461672923857717550666450810820300656626930093925733680611773159796738998533844057139407925845719928289616402235448994447717468508188490986554920408560851180177594900236448439394480083937397538468491331344469100673703768128471770118206031917055246376757147447558524999661678443254303798251461007924733094184012857594591576266378882138774091220840712671199524451752686490196328398765892371864946755749416396656086309076519770575040113209127892001674651360330552813594957684144953159663500787168369355730233927709181751522381509190209508315853500517973499079377119648583609925610812798288078213454452756977136016635470923962152004659149004726423764785356021701053711938505468830539858524892756315552398860101265738963722708370053014471433033951601870893610059001573704038131942034717534056408661931991257063399357365444507373064059372107347942910178612080626044829218863367761982431469243345755615861149070951289032362241745823999004511831750290045116652915876863556502390700885817900733138938198926281172132149721815652813143000735432586383789483233036785760406707147458082946355499463928466848721375949561617113488858897816182147209451800878758988796534722896045876181320760106814951408074336508935642809613425698385803237901637638780531817746834419249259801968874946678420297817495670925572270324412045753342330727247136540428414156907322931415311742341582124378680049574094553907202260431869626698239361363705249463526579659983947861508612787607245695238159985170679344216052492948753828343900075331416897747882792591719456209146955681396313787535474438064451899396220803337568497991455898033545666551017209755371147516205824279806531548638500149737944647764469102502080530090192034425378259592005354138014023421912038386134119639700377208043799441389074582734226025418070745038426919896594840633000956898182643385472079111997781032241733237475035943248672707802743618032526305478710049342470474134094500781260577414719752022938666569057355009697760637082832374649867746183163690077810286525123998597363120419089194620754810748515736474058824342529785518733710476311212695069163169967364937405016166969177343251257634741765202362502519997256220823952917004753049817202107294912003517978032828719508336465252795495154352880191018995908040284256255316361286071856028579917342466715050900070843800181596920055219227755113740515458444179663736279452157824453096091358012674274253237775306632543979044945023366090050721033059544888295964603670134579724199869504795132144115498301329562091984985728475672347026725521028518848356881807995628899688560317775790468769988387768300577537376954771746146666980822543995310525451426823403184230257446670422610378855203814071182838118657785418566353917971931805872018883291082381730729873130535576506581841598489917202199034657992761559715872688762384874404092700481586170490161627727568881123493653635979696355794477658389411191673656817038189864500042918666179910809137464863001081211575687972170263380985855644446281840821813333193025118099163066693152586953833121503846068988704096522502020223358954691021815771367027472941770572088754428357303218304224496058071681532114395717148472697730288540680780388749613187351855804082875797008352954464735817770330360270455966743334052857947124445043544039007024224459764482608621801023860493600139850673063503594849069743926298107590296774113102848634785467467763046834155751480312260286021540424432057544643859067211929213510754582710974055474807179853483749919848491619617845639551977290921713534899097335655388042011934182672591486426988467302670446904709403926293461052544421319987934662989640651892211962074566539476477860156961431167681770788086755156612767859845296194398198569117541200772468055714505669812851925864814991989668759995191167580382296443299764441662085663057036531632266937697428263470696303671827840341338833216663947155502461142355794340798995454259098545725973019600992891586884116609583599087664141393555393469901786410308049113500329770761878629162491697131701098534673174099227590162390710697895436560515057755740830789053676417133735293329858963345977972209760519052195752753230221290502299353844539506067478557043469061895022686883000677677049076910346481344883762973962888590803188517417331780511522963652262418514501789246390522964195859155626659252935606589185478778281172263215833492090694942169761726706164476503271683103440481318598142720503303846907146514209770751411084118110769961350746491321092895542785603669813485230973246691523295897917882541390246075426221018606531675613661700814059635793406014392794884228310921033187945583820831601404440945828248687884277295364767530574402393019946161086935620648857865455649354423022132355491923161522279460091428133877518745208526210210768807022123938134658993628051094214274372740664395532083121805577423062384634059341827777869188745226548789687132549886024094197905491755182835562869812503632785519153435468360857289564458065141037292602802402897752873162366124765560767055224120742964359288881546261065011612658180603614448706177697401829348777836904906522736472439724301013497615520299827273854440653472526006733584791651066714279320870453746206984039862511620678311734826716953099709380412842789623517807851918591540927851561672057491902868612495281789254085069376875214701644465927069237979735706378113383982223751165839629374116911704294678525440800910762166707130909867736490747117143615768572398466963007875925382568116159463416323607269276043260717040904151345166496111580772509120607105499274051419577550521513184264306252176764230857020105598798432303653652860144706598429680204516268257984422759218818190387154166340107568313155924027187848380559788517861678310577059761196124390749492876771972916946894372892827404582875044329122275304211755950579494361133450751835504524922407510986373836781218958686438390011354445718196111473731491908668024977223972336060325103619307534849646006534993312367589460865822083363955805582069594456586419962246395614588072526951027203538135239301543114574054757435529298240859801333184942381916453817786284794453493308011788045388028835483705958156766872246970338280421039319927829333431675307964916868055589533587238088877563228074486662893198561046459627213373992434028985681124522575649529434568394669262227665141985770092577128198701747096489540787336190687631876186279875228207686182798575244843691340838224037816517875974340443753592664856337691953255455697034664388490777734418509430308641664114499846492912346496334152253436184994565613241585287826713572182017747057285783761813053526588619759472680549003165055961804620669421030170898324635277428801806182217722024735461855461952905547101084713498764763517773294684729026917208197254760145792765865496146216753329507260202263013104923441819279945128653246895222293417434666868758811155941406340425630957442515341653321179636943626809024437152816266300372905152492841760480125258740186482370700676835453928520761724883258836078420542723338925068286909315615180818207043178010945615621016426922832817512732024875756629774622798469970478767417328360098957728161100570134200040375038644053636356925968343291676657187799741607803284633384291602566431298837175361568771875710531858968902114483455578699526086214750212508508410488021667036987387183381562433116134372662626480260303145111093558378201347087414998890136980379842522752004528186362520098001678838857354650218988736982729764328130968971552615682594971302225404999778684658567035241824641536695031760054010211354749915784020400146002037187081134662602723110838355717948755945900367719433473626392503496064230794643770552695446861031364881543844733801996629500811850723085434728973503423540723029762599411953369355366068209673061604512597643995473409381630791122466061130870829736213587346442754978362336358148565648807589869140190200679742055552608736341982505111987956271005792186337878804789570713314293988648733271630122766027334656348942703873874424667146549120125003020974815366106496844929770783586224654090507790470693981195445590490528905688683657154840603110561578158606975522290919077761150136816975380849208411111430875267249561547157791895752124718956112195180652787671686457041344788296090716878114739845216910602530283675713070757448236675582475676930935049559258441660652411994973408541632052454170513723253449706567747456251149770021473939965744041051509537122341739626947489484104274829161023591934139454432673356577828131295084061887530703325412312049804651543842640315569619120468977671136675819134885117283199125661825400288506206650776302763305884634006365155238314914950536410471962800624131014225379079958479223446716405601930122492915150069708608479839882425238631016868644477622125851545133253764540610939927548054291248375868463126862070081952252094627508909122033304879812339791133039835458439667457867101556482777131261887795832716648041198392630830876640627326739173536396412590643764511051419701770870948187628213351673789439927280136476826002721870060880721753592823072923275843692503778977285920546726655981067429440873887634696027184175769570118109881263119556383654908009421139711972141921431947321308777399921886297632723620294682465793924182752082587876280250646352354608600640497282828805825114168864146074905103638967234715994847156973471696058516896920380128653194219228300920388339306724325529036463939024530780195282921698867258605878924866129126608952270023389070267665556275144494101374357116787003802096184602604069799433925083996638009565237512658730363149231886893393505860851754397226237589920564600270462937594591242943034076247138756199142731483204338757501349830194717557647227180790065214936110402107527375950139916249782127311463387653775332151051833764775356393235472691393923155453947085850612126797322226955297367241603422550156515797211195463081398329012022501394220160824569470670402929541415047522539842990834785885838735288666469299319257437928285752649902860800018734762631516205820866533822494016036432626684718922459074632703155364917534281705249675720420492790403023408163270440347664952251349723444453330044877411961626685211707249071577090971950485135317842892595614750880284412049047974672181995287547048084957985557342514317056037799781610609480741483792033597855106929061297726217931639665086172293269439759290002520418042411938793406156597928650211356184135997118716762002500968347018951092246483644974853730493694991107413531085581736241320627198432675075452027835066756132867659449054324360512743925302694458065288353251358482433696689838941783877392250982652396041610255775351866866446343254695219996141299682481646701996053329077648860966171105319024560811831061062451960356286143038402457483084895725112805252155735948122294696898053511186906145625555217982860847015834753402296218934686358335180765106224822337678663386085824903010824763059750863219586452629249596458796024704498896630949005243727142662083579287272352328698735150963446580505751961159033304849795758780883099066037432066699669960932852447056953554227236487875825594977848953922571139904227088352369177618766673304667856522803788758159366028085137039573113829686585478992638631153751275186090661251992006590303832286499374458060211576373987135391944475916899715976860209197473636290788167207024757247597525363327087624847065581731165276331162697186032801209046437058525189327695074871975383421266873662642762246277686760439034953440502170078625693412097705839800080070222585097198941951122879082585797133254209265236154611465394879785812746356211150752319765290421485327147239330913849543165418057736531059819952026500367376519442923489877578531674752417897388205943266534075775002930201043192252478933897389424117840217126999647918311820922214703855454097255043352099185460864253690497886847649514035693823674762594526946357512280383886787836518307486405229373600623577556919515443160798980658574329359272208766027772694749843959106301128301985067988622537101064700392074733369293633608795224899685765419990287296670504961136589705109895033918833793362332909161473279144753598735411597330563823533481672187456492094248989983938780655638611784057279912836277627474766697056394009354855775418525556485647187164406044728230079626766347150275254314154989510577784063384059700409150502262785723706080474878661347183614104272569962356176279533557092230749601354220044825175163423758796179212392255973002451801872600247555620402271149669140488556650393580526458771116352023507456822999076279647248082336079064439897370714085768526993257360936763765299756749120168578122940456036745841877498919260407031663283544744478582729506996228820924206273417176446452392424646600374446256660256019177050747763307533335691950405559355411427972462091662504767741639461779294257621918979012433347163476336072497476953613390216386413382313308909022176853989003709407807324032542538541539562576916128645836165248882956811382143211531409665876364479743877032620593187987123187031016526680472436888786975411299047779370149259711837572508069983961039784870205101182000544776230442430014472820447002608142669737018721441977309091357121945307612919431434556036067549995334624292802536372712597720298130216574358600643891823233999298806752879989263890634362056318896396367602638141268207511521305382293816883019885206010989754433684234091916038717039724496056299862183078159358927487746928054474063501023217694177782756678751713113012586130620434173464703342358962289856573236340749191138890334677903519605788029691373385410060711075690101544861547466484471032379483357224085351930958368227785532164706510851695713377922254700671292779265862574183677997040518403298303593104672313591481216248623042626994214948422670567617663335412717259856427525762807597530494669626661932946709567868976719578913052105288244632566597680706156496825668847640016799710824270814607369133157805311391792271709548989484495058845766551394930696069205946950306209884125076093003264031566090122636749265759421455676311589756076496657073763186557692883701962313839540305769105853733868576795912521897029943418268687976064299505697264691935537688842637883791109567304922383994282521900390127156333041679303650750673722744535109148766903241806909945010072982383089591594988037609779500187963605824640613641356806043513151500408298907790205404755266655355940169337637620588930990633102834128751779979362978941492922632640476769791707655345158531577428122162228201657053867064001570532074643340822465614486714996724451366205952269992383359541847124593507686019735039495556910440015071981620066222571413053890140456182539451787710504422014158322121121031836217552217543210728485075981442685216111593710114539768577035884833503290125156436423420351093214535486227077242054748826490467116733727055432013065487541342696152323510117744335533288457901574827577145350089499407339447232791495915337184122802355336981549981552038044541358536585331907826570554618534516606477843564072413371420028980152125229331968749686298292735105174868631875617818210088131643720002739339943061451943897072163973159251216096068115248517699347398312470873545450088559623182039159578559366294377405545406077686585115524317979840224235211127853964976661665979717401239461689976694043336320599556775299451378873079344000782422300352844356481116460403979494931925419147171178421671431635504051139346292398865276077154486213437430131318731881696499404640888835360179621880804993985547508081274043706027787450868802936513469423969245136092853180078907449017541813008556055500486842752829702605975106493095000515304310486804401516049366085216554075217261563947844457035116495936001810094311393414036919260230385954534150365986913898212189232742606835013666236685928435886951223060584160311290598235182889546172901725533548998648367473771583786687756864452768851352549759228424989832922528894726279329161740366196421063516503786952363792488378969587281113688985777234202722910025504135966942913277693080758650272722070052796297358581093999704364247248211420552450759043790517596218377187599762442275482002812885307213032325780672461356964419855158958571810471684617338212418163512482892531394054231726579996766165175616891512417131568149017712519786229919159882995620501809745056540942357038452209751556785203152919392938984619263282847620109385362626997296781743079862421274851650757021818117992860077817210054909359690433138811406216426434313103928730182595244832202652756373885374150380538647117684128203271505737531960735778911233700266129247228664520238877130254935591355808958674533210317400765562079762195050103512859637422028460871569871154135959165929355296625774831101283648926127695349410087300300488390521368514733277920282573500078867002892311433699146903424209214637796551578461098724163225076633780425722661183721892692346750879243955617028106701076574466775572710715349301343102976981436385774342095961603039754372446332551308610598873668400148357022651106519532396870369090128928732532802096432994312176274688856216975469450897249566539711602804504294816563250989725135724588431563123212068887889886985588749316857165401886131854594270541391161914367178256146023284677553687875115595477402535104478881465559563024990289337019426996369705741744625066041237475689634043907908036800717300846526213241514636771227803198003608024696982552080586417593190903596205181675881792093871710998239072405225061290728534361492161666008123245016798919995993058785759893809232321105339802648627291491767487378183761201104570974549651105441704713110364588155454447649400438156752119325603373628652633288049684441212705994915764922307728264898683013902787353039281899411630141200283223552720306870489703835140055930877345610820233061559561953108841666895638348182085806121888916141304237414350374043975622591049044565737723659000571297890600201632219159184369022691356359693365175702659124340078271469239988380192377981250496807034118835192296572034082384970641563500974426608312049418517096371103468221644168990124081779956610890127216118774430749692733526789192916652739033424549680614716834084155420362377793162198482121736950430947362868540550379905627086740862749032362715115458606958719372850566337748186534060295875157873269675453295075843808151016781798530292369527838240085051853216880255835702727421352834814987578667717477230828144049956927521385974428065199639347362912366862923043658709620885840488123810770683278862516460638291160086389365143551287815700451894744955682670049676606294721918718953341874028282671418427385063827031961836764682830514153644854293371535714420104826472240359225136223560730844836804108656738688347310454723335716769676058311324157345687235820867438966800358650158672376303250017938267366272133751091433791390758946431439829941838286478913067621889660708343635641947756351342229641003788864697418772613144476764750034746577750286544213714456480487462193845088369332871854994849928892604432274052371235390264322365893375535711489847990517153638959059568421024811016556342538895866537155389680119010021739512936657552688229893716039283443652554169914231342420946810558360114561798457786778198645200639450426011661453571117442867460540474825078090188603303527069375656095242263539903903582102129764628155149363087641933725874234832706464132263365165856308979678140257506125382614831595278133699570140122689561583196256990856148535787093919615751775740878977343939242899898776181381445904430270965303900446577194746378950118089747757787893539222240999342937084135231094558810150938957283996188145844725512006130216651207070603162035486645203871951634808042385436573267057348889050524222187533828034530960850815650707435130263998193448939609816132944439330782743775803913913777738222569878642038483937741483512386401189827988074605175878300682284630799382880418752363578063124476955785443016898245243421647544888924497722847048420929541881041798427257386969449852249147741643289419266224693765956025256751273701584681489135258725565292893249678306403418762905829995106390737153578458809215015495031474703700120163074393718982547433169802131877689745377781516324516549597644458912973867238758629640419409325673548540586665328265094891143109370079571856031965387869441328402447334121516856101216327696583031953664845318878266859455580274810143801124948655460271515571551439777171190701342153880505878306235629649871669771802835236802761020477782445815514461555088816673453448471063458049163149582750943252663129279952679433037507391693608220472758776751697112077344296046559018223808032936755637100568097620061528276652822744446526859756283401990670647157332597016139849713393156418185999547054473186792819229979709948698907502918148802173335850422273862620010223586514715408454650997006516894759708909992891688726926948585304065927669331719347232282629913232630912185460779625040720406690837493650847202187288019574455238629681327719486739583302844090573492602120753431727066734083769333904295829377479809038666440042203039734235220854150686021446326109609984619315736009763552266021257796697004108283130208639298153547498064224422077834943700555510915058684890606999481471197569475616956516082387421136780643044107456175920931127344369712084172714946279175325721801391934058014290923824377177505341803034350823531508435815853163320194810781827018767132000132541838750587192340179045244633926799486110156820501135951095279622173026028102107492788646150107164734696295733777148365662912977288440546910529115210407614917168648430082140340348960905089106570366412539498194455625771288570522114424960935694111357967071041036345460293016340202577141775412880443550915476070230226713650880249389090398421939865392775857730695940769495367040813512302939606868130200539061578077514825167960379596411735109862360373515457414635939000729205464086645427371735294462700420719653119795691513948879043077368167055924646936438720401636270464403412633837755192692567591420188321238083366782356571511392916085468134026461645752216368210023066905706820000688505545597691702177449549147276310031299381817963177106723392381128431125799845496829156899137367187645466925833483675392671113501410957317845344124221703352194009732890718730097769711620056584895198887034578016983588964366449121906889314909818644251768290779175933789078771545341748058741650779590337088151859252084003153654001265407732603814937357961284668587102808532453297812922593909784410881008124783744854854514649480851514454956511189884185292675567234199256133013391784390504097536300176618818835898607275941468094419294713883931977666980064070216285861141835519334375972276090499442636091819735403113432393027010746820503170483859400926021597954725273727913085842750416155468530857568073354597041227676400140250395968707782612826545430493731367343114375735435640111570265162909266442107449779465285058172336429674476073269552375789633989004008909035938176921161032393938452429086102358177223118792094038281472647188482284626298771302372186933057807312805850503791971165661537199213830714530813342079567899929997793893862326046448575589301924552914756630493924531665331481830731263568849175377421269895062902580162955994231211090995398936153070037670423401268634216742334390116740269969948869180305623099802573128530732315839878705206820936930024897910105321666466586488525273635376991772066861509038826910775833214021307156394284428180585700322786998058995878204810699785166471272752269298824330816959980288039398647184262166320641025132067466531579047642267219403339395881280704016245278356494676927246648407060509114084932459649497007127665841790495460201371233260915349589452408024389311958079752018749685029618379271847329302226751840040601075487289422413143856289195273012888131292695782977676186936168359868888526693881519539842539625389488671316687714038111461855236306643647191186734898371037797190636669390443160375821105435259189726130110664954788632231820473402016735685716768022613824407780533090678254195789535535446572325644672824546972409978810773499792423981942716816483976079501513836421227349498604368724229243292984162914158438234534514961634908737871713188734200237390572241611001531634085426553067385393005041248144803535796737704970814513718093842248990601048246460887136564582843977686304473868971008154950120748957601735204136481125402132796473313534700356386229658634671695020236019215414779429189498697521970761039218453951983790048136774756628996797518800251853540594760935289334586683323695893358337947838864509938725361272692328293185883769545961798453169174712102364133039678081109125030943883493612737724681673179984503755677649348980897916643229910194310812186829071804970739682411101425925943455490032827944256185320171846715393473578962736268872306263794958016938475544456605931658347341410444641835876573609438479040442280710036134313213544087855605202012729468420398152880531325595041547924480118316922904019384335898196554532905752937929018690436091990245664264249656588085727254022566830625310647055563303250419954210932427518925484953577808108643514020229726336135497076811333803566988465305828113246985521401653605766578693110761686327058838905272694361489129081663021226638270258329866817546056378169103098881719296420981195844550130184280330850069035283478323202911608737823529513509637124273415415214393648320161932542135247826760752045858697903657760764780487960754766759597365742046242906467078102749626557864554936201975288711841450288868070149648817805047151762087756549220764705391573612059861754018669989734774304000563227154920551880338788241876663138003154577931986544635841441936898327795465388308067652195398933057413556459306183460787847473961689478502995995461994247086817551630307568365775449533578799886539420831868494254510670930947409687699728546280293192730702959923887231547934508989311285293949306033266842215293857178800811005891133526266946482425486201317675165993000074640530282416239445371862661621710660503464332409986974669801855147164054584536055160284039292471120032712851934334039753549196444526511357475483789896409518143129914728246684514257953027975613193672186935704742435787209428934829753768925782919582923450281584418244562272389445322875461870240097987936468373732030672703827208168376330800427441079121229750750676542572168277888419766485055676622514681790244179075106758978653354132693487959490577017185738064723497509476020084759305772334718874776401147182490860266516491305332207921626490441324540581866395140447799381314724201726542847115774313235319776861853257682896281242785267870741706428977475068295661753805571170560346281562815547210283686492754128148538608982499565675655857681514705033209158585264464564677940080399716938011446083825776689689376900689703055125358473011755253902361362254788826747836370221795983940687126609843861617445313792229810036467676570227416642838054576990535459067957453000264293126945555665536412707791445713749817321659686233217258871756700355194176126509440516667804233972134072816211431584452245221006607400119194417483080882457309238314951346276996545991307431648026225166604717884643363237490347371230554809155042116414872432675035379627949077011017888067260468540842432061833671598459917150864566555103695901663770398849728292432426905824073791983817755145135635227981767251173853454688205818455755740750896306332193282098678955481920964013660067757163057420176383875673968499104953060850762394750541508285389139199199940496313725980793045301063136625945476800262451839579483149699591982995660648977601984403105830215869582787661725255620298960816785968078387428428426741245354799954135230969434693334477285783652522535793721232413035313716331941118917948237282242110031252587925352349608364890312428637491062516845346146703437534837662737771280229117052480007064180784024468181013910759460430276308311997324353357891946681528382669355719451182441600367944929865982416616665998454149291252228506022001555453521859755562517517021252322229981185604263855144205264375590839685388310285378438780076139158522357047157674398377731290479531354679581497564567468384774883379849538450066480458281554718783342862998230007536913854253262813445485842819992210160290586571594415008036001422923917308323278753048586068332081630789524752174885759466862845293333067316642455701083255063703561927139423312804603228136754844157059984559432977347164801869212598498767384831159239627127155235780271982178261029193485494673371324137423588636172036461105999958578801557752935237980115431185933989071094359587937428649512897774921474448607222902599217063304784821094063741572565813142089361500656833524407613480073059786032125524755697896190440699183316800901637758055465816271816990351409940418855343388920920452216194939066631559431630615861741657858100597386246399760021429486443456281294965083264344123639476513029816560526964264072149431443396875859657466250801444239423909148477998815923143512340072858836413912756040669281210491016286588167994120700486923571924508596583715003206357958216499471794924541611801713570301061847566062861608282683400398755645119031841786490806773614579323710222534713167818657572014221533259284302049011121204119626566270710553867124333741867597422346373098494435871181776444865719439860300443842512275284192925186910787611833569292102470368769910268422888309114714423015013589081114581066203591933950340509058061892076819928464212105256787802227586375500666186848725793962995786110265088363417159081276210499918371047979418685102917237535035272085194562748078881747012724048144294695320703173150059018327626878836002666445721838610374057082392188140626042468202918609235629691307827522568008922719687062745552627033646917124510368361728509632762108135761253060524346384493489141848544042303378951359894174038470408750013204164635424147849846153562822201279561334047738964254183432655210309051812502562826672885343311348336282062080347737736903024033573355338255714740620113266474654731003194075640515530804253358860326993918086381446059339021726518307863370979389425288007543506566414678664182476082434911063240531615612907438603300826310451526611525978091707352342450727939320098299422344020414343089401965737957356146894178210765300218391011840752225909136167775094343986208126476886862016349114302365676925053306645491107497685985147723487399933473951502781577851252004026703624430836140397341371348038578530933005739698585086972325884724611619885453540146967235746419896448171572499751249234400752246891455591527806536225280203162912990678721235992692261867758819244417458605913019310151446982754591339953280991182084003831368336206516152177453196123875678290506055364528585733875953629175568427838275098997611137321274399813936419859675912089609247789204290116443410402514160063463564542834730864670378443411072702035535946833997077006035377515751922354553274576133172642707746267333824967286139203414595453054146326308901583227568573695982401093366084947805811501767063000674750767655001520382952714888346643172020287492257016740332184576566001075104688088474784777261533102839206576199160553411653890841459229541589277228337363764555270978880184235998308080326701349594341813972046131344754480323895280534957118396323928834701929361989984704615405344773389933195084446489550060668854393290172109787191333039794656539248588363534333425453954274170602692533424224775774121528590287214494854284990453698275446260844282364140557233143801452652251832630864705685192818475760447162945469778505647957463684207970457613137222812452286851120631643229045091130356637122433094703786616230619430197257411647500584249936633035207367741305010916566072133880028756277608960000852156357881535813415460134480894247991655583576762319690423903903836322673341887976952776582869557945169281238424454436004514436111456867250340015331101703246972368086634555290006595612310328273854634268717048649761670412820770012610933256532052149261932949775554250407774947126363032986539207065914218452053593501156684147937957212039021290999613804581564605862117494754157532556814605145304895619865661182905358680532917404305005139195153541422325327998448422772501499783829953751610331697606739046755277552385763244125248993921797702587902536516694940037142153358610955965947205115439730531498069276446039831011825604547348253458515201134404028131679034540261447634332497792928148947937091895358951498442068401434115888689554309325681859880523572211131749733465908719909760017230073862031973666604598434201392420493573724751486950173631501553187213878435064100100339553900041443381334369262145848204942845214505302896081379431987671896871365976291780392638002022334429556640512576025849658410686418602128506240698803448002474344305978282597773050314952257118509886672349812832148336599414104756070055958327517353472737661000445322174599486191626246633929094537411574579621040688211946384656985321030964030343377306659154771354337949586240227643548546634156692104549264593213718742494278670482626457430477713271136201148950032313766401508437484499179165968144038591634225967139494706207584345642395637158339398565040828791754915016174416682194972882877152077281325938478840819921512825327666472044539649926232194530243009592226774296208280705000420950257842984762511854604576499580857473028568870741364034719800075973038812879130605338155470569299264560731187769163366216010182374471432907720425803602179739998839647082275644268921989534065031254289814108784353956083500516103648253740677657035366473387692752747507594472235951528470509471091883329723678747803260505466550873216884213809999573003653544801721765304187776238794571487886629038203533364015301748573899791435116855456733717972209052553111038162190436272683833269515614834527602465157845996630023509439761668640638420764139396890437328260643454585875875440296330310938190956913508066124230224706732213761403957540871179639911225757362653178165328014460913158091777290501285529975466367645540514840549662602718123213726684340374864046139664077276302626736543088690482836048878664242230372995804649145847544476138473816412824909235913485927460897723422091990092552512576870195319901131934660654412516449672150883730004565721096464590002037751754532486388342537825543503482553348005025029640006146888116838888007301343170552210195373583548247469502088693106933156519716642091137336346972495438717645310592164906607106141356689606580989784065324012340876467921043724603391645063088015285262470562450786136623543051580703662504248243511884719898024975954980478972697193600792424811704159712506448329907121565107518973418882212720560721851029747215808290090108167862430468487136407050035142368041638238940930303202903833220648724131198071921050143254459462843570021322394201147716525179297288956773276747878585359869620723186262833280348885537727120465396923445734364423948060733653681412678884216283271871688492539485382999981497246183621061542434356335622069154584333242351126789265313110513795822874659256811244732981052307490493309202188637467836240936172230541664450649123854362935150856655918861691949142876656134172771421306193608989936642738355358996879711165432777945358440505992555845932624549315671379807741070989078785635643893012647773755666154874674018611678058770864210296661456888805633086705031052705388779275327360786018278657843640725127612468830235709260720292647848819084947256863240806350735351399202729231942193660101133571012307912172495157866906548839063681405096663300179045130064157441480617673876788492216552477967757089795867128257115781922305059039493363596617680282603024601732855821749953488072450735777671430316546077548923599743142331767559295851611160218931126974156454389420213871362426548203988398351749211949799797006287667442225390277287455164127154855378039900671915359540220447615374325855570221253801698545446813426458776427861878468087247284121392819303610866914331925920284583267669857186213019244306983589205386884498050239378892407185571699427050773632386049217150026457656372966120850690849617177813869492882016041412581769558127118106038066161313304033023575662147040514679970859707567553993782713955365376599739207556962984595772388360758943153818740134687152486326096220832993430637280152560411263246037524383147600679235136578351730564390517137347310681393420328345261321454719070300060685689211477499005277731809226519411384248007240348757548893528943239888400440946039628598699890394482211123706533433970648650400566398677878887976535059871065720631676799729722787997681072939770452865140132029964109922876929509433591161222797223039858831878527460483712790986408475712465388017324728458560296036190920372020634824224797472516191943580674455863667992536363177162928601273190338887801953844800194774276723795739215266302463102317982000232788058152017301660348753806038802716474214999004545350881877294418954884900837658045884925942855696403838476737055869117861138977050122506101938679694503487737248316998590225894516823214985518407290741389190382615665649321765283324642377591588469859842775155646647588007191878220627064293203398365808782053007578948338740035174510967053702245571587345061883111643747867388805699216611594745550806721024378858393735375685534307525494900200036831578947010461277164275060744410520470986706856226876026551767531525932645702332602888125099314424294022860952200372421025415964706673909464103623345414587232605224109313796225356293783817265832201151905002606220837660363712377807490312853939548163584031734215868705369325074761837242684856984199173757480157195983322894302957549237986219739207909144975151809774763441090519987056093411767581885001645505328508761059353891128458665967568280688711821060704318536476354217969228655290984684666312356536118228958306120286388886552662022759519594721957682517389568695455745945065585328562728812620430185086022275951497038604438245700598885911398103000435840400100353428737904337033309213654629443350253471440537384668748834765471119029577358939734411416926752876539525842425463165954621025185466815912362151346070922066387018368455640874631689403522994336008219655892170448703404601199479220630073442775344343342386977739104443429018824113300174673806173529440291665118785758856729205990795298721129493441660972869384445069623190738127661781997051463825839457629566202044047163030513158587413055044193934660185722268821246855511709917039235020085454573846847714549085603067697992679298896791332028143370331439811739973490329892390905069097325467425908000715987269448213984098896606064160754060808278691172707597963190053181036668258668525581505564824289374562972016970465869749027501607323749247684647525354146383070848739071001921677854265523006561969366980734286052682399722496943586995687141135125478558197491649853780327862599469817091174068648463079685754563177041858623460393543680608637905893319408743659915675612085588140773225332639211678540907375167147441437879210896165520475303587934937942727669926404913847671873852076822974335447960559306074507265164686159161152610055653213446755518733213956754415249757706367033214844471447160380850148198624323068572160930968921780579638805412916395598085598442098770310292031483079550427032169258877237821220224916210564732137429725452718672709731435803480945005170421896808418752078513282967337751248300500462209719071928408548217433164624481374606377161767651554418035920183557626475627728139565564531094371464783635338905217357287344143039379754235916040022550307019032361728124344099641296350269472913475921882174945641639252034780106491185756820295195808669915456086248110033432685633257675132580667463093831656299422795064126799282895445927295916195712748140189870390773009771822346118476958291482868246155039111790395889931334402462478060357150912388227071530461555334461565876074063619494689346070558937016758602524823692609915283842854699410247856914356530855942934187678158101733769846346894862362998680109799754078214244957057229495084476334699262277107843670548623636172362648467217956952305456083383064978318202762038288198842822815437829027006584139195363682891759278760892148438437391641821274716684406235651739195015493446520866607259170519351121385032590315271231395090167965173035726236969979619350530587827405094098413364027810167379657247075985138949149398092610336669262765647523859789660489630796419576349939262930156830859012086739676243990998496784879524262592508938759679042536166077319107248268583531237554065132126419562651871057477206861430775304085646694963276375465212636299352410086424790563212574783169352705333599713082415902216467838064382397773990807356188459328390540158186012189266807801043476741985047195916333671242384676099696267482734857468109783970491332491149720826056715184281409325222703741369300566455967073368351647559417422151442634348223505769328172604349594010880713465771786297697755839057993605691722430405033821384171057033418577130752595485613488581191725185414823497160726249133311932716935488129637327313196944996591765860494855860184999415199203216053406735527296145996555760764958042377594554129051191158901242268072143132570300282199148385356167735129261849043176368749680439595060728664148576103082975107867365796825858028188597720278998721271622278146349284710921679270712714626069141296612243721772380639522788791844033440802565220600047281616776667449649265770596615078478843351614712349902448511746870953159639290947589987731656559535002267665340513719760430235488537921200197096714062089858217720736013255161781422347150700344038938912433124021591689205696728364839290402531840008816864377448233554127606575248770360408926718096252938639773602526497698807205901239000470988221824654457183784502120788458228580596609539306229795503289332900563697628020223155765480685931291606739598759457502187737935992077129775341709118412967412621323806711576274919660127917093088727472394409912565477745494317259832381629879920851568231530317028470601948614227115401208327002454825936280326946355466134052974355577246586447768027216522445847441533053065771610647294457758004358999796354645845227796806473490612425302299555504257774299124787912188760602762061030999392304852854404394119094037493376714631592931110274891357782243532495460880331779768490409426537408920924417570730625667286301717201237863149099160892620749046300427526987371010846653115050458747300504230368319985011229864435251029263354240982373580737902950544277143377486606165314152698315462864247018453994466714278687783821146472137172723381705165986827836576427004174865964168348261539102039135131686496194076376470025707451591439308250928544669034758802722962938006847518530358203618679717184885147168653436380347312849475052688639545834331016961947463287395019620333852535830711718378919555809577448032599648883744073700041002872058811829889905400220143035398035393419339865477926917117627957408649690493702853573167589412706358239910490951625421928813742327211342785304973567065579074305666652495213487814652426380221441022720853736872224861481588287560692259714631355173509452230903356808652627637934790210598887468777831874924329028979323352577966827191911067002618841535993906188547197264452549167077920416701930807610971554776315373215417213560514952247022653235255819430268565073181669251457697699158099107074619167548280550719540264371768791805656867536645978095559423510743826244980346791336481116720970886682891287471444316498839770796952060576148584427637348259705734019173096417737419472046698485056250984079212483679373828306536236649769532164848703467186389622870369606149646325511636373416410440944231053432319284934534910113055236487187622884463452371267944978665242614243673003289924843620178378987495386316121483447620752853350632513733592387837923269092360625311374162365576377470326932296605675275961229564196756729431004582949937646794009900191428018606234860235816036197849585039037971457378266349344094348025934354596202022515921147961104493373488957997329503928663087143213712491513577432076471424023536970433279159085014015577208802096595233569597207893345777282869345649383216720843149681803199369871874469765835864660870457103289199669509926599173126709629516986800293032299204602507599965311675708955583922856756242681287028580881598166173524909879236252545992228010367323043096867002536379573331514248302747720220652813276547806778001639755376291456360751909652723089307071558912775917127363261093329339979304950297110221501363977017198009522584045714325103555598763342580559140176214623761033403623731351649742894147418832430324003355489504865662544564076390896555899930283260180487136301570223112326616333048693075500188674868500183417899509799731216672907372630217991551394373754503561148635973707688545113386338728845874488547587556249662051251741203616347995729445453285780913376876589243056396144947768395880993434767682859669718504163226717710315922630454758565417200619637309067442801140965017804940390394756011599313640813533743777425142960732991120939970922035538850827128879071265269290406237694286534839716468257443562878564698123849135322635970186920594686547102684138669106955426271404095069787115197936777860799958309742563153609626624553182549067438565261391087049774542249355224525119783974181240098873942701896299877889278054318272812017470313960683197425667258778046848936830130840284659771502409006722332730499665695811576848758381006267616068020274888932928265779151646065407849605521105603021568334278963755289084846950985415537615276584021135286680849763118995143105571797169798064025213429252729734669935074905926026915097524046748051385905114692992536865533460738816187118644511490227423094953535861973934250917689969679396656261459879547334123164346679627993913435585779824736821149630472536440853870755484618044490041522646200785683867032478860632234751323386740352987774162317038158048466625328105540871714485708375225373277937788691228821927081425303496773483464982762675784540295107888121585731921165663209556734783883459282806820373394853564743315972083691450712185214126428456054982276311327975494189056934367857050161141270956891492991928314454986073601974475221289759860048115988733184075276614109210558751793978926420943887538292125690303957168878319743948223053415390566149597758182074761360782884165210734196256723726281331642571369799349290116038039312461768142682276791482630062950337891896402381036936225652215921170866248740149312063041870370518370414887057297356051112883850766161311299632518898507049295314554982047636379488226287179961588110618018073739314476801702111516673714152883517314894586968072402248627376852471517242156664917222246470955730010770262013028757820033783418124213568433385069610100475019898811476178913529997483476775487265471085218769647204510873893177894870547070558295332689985966877345232381549621683751344999878565421680886253373945040717327083312134008033108822919791927737030266659003541941080204555609690971548215147897006905413286256035708952612979442917417594229088825770093377819393206206809259469060029291686335863919182833771368664648557069800449662056950559090018092388964780999436458891685636031256823069685423985101070077307645709020637755040250007346473895093730504759486024454540991075165093793522737656296763793051263354229419815668709147256483833541664185927486195971711952816102574270401787300213775096630462192572036279320631603943083181224779802909922831047759716797736259282322073094165903235054930272387252816419642832103745233599971460010080491986791639720399184618787231951193542702200896880697925128551401103076034847346866008443953153610523272868191778142535034814657634375446498899297120639589024957892996976805437590110748509338651063428041192890729300494488862150516564990550695114590466047124966681875080763296887397235404361002214315677875573025728761180274387915733254239341932418156830489441683028270100022089807153286600044728757749398274462349208363037921278737038213590391531897294646899898591357475088575757607639373246072302949217514706854838782069890826363976140021907770498806168005255085138080982044615921446093545323014053382871396825525463039815746279118566282382585662116437999028333588796838696258258481229408790184099159381331450370218088361284053344496795383831297617974562322524256052282530668041300563368392565461624933555039249177327216763790687058596061201509465779354399573268830648391987013632787214071393408700269846673707570086909968312733085410683941193058427038614622266963639287992284091368575107207512774433762858732868300327120889451512384595425695059631917652611174894391781155145304355580673086004218116815030267247822843443915168432132378830451132477176124201805282032181809637916979937984279871996774430728074818961526774310044865528645335273521177563833113421231561293956587081063427136307869346433575065214700413767925782302074036277939622625497478953819475400234085985791561996260093099473897227220127427825026713238796499304748941395991358408519950846804687246479334539481647993016354963024412732739548969052541963022215148233275808241232432099062352439669614970348449216066929836112031076131410477682118023951896349648996770839315673998025405670513518976196978969551714685749074251820111501316573653068455265245493458391399529122474839624875138948702498245697464755199608952959819654479617349732616223750103362594836756557563079639450465879407768306417611293672422213384405983037655102593747013950879627862469855665725270236793729789669160409962883493986197406595129075949758372707869291047389422549791748448068057883347813989912827305699156833327568208520597923214319790933813903095031978376478174861318330769574265550123961220604160954611253400317012291038731676596256551801659549162663375885208316117636342532106393463542531925685864450533487731506626846083260245757717368969037651422706789614084514092468157832443451218312136005219182725853861357026372838775124214669259711426892214582738488651564499669743897761372935686048914958655646226634671548135548502491403631657512074352913802490582022400119094098167251730305769569223731881908393990845725647186549111544856257898603800040939507559907282138440936686153154913766512157662732862006222134660744181959213817872181970987208011132047823274688829061755782727824398202152723307305295004364623704455921481911936333835656533591849125225295076050922310351377714808146783274059058927275079457575382149953263112245614004490742654109142153967316422928079986750274716064802216984460079020660242311170650046968925961777904254224746209848569586741042024282226166242785125059150559922504354685386329901282637037217682334720032512129694865972175801852401487269554982631318179276169204678256551668063581059431688199985191595775728060503545819030118984798868777412620688228384454492852487254925394801034046500818805150172770355465056843664347704976333548872844537237214219698909932350891554369030345106308309977904357426190215328762441666228793807104232437763311665932527020210269574800284995922909927832153850549071673509318113523337237832100144092189589073214379952299046015594337087342021396231384636914594055892765153391077215964643043578939298038384024249322106990581696117583225471915385285234151169995654540529690379670661252410641867779462942624936851764584555799990157763722991087443783292331657721891987639865197961068287409504362959710460124042980615148039199956616283675080170481498377777207838392606860454180193646585405389872148581253951251373764437629509336128510415729298166747319956525444014653875763000419168337032076997378315443162361532263057229285037711737191535876973253414110805900637633971029402705689681399001933240640037307176768344243667325296114496208035437000931522128032948213918110608689543573429372821328582918494324203252165365206346502847034935837294832061312483422669446213885489265857416789755705871158641084826049816565556840101451686876507535091489077348784283972628133209367168736048920959169200242255416742868427682285393851157656585586850915586841169944918178191590334335372288140698371738007404086263050597237027527866118129351353094243792578094566402869227053792563857371304259332490941550510219703630084556214877493511198916078137702356721857661773035622230383404143704535555399237166884822031669949057269316258064464083704998064687095301406522311882109631671417981485071942188208097362494355675756450793333658618459093138399972995285794276527961406851616374149189011714153363400901031078914864093371677648706415070741998055577317618633705789953392333123199624291568589160511242238804752504139630822071809771719032914030494013557397769118245834569816626106936421454986747274527482525167422295370007237901584565192558250144324527652736977863542087064128193078635563085594698851160513032716607044096535075010489710272487135692737225869275951550618441263233109855454281541613113164034829556034574026359591427037965952136212836031153152641296940868403689669868301160962832926402118146065908810929837258535153825950334610091793787785687485700734656839637134040747619954860776817873280483037510558851225261796358856648577463122400540712226497226807321156002831411462026130137275701497576126912482655013024601629411009320093595553356405974171738998843459241125774284293662514568235938181854176534803377126871973151532705218900324599963511340926795630458804600951966478438832135131886581007966538403914823396909172860288236907931758337505684951006508909945546452629688108177001769064792804030597623986649995369425371725935884103665326273862530962889805183764528121674319965882496493379410482650542297398301822312914251275205678301671722232117572464315575962783626562838024657820377405945002964484513421912226203398322978824293750030975106162516241065438384139501851961278413756018644188806592860547537302300028288221716088928112125123018916355624069696436027869102054795892091614375469001079082157356258207655377199846610899456313371013572075805471162007017023922465228167298084532284916387930006169674467259758503640843083045547684192834134866180985887957438436487790393591963060395412230621755770160284373882021510796269292402580012272906853145639159093726110438265840832627635543617814212629003175457918072625989241986744098356318214831262574369236486059952814644317983566705565441634151352303851831727524008553486315427992666854945701586331054900360805192671695560513944149715799428062997953385550934727418736574009163718915847094001055276140909279669058584293587520970120722702289421431559883918365195363659238273789226829424155320399017827739674061020457044417236715424543534559036363817178795477638267749268406816016982956467015420928047796797730159186434941860561760872390073326615081079058975413729302617741425853099812940754246611567172123925817823026881909518798354476669817617058820022199342858578076687477439545979995691133226061061736485494466521027522777912903742232274585780331550887132148173357753650108597761380932365140377222666630650572823197400852591874846035543262314927539902971028476531320126270020243973828283940021265063569243188696716261596341335096860493116926118972241588489882992435044943898117622145047746135823948317440657135184529174376548808860338781274135374518243296162718790602328209416528351007409886330686017644014370484072933511206481367711854024955749802040161946591679386797802550261887899104477489141814117740496305830035183663923001912328612161096616081921505450443893737715540341341332683610670412294720528318842588098122702204218792566367718372161487337331107556358714173061206209504606795176070816011295784407601908784958027443625961335208503410304628643412818478246408635148027503042105444829581378767139187218877149310612682573738392925845419257151423423089730344396191122267463783802572263645038714455092388275975389535970836222268591885220588585230472162437820241840763800022988121480358705457364009131090219200679210963575719029809597358171714528903394574366173358688370197444059805847391649982168810813460687044523932883911512307022151728072451156033210201511496667307337912826936219923563033207541680650700742467543779356676368113298761722799805564567722011276169768386129102889158919019194018380216006797376414260394123443310757747141905696935284230340675910037338512844376745076122669019452333923235622151227913301464892285281833787337830977318360949814929530394686672114896373423457101328699402323153148018811345466022183185165407281661625068062080844914128124779565019132488066569337000067876789421525970028693194196380698437499506007787350398132886692721741241660914994194561029702205699388470130439045984745354533530141352471170219882642366559220708632129849946578753877715788606669478889133226171744592898201561688195739912710163263953211031663019839541346050097629415228769095269365931102485343528156253464105101718221466446704296301844549475646219304177291486783756158377443498159468367776201424758526564036986005366098479508845694634221070497149346492274434562754286602268939391140078236026436330218108809271042778300875633142651873564773093975298821299833458382025989847166429782194598018032666067464703143091185431013111853660748857223893460540014461552028142849387173380175970631853831836188428053787340451695180212719210939248941587792859475847981567536638097092579188168022434868597332502940826870314595126971221482570453671807901355957742396744301512198635619270175490946850526730721563100461102397528309439948998961533529685092511528093659891768956935772056512493302303847647393968095890475141150398119846495332464339969201754036323363194179154302264923235277730324148732479316651478114467312178008161843132359174300134129872657914611764794301451692053673432277203697104259291159130351115958143721556235752474726702934214266634849841168042770807968944347659901233454544924187314266765894110836099050940988061429002841620805307575323751419076776108922657824941150387653058182987699916530566969839063038295596070629005262362014797048472034317378504985798038057541045372367227460965502098808279288848772155909845567614664458713030351334927799652762660204873621342929003115584185851774912263301327258864227447462063861702291252808154749505586521747785712931492432834740638086411609064582377594425575271142723365341603228622828572423296979222896132485432120832147381559602066461232117673806185434639246785132748758642549880204220622327685440431747819828488496046877087778626109403524668716042983633242620604230343333609078847422138318225868904192684791199331293650863177518389984039018732065677906585422060803748074106804944674998229853890190625226967939660631509618379372690455432490529528708248156587068199375433028045779703086145569628159579332249419908304544647053837903620944887417631114959459210789113497609616823400341858213411228160331399302154029428007364470796973734653462689683577135837000042278960755650615007902889815430186932153527922377848679165378510089364207484266140510025331585230359566239625109351115967297268364796963089960922267877265736288683252282969940733504537671811516286393869531802109898324648534416125460575492080151178027224871670339341191420879574232006180974125247694897982271105844762276362013452071501666577136173188584821821841933479378402394287360215296302150661920568893946183774748711360423300127774441307377712360409416960517702542434561698206665199924512741833210193126388648634624620690229197179399800913296498467620128892915507692099469784626536524999022207920976040938611165408555931872364519294671807657351180612560498804170225423786050327283622511612366039674888286766182952688108925589115903468796451785869730517026223378364508218580663551284631033845063822152341068236392703044525109131487614942727880742709208474611640020822527152111062852445235728342403362079510747231393058728782597458500934235817136083551996859316442849365040275234022446236877790481783190741791708057491085243122305482250189894566781183496482822014392295168743501068982943133865896996336257923132740636100007359225567366622999633662011071297686238591418761085876959108299827957353067537471907317908499323959838263798074368313697377912635307418285373154435432729773405282180525070941659982647941149899897584012419663080395605599126127303830109301788368257858299746964711465867260037395827546842122139571241575066179593806347199707181334392762894482187065458730431139708762551611833163427126309426623076335542815917012706543730920641081700367658756264862440445798173222823140888152485288571486931264512089890961965905787023451129890909264361608664133482891558205256400805639766071056045105463288345613283442141302392842893354736300503435422308146780620490928033858272098409191910565147528488466791024746584989829362658419717683550233126867823515471073124200561451913195123797361778478642300969151477240378066608538953172774504180089409356094019882060674943370419256267014896689298149967077922489793490885384003897798257554613269106712595275920645945999825988533111478068475959622989781226648939285028880684405426763654289778579887115069072178186463178568751672726370214230192269728557684460127735654159644885002238676721183541784124731952699944247197606544957539792833566755995274001780145129233703920885223504541466142197213102386397677927081521878419925129832341205778359011068728072009797101732137568428747004236876613956507142685166593943494388436815496194858500744293134363603487223500142511910865204829629505861643272131881995828080593612879646914457806592249075465727747133228132007937703933541271186230021952530121988345422203707406206126574284231080025856290600524309429273568780329431431122445562578830066570994172942765096056056086786572782804624057551353356706970228591640658407194523368231980928797526370717234951841587258001906374944042050575961850501596000909438126675045391699596589220574937927024209188063335394770871761570353332534145705971102233820874881193084059294847506615953667844834399278015431418005137980472314851195236097234342261082147280898620477386620821773717350281967371246386642701138877932765985712224727379502555828858240205707464103022881729538788861963707738000081875072652883132302027820998583428176234549652630346674684010144672358638546064899823750634683685683569957997721726693472688822695336778480811933516195440788723830426824807091135944203178191191055983609936845525375579907982279879070427625269911329477632365069815091290449052519627567030205575948241034307908795333016366419051067752913841265167316080097583084369327042098289942392361655601900106485520954837875040978035165934433124660830554051584413717556098390995651798379723841739536946196735139500636398355460383139694763953184912436426297477316359303525991138250575153333056188708840478611182748992697931292965424314833600263525988269274435181908389749273307140858675407801690142385643371318007660618863512949685627344251407526205055473958881505710051820938362802538686103983260078006409268640316692084087785880915706757033121338920436176363020101595377342335295180408380836532639327749118663613817433019240189500184966733563718954914532287829656921809686489917222653944701990804236135265048070398101681868586139817621883476941914768035940352609035666139727323770845232557744534539373432128101377061442490987039000370200135330964795285890746121292863020855119930486961202475057825426635190055529664356591212988963245517001502702994069909409429703733799617773417938862086847073103520999491032843502331591227601891851583614011469023334942342761043565878489729994711802488479289285908873527433025437336822588073678633665422041967443473078465935318697665765059621125265251875293671113799565416278874013185698050648476906259517704743290839425024015628824699837100261353382110501463660126407661106186673461713813619720604202052442324192342503061155030943708189449108793323074626505637609776727703832813503773801874742189760146619400257211842803155362099284475584540251867383528209110380074495956096647592497127311568073053155991798809916362401282919342693114951001826600284372689322938774096814389503025086780859292898194997330207556867800902638336426472475126512207087021276611140944721908409939882377211845874441298503855451659233665302594441470630661125908100018118999575751760146101743214232455088519644532986030520444079783436503985333489255339224555783666242253945927152910556882717070077233136314876086523208362137471608166333073637201372205389720705085611060899086700102622215223851570669169426653937063945163046757433150477397177842941117819786345477650468060572150496636836452655049736954409648796068389006427763819481670921769578751356424009438701715725157946861889477532802940541442205591779114168132356681758885299288032737875310978209873380017830346464907192235121944010468769480268279156394961675167274808301359197984778774729996137005764835097654845999384828397250434008947834699813591275850176074094845080339846498900275641217116834016893491249585866111330558358266393688492962767755748594050485565739366028914580335419232230534550027735720272273986451339701866188227006101245426629312982467412778823016646572503656443877903175558031983583523824324142365713765293232199211149697571547292001063293487094231340278196894631820943665615911260653169256402545061269727820892572141546653610137786480032619187207890363954781166085231796648815305438068082177981076559315812701958111883257203386452727415014288852421302727298637560142590303841891632809904901482387652621095818270864413565426582982786143215749128312019413283040002295190752895267881884134202403688699124323790550270646295843058611682160735889008530122324157916635491306528283743676001439456997582865609534063152891301968544285771629193974856821854637399015887152487900673380437542513447690691949105085000813850214809188755007962767722164986289631421249830564384066296300077661803505067479166469322259524041009808148172664029976320144100981335269472247281351995743480366158326352175113761213743948225856737788000799186178196955095462375922511065623986144908921563966503525259569698869093761345174438447073167580975538015332942550087174267488788045007027291666152714196458319596772542106085315485666857852078624452207925283464459448293117367680874208712376430804950786283006282935931963503294662806466202702514094430243915523167662662133297446666466359236831332040819399605763960820842627467485993827705191496559555731362416461045940807202689719290696428888595716522223068762560184486170153824591657902348800158786738109068263857410754792927184143713773286088643868241079903685986854445618408634634568729372624498705181717502435540136604982808202227550151770973638682266150735407591996956829249474887971380730339534602407261451343347180346101599297986797357531015142173151403048860067344750594600099949148581417878912458314836465161957936717366129857649806209439474779386006263395816746760388079168682518282272884813929142408101522216967768725680645291690326316063328548470086865438624631635565898765554579750026537080699627454635974215897244824373881617150006445524308967615923231402930507654682088538651548461114384285668839614617371008775298453994014595705787078748105907824729227636632349443495387073080298151100080106063839106810721041283436668850049248316106321138704226359034914596310311518915819567684914035007853114523010145618830497306385686838459534512078640084524626537061252134739686885791931667784645805784107813126445118991039725746987065368252268691312652526030370909497822915730331873392322033740114893741185431730659666215452469699652589413524933226127144612292373434881224967442866465187819571794243553705577869530558211299261142814250672114236976394859764686152706946246841385998679802806765294042510736672354054210125598793947478803486994166367562976281115394024294473598969379365669580992475840472223414162702765809933552461286330275337233412440049618787578140209108678293669853884445459471434281610028965996155532712505890536046392947743534943433049463450641779508482255463129253390684540315752448722513360414426339867059105146314184183141426442441119259171845644887900343628789049168197829883177439648954225333163371896541718155850807011336551298270455430960917580661070630847235186240050369117721568374968739200328244692655463189960316197728856676047661381925936021474294437673058303516381532684546692569950934150777371468289589019626259312378006993110479950708139415593544663207954354302909703802885294003890959944098571988318535280623710676324545070140548341346258491898319802808768991590549392139994053909211490826016110052445218084579889477402868511608501321151926761220544000666002386801016849048605400834815647051409586105122587264466335790322179305673028080413305986865704329400518006789674620994051851212783693893069711823073184274446893688956492912004234017891053897032066786444276004143873760733425563811797716982102122507752871047963590125150791615918928250301022661125444094852051305972519612528258635672970055677028276426500176987889130551492334295145336192122255068739249307180146067830106908159939789684034432195095679560806738314825334931071344216239223069494367818008874388675782179880267700237022589190733105820290929168747176440145130857229258450052392456887448576053633269713629682017365853308886832049548429741632957486222870823248953403111539941224324190303149328813848573949320689130841710312788388332875916520022758609807652169105515577954847175292720342226619673872796424854799587385256440528855810509736626063978802224145071499030719325218200593277750831345705016239445251812289743012269368216600542103448933633430245983674816155289365704638633745784718772458984601020257224208289597609591858057670124942322928373661724887804348467737092919461992595304666064920662021040844695273998491960955286299129530179265715349923633905140448081629338460973457039582512086576328063795759831857857977582894162158055090056177342451911284894120148967177733599997594754842454673198491107146915070227466863301570385218075808695259271715784408898229158118263337984203816696757710031043026886320538258858367279227834402183883912403415307020708812236272079365693084285112544415156976279387603786069419180029208476620421435169164945305917394531309328121158368484973387571245480688548905495607730749838251372740327662520932121517108248901487388391304571734858902693606490513782821856340115786811792754763164922331237004694555558655248616882776053415542206074264188017806350044973153692430970303336979854929936245848752574200488629234976104315430711533019232650884582256757709475710430198246552582515028926372372444929195069567370494416559979353302440271528757044483550943100437303828403219113504125943786685296874984845792216798867721048642741118521020574822725165950725190919814637676678386059519735975629729687925623345833534574096693632435228563658422734892242637657242271682828431839521174368604793401534534717319735541913214742313878790088179030283654360345851102572871626642645122859694549551021618109457965470406032649439072116447836233181190371703423447888452755772202132514395019853050703256933340255122258027636095235633412674769573370227354379747091370589379592222366949675419766798653241030883565513569817915799093332447966108892455835444184544331374590162699688043555187024541122718948065338284158987159031701529300194797421351230301687448099267259018792238462635355652111506164824967524373103128141102001507997367612200220045889046043946349332167176709321416069949160314927912484459316856197680094899904517159020249312968697833376714552900816683714449142589567297809762990414494858338245314734099574818022434175259324606788997194200262985671616241805397729258622856127003256902390862954681256913301737946414861113193660353164765267080310324922549147206111788731582595440661336176544823812686065178673028574493919608484624143243467740383594385441590862928507311435075485318430979525434985594563893985503953943926466603415045599488396736737465590861986909869250527210536153461468984802028994537291911003974215907665426936537617596639900420668988762334689200850577551812144936373819951680468617656707837638162529117107263573716351762998600507557235988708255426974237949754758031524625071172809057330069797416453783924803941136882208374179347070868631117623253673088208662847616901105289501663777738514838305651856391405241663259971129649611172524378203339787603544267690456241703365070719025024745586510276808045338806710997495144956910477812956445309690033741914554367117072833712442817712466346307758651563032933165520861338600070390965577070299274909269572069878421832878489370941918934735081699588622973819093883059151653737716674580057426241198451029636751787446814117173382078454173380907390768049334623593155327920139533235166366556735419447496757825409097570126488978805707485521274081089478976135321542211421926746685581293061807794686006533995928376118537120790277467061756493405742073845165225822422457914754277694579675249201627792408623486971269175267848380544188397751838789658565193496044635631119893318344650296929097824778548626672466092688769049303809437399247112982470406830989100367109957882773415956404991012690037124738428680311572921466096834544933692561416399499219737424041110023947290529857292360007057779621449505587982455438814405812270899891322316506281249100829433049828540980800548154908639491296928700461510400609814336875495574202889048589762937550456310434926847574843837551198584114959891753443910703185673982627942185023300286524681938530833845248244112707331597043533438071141291708561043416518968135316345383219423436510220160271890565038601732273242192228430037076882254505245287914771623212816692126083538133990041871253480069282596277959494109800738277211260017857736868332846205645295049183457275388732324765391810934674950121307619115511462207726586453829705070254045856015442153238215803962483624802825661140035436303322640734801351602532052486334747579923316919284637199306542970961013575277141920709793760625973865747521799773832903774316802516222278799534911852056654012916607512007057896212222753024359182074219753191333751596699811708856050290834737748072430065976269819780461772811728126115910463350458063461888916247464965978161067856254148904311311791640616160133511374995094769578627768692842401572676351110677033671599653974814259984926068905417895051537114632616273735166034931689663452470667612293491343462804915457455387396324983699876053008384917084371664864503132629334934969391030378342393342908628643743343300596876183735533500559125514015352861848562574186966961499618075939579715358723236569819445832356016417116340506828540789781584141555476973157846261604501415264171773799027018035046782190570699260426325517013361993083617107376565555998992641919184743381579794532134646668864502972849493736100923787599094868192066048903597119911313915453692243891751676105760082695279340385166244974841443322578472808163027491352629150661612827418976219073124201370710364784228888985495922537853565618854792570553635842443372650686678544995518636450038382250188640792267379983712487735807550388092007375620763063405071494462277960235739213129697402336556504359638305880330318491534679561477696080023426020436181776125548978565952501033804441265726776301310845671805645024455989600842881167996907769669172636387166901296812756000527357574336840076399991640813288921438283993915171591597818608586627912595387632569008501349103295778501044939972375389575748362141011229509380125845373488798458718493818108042118454978054922979544990399576858620761728960357134945249179379790444451968714951622380720733634702895774205453629305917129913757154017239262492856705214706785179005649781336393983461870418435485073699984747217817175408170640843485512271881267409330416967869661614248446215514926245036532908268782335520441093928613145012913025936785850387794642792150149489969546970281252807200856065584065629498735690372117231351259850801569130497662716784143696458484238383280974583644230283244304327706418944284034277501297527919541316158344753361401047254694207597858678970314041857883500702318687226701481028710059581077420316526382072059342852317254071090939571194389558527200275382896016961690770246736332046335936872287626195563036231152679102688681240222608589629777020192228723917666568339341962484056540161867040427478257563920653445268690107950833527878741310329189129726065452410143482789303515666324261252897090743859212514198449610586352873448275411543881662104464295449461171035497126984359495069876995983727003732635444990269307463983772427073361907123746757891823577053392655003010991936509430315547083557836617400222189673603413411508406850533363375743213710335227173438425107936698119009132746889820976338323072278932701281192744357562323889850214674473488144188512129911449108053401475782181525321338917992754834377255554262272186986075010435567796275931314982713281609457827709308383871871385617935842703514895619931056505620622125447282236530790153355338459053531611542306433560065882342073351047132014295033579067934510218652487648520838500692282672353320601962036287484361400219636348029823179352617612208526132653905802380480149615803322228307807261881324003112780195079162072516824264700908041966080509684659801105821739121141928830244972399123368361445588294591775060468013832740628744191595234821994128386680368510641902278457769979181354926690683724140375580685169340935456476718880013813043807984225167567978161770933039382639314086927550335100824902767789908525901708564443916034510103200469829524725002070150378107549737827720309006520269988309911364185818884166410021360519203595568626696944999857332355056378621534264496347502238918782488852836860762196114473920830074467407397260427663337369895157119287630005308124739543452703556494254104516780350511303384090130785472250683429372012461018202305553127066320021282902036380100695849994166118892576536321240578064510273988236624485290118544896999600706463409930231218606683394653104713689196425539280376552062758760364512593753368292582487356522342301662718668538121341855847420056776656030523000536616191254008568661100700140081660239279121803370236852934094646025460554216689117945680943123987712935801209654110573912312034695440498335670262813858001137465165934441197912880349166069270908672169366257187464301404039968622991261380445739276803509773750824859341328077159731559413099354620828899725348652229977080694718024154794556764340459549755406934180701061234928498152727201209329725431306456544908827089001568855583912825388249052382698940290190845581371956004239301110768158714680814303015370376979789218725860817110770704940298878201079958460807488094701358601096245934872153744344375205512120961787438517766736429149008932177869418643024652813856933091651247553207675594146448244600968616904959212612871932516789657964074176217710647761991568342289807849145675286885954957451584712578829223299944383007520642060110316284377530034434982388018086287868601464965709128494867871425967471752912113844047361189925321669106466823525348229386719869455792159107620597814903712560129686396470765721082936974419653661294874890310585325304595520864750337877237588496702366641924047468146627635715332323870532368814995266730184088008614725721853048629146308013028787619550502818605469310539620892073607977215208003662077868075079347680197338041129192424638233236646232972591529758479927894221554449369052548947375131115148530413281435014508694318314691570729768127117838424515937649678566862473400387128144301871355259524325618499375775886169840397350358601760649028078138593148725010419916922208954256001853497786301399475983414930219447473463946765870234487520296407257202849687383680920740569960466260341865640343236089823840137060877530457922485712792822866411202735277351762017408637941928736690782431400271019515881737054954423889288663469380884396313318114379413956863019041921630517401678622450314204409105214629530786918676520163626590291930828337109896530833573182012684657086934350023270527140418964152544007127956349387269134055353942195207394580588239388600083605938365463925456633572664175949252536970074572077056539893584969101198045589176724222373844144075060682583398146760190413077155843121354782094058393755630727982322786437042534553574943291213128664291381240123885091418499462024738602128043919897439465868415904424192335742776253325791063795617022971156998672416513169277612532552720344581337100691981293565309647014444721164537146761753331679324193433347008433610613374945541138667249488894851791951132370619382281266947589544610621575712109712904776617798490194513443596390257107834407707498679513871515112243995000438688088040002755078924306041402929774721606762026295227587499058641743781926231009534397663328383179187831881684061508024666360495934770827723013362149680078944616017716265257654149076135534288678431946257115392326005500578353884475741963375132367869366650679380871660719357214521419845041246850232582023076116113212210812302039354984574036504807363492285459741810988914821015858934743497238257322542183794451646171833977775539867026171959509006076038271436402968232982968684141884661841961022975764582544094627494926634996728604760382390340103651512119110603356630227118948962255583773367153057873126644567847637871861198825579741682062244100973118216593579868091193458198257684680882346900541918910061544582296790432157408983389175728758483304023969572113769089348201749025606661348007448703391941205463900816252222396517068189295720683344813369449644507810632236380456045220022830842635674502177254425075108847277019450990571626884615822747546701267532334206826639882773325623207091578267313909293470812801224487724610463377786600729669881517308313420018781695150961994242994208602902325520272252837585715883456469348541264611394570114249158701611765032911599221511418884711497401720993588479903000124190585057616900705405215870006916140178221560282659031754033890470888227662300144849513846837712638443068036581486928762226547325109677476311951690360871546189935220110205606098710889079844974583633738576727070011095219435259414745657626886783520416759704700549304503606571429803678505165200470680105144213359568470079662182914259530781044665857288686313506047531422201800270014894280795118349100856961457731422281419759287563426364693223912123022161360085773518137888324084384748452930544161479773559960473644652798361096125805870393826859305207452191316479646673512654803351083758425731580871006756176191503670900163737017884073300708612445169912467086646229213862951556957507398715737338115983952480326631490090173949405260614415054018588067826446479310365679299614228443952423710857165550052259545835388545593948103322069772634125926426855315205576148710254535365666821697017324037908199664333773481048648576523171632365477643028554130422485344853669632515411081800471434918634707639659968077171543977132888312452719396043813572336572253432032724978490666218456960282854830319880616826978672643343575803241212936102017153815138828262458671680322789394639472106965010154222554022050393802471961763381797431933961567539113675279184640008952115331907028523097765358624391212877640687834863749575322606996429227850538000283814512091689000002559657867544098416584543095814013541691276265369427950602272436641615787592191604583312557753559596626096268812176414179565421277647338498627421005379250689838747118416435186030884608239420064983419544879100004733892883245604880716951755723530085082996805703551213937312263394581687630399208860835570167907298394926237920626590236769312491916629454914682078174613672375886974411252915165295078090818469578607486886948350372492564344923814428376989995083616443610231973693783442380051761169000058492822131745144241856611754010084607958050775718091350899943071158325469498365913510695988523720817918517667706252651786361031013799125480367583881205845405070909459468328283351086708335138299003416090991580121573780684190230454530511490293020341084986325126291156175307893442881627572839939431487991221461041511095615972516636867280667151021799012592045391113018609988100323960415273552472480032091882309812064205068731666648688342440354837846559803254726625325090493977333490505917435950269630289089465386785673879595057790244302727063454111826193239787233632291582423651569643966641279283096324775998967461439303164226343562783761710354929852479346135668537929282187357922635051089654572888482768133589752028847975409351032289198661345926611957605227509329262608602868516207183691793118860837212403008541007993522045129876543527897672372330626378206106080533901724968690880168580767250920874513334372056691094815595862381593457080991383546866322502362080172573648264862069891915904165208404606034007067346998240679584040809802255559047485129073518229430598937190981755526282782710988649849198203294436405351358313465719427864265136104088274445687210993680303427732445323314974151012409023564601307922431631633764683980825927110569998704715007734371200942315944695712091369378511421347515386705517250180426885735729185032062748687509613872859909416691291368518288985195944795805713900075189727739036113880866407260558735286135394740590355478142672976154074354373909851798272119206080870616940014223905766200971754131822005461830274439985504075910453581392945934542404428744759701101397019658378352655410110829959690421280751301344716034099349919355894863040883228057168044206265882239672126501790445999244032759061752858355289128303361031052874159215089960911154078466187232316415111453240349760282970941045432678588530511518214452001624610949018268751357026929174128197964765483142138065589052573973842723279060547748331551573593983313705963877152022166112372114076844764846153076873964639573701993090537445687385827958136768011466666477571410380625767116994325493370039303678386832909305813963428483436653831790203300077396909188473682615650481495926684871026571813557687603993055056532727174801690963431614721317455707979189483518367848137419080811322006471551987816291037306897569182695287093626945056135780195682734870478663592106145878903689506142096059531913487845458998778052164362743157732510881246668602745802720579300584615661505336622718018049389526986851038454221304899535372000922367313047023864365538371331011350653371638628591321952795221851683919307582909060431167155350895799207945480618146360361507007570883242364754614129246485148342131025964458816329495568077057777571545045202913767164896026219021982161411914852257945969720011792072610731746244477481775763899392892453087539077907484030361846612301263070861242649970108364523891433775275239882491042456000446813588472657342890700481861491816388650949360016492538030325779541639393960839230538245299420409069128532541827028518364740360343752256036909660786684258114203817364876086650556762647013676056469046605760463548372268858332773855692060737886988420954173516742319901661502111413757364848183977666637834130423981210842123462033954861488341353362446237826205294548462954546276441289489549950650139246237704941206612673043342316183391378713359516876264752976551585948587898378506092089288296186806267821394750767603040135679364683428896350271816497221863465287140642902794439536531177598383004511312606382876017607704759450411677438744837874266159636170546632882975761607886791611152763728472228031546279636349547422567127074075145431399725553103536970962213631034729085774203059550391411972764794918730973630154041067341217874886710481399029621340377261376613244310170534692993737577863094632520524365839330585030678004821710010039097298249784315229903025864579161134108187729326392878313459410316093881025445144526470750713502133484916137657701849563169507220438458750931215197005461098063155305317332622149216055999009751971435843466670054619013521437702682113119698088114076452667583269931775537944800291653228822118913674508929822137289149682307329859083480819125118037471866297904175061549378947298778605418281035692462858814163249893158894841654316164507755600177674839029896411821882279389526985280033232631865382704534550308111070750402865966262671637420819483500977438616235585868370730314690236630465126161533567902299108620761287416823964386087972999227185637618561943257390673216774742391060829030291257127857945758489868432448327705519303484765758652583677129516348729790271014617218436223169106619094709052976909083908292124013796506042140883722312202141529688883224673951776755741172518813308076521226803799780506579159234278882002141627580306192624647979086342848322650036804568150215393710708988552107586650869597781317961759085979970013163704665285393544298151490233101930070501926583432027097321845333667026332566077667914587267274276682870201837404823633581915536643592615820144468835523760347462892429236935654828354230588533023171183788146774135912482695343332319320138214457270251586582131859819866462450493551709200492067088172851347386952744362357660284229926388174431506310998481813467671631767700322907304490126875772982589422874974007802699267288920816571184246181546930661296096389599348110708192345693944989204035916294294353887212985173365601493974747947305091302192566932454205955876269039389150234984538231670746073600846688788827192384210010025378853482866328862566765531844007471835049961170947906358759936574240170337665021289555384393384185795015673157470306236764266219803522079287495848354496966367601601199560797946638687989193392495761197485761007044299184333395410755141153864789690458143307416612722812964384035160556815819887590396966343623022230367631485960423813937556866402218631008701611672079921190219096391990610867584211423623387685784785209644797388516376866451239196727255356377496984341524006469064593427333212899554572543599481263322352344513338258401909246501116004152414008527199147427022218464820972926839389321770853795929649074058348702375419998667600203787970794266851258475967928035495183841801231141196003837248618434293753806277332172131289820741802374768558304867316207336144027340256128648360873928472732745573872040048384764995223141679702181646077596791285019093407247867368430779110571492415066148532196359305283105570046866881338605901412230682659427401276644172881892350204942912410969490932757701493217916929288789641594799405130667103832827080259303074066982354159400811579847301293361277773365044182257653867123676825132371544660209968922314210536976449106935103492677960988477944548999022070673044730903982526581832267942583671903032411497980014514491601967734689856347786688499436304410712866573877150265132024777618302628413290767870687070344782703373380306942292816297271577210081869092339110667867828941536932777984717331532523110221415651655506352550891101129987611627865155912240374572090890175956866781363953716787331625388219998939770657963785595150444267671712215798404686057631798447765673177471772895486713783212501720686482166528802692424947832568181420103263710833164010564382803854670294067570970450712917454533024324686120175839378067792735471700147226784012947777464115200845355174490702153940587990516736463323926312905078775082707410464494043060587423662341972536157038939326057644199196670083207948137109816161251012426627211127419080892744338662559487338294746860026014642475986345333283634327852992662678333882667088910268267645638632264913253276757669317627160615101041712801145718695751243455805577568555839965359462711195680276369652427693150282486113744061913362033702731229087752946508861515752219485411904535602147241083234774897138859167197140878685351032925022462988381256697893074404053003246142317906617295335719284218570774937746143803753878530949512155066980092504818064286284588077937996465544489656391177581510908154736698501116688738192888080581841213811461845233505554881720760151274850303653309250979068042645434651782392578998991053942227955765826290644392845589173632771365200868650546860565487654043115828512060823832984884875287481550344019834521770014090390789148241884764413703767243652788296150101783984824818278959577042942531941231681503157474952064655556243822263105378610425633695324990896343454797124770944935755744086291214915913104837054559904603173193529624206302009327093233632702793585255782486913837013529097229404647296376815164119194992069995480129408455859975801037435266723840638065042899618165009527902813348361140325992725380168312505272574835895902492226002438403028307655722395760065570815418948322161401605830300682207716848079212641517349638229460699833147839164240947142397196667332949418209827587810104322409284393711365885265830028423104469557021820446291620764615850890389640526096595842196593565394174898036086226993799431750106285745889502873563171821478188278871113460201412588343205726203570820659262114125853515458483145034534082524199972642225571459809844342682032536574439018222405755204291499385113032430672027878053780084632407628657937122693994394757304211510951898841584978493405546682017790605878588323222036061600914716855406513409144815789430903035130832304685266520080405564623493595036297203131612189249110286764628286359132018051104652707716756333576497229357656808479390172962510157909833044387916940174429645467918448114941309171751765453132063098729764297779554692453851247090312406856484851201686430448278595615299536517891592906308619213415792006443333272719438873991329762042038598618038829561702154648015158646451910320776428430856216873087222575071476878320304095178780350180004545651218328584668832267200915965090836232331894748376462962947632968036913014764116406286913125348449278374231563260094570220931213395138559482780549592962031582309399198591799095821411710710820628121520340374636732919446110359634925937989665224856469570842220991568982376545598379776461371168680312402503540345616586457114547284011749749773383317320659165105334336380143999260801862814651470096172332082473986844381705816119717808200460300993912995549083006812472424934161424115213336212039076759881055708673301027659090923252375710543051592953401611593690399866527383744519511411717349718640589182785502120198407848767672170192341889447309427309984054912201344380085361083871152432222239750698334860412459123103819110780858850144772989718813688929344931636197210288623184616172318597985438659416283720941371651005269138386311311775936277212923187192237949530286172576847228819390035057795518929886806586269980807677143105637586900108742392441801670820303428163401115344805399569952698465360860552515884996615235279275223213362623357341891309538586634045115580063325814222855196292091711960403937075330522192555298534373254624154901236209860322309238454303607207580556622515403868215559758782288254919432340790464380845191755333494210511829233301338786063327862969805641583917029699140458800535532976313572416849608000152929082072401963458175114551114697419014163468719919373257532397998995316174934019619390071507229585565266236701830752599788950715728109059115505717749006245156891744383580264066612767512601472118847181926050691938662042378468999032591025473440137784158466865035089209319671351344226902629139937715775360093846484405081027648394149983658498016837015545689064819650476742747633891192946504439023860005218906704152190330976333186227944799000483753295189169327216634854724619773907238485506833155618716659917973851480093895756306181807619290853018540253877295154930919305697218644371834425265506934398046105364852263348726311272721918442076340088742852201965186604486138162660523156620077443879960223518195504076451581194332097013992873938861853360435049776341249693272847039977308008990138211805872095686007387506207037488742672222811219646422167541394912579763958248544074493225914565824071830640967352025204021243434625604550838449438604964425297083889111374322241604018010372074489386168293142088288616482735668802245927348586000551179725468344947003049057151914523017939571947890608169663856803473890727912157064758459144864736231608539956069297714614938699046408307662806764051746258927318047103335182240406457643851972106357197351776134620445969304151185001483577537505302912800672315762005808713850165664745449583545927700691596717642443899728294134965970718359591428292832590953485188628700221120467372278063304035350883320483765492229701140370796189355736288217572205854340844065935634544251636156530771043098564212029300760987960127362712871272070655199001936959582354217299033409666447246689202864244031962647860458889544145332226927675881382143815208369268388177559889897519665603002013559312324168338548892823671742286179788411035088862529823978763560473870108779117911437949434398290294031577048846486541856281512764184826058349031541548724692851714411638698714551658065548046370983091966473193000172801876200227215157954278283243302258754339167453704210691979988416944234335309330609084641516924322576134135044136242614189611007993832049716588605781369235393432861545814977280591860129823549963769723346369650603363371043140826526311968882904806621981286596953304324872715728520166848373951352159726219947718796643787423844702042532851888852093608534549216685635471900635031733138740937376496614731105661849661434622125887001491597557386213996124081602100108677679444978897575732063083403989458876010432401919536221623562021989275222066885045508249064753630442654127904064234820825808417442020917844052084598283196737795297285093694316132550720747912624821893739021435801610843646057172079535830643954630513884402689955432415591116171026518700440113342302638178571057433036449934043295533093426128172095197547173979352270792353039434118906326272015236012393499383259869956501200165463401738467220585489525360527777180721347921867760173292437688962014726184139918096980219214138003649688317334935792100414282107007860785232528915370106349374742840457029940317756923923577971773326797014883045123276240882920005873274336668033933188755553036704319228415665954709087368370344906521301901413595079176015929882859036814552958864873609432890233884728728045970272115899634584555023858830079238229249605549076222259530443300920118712247278522784240010242230017846647886928514563558088142184255204070259166475664266258586381037783717972705629237450730937002039617972424334146661218695832631140545224617068549944794003467136987673232382234519548692871518109675533591523176181950502607194860823537653028818289384069704483743182087417043026060638497480341963508493439434312310997522985746480156204684317075238275065590135127988170610719109052152839465665661183556792690351896318636363036802139255530102337884911479490650640646728148705529503174552811873966067801552864926161647782059491345269753367452329587378447076565584249713659738357101792942461167488680653760191945541525084726602438257378419767960562945964957559413464513521855341826956566990107554446250865501602275018051707799861855646326927528407812576708190300367763128032966890605748541988932666332254556562066374909080063614163185364795053311901567471357198725043717986258402717204162586676431734987984379607508192070029841105701481293097430080604439833704286155342408167762873749719923507434332928523093580911203186737163128617763202244317152309398445181772904820722202273728618070925896659690032821431774845778427872858125931713883797379272683022748268713233665840346539297584885429658935521582110117054529151833678005922250679452737403073448878209323151943083058703858171738647746784239345055505863829036099716482072325841520127101006571643452958750338416179242616390870031165648774591165931701023588164566986676179086326056523963119603901828598358652257254031294552466835777434156099611626360586465852656464193197344577770533492692044908942905945856245840281847092504674767352542102259456846876689415155882773375995682500640145738289893130386748115082039326497823592924553010532448702917845992152635371711672102155450760093962173290367821912940556674193152215076300082798597349468780879042678312749624386194318314693594187443208739661723304570969996750891259472039421877801039695110019915651237544575117976964801304842283474597441915062082726301423632279792984329303310911431929346437889331130106963434757758154259582021501236521397125545412425318750932937087413019587926694052556166345686236328496143839012421494794141037210408819480447421078092071327239272848811575891401544328279600852962402154499856185440199417896097895546578279063365400942013322713379221821183704477074191165847858859686545343222147508750342760863252653612172731015132111766587688196985865169349253670245968887446276058984977157385983076362905424021935498996396413805758714634038843626731662953036812745563688527337125497370901773017114453254563735016206399686698924232664748043615890077218029397596612580593476198180069581519610281160340682004354606704497492380977764629262846133022778722884030975594202846344819995815919584192022907737833908346128077773267881527095404613060118180087450789234526596417034458828178263174015104830166658607408867191641561443344749871609110260282333217688903638237780967622508541540194662977340854690537640968696486021074899357288502656804319229289297585220145860027367438214107459209238220859963708746884580796098842808114404196323858672831850859224904343432194108500071404890350675681648814055572578633747783734312009056100515239673079136138323154014853365776632403646045898004806571706194573583318698594475134417971544872796412535652159173377627478032030432254788425336382610232848838686970902751812274387152280186448952563170998179915817106083124588572061961681064562707847538656131945317352678818132398823866884589600271838693451807403362946235212210134337841986918028595021947917154705125957641310194121148208533759624256482312526582780572113892680250496523613191938789539995577511743599608802066924456748436656618072931430022099824631021929198728960316796029164832698850752931186362747817034641554079002920947544501722924639586937585546511519722089838920201498231559691218968617759776253374850155850713560674143407876824222255695538235330323329970943522830832125522036854064535758938692277817937733043531015184645500616846875976708613688185433042790590585092935238025338754326446463744256930472104957851557594403276956385950664690683094667263811249961959877343431691105348898409936303781973062698303365643270786206936100989757703806780477071327261041827747763301005810464711080180897021894992820549815900697235622407299118307160982715734015292796535348393994795662599812896486772292691855299555037949622438703527173862272122952800695526791784261695737526357589593279766495667550685157599823609817323089802061293853659119458832431154334060196555185539841315032089189998410001048884586384709161363613507908832394009421944508601169415378353645866540317544400765779499480805943262653220037704026944631608483683550356284092514545740336696116644231354330868795547282059058302889930237221626753988276041261676584844434568637137604359313692459578235587162562174020617890614719499309111851844288222390814590677995484354817530852886138838229597798665997898011006592711059035845542731220508947904935069337819878714539398576782343079572553111608296820331002369977593584141155828372294874309346757625748198734202673737991476734593300642987068426281491283337033177195739203949237207823900376511364577015777929727619726384231315291758738611611335756934956361840567397760982249169215519341376675489273584429352679889738843280698225578276433072966549397295486761838776527668130574566692947426115797320734609592789966750555915494517611685899385441768442849259033554345156715267635164982992386782542399103450522874437561333912092756538466100002272377801474370449981455444353950147508387498777280467850518158688414558751834314910420165843896397781261139823392871078297084361134839655325486612258726767237935819681979327716171992477794518762263172256062895882402302029514892925068601594045740968816718280088558728329346108680279245058963495703429509518597345119459822809406035773253508003343321263863489724429475699456935062094578717056734848935435331338813704418144054858336357716956605284275295380131387285704247085355803960434685273990421428141414148204404149937885084138257307498151543238136869077905398229284693336487392070033257559198813552590762323556917541121924739571819583864470032284600302963585639836206612845755022336074836610263857395266939918823119686616556312838785944089468447554809617299157563965743983280333979732261211050039426395325840995125801116967100620182559055456074095810474797736798078638658649543558371186003760069576085424375812782845472220346590563187485591837046533486824979302987805914978556935836611887806837693519555378900269388524927288429719741762100520463809658962087543582447774744503514035354721982912239323024975218563422408638035345484437428076727700926505890695012668910937547882305049602499522781645810242525937552628659052657088058415931023428523685071935855557709409128763403963454521681137232646885266765150717000708915060560710130270527025485392523972144494569730242463722153028027427078388561631954841010658866452877473815536322260296797884704507212393689591685843676263785918588387668879696582619245453885919051163424881578134528370075820217259069880538674896868638654375336889685528587344360563625799655512527598367140399687582661257525151412700642070876993388372943970424458218172231107584800883978365370430757201140268153961186146586838533814810023935849591758108331151918034921073131052499324842140216900799016668986062041859408925357402747558817227954588565485786656917486554029194695502064051133422211950754267927168330209612664816117050814668612487799359889881909646913690682182322177344604754591435951214585674720852607804471348882612100824451239831484975465617169924120892981713450510837259489176403431604439333030355128843187589965349468893211051373016548040212667635990026366232328297636572036292264204397273061548131720796327938629181077886486964189766324916693300346356788197571472067830605720048046152973117855031939503548248146001914354479055335727035725269158567718200012408364060188034955040744676524338557922529123227288529387844648518550274144639659744806870953253582844048737343312348104744522168377964873698126747618347225052807529332052811186578189337568164062955877940898544730228892703818349899407204500083837021132909543663178691872356381976210799963575136789612391318830315288597898574303343841096890035513726285270214301175240750657448134096878985863485417383579477863991998440949419124988719246053608297361725921737058205307015623987973973444185469422596657396166691800502126244290498219721965787308258890542121295309945997254792373228606987582027996179040590884399835563067994741479573271921993274678089074197742310877790878707862011972350778127447442985389897632349238188788524677749116513718112414057732939044807054112430039846928072489160479377200234385317633470077299910078986173388412983719817364512767611101495752322118638077195364730638941229220580417961579154413198898505781979882258724817802265383104474828139648785345673037566116647378445760497779508362861995952358591527580385659158606883349797258022341032571120418297339589590166919684680414166660365031435979457667490036366222236894712893104741966675662619462866619250098887221166842895401314444766945806028859776624612671855226588517839876009863630698301524327416972523396317744813069346115827412664191378289048912892117168155103790241243652409735923933929803133720442030383216525292747147340548029433358807061941028632776649757487787958377891976998383399818104146195019015446429011422215689850944099349010727253471261475714749594521325561934711705111434898776097912059150772995794343229914431477969640008752496509880451391774105610240536204942364653303142453244467657021926484548372355167697466531636753927946671292896207916427215840293153955151941715080752202210881901752780913223420430078972374258738106804215299415086626225101301014384231151660699989970616387772847784610124426821299417661980344415531116118899381416186349764143084552526829020120847471841713072823823372596890695760376422522820903152497791597493532823846697796441671392296706682579607562013877966545504645948092497738612579110124061351399321204274360776156786209592961126613305415477488055954707772872242958060485735667176501044628411869057774108246858094602447006860840024948863848098056732724452571131268799038300075411108700394864808711001115176060564694451054218072813113215343262863002607484952039123925481024689364211522462144109975532874833366795392616620809063090134215916551452646594169792210193307075897359024888194024391400757222368969479211321002505333782096474745708711021825840384979573175145598117792960943715810192506842892752727766481492997743632781011614393916031905456732308961834154903429709120562594387801593851706419247317200554704960626524663158141199261134364783829156758354552691890474872413630788526205867217126989222804072252172758336067406165037930131144115471992143611836455031369410911872138725830061948292621232357972204916025104375625464736675601183850098706468075165241507443932353053916654086336079852842263461404055113537902362988985674831375462488584931022512070173023061749237931305340759901029935504074945278283314986045944423351233930369748416604439909864094247798933928499494237089618154777794128770183754641846972699988505082875603199326280421578287385119375859479734118072450567966615207856704272029207631254234426102735577383216506022066191344309772732571676850033216926245464908719013247767696501741662554496343451876058900388295567319058126433565398745380636970885850861635755923456916891647487523980516312908496989837629381221433307509584018894807190785933765400425707215341460932192527674102933536310621261179719937364680902554245486579194565887963263607462158793377497235021240700316124745537752786770674898443632537885298489653306114955884342975792945130621722817319709357130584101942966445421563095577050838876926371232299027733158034597794947867496968840017567460062204013396813038302625377313497998961936433599246245012370667574294476984503238080217192446314703910564228320419016924662635022258859525310952030626708491021712489037328029613116563754332337154465483103583723925073625915434252953493250379999760764506406328514908143572715643914014481733498028251739418998686855217354844881948785062721193522903883274727061227831064817594242811522039707134283737804663734616107029482237055243172311244037712600319772214528550661804737560213864619986977380270478836495044937968786454500837015045636693171323314046104071683637419465030679970024512546978834282396597468028444663012781243949532260018168916529277849458922479513101513406246016775747819250163991107929305942476165775159141426498843367276822263633516476466307466419093703388507614965430461694399739361507104423399824910994366670615311911385752617156663639377709496762897990449205464648135348885173854427091397975502247217530211897959370628556577037233393941506473419238009228674848571473355523885252462370095391144407638426347265483657787773585155519634214441558894794140843129643804136158685962851426590010312248866838813951298065878570802235151375533502817982905274125282656245825520005661839719229112615572079156734655401684550651191269024280840473971681761919163692962644096777979773938404497082516363619412872936529980766847180310832861706260695157120348530692159075063955890027711677675439043637002607453601151865691516100535461321555969772999562235015652140400322039781413904948725097594112218002616062085856998072668016667763593346352079899765116676251523792402492506629209804955254243728194350949302994770215130619358076406235476596215258093109679905869747055568059917288841201041753859611285843106139399822289277223653272691853924620673030709625610891400105227488510041588288364738347240481477190921140998144117108895459834193990563303885430127990129047975888712557716711445174468844309348229576709032828315059361994473640512209484195120010459637400453604578696987938876636195695574692971528773117702646118969884350683083973012775524980768834814277870910346805527672500487518524126101410839626254772617652979640128266323485448121581184481539717787478687106261946654075271809606623487660785594565178304436176428144056349888499795192053444883464054315881541747466202874495136250329984395208207534634351361740538287735501375933374104584130130726808154083310851543324991456754379396895487327059606913387841506797546517400762619839819683370666058566403903641693263915610217933441973773337628432275559141637916044030481693490250920247284852761292306974461873073959574033724059021813038184753359724817484775525360243155468590970650351766769122339852956034556742316477825859107036271285944085888492225725121304359051058798374204877219502593356489446725191777892175507055611684001750886937591933566115984174996259978435705396219563669290480942321654448304212650210193206726624117002818879101506262856233655707493223451476248638703446577238496275594298728618091408982547758808696865793090688660164234427645870313316783828401269808431149458870274352040240333075988194543324557485835619029736815404305662632783104242017087811433528080025431197174492923216355834283997981069893785824500229104540343111417822435665674675858548466288198978730949022053000988703154048474572338722960411354583207773728447080634403807017825777834160603047474182846536153296498759310380140889992244883237117214834857101082353948951359689244564344789961772954974871039647837761579652894542726783677275600622536975787730162687688873971133858449639433986013274184749297767490235089236819722293358266748728753877935544203248233124481196975312672186201867613214654610710898269809378095933799907147229100107584903996644103152921465919510511857598757156333115892220046220396963945655136401578494533101864724849071568917623744597716207323884818468943975664097552950822169633311016124482738671275719132934734498324512102358905732612125614862382082483466249589544253331080269745999679484965592283517528729403626209755008377265040424666868484308025419095392623639961188612918013890245103529906097485426298652217194299453954903989787691384054016385713560796550614736486289349389445622987886472665180560395584849839530281275338396142129054766901989149196364187908001702345932516333059872407264388781797232991441229598503850506839194359501360193384954696410609932612319857688485193629270444472142851038906189784160417827739986423552573153368893934322878610673791081404300016287443264782598244042422277454077238668690923762372022528613647572287303838924138560714899123497957200626848843760701855126134730412594850184834557689026538846154736524926087478686955304460660831446790509494613768624458016133823748030936729400585358794379011708589506097322902576898441060632257955674026432839099848735682444234227252782088468025021620655292756175765401388212974319633430403459032104445702434336220786828698492486972940304026250935601658918365862431036850933627229072913633151778047591695874843514150108786075341315674561403321350295292089151819957784395850378791052654381679678635349248307923966113290829028621646106625739562950866264859372617393203179811566497256660624647769490195180515128541800876062150900622251996150076433135552305511253995121781399640616224270521887338307074718225015706345357008118700218308577077227800416451272439875842297977441002381653723661890237911799223840281865522763275203758017234511520325973973919961744361157900145544234883639715774561614517228395556520435727076896127125451731234402198034791737577364949912167576474391520176467424275570844242302415855746911081738244738733830680569891487310620266337418350894917352637225649403892573766531461641785334604796971973502867558144682103611984004290034242308845126845998346728458651765316301794667960277222419788010379450714779369116306482040046798077295923634798481430550478001361519267335798774912911707405837388126274199157115463395206482416652362153998478761078126990937237930638612161918647531691546017715920381102957759086796607764811107130040386443405489386804437246985956892742165335977577254957376802956216789213568549875104541394604017545112401496321661918146711959866583808951579734142893869701168031991988316047398095056251917335640686903398023104081678402804507747697481106830566960698480050513270041294341450062812530482236274808128395624150922121949351002965141026426654369674953080812760298795179303313101541006168777094261771946630561048314912978996337116840535258315832888219256433709094494304790820683609198293555010723652020031943195814695935107464260316173360906905002918687539359193824453708631569109238913706283028201868963016041488545281833673013458254267137763236791056072819556304464697273928242514517407546632853944861411290791480062181767483228378501197014491184025028962587942071602453445193622116519289222719952617576457319371845836290579102206636874312903761212229254431931937421913860187257724524867880249160498283783625328404035280587870803412862227327623448850488005105684325551769914393016508549809696122599289484535325714045400510055179088780837775998331601560870045185115159945461486167765005644668660227644119760646350635148381796775445471498563696942863775499273900318421813057934314548876508376877560422628029165601544204437453644505570317898580751327180854991323951917603766023081955505220077830459520201686290409079013132004379506677450136177154514915775585169712792465373296678677878221942779534664014446824579934076853055868434813834133235981105711679322717804450446534304257102471176172612538731655662619434212564719449856359450558359939866406575899246872836519643415494785833292559188046815550230151613611057379435787021563326375776600614385997139550524200278267918391439341055931891895035791170373035093527960856196917327195703874166580468386810040699529223302940651375669290840081164457591656022226625202180489428762880955151115621246591770218032667655424176470406924295713840829762557410269414112011098288095905525047621169973832280374669279317087439942587910489682218121228350834114854916834788791790232206454424360084078408744011458633744496092586889584081543976454090143509139971149594168183366294771342134227489999921830082972506799240571581278232420808630933148741320609731907834803818900014147258353835940101182320031378766790062084557045608552304328125899878463238101821898614922052986083416073707532202071206988422707168836053234255050251895775269891674605757280834546042048367106433007822290878032200419092853904808059009270112651527661829916327360205203224390976370746730251456209953483657041037804359676272311557918092637409341225201120562679468617348386299428648199146591609764737642214065228584008446881730743832650929070795868165015285033220633562618848952172743561006368205628527479484084866575364361004789556917224121997762859130121870839380869659461128273106201466411003184345993685739015975297945939423682182032267810804586417772108075009605280458600808399406412204998896753551285426211196702433869924409484379309277273991558219558111142030345413464937718831418342004317797633324438285182406417927490988389039348627261441612243360419721789641089042638474093064780704020647337401969927824371185255713417841683489122615767891832894218439511141314785145633555895875761602353838328195582339472042245349273411914932408827424691589829245555021730001468939717660077448019114372338585368226065618703494851837666076753189888019690308289328525964127309619253024109394558133050138082301084747736876847417800598772615298401811120103080958802389904807903922841067367260018929287725278202223714326792994302358699411660085916736543335742419763297962512646243847597998869070378180253245745282197527356039924509208067078052120416428025665886986451688740764640060633092232738713216113995327004363362445065424836279010740942999502994797835287086093054559922125775214465903375030502062680752478909455866041946264276416701868315956750532795370416799633128517258611057442460558602219529877733878340287087334307198061979361417316777726737351262349235261819729991584390333358684045176486036398569411543856124707486908304997578642405338739543826384902459222182856427415129224137105685379226896158329744378436649671509444075813197602913982627785693252726317484877609791782210398929471815469817912633328957228142851684869836294473912616545327387647626728611511156643485099057440560440602567767164623657892679917398623997272824714152233547646283853414349418633689359295222438442788993830862424473364327608045227452677606723010392895564703079169400502151292499833504691977038191908795991445155674156606494516332919274359434954850760910771657053417717305625932018051760035860049628658042382915602118252263988933276265700567529139491680585971081001650401105336552793854505037355439733837075190086796250337002089370458274211369568781320612320809366028225186583309606873982539208621377056978750811603517319839112378763891216118184683617798119291369290513990167103713371313001290927286280588472664996868544495099439777249728169815435972197850254592051844769495092018665821071270552502839746764848114775066851908820714072003108664730068762518724303561805260894515434437291184626431282006992464507624521919244492050504388070119044074277797831361372541356132966294629249705348815602483524875418882156865979657692927847649330054252197075418652229545428581033821169101796627225246342975643527707859482166893039705835592313701780644803066010837994374664942388396433442689005827987113055007447451517698337375444414946129917686931060899104043656730649191135139591401617536946320095761884986015265439977601111557130749233259843287312260591121679311744773262140112278075244402744198362249834986011334081780257774929303246926263535516253498757085387499804233827835489241370535687403969454007207045870538035202923255928838706199364317727294988820855585552986880697200335402092592637049742456742987727327414395765241828364404595409411964450295121901194854535623486846014642042533426931732194348143704986875651068780296415333187842236755582068233087541915809445993070641410625504728856000663735149700545909477415524397281702891285544393178917604407142890438098803549004164683161603548001481054255316313876054553878101882843286427733524446702149333135018820014795731832201407486100994823247054092776770507012293376784777003109846568444936714410820446793438753646148814653493300934872195963145611870690847597295931846561022576258629229136620750262697350292425252947469643494059010854647803011240973342273349923358683614043739473712961198467709715489672488884586906223607191902454700294738447327019647343404111337003040533684290613546187135233953893500760166076592200631121850066482604233047065887908141687124830453587086349517425101446098959070031518302758137456403648597801500803049733795695083137485285519566605791614983323583331241862303909832430171582646381250630599058898752208908114135553318405339487821126130420973361121046395884058812386698139801325620551952344435783531126165509222795966219982492341543549568202649188042297559563525775863133440270171811126194104702961946217254945822796607241984608911816373638191196111035910244920062076690236789582022259956766748561944203858822475368101882778753087381050957700901790332223520894029239481405639215998225378420409352846075721356082149462039273623608325383501635835401358921841425539686865491013728721533744125209464238266023648154261846893471480945471967378622364773278174281543489150176808217277525682190684217345211194062538752567059761967444565622666451027841407913620629406349968815832044165165574624692887522748146013347281865267306039106968185843039430063910440548163255331378928443355419069289162159962008879388288829533308081843237616721342374581695884991582742621804369579559664846542393771283976303961171551630974244899224385374161778136675385685181553976627870209211332328736083484494148256615292143048509090631347415329900549312427133450170974285189783728390758954817543516015226077807956727164490757605334663624102668145207157305154825882792453202222970409515371826164035873275309483785984503625296933455006495347907644958095743138309963998746736094215747329541310341914721931789713238958012302611593710251679312822767662048744622650199567225848881945320023376912817086071726009143119137368144138469744004310689071511094627795143538432922707829945210723938943432845088337327322599256074842498613435842780120344235049367029303145075727835831529395043016798527468469475703289965323410266179223213640724276903413532210263099933243415997098901076499943549417429176068213797684324749774284208361811714964608905193859198306869487151911307502945622211435512485484466618880261285003827130392656348613968945926194490985078275838470213126716115284197303065632152434067768731613375993902626587014365803989095075381539507282765842567148315416883575186172918606246672478225227071428271352999323868019939775990326668396318173137808472437088020738312556212811614082950353629449570125530045462015711444033278705696102651298747326388222861247879487352798545126718938902524808417040342958840226875257512066847662410369975807692841059214442069586611251714634981187504040709422046794517416676381596057962221783744771698162268414583115256646481009102397265206321068501048715641471501713900646841747729051639404114917959059964815531212789482339261706624079530046878079458402468066504010130782846661583605294300206481963451574239463322138434135359415439937733525963854771771844644632793150023921813550272345244789310141033087032320283905541951954097931461510213791782932210642145779446687062643386873423439598998942301794466655130455725105161129796448351760821215823941643747365538431553179410541659831560043858872578724086346263577594151162253311965954863688030077997747769742237377947875443122307362813359948634969467946253262256843971528871467020374521864182710240017774231374253331962452833270526588804557671320836121656634201927412407956175888394722443533447746159524847357313151176256656289119024198311813739360178966683043759065501598788955160980243570769215602581552637526994254496668634676443887317564731642642300211344443474777791923507611871194393788975978415669527888200556341491955551866900090956454954561940951875690607007480978014664538216853336725677062288260888578078281699260478499380190758999310724412725955828296761365129681870473990660007675583900330461901817137602294708496451072824220239375854433199876536730465947520126815786254821762551305306314373910933896873640558144073947198870966934255072717084278162918197363238830624158405536046224912831261690023036677922563589697710665154497487300677035142638898807536585459363625881726863187263641819063032302849645786918562598003907142351538264489615105989556197959262490928717811813316813180500296018884678941575948042090317066796236835901361136351098090484416174741314243555548547951745274643350425569833307028875243657003112020554932857558808428405035616150131062226361873677056976964520870740594070019690935760547376386886481073666284570191331562521050944892526654662950615551219490340734374891515588063717839385205171058643341612695523051176256238068254030788275993681971807744400451800290475005790008652812163891469846232927111566706710671833059710678982546424348827945905892919123120925304805706873954745336140939381406897095595080263587966954118529031782705818588622245590249717009759372398863113951845108190216133805556638564216849376357995976862189396849779233278272225149782176860412375489778871191765334830099209834493174802601423174324854058356945426687655664900461449615710929290232567405719155616917383545284473995471885110797246516685018746357352929067467453218159332905118740380050509736609760922415380248203897990675179654409740569422753775674966484863091461562103184076912899106094577849922546709395048053947903687386156000174402638742522485087789404480366920049738213180330839671509488838213657170418442003625561712166003232736283595806471184228947924336602853552403385331427079008238065843378936843375721341675178106694524426777412215746342877344161279279118640496086917472794100025546072265827536930474270381778472679151377147379583405124268989615524383097455414371566310296383484788003676590359781096932496333386232121030521408482450841704994996341440913660060301318001797302488274220916134138510300341952581609590324780695491581606456377830269635614275799377239299724424470648065493164729955323877613436163705576607077802451042289500923120865414502434557894459432954042648604806956805399155715781399965152220886761873158223731855803363495430372158369676762007694273082233748326229603985052485251352065876894640632311883478615307425565060351559139944832118144038766441214568094196885529893462743312758685044558952494760178815722792438471703910227402621548193731090571530529822473050995525627572186395638137414246667937203267326264543875960246108116962589399500740652605075513673665952093615070122029948361743460197194250904232414791729410612172767219488716792227693277932473793843959455318195933702204801122167165102185248059862503247401788922133108311126355675879542405310809394909519930863043423912234794240855460371412264503441975732571534114627258558857617111311570202659410306668780452921163620792705065632798354443198822269254777590378991971288377349977666966781468636919524585737861228363462204975066105246418770854039319739314672258010787065625091778213513071969972566506554658480583258147551187046721165446783175308151991804175955955508895747589190065911656660535942685684172921015578480916547896730657544044480370683177014257178260600207613073488714238529901858177479356359215272022462396326707970282293795853060951485823070781337963297316275972959595781679950568746962735473208913031539504551998852485250262803446618804433019362109905975650297979607742041187254290769147164370500782031853437003651187600030255965612684952051870331052111540614547721948485435315641077261151501765514377049277667256441445932055229176986074153605026524668212905638080651537617541971141953985835886610104285288765501848506249382644650183594261902518303401483792134694408126173600491230433960953045693070509935517519660103469561512666967833093716069571683535190810966992079849734112711478658750399082604341119761008566505086905048313690845674262516468191297424593238947291284569819111774781348490413309996992613441849378370104378201722633248526846724105266013559398875086144495227116067523312784835389337835732998869416751293591214064371339597774905313440474979961575357753930987003772734749400399314644614724882234824322752790661790976935376881475461278148720595645456391149224425254254946061047632545222772931145631094831214385149423767631823883871492694139460168894458094045411521194704354123552228368227303867959717345763739850913137701843528917006563571482873665567109719759342342349922133637156795316894732952326267807057068257207971450644944750224954314375839260840961944208899039082516141946862077145766418250071616615565186511822255683578698980631930495231298304506902284648114930408414719100127907314101537618834688810125859875007078837449786967583878175792682603986527635898794271808448443895891273693979266962668359689565963861117262113506046521991934878700631043195420955311890314138136277968674913264570312035679266325518318338586456376566289977738210107617396236235028376807000738182855668581817866624758735804899739369408311447400181297335201916300898253431530186796461164101038694971476923989170619763132289184195573969464505493339991770862842409447895840729465145835783153330068697381478355209172172263632172511700471563449262358044291770257863070305603414985150036072767650040184452339702771266004849192455079708817006932570510439022189958475644109167737043165453447917305433332956806226228859677617932206932465757183360845837970302182101200057735325967074175180655610224054096569670528470064478780506905558357363092954511178953357348663801643718575554020857269373630793700261979022733996469007669229843828606490370856839537799606685132235886851327973679609343747403308602106438187279242394530167066287986648083175415934232533191568204828308455280725590059608045556606945865360038143785155122693314205105798347447948752018299089427321628471224952743063354593676718708888524020184093255688459536957755829666384570256038334458284449977017441684931700927578329268926808118800558758959841602327310830937794606529458449376439924445907877848230469430373841624444271262031588234679815086973494056973175019367653944537481724663482197022327700330846635623806886480536569887558233845295051306747965418638838530983653132685469200531968616878114249962494622922046724406047773691106931825836070956306669168916469561971591249894584545577016909795832996942373419143644611123882592333423860466925880192292374467666453989480111117537846750211871698356386658085244948503588431889959153219039331787485794097070009640381963809930394031209318146336401603044481359643050406543555909854184612404835316609438448214184924953986775078789687884616413444938114841811637848427130396966508868000645231570364860415868941485968397325506523678181029471470278517897543712575190239890893294923030976177010635504510861954724562681145067964494906833802724455305616413138515956465829138390324358229776726616634077994202953688581211235012586262277038744890583815482529388441036048747676205841862471192823779199642303568367750382951801173840510460938600147818065102081298913728628401452628206393556545936610010408240314889487716388491520457438724142032176591731204051513852345398735425442999717872295732676878512419172196539174011707382850016459172275932647937720088829804816843334498680184523762873235760695592432678962535136441506831615829872993080217478287564324081224379056807396337426199347879490358944250417068143812728998503551931273959273381033608089346122070197347055496105940423142969088688730541953011784470431413471459020479805093483305505063877334077970461809899958784230722884894830069117650755026139757774659978160458450853507367202369371429281591088762524687464797275752909838606654571394571800562671453502521882895449151459289165708445133758137389663638927427891511259013854397829987282071301237580990669387259702087674000790902461962220899738187522302391649891289723557405588137944869465239530255886950811797610654943910101635980213211621656178150989000707615076278117930196159534281083160948198082365686356714840557018260718322782383724353507891239395571620786337190446753823529804051647357037654351173116791117268586068718083016927333655949911674498305693446131992266796633880719715700205448382221990873711138786775335276249289162807067217232146648803008382110503287639302291094938854508702508645704274511197700354765205159204680619501565771226251561028785190262880285861577578870984904783282755972104765640462476588142666572931105329057251835268420458922387918033941995918398484495498451390410818732502396595398169473900285488102293288598351599617575108630386376492438898788621414634567508991441242032071858308197256533176974216921774330898108437212249204042053853805162524929322239189374967326039919207521507358844571511282212487426685913818756406467500987391600553683762319346269881296265178102133316970519344526415209399000745756258328653104424890448531833268523860272352623423110639533781848911679069619661923393122377029740962087793092250266080924549415739929029154160736797640549767326402096769520724718329514382187780127589384685245557425257853941093775069799545231501920124628969527125216514354523009076802258958604539589691713250035859633229498582599640391917574540555334370976561105371766965312384242446328339317915119196168205797076776615587614783672616882935657035328354295161494560188910127573088463140524416125325082869840861991857453177595988412147010862563051291745014635112571838643401051143450129470605445491205411853778821596693923254174069179916574479133151695357923282186243482948925000145211940190748055742157304557646051662379223506494142814988382991196483637808467639281476999326151430507784510436264669777501321237506605681837997348786914758689494640200234715224154705764001809016787786543447068118162174584218420396564211507761705333754350847406976316604574085149821905222770230335546859494988960307511140966621911027705072456724035627379800869578075778421774400933808618373803308735381448661531164107181712944936771058771566815428405488211281884509135652922103222705686883683441724374880676471249545886906037318857132407115342467890076538194202754854169983396974626433977306986601214943390628452156130190825114305238187508322464996891114382582644019089562120042269700422161960993365341037597618456807999784518749941840427045050509095179352025176817549235046418807725636360155403784202393775660695319610687252682596521138078217683859067080712435915202228100603675901098550907820033954511455369499986227067825974853530980429797213534751258154318227787960814118539757519061305895684897784240401495882920390702864769198971335555448338659079256528846585217883686881781735951054816881523483314998430181552386405647041817436851240928427853977274542829648143291064742620872275982568131114195342459199065257451001437485537503532870762744632540670028022856024210339069247287303549713812217022753870878383717804770097622437346815637915077984799734746105648045331770767642558920977262498552669020967869637314212357674909420072044354446940314752011696720743604475053401146328258310987385582761794510142879181465901177341797121554709885875442112927691028226062743421376556944496128586985170473833113099821269256398634022744146725624352852614713213334483263158933937827482854713583040011598276317041299591351542194826631395363728238290731422188388319187900491388163319951468248064093239557224924836608251660619576039283896436533487396463347373944554495573770153698391358400439633840669768893931986567180747723347904164263319223644263088645827448439891390830145376908210157072886262880918774293107253807931820554729722763215212667309262894627334163813476938240342365667964675029655144583798546364103789541168378500635575694850357403656774873029973273076716747380377411751004121027145041200817369077866256329327969307021198345670710790849770223221983523221998629272113519746686267954972686593821864271836257327429323022258351034407633292705537942915595344104932029026867467554381350024723163323369286054010825359088920916819022033784955810794730317694509448735144213499732425474828095164038188020841393217700116174251223676471277849866578244076657627858239111430854599774254907188569547722055153968619167133199862631916503422221853305011163605907266342450939390984485440802641488921483985071550269709217828672198416243897249545289588281563007385719054718296179433074996840395766575804502589640336798678626883720450268034165630981054142511282641645452171152241981291501077042923386809487210926360093363591707741731608248206465607391300034926347475263241184689195482602099094047517127548077205751916858894835552978530807616463046023794665299544813320169015075803335529124224849507580377025723402482642407981420292002597766484902406520799554900634834290304771609620960170156293423309668772240020788441701523854553034455405455095330020507684449926585231643846818555880673189646690433854523308344201152023499645895770209871237248158015353921867286359135462697510377583254106411518698497230276686480152437085308147713766857764574684734692412959273735860999485321004167440403510747568785580745833678896646158352049402691427074808148288852627149404991943109623056395025105432045069764806211592152185439445207143361074519408612244275316599436718183665507741341499143590563474878137281668764276738126833880385750541967257270585600353207236069644611639231676633901911818426230160112513184936546861028452165526106465354141103981166847593053451136588459259106341020992432521533335622240719859934324160867027047837244372903881680934885502098295413538283506697208751018607546953267979114791511050678800919771910937237697831525161719927145246090554912608331153291980051678337862837102785957917083742447103528994036172518929982901941124563634794611743683090494409420741431071299127534196578473289022173334196859145408464426745864081661015435672812760697696076643936365533334093715680398604249351328642971980883559047608058207614797068834232077774273703748496094330957910098548012232193137839811406224319565309260835392182186415589356352086430391504839753870520655215363991764218352459707063346060152756672255814357364981732019140791472156678352668691379717004510980469922852949295319580474891940398598288319381150178433858854854362498721728630180883047981064788841623901452245876201797618749759060040309384009308777728520549357683072175045615073016541235143923865484104587433335108550916116671564519426970690545960972726239225907707887090590342126391631820740927284408332148938973647009505822843429452331507198339563782740324268883121932190829548316903469702954101314211033849108139485088751866883659506984659960751021151081167587701926095581385387209995584583959570776134955910971519832922128930885960544677081317271081165094047565052097501041224177436143948330819680701235667418710831656408348083568433959287952658057099090768005403035441511177151197108963461405949305262656452902437057840946252707195974163602522628124349829053306514433260819059330691925533385141331312953782795072000166213574912314951273303066178353843580996608784107828532603038028655359551142554791357099204671733500741294359515836449364514461622015879979592996258885984361595439746489918590654658861635970602399776117152013138554259140044971598168456890232654736767348072229750178181610688838540503045251290014883419188901446341131240072275745889324548434411212930788480178008487857929749641200906172590775880187773918209340202701989205125307964708241311184708892069373483564859061531205800400339360950548665861700738011743674315426103413059938353489687602334080722965582327929682652171789199846930920689442723100164499113165757213780363870420217149451678887972374819591903820871855172962244851689270745915064983561965119605307331258470813401363834129524276711612953501604169575956565830261788512112966535580474291811630495991810414992477650518718016206160727788496179852184544938045530824328537347345208353521688448838287274542564874987232264461486727958717923539926043615239791492271446075411658751259649813238194253405737983694170049218556500970193655875783726842290552897445046487913805561122752887940349000890677828444248503333429331306826397592348300524191416652579281730717423660518697026867593215145859651745513191590492615368096632750474404366868341083866548050269178370032921430252816937125605884446964388165497044218661768208474047079399594858749922736646288742695294188528063815902378104964178352895007851256833063450110547218053998139465878982042246696917716215949323872364983631175395819256241637044986724553361133812609705463193148667345349787292299010840942407158620621869466056089577745250163237542350007855889322052014001223951535942329630488597140781110755346258751273363103697566314196336426561502410718573711421651310620725139414950952737556567891236050641974124092769906229513385484342214005972989686170480214335459240539506276783372720519092050579719897023523742207895927522634140261470011693572105306332968941344826417211033362448997699596964522157581551192704524669895407993415886406844074824129699649870551625663926556000370176781879891584305532447090781334179834505113205740647480135436674628206540970085914556429938685450991706288972848587353846188274153861266881746836668506693132824108461974226405797274786529640062366225578592753450926297799215057399234396824361307940176395554139964204982143291635784180008153096443813025758137455640518287259203365962818528467046465614804223567548988352277463331773906432642302530171182029535055004137783160301509616510890708704089729605687393807458115599057657512876110440050870016074280211418008817846183485129179885701689579313955877804305539757455426531968730396854675568865089900839391073170011549057372943493907412452613998737943157300875897571921742790492596701486115890727800164909893510814315576679765131915139468369256534668495006781596106212581682187444689322439359362365282365765697812385769227039253089459688832709977520683513623966093754330924838169031223468024547292034784123445162092819953504297497969655107962008637410879261225148022949930728315207471260257499333976603541005582076799711530725391692634087145361654963842925626736680102110238086435711829470611387932000247542055358026111908462459322644786006472260273814693658409994177785109564179635122909765214607096979375734828094302490760185129098772727867677265049506868677941381838507293088171390669597027878478806042917933231197209225348236192894968295553503168272440081904914303093453753786684431804973912919003534285668083936848492037375302246970783618148246557678557986122743190649521339810119385435999151263690402676372228249159155059048770012197398554718955371749488199427309900361966860087507309406837490984202303727508659299716712065195613923672454797323020093311713452333620685629140846691833504433611314192556285239344440766130249009017098030451378351386773549471119585048404558551291930731359970440959229870558801053728993923935574407586680296575721820266154036278998691430939441473151158732954571197094692741741822245736711361195569838750463676739392781854607789308458616511619951620744449875518794371000614600157023235559689263826740848622984534785444390073337246377208953067302774843148775171507327320166889451194129919511589823930096814022870599522571360950059396263442516171796005366205183721101258004861289822905539820247013693885529709514759474640314653984388100248436079146962316107428325722458183663868998670723407240002269288833831054877219570131411427110346420307594468100214701072932707693684152297572399087880868739330647070952121399469033245899414949459766730970263660005475714267305306306743724114660242623616426337707384831067719926109740952760823967826369926745526002338057053713585081411617287586645590128341880504037630381143293956803276908606852756283779337848596144708173925570022027975395077399793726614248059346577248428849455434427543127263071594462037175054912712909322325166344759505562820497189094169215646067871753247751368984732728669966339678629204002732290657614037139938210236099693964576483944764055983407549616104188179306922340917663030905086634224776720210492200733401814702382318524828068692993410666216112913367550749471641711962663015320567674109275650715110526610388044445374851955270174128313250109534241708781526168731809067263199611751374202860645029557845563782707425535160628748004215222415742771830718179395280927509766046847925262500540627049655366731052392434632377469977241492758572808755064477706880448037296326825300471412067433070425798141060381249708743699020810144754584127127790463184347321730963749856565068202261604802147464918792344107468052422662500712823065687674258482606395830632479109958914574506998463576839119985390214631856124328405270903170970917433983442868996989596342826870347385785897084405913980959103587019351387800241056778318663090030636622225477563650238861059083045655468012883505274994066821005646701376033542605715186822896978451218699852363638151863874100482386298525689853620250278526590349416164532803941856794275153027841277172120475720609948454508708737607996404772940452919067820423621360271776147245014989970008092003960162411689752987604676593974059076952844551680728054466707027563620033273590071757293608047919920791039258103019685068058225710634058266673233269208156085965375375930441227123228759300963219081756675740548346049610213814128224480335319737325013904043030637728802906228745184294477598358829353278110951521932055850537062479076606099250717649911755702886657314361920136284644046714607856878588971979248813333480629371529559959142330297125923914756640525004594459071359170470785430124349837015650321706343006790505725361753464397816191314565519170794659638623333020264318615204448965232237736643635999543042785908991619098355843109254726523650319503398455700733468674323569430844938278272166728322214759739200277020354377963872591831103162590046122245080576210066267442777099760802163870028776080732238899501303070520153186344520661098074444698015828788924503450740338079013599023393321555058474578315868490290753055838447723885026705085901520997531073795626581092972097285644474630738837034757427828325034143567442150876575219639015559599373217021897619544571993788305577143754904098340293562111612399773640623401484666483097222805912993705801380389298244323926689370820392387935403868124626376033850532558258822485485605490850168617460818563776255115489475353873907679906596942056299436540166111627321939528303862770111757945682955705008406829066893237070276814089658174495322287074956477720509343280265079116066515912426275770166558854136771501879596041333163369047172845427014419836218525074965285557315579564788672488704813685958695764245230387595577292947481118442770486675211321433842272246312260697996090665685975013554937388115232531494833643074045281417398543552792572079861073464123566109201722137197795832185598638762528243830806554022218917402998697052918209817614072850023205476809459411092828897787529501896010989086902611962447085079518655076451838776850265867399844007053114293193863624129554918575711526117333812682783868972347382979825740188968336420445203217801182599939061369355266324004075116562835183043947812681134688012155852416333727888551054897432911862875729462569607252949870271117465211547276766686679610227949933840724457920984258258526383460779758447356298973620117850690861973063503686966509064482942473401922407056232915169573636144398900402591811107572922100239946061892746212597288550532572132385578218595540002864697950609022175052642369982113384016836189654492526474078554781957891559429408954786623185000894732825643582487184735833827881532070976649695653600594286623716708393921719902676700422548034204328864403697430922478454533158009152708902254420544393270076919619912636325339560609840228968279819377196423536457903800339075823846575337767121575746432013315712742446979491578664166151117890669479104094710290882401065440190895631791099505459471315932709037231914194092778899503344431901743901683226953769666290414947870561070888183679323366363733801789640299195831492631846777787773219621166954807158043318540077602920004775696373000005096357317891797225503616082476415824727551875471461027527304697073222595520651886695551697295273329779964790526123236132173420202657549456923657453168072165612579940026803470028425463977990514046637058664858247307498377476977663275085673152095218912227526245425085823209582185625250078573048257734023411511991392146580724746777202748018914195673416862062933669489289751335303925684345672644942496202888838835754391149060137035088717805114329704536576108360623682571828580336691033543418541992943989304398278484685829800406126469405051065540576473129057023972139608889919661098199561222720671849159822523626830262293552955447892854016175378295906327403135728628057027879385162574450009819203488435790064933371515397388942388623351430955872429038910688334463050612404543982777405542116094776323263018300159382966590176263569965776100821985179249644469017255309846445528808805167880581071445945981580079991271416005942673364925831732611428514854507047380325003161542186771147332047607134937225514537034094460569028039770785909765839316533383320171796927202270562261358752525954215258850734678089626640132783990714306835754314471032613937920882162738370584686588926098792003009998604871324640881579690886821652033294742584919733819197143842911938766361806038056834530296946350782587980797180969688126915549966463469980744556657566771444020997088299678656296051361486655611249389675512790305881261656461940572572192756190287422240491311951074758681984580120051766907234657115076762862799236329891223858886827524894136750770434682096911823756682299972103835746437696181308327238834655801769492277892037263610572948762451998607044144931777637382818874541456677491218132512969530418981234058301546175117075923602541458491723637800305757237517413592746837335866371688914300455696301847676408761994497197873354691298516486882786082386844093888671727852211218753090516146703802604825036817786366360095544517512218940297887384950773512482301811033781389574094147664111093842266875914333275445485006647908643938395456617589778165025973312901704883793638963651917584690203547346564959561171244215742857243426905320368667320291869917186625444565986351368423484833037357526748793351817016172862640483431750527969164961941331867735525213797879018479996189089151503387126582939381588080495579924035341138468192236525273692957644206718631845853004846484407386062891744896415523068150571041468294759509350618263611985380916353470788631750382138403828464003995469600757861603303552130851294717591973728446918444907130185787856471804204072145724762207950443153137514636979169329665742792779050909879674902874674013396479320147162979752980696539068742660513693625188706877584009079599957451744009841263162317661444766148194452745248767784358096450967201208383461072622850996996292586841539842169772502788378175645377688903784562543804833595402742492445629466192033811402981332637894364887305422849048025003670308196845062439958031386664077428617407750955328278361752755318608739250234886110369274135451987606275506966972397896682043893082936504186217121538851753696073065201292664054487584326028129598520916178702108235600584495019672671453994890533062699680155362614833100652933385302053185711537592146967365147578251148978618631336380226964985395220569763684222056072204150087364180711399275855510715644334356127431627732326444444268847807103746515575320528208437717830660755175433818217976521017089042025169390169474160600477079964438467745423127255090969436384843067926114015749239337887567135836155446897846744105595507738615649749643913646225336942132240286457023486287346885419840999660026310767957255915805303969252125748996126821168327173989758677850634500243312301560472176150823445531502851843505390701676202436771718966666693500739324898126221877956443300419361677986959759416980901607669418319789675031619024166818216081831679485211997875528765218107105273039135549757602934848560322862417986796530439595327313026031791837992941759113537436892773340017589391611345964460901691581313461202343222286141784678230185000707765235426400043266648836189771943184244995989200399075201548957258371537780110971016765917010115538637196647760578155286153862140975394495236063288557464371129067797009164170879750498634259568319127434859298445267435755481991710537020479991471686663668620020905135638321112469959110333715660487317672379347130828631947589458039756595596907432759991978561384669393616505973223804181346546109276950859609368200290064733632066153208708782977131002238742435502653180332093477553689985344851376941103844787446082982421800156317806050973290892927723155544881705819930771114335179322903121973630739293608368013950003493122651870720091121321762726520959302294806432693446413044351652142496564095093789305400683404780598636033367768823807232586245495112717225185452445277101493947902564655172457277181745915339707843374966168334788625051046733955035657777920934034171410005024204454159095613519763906109630974885912563967291448745919606949627030704623369935922889487698598129792226995879157762913543037981077897270394990708607438639760669097438954726470608200378447906829707321189515297613299085565335567230706668549795064706390772649485623932589555299778815179270366609031350800653744391882472647055492304088980501140864203460875314456791281561856842262234311447905735561179097908575195833719538538389100324128058806593475887200237596480495687871333229126202709217817085266152977393849509386344294313535841540066121299662470815392556072883965582397303260627879702325452305452655609124598974804024650061815890111608337516506143774957083449547291817464650940074044017564026308883103948503978121895271100942459744774011199862396723116324964224021273236275243583256990482633235697365031202381530950743985642895772535859116619045284647811635389107731059042243949419481965005531264372835288877474072404231109290337493531937916041068047705512782773322542546765736525075344923626839658568077911765625127129167081117269759664388439492619322162365348476508540850949162652091917134384823325770400368531211215610468152845371670179077910924484157239771167164733938379714497905238798084156552823078166531291629850265979604414016481898734695077761738629194158465904394135253112515283860473626616186549811211615360906850275099659155583890135674637333099362711775572812785967883313823530580273377206928395963526232434454603226349043317534111051254257914643273470853902349850213873367201362254170312348383216096635505144744085875841106606123605869176027870626656523156668637813052229113536490929709072227759077137492274688632901612560208088221871408769268906997892465625476271764446623080606657807681688357796182148360358073406162856121463843524609026580750487516682457432495933335799036427405115138967820144566953043817719020602131249564451698958933772192021265286928895080131260007528889416641956010612682741880688784418918015677601758913095234762360170299202781997423845961677148530587114958794995071883915094715904610230129365475011386374568131925477918244099469286335861717788824801562311667597441723620456513102130835600985791147546074531743724181721961624263521978532398421512549611134228467536125794127052836662930974834773258594436290700824035488120543842508005839266161767406209630003038741582302954011434466395408435927950551327643131050133530805363321931288222492741970170196050174733271047897388620656398679972716504092771934831126655153581248047689729347191196788823588395377681203493872430163197687639776395431443306511413444860351688914500910374878607366778336678537293971701871804768336240705438967867924969754310840442593365834845471540238872880255832720652725445753226392104357112185649449691676827787258347679464216317273491698938223968926257177286034181715135891217834346773532239712176494802117636915149371641017329850682641038335376455055916966123687673048642634509515605237451161742331150749623393743179469938031860903859725569840584098735234553009064206892971541386820681566409776540061341730308619315988614203975338935051628088596041757990990378933212241904838152695168150381588491419303717144783774717266362813284907643411483002336180610996083897829409811085475990223005123719214396835035786056997758846102595160335404999568593291546552202969174150476206750544339496717426640983328145795676395448890329297560626767302052156095655870543564476332913317122201268303524317142103953591175396554847662973985034656039665311425000887831127548352932500313812456518708720798746531203361364162076117751814484260278357744328069293176253728472259222076183524046787217074641511502672812630996912040526696227710832616816877999830338635464659280271716955345000788879204552824425926016325376738844451659496775521802969481195825640172248801958197620600028987962313651280109718896692932707021655764706367479337983509284291359890439696378098061014636521276039600902594030165385024398345983933782713690951257368143951003414675226572819246466353443381030370674433575201271326010228564882151673515773043108078555220116811402494290064730144611553559284225523915645149013091646173249269398377679895131081067331734619825213145942486658549788282478406250469062682121748360902245604021691567088395136620338457912210246560361388409189218033808241297195124729100637752297465859562141256688858021782970992035288499487560072584682275941318024801234541244436895480085972615927561638335610215052079326157627728732952866409986013593324651705191399468115018923701780849566808331903382584281820258931613001605997583864960775823296380025155088990769600309203532505641534893959130493227294831751680638155118811675678988845205970014664256924726998126682916841367102512067209106296282615238069790792026940235058968519796026106657729204333351190363228198838543934078461472277375685028885847849200243741875326849736311085651824858546233204388833773393452546318129956899046346245911914149386902241048684451987494377073350312917858261197993065538765559694393034753202715844172984834069293776003049431181193185337728279977846654758204286107250996307214268322493561517887541042151895961328348866653983451483467841337118256071743548261964188709111238802052474314794140205630743658745946469560903641187827878650830744290651093169508544460997828037432361716700911248600063495419064738516950726429072525758267522771855683644431310371205551001496629349237046533453708145591493093818267338384176721126416516426874187312767914863086960719248843937573890227006697134329068322923763260492799474047811215533021041047340018027294616495626513961951544248754136569763868343498975531003041553471564116953041414795268460436259264318059553154495316950340943290834096669406383122980270347362543028343798464024811065973454009198198886128584964297262555118362097810020851643272225514501621253528888593300011443889916987865690350166632202973370435634611668901828622801940984549834126539282995628850334934067824441420195222659654162872722861673782975662624550736093014115421244105052060060814337420527729614586454348465999027238826465442810766168375868739537927749900551563276685527921402466616214918861263361174645327449624339993058186481762665511629414879854768178038317562219517839100938889235802098364653426791436991562479613121566583178940856305667827768419386016601012289714343430619128176714034113522150819730555524166598239405031040284259193786809107275541245117928369730628276245517349602704191095715212859794774896641336062688396685062300047790623586784121189657098588400364120618094598792117813565726475044533938321272388372795084055808146820078200626893936721227321684375357237478551027530961931836055009669719125712821468510637165276933290488285099770175760019674402759801329432083742669707161706475406752187532736049790279977949702453808420458223798682362118760460966931148074201878013879238176334566809646726104148103187500490066930772393220413395464623602982887470268399729718793069213354246271742584318491161312155544996893194687648564370499768631314764961647730869563703996570155766732568152199558469027305335537003268963351193161223609423249179250532990525157230437114158628783497768827336916746036311660312348833768470509813984802856353236210928207004379938596775696291030432836242056590302477453577867019236708734497002778178541458515983106335890348440352490333149481379227420021190504147717891060391939328851246812375770716760587992042640319531224257036979718223858556074153506784817817841930284603613652235698583692602433044235729227180028783602194463294064480582773791115490825431260341375791385129118019392624210232221276293067042091640700052003972175128466118042777066608091432166509772887341761162446349178809660848066121018961587221998349697853739133778878904107729820082077899785521225492841655257113004595462044070397247803296213257736036269148398562706913565950436569694948438734841376835266933757142497756406603206484802714021347349518169315486835195502741935781817312033913146090763402194586195994544910597436732968331112705845996295897532739906366868172772433832263078232149785561169747813960510758319889639744652025641545687118359159891053338422720640814550488487783979138693721567091600307967682002841351881497799323866912977715481867467488274588689672569640492828437895194522868334815245475020975935294362503397319860026539361623936607344931071662624760227913829905862106429655980749852335936211509538423359836934678911215268459838066713646723134878430255944461969468941929437595662195604700721452834951284746161693571551842507461826247235463755981663813502643713196985937174643256412271321784011795170295408942165894671401397023962959594948569578683369767631172016560993504838285587475623586125341285743720478608661793065630553946782830979518519247507268608965255576654206068310731537482315926401403114161563171735505447810255155602782007436787782446727397446941125905261509689615179161693594799659220734356294232312310103484673823240042760854797524446972565437904864280615202461367054984354853188551460984728634768227338144360950510696726430207608019144132046560378812033568205406777946169332278021401508045893032301597497025190190169285258056440056706634101375040548558981170843960418149669008638408555686376067735748881021334584989696263100860186113803884880037653768303419327010084238948686835661316397709173036868484169498631298483252824651083376808500359852765398993275108797420563577650243448583434586060643716411475492093262594820384255768005712739800962071335527369725007893471027286457841444233471312651222218607573176877179535345928845918070450328657636047599626961632689119758759966642315816823316037340575818819943860686158040089017027627678818322302217618926595303461941943727649007461827044660855898612668916098632801489975669513602505033764227356553936405707160352867970875457019433167412100322560516801152712031377896425483343610499375273809387797870027194742339765402931789422402306135459910002726009685096679037797705589244109553322536280440336749667146277098863462292471506064082364986125186034931628190487817892020785815271496405310969936305259447461427676471010684136411335101332614902929513629140615997322689982718261545975448981677504588947763958971091796153537450512728613682718213256190682980115141717354165129935298739112267044706863872864563189154080979894380151176829121795447032528679869336048781201526899638514331145570323570529832668926436709582219217532128696835291265993321156959734527918245222459966472878286207126639720100753563158800031776046595416927547071440106115305866029863152960831761496144509526473917081561516822345643374537939283662317598666926238386471933132710803125643505300609700380662175325665232214099726758909356415040882238166550749063262447426210939647894099683993887558356318046678660240088994287792297354798136262288276242964424296021985586094132146304865758713629220495513115291128364453392912691719552292333878312230747485460952050562072318835428296603967788475849599244794271848139815024079382831223940821974517033919287843153947727779179033510394368270291987956270495637473810927179092436253316504302981418888331655250091890647863528385907146231894074028465439906923320825952039572724543909598036050603462868441861574077082036029794464757450673475636441333556477054805860602141154206198012107758894477929982047269908084681118854006110431684882651683193060442323727129492655721823112769166721292086019148929000933631854084670029590755549589903543840023060782851648118085004864114609520442212301696800450600582479996755231266290543084956077800163406591154633656303656264226564510319990256058747992020558419817511116660312710274815750953101294552256384266650274840911442466979509224300476986582779023205198568533315906261362316309662267793752061213374852228249313216959430462779086353025514605299481406447636261878486099237008752550892979444965931555673769051189703408927598097336657643941484838963810513889030862651810478559297156430367784132116053198493320221086399664108569687376234632338128275185589819014194564330559649755903186985261856025589892107199146738902845824652515476327197093205985590859698540351681766617493323800923834097267142924711449803194457922815932598175270975566073945486155938145991700829023487116605698075780886629822775563781803151485572838448382645449371190536399932208348266919588153059131615625264758949338013206341051434896282412601766837969174427768740305460416622869182233215327355030869623924876501093537243453517988762137685323746170967597379920833207834971569521690382699000465223628510707323061638961450880266777718548824396856773072406406215283812173480246348493568251350176804482615781572145540167580166884351414225828477964007223560973524603529465055316816754995456174581102938607635919488580531896325509390221606548718170704835020546390599605382163865452619582416582757103330076684453278985969944013259787227716560692756524428330906185391134229533401045111749011713960052790269792992515100740711424230899965601681739645995705329445846683175353479023306853871721558249350582742336387055360247347421996837706207019295038262649713558067298779549113555032054784233393891975633720309430076861682956969134745598024185432756564929771273027358285126998501974942169887661486384481547721684857360204864656591765939308645097610529595311952352920870330191223484002234576713523922337842870306791863322599190833068773884822526311311122941879904922547361958562163070414793557285420327348228970760809286013168223053612750939425486665884741512978735109673811309449380353038874489493182688153443216506589286577686663715666038412765805686301436781719849434744170510273314972975661457375922764420318482252073910817896578636393775352496945763892418746618831299454084182531834875236359327675288430493423363623402430165931462742641294847103944307547332076099601426541883361896847271706385446781627876892282792387437820895642213555916006395286530518262714648667582139750160165793304506469787481757426118998002760721984840135777954876276593755246756276796510060958853606236738176359475723032295266206930336451509456547916550310175021389999191792468662070368464806518981639466385483602316269508207530290509453600036344039469767106545500983356048112406012105632478913344754423556138528545957844410484454543329505628022201371749870105557424430868437574653180827819711022918584110743493863616806876555740978679089074438388503676242962065349051658198377503722913927789026685229570107457986448534782528031518013838733643712343046099134002486807987419234734930591998829736849625536256581482852332283438672716925674711974219433083040706639268713276122457175129665899059771625742633159420012601010064873412232718078408949854720031056581175883236078655506008041996901581264701424040406471084554188251798158483696734146307681104117032470712773938700620705743246972487083668525838288982625607203851484255641405882315045504279368799996211783610833523133812089221996446022215815679917176835519013113632314840804158468834749345289709450980711967433020585671009382856770903443971274942058280325233337229483899569721272269495625695616504669137352015478620908732327970635566342330491399032197117321026200297839772814809399085901269357785557172014744980549639718627909977363140143433549709568514570933739891081763648966523903983725312129166546190363513908632427378665315335521611304330914368080653665667030038967393232860738924107008808736873011971550272657756629720527360195389699280402873373009774221426204415974919149524143271918740393124532932238986965238548231092756382936751112828453357038295743219044260880559977225914402053361239565892604529790318064127249045302655392850474282160406958649153972990440286310274719546956275796231200682460325616582193232454551125002443863692101750380771965806296141332328258914401618990949436567255916006703389512842353989853847112935823100985040005201172345325691147218356339803327047240225246616250654032219958359680289650786351603365435932623883996500731891032140602877175609065142287596727796798848952944064540522514819876134129112011028273336242712004413973905213163030474629662863372808127461851966680612079908528952458560343275275846435893352688210705983819497761328692233094928290229338540300663352540253624794910746391300311238101207164323723101537860610120178574013772260422756713517640125214849664957764378825104878866515154506169005719938178111874202291646977524645219450141170320628110893647573074060180860347877633915694929136265365848866345236078102857362782633944958694582728813274777872773996325765804109611615546503216642587488053783255835196098488975864974690862538793472001488382798554582831184250974794624117372406257416814497047579121330315923692324465556486718709868884144253080558931827392723373710560926234253181144534903594080457175159319217258183398163053007303577798667238828189965523841285752433019229626685435977839632089830269788573047579042892753544749775079890948544728252688935119293513137268414076489061645677408052513814828869132473880418964459496043230119105235624327856855155476558011515044279800673228527387935237213399694525128771194127480384215625924130879089248466906057903810367595996560285773010134880914143931717105276263583511268141977233403086620359919361799488885739280821861601580417143325426764207656689266208607027321419691088705759896903476218467985899701448687027416797775350687996095928400404991013869996140755797073295383054610522238909340204933963145521657536332845967695963909484979127334207668796415143868291585960672340318521140936318014946067876810496697102469479426821082601026447497740396308680706198643299234363128075423563203822137313171374490388253927559920916044842170900086859441182402284795429901405451362148122126450715118787369631333952510943285867715372755888449942012971909298348534685211510280015260274127889723342370556435349614008236775485417336107902703711309406445340926429695641636522619490640242545114133314128378703396756795416639158410089549677708265454845202346735931156947314302723733504600760012985957316740185706649821044333682506177863428154074743421263232531366439353381356360605409036323953829345915385904654370811181084128791409617804834268885322210491618100409793044332125295618247776833481229081988919993180595854554866015453513622919236993358686020127797133406614370418247149604731536046200597994111559542236468921163417660960450497178855037587158121353738205820915449472920476293089466466775176911845432222802353583106418129567305886974718408272041110952386908054546663034505014648957191160359651880661520140059821165116548867528742186185441548358600562077831227075413941002500839097549028569305809295938558111393665097190068055495974008570419970766866330710295061122826236809471077057934258036809820985581606222626312328789834959794599668632001154122638950705497983275908120156832997855733617156387554007983923143975355413153814986635276696146622771749350956417664759411050964618239302775264744370687933001220941055568044471217687615635015631513405899282891364189951259155617242803178613117102797801482298151961441595169960268231748122727731774997314643515223144850782681133276035932250448682082131479774595337943235626910272863363743516162236551085832054098158724217598036273699090701329619293568036734460034280794850996073433069990671771932962600923333908941103090941013557608564776196553645664819719760700556573727674736362492117744047569098408020767456600917626001246242554723940238109433242096431924414404736998544643598112220958692773268476396712449030664846635111475739922485157765223206292010344517107232621742732573558797870106883076482514329254460299910958657636293217278199704689767237331440651969273959306380116670883284758146359243324356656166895718211682027713206912631130814788660884016592431963025349978321536329611752777491533050088332360535099928090827914181025945639987631603630150828054634003160619822030029426808404394846669250451297555068444422478544588498673069287594045105086741521798023518148480502024044740210303865803873993585508934973134729414609841640967761563447192187772388685598029403765661814158409990240273444346847292193916044606501945653136262588308883439498581004135053252157493375125794683783478799740673114986968393322260139966483075502678353296906904434978949573036521593668408008631628519245454734458612381568856147122511291597826848008187416180388260324369632990791407441292922130314219367564744542091703157283959512477427116410811819969561927590809578577794950049686512253499065442816227406798775235988723425695265081297549259348066930972054013592527320899999015890781580913442017691136696475799205049531399255785316168850782928099202937494018602270043602388485429764952845865065988698740881722785907784296483772293595496325798793332629202214964710373769743265861333627355582416109169595311901396579506495868395677912124987379139012545923426345768831134318956314076576969883011162320181435011750465184290601969022701302400026282180945107243441827225240644061729079303155040243401911300438348750030615350282369785022283914234613743285611635397287821645434447975229859287532777672773692956182380631157243156003181025628841563500461848521508706103002926189137927692627738215426762795254179856650334847532694121399256673647144853770580736098032022078854580892466960965289699799924738276265283117588434240508825938654223444519380855658915353441928673817405684738113237177774968788859410100707842051738986896638808786108849761478254524313045880226324730152208430839757340084504067594159356175825002505780927272622027439089646702289421003384493139351564735284151225493256025098416420928857654466556946289703307309088211230024772701283831374645088644258803079010919216676264294353458023344399716968295645128345736574776371630433677825212004274969250893931013453338140796624571090981242318715560102571318487395050197176206224022948783063963470349242941260486945898816118697003534607903523197405712439334832200590877958303568945852959249090840196445134133086230315138727223188084750560578853084785274318063763027402205953701592706520146161643322582204517832617767072548976725979247225454399369385734999348210232612445910900706278095182807411173886548382290883778233499011947459485863698936897997241653126548660241940746621438458530879457945237134839300500951355983299895225709032495684127792001647149271988223105267799815973996683533227961047944923572725476221889194418216899529855523429082024917039626422060042031944869895260065275810152876537919366275460950995976585084500710574058904801244522482927928612945604093574272251324351972823141033926618944307995879710474792966330358034553479407456561340356925083940177413463054825279384878355146166143214822994058158965974079483371332062856215267274838907895350412975958502504693270720983083676990361865122589861782964322690331923927551241561873130596503459184546527027270632121917962373673501095657080734803234557132995552858475728451620788306577316914245243954901664427946554312263038697709495236032400975312499035562230614725731163507211836389070203758872519027112691479828014831575365579120708728200934881799063306366338718839210792252431801242605768153266546001414517571660683681857850882112382207204057495628949461854863746678273340658081175718423740554858128600844437772762864719612122081929939723494792455561896776593331180093431901403902680062132071941192201022934946149929688190531671864602492180419607155777869074118885996983755472814540116407549934021871619384025453770335927431920298626967631674445659911911851107191746163159196950612249170483078501556889844795156284874521586691152704097715889798347174776045960554532300580305669297116651114962526724664567092543345066591498757379606893854632717167636679989703962988679698073425302048934803265985758479859700469604271173722345093783700288878270767111154884631428154308767121954756514215092899292531246239659418451451182338546262587977299018885855990238858124570276485433941772194953600954130757648765154512686596202471569819605465101568715993483948465998483931044640018366069024487811763004616722735575679108099813199627222172520484567779756608444083413009277087096784170167588784421243309665250503308776771825500607512246866711942563824621143845821031788646138934476198683696340169211076944191910425083719623611705194868199834948072682755893339203293934082842146814842978547198230280993279492767530918390830660262445512086779287907887075680904129674078414835917396714371874537870046907165458604986327738493341675762921284025105145459260439792069720882358017166587329719904910640620629176505384891299784886685856802427556514561149058733927102741531105832002571554330720569426079278450583503449760725790997560763639918125729804932073174128131861394804114371218576194016754330374401073247462844361493966617272567833835042216965722016036542815725764502328642093237470554181807168217609778992771676638454675761651674974019482239378029629701133207966528390052429520436264463818887127327509006428851190697455087237670673245738130192083993171173411143795088909850676258437607215156451286572737101020304830977862694295121406848130808267842125804104028337036803168661115516320763153968260020657024243949510703706966033806729908924920552932565708948725782786961642908551105040941002718135072664201784378391381513524777845839244836014861910983006064770965191493704399685106628342145063762717971406551630291452829497736301907805025552176581173971771128380321268858104352892196072372306033672568618333342980312429740997113317318099152654132186279130670349925184484577168244893126146043281602364821926577446621979204234010835868298605492091086056004291277040263843166167800141726109735115430137907530713772631127828393734774436384681268946926779902238529397106945654052336294794544750140850088742316193930816090373871587715140204717306143424981097761958065892128495998238889864671870371134426527156722603603742264201106883699713867601374353115585196434894766496598588941890867354717355940943236903454553639696630712047896952565024192388283690190680872502057676156082199766159061290089136328343026477024500256993385653558985640671315525728675795351946853600233807311904527560864658562873346496983008034827971088539130396758341588019938587130163173502864965045364711094104983486894018571643391988654931263824379433113852416072791569295740342436732970196168160538262948772729625546861585883060045094203941355818891769807856193982926332698128031840974762628500564417143587553151640524952941239657285665907444661827380034249755826007987930919854003905440293438677421055020145358962752086429039415513103153103719539088813100750251518197146116085680443986654052394684500921295290069844506949140151308691444342926551378181103753243528455470879470291434335122390673213059329762952027553468246011781444988547856636390513742703751843268665273131473897163701545604447450801678366314760745555548849058902429370247486589070844988116733551838382400044000547131297786038749704210776076368134733916774750577590900302778372881312132932550960881115971671178083433777956867356233631762909554285309438944927775258632383009650093485259280828171344840067318803205098846071370217177455324884075166957279061399353507442932361969718646173635521342381285339582398004814002661332215095483123324949538807525730358591183071023029228687690715384467958191334326537394297792132512780700017759923748654887580419441779582072989903789536711485356592691045446810240761985186958610199390222134005487607154993986632595443678832957476941461742864933882570070543310937660849469387065118513693782935618628915526079310621737978027172708570211792639432608798788314060055654411251639952406109693223482331736935667300344403161752264691880514991410192172731659553175962569266860777432996084706726106995291535506216544784367849928287263267369527904861435523310890598329069563923730469492224341352550657814437183565782881044874437720823802973857212264797685162363410919644323132401189123679435383118424540307792117158069021236985580373433511425822241920926209593263384694205168710193551832379649405618648193028922188964552177205802391918819166267610627143234326055058328094694962302108494827405257289691731433215828578456529238986976562663433283792618589222620646099486705201038566097129750600500930814704839434467060146174455335278570601282239509237316165370661143720283110569795872230633670147213171328813500802093256536206830782701856844174023514508574819376467323661855645473864828092506825808591126890357496086149844212753040574374063170926013560260317266471010710254821552567784217129262779598687844905484758580662001513820781302447850742590208778378817534231770095468125987769243935330748426880908396209919906276603922094656502495406013420117486836016982451304369568983097036136797750854214562634062803354563255841609702520136467257862428384789194881473273544594078544701949917833758790968802698502721319613696611908013859874347675339872918863796022869411944655857214805438306574388522548623167743594262684118032020703211863028372728399559543284390521086349348086677060952733332250651281751975488752292084242942388987522998424976751814314049561738189318524273793740618349700555398165698905223196388274499989209556783693636463625909170979942796568922236137530392840935712092824385393824838080766759053532695204222231634837351213513788814577690641883950088329225465599640430027310904426609889990631556018888488229119717481501362998564672978307704340698476214770777531692515046014187864355879893825673006552731013465871282845073756588851445821818522134142223497830640835243745048443767374760544273715313838927584847159739723552497620714067495208384458862699659873132768626623059171168847257778729935622988751824554126672853729808014659411059428710614209783258123498251295228669462044842367087631022203287294794184342196046502188131851084685930592412478676770680520686181531269424921925395761745938561091324398188303043826380459370231453133751381995955060370952535029299674814234812710994500184182798110819075833758696110689559987557029573816191843861991852712984728254668438859229420755309345090921100517009078983628037703440540231579058812575187915913929400341524523610575552875086211028596775648664757704369101800539732368622283700729291356148163360471241545844679502288030878271009149651828166406668691221642493824137632319392610608690872360110619820098596344007527888772309202598076231115918631988978976913026676513181324998220306953873941509946895452624254744610041197172574658358142868256614747809550495636272033449593208767166442268054851292173934538459735427433005705260375367453973066399359149960607740092325009543170845435709501750343187236984353652632502665153998273847549231422213575823338729223312518540746059623339903803783864199204325522928825638126285534889542940593212861647250124981999761003311966563913560702886946565382917802505827078386561322603755114289837544620865899580682540199724220731706684339582060017951334544432090396120379297391326261931071982752330872666714419349150346275067216246236041414840750827383107994517150041194581631065189463632607548594865410582289431434408840475202877543910306982413661134823190774965333452706923519885758197800706302010474782812429451840605116125822016353653716677020569828891825082193109577260696788978356927893429017768877266455556538836963303200133902044587618380213113350956183167004396443330212674905918561348423881961948280955928759298848562158407130232615980129996150346999976799643190820698149471189163812836001838568029733027742003783447295454428704258015320517122055079371245739451147529517246959853617103062443647003137360462162116438215356055261276547107997149791536173763530779361435829453256259586992803488926683605510732863929942185709075318789525128814356252436483058961615395677529925111172224481717354338395323640936988396963995382678320452959294795501596077481738106933644977857690136851060706030965386084430040738963563068035459635231631343066994250006962173083938811171683803447289824257333819902172143612050883631307703727867620043789389863522548583195506625479271299786194197887580903820437097788569375915572402577160371398858177671455799862678383345759516089327062815094227815948075916118215341067304853591423579953529728870570933824343206255693479137252612033777505774775048857354349530339379583858606818033822383315894360621061177552942545695421111044607819428531345110197584371837372829713531973988900539152146393833292932802994026064309028613686687023925262715057760427460604252142485592029355801330989987941200681180758274100726537745169833246179427433379038810113394216592869511129291891557092501525446392155260850108158574086540790875981299379588372357809134561163342451923444783070894989095198238679977805539349406131907874088571824336904829710786816750487763695501780941619534380550854031461324674554635070336894433224083132967132719288432346657810313938546928752867274492530258296968670613952139947683153071702929753668406734241237132792371578361806578624258692385721452427947241922310741109723601875846101994249215525647737146887131793158421713355956500283055664111403086282580331229098393636043487441634176564570980927951841752426299597374592060768573647457668708040056967298082676811665839067967675876133721098933718363956816251941011797888014262760199803129941959484285919495953157905217450025625541522733427698508915955920094162023705928857352988452378801423459309763938837747427469304867728674467961390490844685781778057299828596841053983316353147649517246882106719539921229161024563501621821449721157262344297943040636778486305247268489997267936999751912315908776318836098493778871723088085850877929615098466386272558323165084191314956166830699366227343916926168773229930540792114853513717068572529181411557777645012162732599383492823470402308775455030891001231536230708637670157202345110072504819475341249532476666058173566056887548754506429495233374749732331964825450269577728333500039273908002165966451424747468477539883308769197066345665544685314112760583960400243399104161651733934582489641978559296772105007009593730906256170412329845702266916959074030617247975880885200033430093562295272859930373096660238119207295975854012085369062315818001814580500077964638833211605374993974746866249530616091608134636617722030543225914260512702815148522098576110509045955344588820645909267654287539862529551548875639637902293972756739484362271650569304656329961578919668145635450369460557157249242432542605911318485042150293792195724175208280155344926001415390776718643133108621746824939116520082607573929123900734261098772588278679167469032771604772621750543125391717420913517368494123283424303169719211039468680377213425063454813724929848179585899821921865851093322257182680053683052734753065707539460226140590821672496843230963115991261830455559201225124944229498855416373942062225796756274463917553173130027413176985183557956777199531921345473619102576079144536562504005822778211296076708384160162400649336028291604224088203587483636118323258241551551311647639085159179321354335206991185862797258746331757167998275629748231538486273735845759702292728048783407579505617709769083266178482066831083281035689658879420542619504180464226977342304870722254457110841688629505071668399082731400798903902971601315576018878415956891713455732888581121890654865659668269900089983211529376594919477636259229625424756306038628960124144202069250638649923858282686774323135952770718936228348322597919195681979194039464781373790619666063031572742571382817632568694007355889802272839567687091773633222989306348952831892483130154023508019295721172873444127273761336911215170111898488077909806667209520645152337602292584288027369409191902968646032934092105621997010990328289101869907964030943273705263286734778300962306107519318015700162865766296160071751920727079078651238765705536036522437851100803703833915413970597231370794536690281451123201294109748895362382719743193681547024259705866043757895118603870635174859731633338011603079362387964708625645625032209713377966056924320961337259677420102000532946509642235180692864968661037003724829045476288685965784761528787030005528517016253391642387721121115869730451340238706308235357155519579471743894808699070266081494981813722972312062636803896539115942318214893383390457658389482609468250978108932922763432333411165393427740984318993862874021446098763058734800769533384534849661002165392357542930193589367650065343325826042764689470364156872407063797902703901552945483986190743491103656396690330573780002600841957517828428579907107795615411832791226172302216178643993186893539197009412066408790392718731087643551715165475223955568863168341830229032970725004316063982777761586553320146982263321903991813139794017130070308150284806247165341008569067528364796627894555852764917766384609127650309352262316251014163295529233165913662417905343184022808014887253981488618288119962718283237030399800058860209392282274865772810324218855922496872160641855064261560969733732464361399312396989182222382038609978505086858666603609242887661384630587283570593066573338440913015561066206434998697763547328143043137578538449623744845108379347812080073356292842177794170509879650432629537193008812072208711665502168350682261567789318918278296918495265852468076327249770800514018942313586163892657939986437550453668923954820314833885156126278565706026656416825927918027579926401376459049567658306977504905003440924423028367513864365636986304519693550460372860953562095550553012320110417005626288320640489384065289520062920434753852961570128851070880277305474520240857234467127564177761754406757687768915771049773469682284748603156517701087573268199758313356578165898449066268009210958573022974655085791372968668549906053386537128583382165696619617770044139638383669685633439757587925897124622704425989530356735421466389904900097026506462272731617273678664855305881979200255936404342236897034706088169445553802733494555144447771081376848658229487993158007128410052943125605286176156732391166413754069037009582441698316760748222254336016980658974034205881160918492668643438419531120472159690733565149590943948006021085362057312119541031877400997705757317119663642990046442905645205512843477178356232035614172725233675430194247944624392778398693867547395225062932196920200936698041495436410596011514068099029055137748084389436365693278058792220236962851635838307464053442673360257083428420838115163253902116145094432420010089018728988878483990603287997391318991905106926128494069137471611611938183191342213568253012312802719182325079641066664864847483330669856535285387885302638343333766130036504468934573171469403280275183703424115718761553555654443185014633841568740580575050521349264423617784534538799721406938866930579326980971432637347919447699434779484068834944939687296291677696074372404336679474733820424580281307463135216002509064137638040719124197068883996963954365576187964429963185472310701905855055607938718985665934290705181670618404540591902188870600602825256900152831354951492797660800157320894128966115730142259070560282775392548012819963134146360466317090420565075080041286040403051877667836733557276976774557578898864192742864040001585823326606425743634821657702436920662465688353609593986643859551389077601864391127748837848682353045390102174934281351385332293589653243875939293551002668027344346520908749211032880704130415894600694738180869632420471641925511750874415499940718493025119962021303179604903695387358658795749626389562450868262377592666949113879919325540959334224521523810128236793043555309005982958511694573187729237125820344984886111389071140333287491116233636247258151633873244267914105153561382346423408959088455586319583782371819752277874595680476383350822177344633397274888205634638823056400769521012196078474649223204133881192830285987751830725205887803628260450886637850033760366592748294038469127210297575645591494634736325772388777866649652236618697730349593163240959550329795387747266245310759585830505364277736823173693455664380230117473338990345490700856942157800505702974650268240581576919813133084424119290935899410915519472636828425586005527964940399512430213883256401040518783767406408891879403452112568683596844452927447216591933186806453507631800816634958855628326208590068251340638632569476080706001404939979061882198364382342181459380715032597106921194461283668913694731884658215507486918659424983564935258455691615285554147634268082415563420455199833794554119138826739488803395188385708309739346354679919871920639639461384496762775700998740340543503947536959622242602885536038215471265849889052023969637417083370302718772196727983287978232698993412748682495805342043426955255549485069446168308969440650760123087436219169322477069252950029225518871142515454291683223364043752439528246941621065787560283561253736287269015262996320271334432717658219111577702001767996631220514783081281167945032531484633947294487964920035615666494959796769505911244226832944578161648909110880051016270354544091258002039376951821355771954705872394792732774489346967337739732616743867926217441785061606966260521052647172791359909361736100511361568469554608522755836564116376095973988094650209006433648124132991823220845879922811085835427183501353576325348294115951212936323537740944480746819960319738664843932995062269155690105626292851320435689005846190354552662763395285999787752378716265839396057421855697354501801335699988560633898055081300137578246001471490073427732698456653813200854785180113242557590147978716686112466905441546821373963341654660713747445262234029016438942301902587017200484239272222718149596282019804188974143561419802379729438578015018650664644534761044452134522770745014592182001347530867798668484093126289834585135170155122840547759803417688910465924415258651742813806915570512712462192604959106781009038218848712605690336938753333315427699586551853638801461664947787484790366971699182979177177399587558328876814672513706433209471094931454235761924453934778318312981216030609964475897691987654986118906119629723678163199822152695645989759337437610602762564770453410874888052803095893967872664390433647487944810157189341507364135008926484635621104373079239707336947945481637565673888609509388928200227063573333000680350838005051535340345306926852220460660250140479357418707674853540831723700068387215508272330416433389409306742261876764299422455649451138238913054736164270486023836650172526664298180884958202801847848689013959349675909368789947391545906282679671960384300592397349706385863207649385558486713126348279306964987205961876841478123049097304183647266616903551496186990804224075813423328620141790944303583422086727109084041365235092817459800709316898146991999189592610715490284392559494131428357689877156732662254557689289440956629334028949239831869104188834124224234730880797475217529354811098505623568136108117787319586889607991658975836661484547584977947447893237681808712963265008083038717132616518072910974156996147657794630339872580085150082495074482091926900369968158722732304917535524377031081958668416277179800387612864179905881379343976821826426145978017397266345146123819943902844930132773692708191480885213656017639306178289248566837610487709137292291544089987440272229829093670800766709995045234734579172686549680535458254268338625091176620654072012420927734231411180730801596749858915102860318828338837894958712176754994471406008100755184216131355979438215086988170266311902954753139900879094202397458788061265322536105295584229316378192987904732368309856009662219652947361694349838703384404781023787195267504352898334354992606174489183746742098055656159183658465503872678038212459922313404746353903451421705662537632120317216266119212642053853359659239251905542450149747528130313861887460846718852028849394297950387749176355960711092454605300975481092231422397659648330284227844947799159224243581009248356152514067622118027757292559573558911066762988317123956466695895770590830038531580608904537482886587843148871030272304566514082935438750273114884327441967942549896747039356482270176065608814946865112556237549234685405050681358934274938727032985557758118373039150748622174224450786665320075611156189017923860849060658464887166604228327509054491646880414250508423499812188965971116556922597190813552460208247609061886071818082130948104846234125853754603293158779121427503795760483103313324957984166390204686077808750970241920414914434956051792787783204055174727712999603585671965371802663325986040147539750844140940603654420431501253682718357262237698387608003686075017951425973031299890379248344233773130168902362368721833006808880449494797474465443837529637704130718681207468417621151884883478271867601730356139060942007181466539750910907007920645442910991911236083532891741204944616231720068015311964737086538961766028360996044251709414175869730212940783350769799465782181427229552228321467170392984278670618253432797026735584927230284567314439368160802555311309927938561022330381640855716878819510971596190213343286933711802773943405031389249826582261625256835541147983651136487734585383822908461103801527108320449707552646722057215970023355207724062192021080293988781079168958479635683574549128499128978921596750634904788662486035802814737878108284224795132644026196838149276477912054641484778326567799310028529368448727208290812433000069745137170628703039087634942449279137897591021428775500734167050650891175051197018523058117960599600258997461274469515431104973073229780130274737492643407285485223336453999850794788141562140503082447129949676482194329629772788092697504364326244439919190623104637114052674912559499725443881200749553619198545263320648444440587015177100175952990740089145450666215731655213120977607777728314049753250589966077141349706695100733269340871839627654317262394583575547348780648258685505996449681488722330748811706037749011999634711019624710539265017895630979716898255903817946911035795638219876043524227147342228103464632633859348454975770403373570033350032516731018106294217457356170621292693205058958436971584792068002183743737934924157688313964399432061251917034140201917404140923056780180961583709830906464335567375406148573270633235681320948011842261689711865539542124926220459681120318678870472056781493600434552211146799500471524929200374438664402346372685936678881416732387260088413730948215305559229336503619438702722525760201004576498384838854479868866218880890387213632768176191545057985361769366234204232984199718054992284513966412674780384468125099917628981071616103685552718178391276776473483733569906466352055354329871939814579719125184818551121861011468193972178898904914559271493048275004307034021303759299203859606304314228468854379804862379887845428256797185728373496793394504286152606610870959816501443431118078826862171398235826055234898447676213321166448947733073227039639388075244602765590158808710243987580270356618343520151822958046772063796273447395585117242140908647393806030875373040910300622551969696641346625488858929999730228345265634421558422022665585085461752871041055981808169959905764368485283652019689401471799589754940279232363256428741342990050050105792232433844452657381426031342101390013864455342127083351438030182324844704089862395430501241538479943236724653818690878584095353528935884520572392119527041015475979313687733876455820580974888089199285660832881311251262864078489546353506444650107250332631470974479809268829152193722892041049577315175113386723445326685333364040698005970678620189615925258439356258029323170479381770329144610419312850483424210362717815916221684636455255365628887296200821766289283412981395204792798988037766035154311917421128815687765499245253348879038827950669552149038981221027147652340604980568342976368989615070805854024874823983342893332254500682913833341829870073502254351537630224669902224638790686885413157179858168659257290637946011202905891607681094708085706055982262313501965980701621819483677833334868402270096361394050605346428216748407014461925785741808920635779025985517339196496734579681485821537192176221617014540632424399113027373572364216468854999102498419340798941397958205240460741997097658616333887202545268896396249037393166054977930197429990646843255650431593326843842335443119375238632553781687674699808445753567169005439777312159409620065982011309968017280146216950837879263372698314540932975929532639303376960772068089569651586265121671360020946890910221884834011305833621693106846694562048800074837139172075879501632021347903752804174854566085300002058333492417047632626724403675489241070339991120634630675430229649647570076191333717560753333890146465611218459245580726085096229676301125648039578882931056284690693340020619713511450605228406603737458369322930022328535517039807885765029652637879227637132215908657320450310854211880981452591404772672401267134292455587889394327608149895222078073811630963179775100612933538391676358121479353199330308583882153151482778695717758504250149013040723471365815987299064386450026511329773403676749431619258784462668395738142249792610774003834705868763964054856437514661869084736960943073546722335759634006773103969944551078927242063483292747194893081764091238673662166804722207127168880939088505492755039564624245150964799132362396638407283311152185795941583027564636877939884456548878288153290857611665777174399433022275320129064002718639475500305774459868439616966908900380256072710903582652740157962251805300917891159777299606939728441163639778064626185342080400807513568222466938979214188929377503388840747955497610482596253428506843637873689702700324509604967017517333580263048450359769797400212044971916054007911881833231886723998135599035636780767880961827188925321906918993312142409380799014204056193228338982575994342212374008450647896214370182614833025277885614702475273126945292176676791492871323185748526629232963762535393348813796320319403254817821492778550069470467898699036618684563563673882761167127799884770511783256568242066855037531603105591495514144721425661932736965088367726332252431126903164865299322314264667663476045858367152734708575946963939068938617446685915499606573332957445252660398966772664036253873022308123463415935729446105881347640557043993536761321513116861419490256679426296638217176624107910545934856292612757819605032119612884664508535874601035590875258331785264303605112622207718339092144461741532714485496776476327161089732017986287154957616656911992036955574117346974145735112152659676871889723847945225100135255036427070060440862977588691790213541690664707542129100233858888941862929369854716819807121128082432830430538662098959739907051943930137221412164941548948592426718704891583641785196830972740236546924407738078018043771931014288105031550990587714042685234691739204996147013632268281953163168966760442652684162687032177043207935611560229473478850530531183018808253719924907265230145496118802717544954039216443630952413055148492379996468315414275192544647398703199416307208007152926621331448551871843927245874708205777535563625170848447143153882317918696119337543310963535985048095519455286309365335587033680901257434595788645865693516300384170457115075721487555428585392360817278642469339140161158931418359733292452251142606578269156913517425881076103220350667764948410535758756114680589713990788549996793927205673169732878974090818336486994548629506039265587588662053945235614579093375515464580272527108015753555286203100090011393920372639548041574403340337042115617685063362355071537433816599684514454566994198043294061199134731393785768626552162152200965482758433058950132457554839885724164796299724766415851342034862328230271476638056464836141295424321609089397799858036939837927549934334539995308602876909329943135738895885889050964595428768243052568864101695003368223702379538660721858589477064530657353025828676875215804898182423875903339205917706345986482353009623857901820736005287805755587088060568148791531006205493517673097828794971632882734489705261725584350569828775370953380436037923275585618582826481053600262019688842464534627770820831280154768663694165615494661993521792750874399374133710972724902305790188105526778528375309101940464437683104382963055212567997518667968679908251189457105385543336012697139834968615992035273856683898351990892030932228584220273449018039605355350692746571352236325264932850172185103375733314561351830850377579487399297001945661838122478579283091241188135186506512913928323891453090134684664266662761974087359540273018633000644832150923461377533956120294863183582435539110021899864377276257547567898311744589296739285489319461834284493593633690493483965714211592507169457796426446841168329130077988986676179431121215053424462898868100086216773997768126387304323661290634867993428502770575714095828235451616934382171523455755780817113146754457403484685454227795779838519349151812363248159054480402365931138393743037320264947268038462536527176635794684017853738772466550832451941860171566081960171252298609775866999227515901066732056998467838360769816504238953599061065848925639930663133555530478384214193993912976862061771699421742603712252861516837077081268893568545373055890067890885554951277218552219546996377220134218489370219482070266522613254524241712163067581269546742046923137314825892026622949886721377457724135026093308382053783625246326883180520152397514952583960091185642076815030309250520530026607893307075544282355620911197784358598175059117801924712028119284077882993946484990396519164138770773470587323845288638570379759183641017769269191813847309827162020667532071048901186726727154522886850113942804890984533834655294452824556826591101316452309873671704851081202717431003267734238610578762912538159955247301040852453205731550112140743045826459917658130990010194381114220873997849747569455496216675754003162095021129855687674407844324496879248733489757894106155250629551100059119895625224105355466141807793872436415555177813736829201961166109063763478735013667341809329237114162702388894749599703876338956966306060900998716168720196580218330602386093619589054468793172390670430526646412145213642752159792072001320007062714023293737283624136740827820634233542803042758331195769056639891069286861402796265430464772025701648815086933126984424869762436017555369327034580424128020150333640851758018273403803762863395702450936595870412765913820619270926336363360134111786355037731190632431921551418675035225471940199053422653972160490619057106498919046901974831384969991026625665764654009821344976989526035797723162761803896681843153083872149338084184254330114251000287551003523087924057660557680797209913925783529643458477384455998830070966432102136809741261373948251938673328526424742054244573880768961576371009159161059939437279943959559886605643339141301927206863390354702328601239565624159747294659336973762297066553307104458235568527126698179287407560003523931884722791854116949241408960659964390159838708101731349868546656161639715073516232435531827300157356351807166281293590530558754105973289655141837041384596903640670415587926373618889653349098712451709357427776797729257144863759044272757793256191991808728678918474599097471755685392763298026918720190929305800457282819044854412317222839316495437538325998672619053288462784913295413243173543032267639174583228320337235934245048981059643326191920704613927573705571271456677380962326526759857393818740179758247501597575115488249912994805003131493761501759396752171125886089577079693851756209146335022540416213586087963694999641874496228242495808515603843775370768821132722710743585661491120112491188379174093979454055306093198638397088010819076460218772111572860146452529190369829517899874892421076635373975811466154387024918811902797558904317827975715142970646196413525786124054694053380776360339746791040069638595141948433039617641034548097202125165664415659086735950930312273101395329740945193405125946444700581374633062758599732465737224218525263847996994546639047146936680490004526938862712366512584033649563248061198809307060098469582614161840678669630931278783048137556330153916185500155821919222689276523851453926389697673264892596552293055518231370418820741383531074720376248509389985435512941232524746609033442372198123003007575034696836250150326376495908093764895851022343873607243310104691122283882823957126238838196944674477267776544069735376675800765724395544267319272187610736774044867879166807504356734166737548299170712459720675810282320480785176371187923749940666735109183520416558624801051109127730445630822037550779735565861533181416383534766437049676541606255964429748657498984460065572945720374290502363448387526078840514143455514487318503774211287203653852277353826080173622826964295839291194820430434163932323468983863539647105806435102409466531516168954055664765566072747201892287228330272386381320804252359954022727730631668802660247284045909459654877948811382131115361942700396038376988712975571378430232769308690434530078340319960185072063871202197844986043463461353690608518347255524830270520674831722041733635714121854118983933794351487864617888274036964917252043154180533838922171098579550229079955658921391762384318860099907106739522652305978455913730858478002910461852817060554564759529268493703602934096409871656398332958123782930030055858354439989836788895491387014687026574125744847144200782151434285934622060819918560686916916803124387934524454406814061031549545792768642355354580471119950583094916796331864041940830626482030576808834402642334678433174475928161017765170071080556601591342279335081702605020102714927592828850108449660229305848566949597711060053213398525032769685840059509063431568433415949942489562954714182454055237632222502037624205047039403891416610163865243157738713988563917217160423692904491899929864959626536408913813316989564083345179968451076539766882285172961891594876631095192389888053822958614817919587563575729623444977446153306981341655237867214422778145738594315996002358736625138071159075356432880641302402100877726407542658234100541326729611748246163911680946695805995960080416326788554235387345344918231620911258983163403125410844415533162636788788039024341187973234397537429655824019142794346929056131191061714692450986698381597193536855623715202944664266046808576341817686471398860635427582045464803880479916142945816570712196661320280919689043774838652805466090327633844826469738518087515474952212801379255242602872847211038143372285037456817853031836752658840571069829848876002793441518615834397117054043402268493285944864266936510434138271418365148123618596872803574073329078812939133933976185175071891993945937130788983522739742313656463231530409757208304021579802450842783348315693806955278539507064618568140387905317956986045531782373175568799861065969333131204890764399209099890783664464197163069090003842971499811488454320357468158846138683880185092769977311868226777191950065755338444042425788302770144533719562163003205313275663630640150520313874099994739049859204318717356640445970709844292867401141300853102480913512146460537975511865519219563409436014867770414192770133827871427504897078655943423586368500166403607906782530490988579219608312882325025187010588292088522413607552185720229496283084728819268663513881454633617796596173750959021195711089329801652929481742722145092860091769934664219939364484982267802073667618843465886075202314234872960966278147570665023198955082535890553162105998352906905506599925346722154339215308134100762277606356388318488973272577753545862450650650449165515652625172802235926454895745083912761249309892309814743628125640521949335624880561624767117944940883047990818015203514613845221323649838303059175764920109768341879922634502584252575491642950208868263241584643499512563409255401209654724298793452221580559856824544094386175997909049715518747047528906137653300251562077217854500398268791505426945032239444380006984577777434740457419347903669825795410141079570044515609720361746479200477305775601030589033731210690186590992134612868198709968141221377652207524418033465466255791377582256881699576644203727291693201943073200122833691706503596526225243466580869908833359115993133049171672225910660178038152230291004560914760615261418593367379041830687620038657853184256743974892176474965065748996356351576971692246808759939125653156291021706524192287855533988596274905907848628382340212612716123925775494029014746242131880352766920937982862516118266329414104412750824532419917556749079271428237301949993179809149818109451129912340703393496274957885415361930885335594259937561260604661412252572285499969836266270984562581625278634402725870249311621830808796250197244517431098815551783689356692736134403876104169858897587195613684258643658703229376215931468951709558389598395026554071649026793838644891036768413290554590848263225778981951507532086278639673139313976374670919263711873624453333202709819535475154280120756629008463467637653356066990647789590448219312086011597826479283378126915422804987681349161947862670423224214422108798683228763652228495111471239468320476454119642705604401182114096812591360778065587856660711049432106917903598337529363948914285439810749942332387106658692821083555295978831525577523198443455930314707564559402897094404728636066262601423925222612905065166082534098430538778857240959590955310758619359353864247787111779411767461327493883450536230748716555970916556066271232016110003831946023102984518538181096422772438764187718799626018426343998949945271391197738067432036715303421128166327628899609604142545181272423011112038500730907832295785326163194915370480089966146591538159196612627134278247147124972024495147708045134360614230492500089542690628670815883483991562912679232163407096534190151094019918262200523558521781106499055125576961458722227896050982983575675735783418002751384211231061947817289412660110023771432228763369353046271742425898367178943325842023053894824282715395744768889141097705040636972451871756061293604497120846337672897547193128720976162568876974322902912605786368283412083408373476651054454632592916475948314570716392909100865910946511378907026404463720493726171149061122102735325053653737562024762303279666265589248358151573030801335212990716718100434248956351155563602057396389392010310909214920129667901266925342939397625497076139125751870416109692862047118288128537396820654377782975335039236017940161479071940022727007881065728179518249965099890216367865371972204969564265046138319279116654152560367163838581482553271628577302539908195286873118416054151324322420833219019388302064229358331407890792363444404473059186322978679485878547950262460313012204885879258316183519558146968487950746890689710745020704099351289888069440254207556800511412495386732506006980148274209935491994152674092169030624528701701470799817294165607135732736821958165703993636658406013095814091889427830627848241840684834280518109223052954498975647729827115598978913723429211562212243710825512167138774442327895633095762920169347196709382110472602115411090828404378878598361011754058912605166212262727529119034376548838410204503596710040130085064906497446436153223429089101891980440172775338475955090050744767709191645155247922128482579232694541230851526855587099152078516974770215713116063386369548015392646249106307746199506343077389022865478849728979731545142899258668917533016504218089752211995977466528531130765844646308147773809061251841513733844321936712524785723910608260550860758764800020117258869381889104195519606772911109134667461562301208283736517330060676271147070357404356285704680920368813654466525132487947743337815854177749751112419769398321875007105893160664126495747817073676625852662401455867021350379826968109903722391094039496810548614622644477116817140858990145861977907184386822773815534577356547003924291781273591201922744626521248212930806360061753084087342669001394851713470873328322624325876941411787033267008140232814453933833047081350035395126209043572694968741446862600952966099564713526290229700226667346387216985969539986381928068272447411942774984110909220459911761832784506531892083268583614851929294239329610097492751379847038687712707375905507173439435319806545976234061449038528865273590078945748926314124967164228120375918721623155494941584890586564784247950201851602807323595999944433030611062334392179898579850762294318290307850539938534109059952306414082049335242010380419476991479517794733630526061155626918922433032913048382969180238535967893489395466876113420251439846029489515804641832764230562307681119651544223443805798915734381352661188832950931616496837785912489777170877420529040085422863931557824626302520595931315091351284237748223764286576724443516800157208278551230451725889239730265725444048428268014088828711721072870147254987299757791682785695776797131063329225120503005498936400132026831565850694137301100822759595682308048181909927546424783753156524293950655903850057112242570985500932375857617260732290397168966280446097908914234872176095422001055857572098394130078662224516273689290604422731311791359420034025545253909188571500991522414766855533422713513646600344000368087276233954250380659079574569901895231976951712997676815614612386339766161079144262967704217529447250923720846142868118874831194551214992095130754215069415796990219258815926340383573064539027162619124496425078172337595230710240108459861526809292745769057845926149965007982627932031145895729991127449056046197976025276519574849768768905765343604100241855492754122700630667438953646420345637249588630227565390258078916155605825053153826471660783074138291782158907825301860250047049562153920816520856045790867312793091674042596594588952328863110554333447109100901334484740432331257407894893390336548560936911334572051804536733486763564126018463501404502175505775952805125958465103443816282191398411461961318480878826786868686818069942759124363652393997199741339468281513986809183748735950002810059533863163705781052595947942133351078561256192353068485597831627036759912652452706922133538131367369006551578425541166809618547685251297268255690404503378157932472916086003176783090209496751223481531288679158083360545166748716113128104334512979889457624812913874701931666379728582242094675424935394748427645585995731913353724676539614935321512358668047101086716965661975997000034966335842201535499234650603271187386398777262677533614927911052225725525789009177518392255416427277242370218528507615701104840215484602205136054196014868464088356757152791059239592554186681502227293484117924583054890121235130256702318048081958080808982800215580541419139817237135660014632753900171390327422101334617692195291864725590173686655544384434281686355180041295126823498358807791969958080318298743952116285711042879565421913779390452395717222523713135535872738669435562183507916022685536630928804018605396282416530713179444586498305574003072866920051517127862096502075445202349995846265511225161355961089770209624913260420041087721967442359100971215909422512887967014103003520453474795300172042889682615864646674668082574367936864796471830754669594694090312372186248468658330417248362148713580384991027865816883846768449447766632416348642031655412004705544788774214170426625355807213246876947852517208536879589596762155045950458232615816938803896980803437940989733368254194179721306636185495991893692932449139614028396414120245889170289198820458869330421753592731995641346078520651424882296446633648858784850682888165814925560842915676614684483979960105285146897372370209721289651337541501266533582835785270684510156016749844445663936666447774872459113226009458407897724588252176504299252223594978842670591408990023153651193505189930473901704144302487553713184521616413495862302128901759390047433002591902248097398413784863081972787492473393461957480445397286621199033271039602192916350510897920329521945610801789698084489514098492866150274928875250704883213427569510990847052830959155870807805859039274869225140135211650762999853920919566067764063936475432743953046518144656046264901730323151552000346111707175495870103393917035135884917498699587805942925124668043079895925053455606035523926761721061682797109386573945965564925559781511984723260510419534549626518016014034435889740070280228672785502069417168136603433166156894530757295155024632482525133225937283544515237479943211158677873629941837739983098319393057051485496001137824374252194075940274858579157947404494544212520313799638290138646864394954722677091050819767777582681040326110574592024079083293534523855279798001595908566192942294974901904337419409450049334603434424698320897920657067226868439907236434415690313908656971693846812728743095190187304170622094278217969993631223263764266422827769350580232769193570322226332786150529182848892680830050581231369830564636670609410713015944184554038663227221299473095320983577932008301526715434040380613505641941893075931187003154147983077392108995992101316763945372240772515593785282231821117450303821712981383862913225557480370533597524205870262274683584951194743300329304449272819362036806814062556963235299165812693845645792846356223040542029762843666289023378899916422505780913647096042825289747513092998847056867467416532261098465136940823035967698566358017466377730126683375690628579210997514497472915131146021236099597631975242896828277723117161207098672439336183356843657857900235091317591507060611388916774937603087298877758113289365664957238228423936886787727178068870249954668410799688578562066968742781743623269485641534512295433548396431332618770581275836221761267746247070662572147722622095989630569717455223405540339296832923986576975096218361661051701192849895149019166417143084843985187411658611326310322380535673497758830941136808660691943619085740447602783151078912677288031486269191097871236073904104543959792742063044001512436137810310654067081558732156025508754724764815128176190359440692124249063086344209736704375418844075850937844867146891433410187841286470438286896077166381119683602768666537037488562651984502825172255716503146221751623972119660947609467209006918205587202521309922599608673583646417565980810415315626766179439607288308257018546644395183144349854235041260728546192313389455577534178841013134278230351796207176326835292307866600039539016084307020570787329848475395937278523200259206508400440071889293159832219271657732730755789409849681729392512376247558244409063524885237424304763274400427517350652771009704266558283726417315789940869478228011763700130912063052127446622724720875446441435930869952042463943891036189548202687490008296567718096747146025256132264921650402521048112564224262262026140186777265026420554445055997697369220049653620167385503938772629901969888304329240994111167733094767807046118517537041279283620680778254806288074115661735553271867441034422455366078184597831555799823549601493301163036594970279834389376646932066446641079127096361523190707278576985994130315989319087323698020820788986525493851765335927615331035356793575977048397872911430310083815761996702102842689366195993890413507433099190826757189708746444700867999472852048224830038820797478720701579991169096156111858167727378639476593748484778757084451446773811171856632764896695457684559048935023502266277704928220282991185312858631717181867299698720991518175934026627020195055549096089673951144170063153064925481909372552704501791381580157291215646416808452203347685075463717569648873344897754443386411333086955695977669905890688747492065652892294303562927033540452703483496339254229474788042638932675775417234439237357595503659461600654725927342617456878589401444518232521045221806390547029979597264452200966367815072290132631605282273837775492989499553928265837677375602243838588871331363477946164825234096009829384152081357365368531505352723199264408521438955575982946202006573587304105172700439805854571811723797682625775261551393297264290060653941202357929431326511273650459752303181851767022184380571460762745069480092498130274026616044443204916904151459632033513916084619937040585473108842746514637456872081254068270397714404673729603561082441177902675687501561966229337326346045322683040319188946885273459740945564770707129419178861217915598955210856999762042273493145677556233629172656417791363940705883531590274249268737899484944402442325177677801514413210801410615283669602697773768281627919329087761252767898861621315005280711406430451418294467050947101010448206151395822860371558193363335769355102821282216527861083732197705555387286498131870507953998459736210156096270907101865122539690737397828549071699505433972001122848874282534077754265981885067959797750679034958687134804904966585155706115007946942640491459738669565206194713217411465506962715297058446587479693028331670187698613511909292106799335793659545924969654389872191085939351999090666472053439776748210516446119350505644160656274581295327316663361775496911142698775927530334615943544712123519043670150818344297418343071621173831648183139591847666051782457527075864389170060746716114539514966544812833584633049581338028529027993557608810369134028560889670321793822165874305332656305572784880246168306426701294467048943677259856378204437476576155182349152493087902868975608803250487682758418807619998872206296522179512817898765710150809676646932773821402761068344592165201696910107537045613072864163067409030451002095251104906817376664949349886408647563898522314420334901897620975097421759742372744149862598247959148795648453653722656501659786848719335652915419665646119605530071634369537949469858767317095332122984161477110208901750417114585880418142026470072403360822799536172981234259867831318813871682527912528851886394479140823276909956113012370852735208041749198604237715549395835774864047881738675878318303488486920432640431641181990238183982252928018295101739541403616141893392656237383446313595834568097168038442433539213372619126260240754801706817960778390305782791591054301054849210395153041703995704895507854084737952712321056006824908363891002805395322959070595588177655094305755655302222263107962511126535349825180596924073384295180144557100738591640960767674354149816346145490646220503035649104045026835618067352293581808105464519554842578465848123961442383230350574262024481691925237738366632282311696978870096216140720153459014003718108458191254449059400968075682865558334152261979641668030015311276148349253385661686451376254460221188053698897377162955192600392147090903104987044481982953538842650536994924771330998018352744226189916700355045734962296947177164123219266019209911112151210465316257807525012609428769686617835665146797999614256526609083352560619220244750138035747371035483000927037307130753476791942531698946682965916647684897198343164174325822900877993200366091344718260472964143294077222500707593073274590707820451293650569114022009754135536700186197282676025092168704510345998422230270283506693045955990350321282223004765304014756673410220978837835243201236650995193935189848209955618686876208817385727341121328240937232820279813687177654700308636379625283357051227908729286953877695463878045252789769264752702398871425131282308910374433462875482520771551702950353574128590592369523738867620069057903878550350237064487191558583313999588626449203843183640528957150838461151080590512386349475902539310751955287867668467510369433839615671246970936569969912419872020989672354987843681181422218606825371257432104813832051921833892058172939781629360422190650803797576486813908010334799963018780021891466747302036635080464441720052358752865005308403681316575076700866423059421738026837152362290758155819725760174962878436063958078096246222394951234240278566011970443394999947591634303459985351440643208929454547301142399184242185695910871687437259446046111443611102850515597852387821453540846263937449344309010547882280337596442428610020796807743287070887729252665378375515712895443803612302739669102418726165312874044242657790141767834613543970760808219880580882680006766895221106994755887994989466759212823413636130788925388749043988215649073509936345567544335914227165841536613266053366419366417397739313722434658296645168263707862919411439296479825629171037304512666970470983015890710007740379383261184291542991549623258599494105619821031367854866457232637070457054960406193551635169510531003787704945402077776511989018606632293778402053648607546763646191224084061867286776577477523522259510729794551448015460479012562843916131242653502158032322470243709674278209078951733148891204375101664383681812626413090859138285374682786181116838631922570091767101217655479263335356836260416979907510924918636302379961775245890732727273481314638054800078451593569907321446210641295369362392271032076821909191070586810369649139133339421954292646690370899041801154576566005944496802771535817780621832185192719457483615661657342081110682031576080133931411554774735105420522308925673996449015265272669924903188625147586471024721551236561845418365669253226298204198638216682392983129370169097271165321448979370997583585244576657778700746330811777743552598510566894158021077462396439956547724120001328295539665457479283044655946713204597304067066098460775470090707729554412515657234681961721103498931625126596348143248173835464084183912837945038824652226788430583585403001177234343389501987403688404384074657044018123795374740803751828261435455571693273022863134000467660329869838900357718642966139024796470295011882440405785733702514440906183916227105017152566647059333319130974935076262931237412037920844189646584055979637371365023205798015676242082419123969343669390533914079247284632194948554491579620155413833388961473104580935761768155637453479897345703312357918045690128117717602288531263504740842106545065198577642919187598576370695870526458106119164952904417969078406300952120736280764422817149193805172083814887742292448538249031575161346665174863594917818329420535474163195663828921068850170723232379908080415683384134496804042070486869297199210067308425540652695289865059074718566394915050646562059202719830414519922274123805403029943053172520707167612308106745801880641231387850508713615290215170863046856259835221224684460729394070112792377053662439254477271936110493887710656082147269130239093550528925497848979654765957038343894838833574317646785514573713880085474374786243860155149499332842734440216369231923297215074248299110738629730829492138707771406313611507189715972511414087257107909818602837585666786283223712239782887352257068608352494831873734219624426652686772742756372759539032820175312505419460354498705611243739211189215803233085495487400531752381683320331141856297757380331638644281373137236526269570501694373271220623220889502451926107142494528266652452445362056212822777941128720216367373164234324858446117307584894505988576736887506210576849534922764466211120116216897740799136200924270240110098609910553329803818769630137163580207870671171407352823889039266361804694799172787516469093349212285341196028238755214091577605026634713752663055722406960287242528667106736853897262318454992784182796317471822152289958911392234361390699798217910755946222104233347847728596495685118372429193112889323380727507993914603804255306258644023898800905636501537952315380972226422540020775805870064287874217140341779907539887643684757612241712201720286901671092288931471773856027446100304232639245745342690045995163772628774810081643743803691451452566347803139142700355124186813411480178563760472038496269906557319118445256106106189030131804257473209758054248363116932265402678691396777274022935621415739130303831813874774042827598344323155354570998616337893808801937248110386684554293692046196589526435046271874124435969046259375271174148162220361122275576124771320895147844320434517122959603601574905805238372464351507115929704770932726495693139156833762181334717447928152933936211728395047402979860452086958111306225996490073282434471775170802370913877278160334339961758244233643773720247145529133587540497633370869164563607471205208390937137707795315497987935937535051688039722968367309940565290909449773978406982734527371283585862775821979817197350968741129719940957992392439149435665589670857357909970575394945585447475329283493271503058158836384483888042951185971082238498816016675665808016476587109847762463750478064572376784348756058457675099852180806959901213438480988443039109280816536400696243488208099270885623573407060109202952677011660686556502444317941060258447095915463183337457741786187352876217300181510143328262689610685776531223764287984739470634229897929519781995341306143069700076767116738506185495667415635164233762928908583194050139417759040965110307087301777009653686006477628564537023860985240668092228971882129570398582310187635402036376317044186938997780167339930393959811168853823817621883908186776187068512186072196783521491773844098384479633832264963531263344432125811111602783171525862378250937437295407868646145686936700400042596537142595815711896900845854144534434692189892481610298438670546915373849033751616316503557000447252187033893317065147597405730052655776825796983002789900364626335584675392018231028911651328211155855197821009804272872311430409165022830024027510179522085176588372033743060384075093844649373373970080382242988781830493898244655039870687085509794878596458023730315362027494752079765691125556044236966360724267523123459730251929021062184158593431105422340105952461044612748258256279536462609100385957338159245024176895765934695798501604242899676839746388195255673136833504342197325566079828996797024407225780883335448394972966237446364691134655425741359005642543631248011264531994308426242738224464877767487178711717750383058293205307244020340973054290045673243548353313355086035167158181259032547796016069454495104710703439882919424515496199678624768398818104929612762979872947744348627973936370374086519539810554637690061773763110989659671910419266313585812909323528861360036144576465145904317706504959897886463870880796360364508564759629768961585126032861649082350583362060596712768296094565989290520576214110653732570259521880896743097109578957745563053459870037056772320678975765463457108346499161282531736040325905782602066851818762340712288336494381240613201431856950839912943484769255915648285078715282471393289802928382711920132256123697902556955383538214970864990160485803391121681588265113433587547866110379135912647377969540415589121899400609090604636712352054586851584659325034723133206771975180320811057143876594428715636256639002339654782582992852081652876443996094397888385821668612493232649699301994809717345469655189880454044478345827401565402932359122546060280948812686993404936466335682983284342969550564071886904371030408757025094551258730408840136403854997484729754576183573110033958857402585773216563328053656489637461785603750361071372962922319556426277764609651710034502663376642037154998390315173294012452127362356516260765949183168780837796090691084061818638586736370865592548553101370141207240496780917481142407519309037179773398285311159084748885697799669601163658785802304836296902066604621440269316514640486946292189171574428203596071179432456155647016415293009637689785846057626058248641220562977728616450126622327318196951922633307714556540845960880854706952740721075238806728516262792793449833754864860014952591009826684608697815799753291002959526836124422035689583941329545366065813329498178007342209718952770222126582719958960850431300547640750369254277152472478204598020147236618871426382312771561189581118808771664439484500245444629213307341726922913610668492293541890149810041818313126710577596168063558356889367484582061337016750836725191165279968595646830022153114706264010727358916705434757404113597025030558337140843510712992956835475847711107932938226706480998018870697493488029106435723843397129948141275378906254813701457012160768176411930390659889057597915823805014562539650225901504661599758466990196913553277500558866658236249228447619195164536546243767412724772977601641688308961836197234333974631070067494603697115695159313071526717329583656664891958860022301201422469005481304450760935548963549288414601961485913132910330128433234440422090234299381796975913636810322791726725109783199272448579805514229980771304394596975990846336363574539354641546182323883703637963956507230257736459053753487854772911588184578178360614854031084289985580742616883361480227437777638064526848900369233395990339365906483767867669508237960399102237186905202687484837770491692307406927751755691384707284196534204216135148242393554848833565893621439578909753899558358797626083069071644420091708225875884252038816454866651533488939355362612248787279711977227349161232604109706113841598718858504626288197513751461649373178480050042135119094547398322530946852406871650214091658437975213084821488852923065312494890306322935929088361330706245729586199306952391663590526553879845470333675786928312846454538952734882322507455537290965988501291992708870140703426955230489420352751997101590423795271374139303834152609795759731808563256333035208159150439471045388078849223208394145965662890452855528461114613233343692691803707918282617130123542812538373973373220660449296283309964559398951085651021632266125573238335298968133472818900711070504841527522103679623056556936436238350459433034391781033354422549194168841419927906396191983908487423498919623931031571855250967571471928411976262187819696648813888841081754662165258926710979370113838953463416081112577610678379856416919664467143421041030240447026062120103159335540483504423456333106964348993469368982334226084024170336801616274241308226589181183489218479682579374132437659356132549479119183578984242302319790664285552875567110282379711246451420530368263589123780692757134321456335577838094247645241926249135880765822988506485114726539923724799182553183861181161196794836081932543998482438108681672501780450251376903453568478612964849888326193774503918341898042762308890842397542580670724117718738889839355607558234576918982183651008449354209777495461278648914268024034988639635720454758912958523855075953505502201002297016308410471888209133197338209594584238779357177628949319084525775319418962605810222691361599227389999197265970446362978851734514033717409548081654156946858683046328258141196035219578513324602063860163922700351181083986077512048281376073241691987635962529129285241749730557596675620718646148961029341276437682641161877237478872406779194094390247447395861915132547781860757712307484960355252132590856910588425974037532978808833756802288353451329502999640130002829963610726186650510058906594631378323303947045380178706286769207387569759411513820293296122668390761407785232774341392873015095589714298674383047264843970879582370877829389313754505254056014866910730882558939771868749773443118339794130958533263188753529901653136378265315415807770162141380565677632468115890979064144617921236353412319124642379158820523573396600904640150968937336489830230351396980826006101507309098727412333380897671445112992485717918919172719357901604056094085082787885441642212105119794481088173168025415895030808917154720114689546614913255866022529386213000851547909302864465357919793889578157667605177770265489659956883645846313720393154452514959754058631374111131670094803861036906834042392269926254265276880693164986295135672675014602693311530973864431985870691961168440240992051739165984589775534417859605735914895697797008034869752640343559489771765856889080956086144518681250230710026388648299487549740391528965600915361899435865211006554602136185492545057832647437027457912528701327254659735269079095716503698794487751982110741848841913590550993822610590868064189892757747312323164735693473652130355383938246098210735237964215828466203097871297712334464850953667737629248703798071619036126512847125994260576962558548755730611947847025147393970370985761204181046267740932769896549672895578767871767244842053341049333783703032755797935686199578007618274381873013282150011244959826173306935320815131427631757696894460737722304261785125852869647505072153854777427370420974859390541478097574593619566986730006332946307461606429920466099568690742436105383572459479346347456257703790423960085247954717236864218057998422883973375864446206781996121539482967570826559699829214540988192493276754408084363670107601609813913181145948793531966217695636778309379492516473529536460021474483567953670275532725865028695450455078332983808242435374980711669564170724907177242603540999943578546900701633370376124944579996867424837042388520885795160120752323761059255453530961189383235508487518406128547017647544045201321289446703331930683300112392972925224484069594434482241558468296828989814181234105286485015908760357187290398926452042516388469189157791173131034028792556612959620832677412814004264721589128388606182852037335434494289606431306979663596031573907891767469162280167750289300539278752451855836192991858302198077868698418826256297354536914923901718278786733501922998245684391356191822240040392827131505647056379244583170581897231975466931248629343776996140168138647237535794014667853098019018496824596667576693721331347193641425352630673613270651433287806011830307006644212517025376025368818034519622527582624210400503563267011801879876011464009591468670754204902669413643142755870167720797629932583941644242611916335170076385900872393514146684983694347902995493489553097596711697819984635270497867203945613602113724819502323208375007013477808966866399092068151131660509231634123159568409120065061055374429506518627779171930812460755394000372702276498240326612433121194727353162313980439759355428889901415281752717397729399076092615718429820681956107894898072381453737720686789541156947999889604190602975658609602375583953042972773305007756331073184496570835986700843896779073490976568040157719372273748730665191653609158507902757322708104839039299222909128300150626934251333015352218162036956724850493413058663031344315662682710539284795306685737842260180971420217518191498958205703992024673799204329493353152819856545884550454422228158294485529292215911788334310170501827803950136946506212886359181156457808448456793359204493794014921376181396355406052611810399681565906214108552672090185420085850397267623119655063997447403015679264468433885987075731151491124092204619091825246964053271647508050176555025051251599979382653710414733604610854727408170981363106616138823672141843443653803383396760069473857787591117215435974805191007637035646539251628106997317599091503204928783442037710532225194205201917871495997876036410521018990956948719029714738894657862563215079715877397592064457077147621382405579787025067313339596642112432958169029147996042821208176343042299547865593884636099517101201233648609742520172106443105835078816438128163597599411946677977927882873183255507478582696827033462016311325251755552463794954982629904889341200049058397305351561840137485018966946253190959343124829671887099939631273001412724996668772714958271311526379239252827418438879941234317881266208297580703495685079405786181300959363751113822838113862625670597718961756201777942138423660728750034399444631750059155811115168654796557967650408271739347022218099754217639388304566565850361777427484854475939516180090882593254488682122416055352414226764732086472886188515954005206696686047151612322135071575482851970109144334398575712418215111007428236301335851157508130320028982919890043530165852460689781852723980064536458197698341782129959877956182960452983589831181709313641173521693187256691041362077315513556831682987983813336255174822337562287093146140386979781354461691795558107814049695436250318228989316034167192848770625836562995833732615971760392459354173864391305862732786933552199369254478766728904146989195688098250480919960999482732597703138639307669939104517477289634771117887594408533369439836371095353410505437997961506833285157583887002694286827629799275328487756959866573774007788500254274602188405303720799984208651764223206843200092027849042728776527537322293150825141096815283574476253718266879104902504228194318766853392156184336238783011419128599565378387109430900006082579660696908625879829346488925823681103961181949558074189610052305900427693519985752695285104101339080780551151389668263860310591659640288831668292525721938876774468663383949352980753228145322394284100073501366722584620301349095954880506551226885114695417913171227787926022231682222616567890676588742657882457838108701441712906581988057085414522045351688516202755140389666192718007826538814257343244673076855581125611348455516230966698852223907633034115364491944664009613360478719046147311808761035838932779103180342279916623964525527571480735912318805342601998795100789720803827228084559320166862494320379879989470995941027766735488317273541625199786991702029374933711157761837644415772146643808710287640266428872218805317012288504724279185561922537470396646729595512362551239810438905817553241753180343043534097359963090143959815393463093625431727818643725566062232951126250696856234531408165636858742764921452404101378272122526852281548309543040841909043454427673230300838064955056566163864728695713482265287661553095992216559358129336303129196281413943636647240156534151453982950836894014872182013569664294784522448390892988997090234818166200332242162727771148977732041051928541289204485245029449467626013716491621867186434510491273221429676261670233735727869268361722066168913725742530376074843892920596593074509560466099765143208091419056341098292484058732420101487993951255998737507667915716421410898268643428509379113453337410126720268322215126177452529097441454876692903247862486697182986271825696609180115530783094591299125330170448637120811255873635446118881100972451014149780646276553520761482579690671573485520105438831133099535094838745681791653917794294781603017257153744244453872373246373086490401803708501256226858917405187195167332180824697306945560734209006451960102292559722907811500912507171043505601840934482260439809086289953724979712804932241820080092526386267318863457015071795528967588909443971078005014663244507678990295408070902541529795788219425990941854432725865533838806401754197824951297106810437803576820283186096988835945015662338945517687705847665571566721289075383787659156452581390664852840228632844920260157892391069618409332461745360256352723796572461983809450798469163254008975806235987952327809492856093453568735205166827117293063072972480088901133124903602326178908766868869979535614894646447250008981813287602576115063394284601820357559303332486395175706882329053649584965619438486676743424470846498847520274541397328211696107710211014361403139359576675859897175036717720438765992104283288549647529211768080424201586549316997765239712830967775663872235063573148256682217101829893860728912083788222887999949797960350408719931295307134051035021472445462335025966664867847354113471603494478904944012354283500055914530977052968304523600126154555215433585172225526571009857142477307699967659506674943535820681078185244566678367006665840801554512491078951948496766271248821187887194611939598709892238288109787321606870663314383616488823630120780336013454285057642825587931877708752650394923066262273543862247512655514093206786471155512967104403065146715195585945060263670230425537256978971452189829725770696875303424202502964364891036064879333456552048530987019022828458486711326728861550144610438179286143220639979578506229622166456608098715410004848548173970397834047387725587897948995998751600595149232801810465429823640166561504658767485494877917530469606880324452359927587486118349470964574554914811143509996292517352830544889269197425229775394515860911851522586632384855529693620198007758554398741992215325832469335636050209238266693773783781904441733611210372494697788606671031516278198454073814186683794967988430872002043675299567580930086612062278673746003909435128714067732564411581918275093807789717170537798831361743318785917205185278870047883612617521452433519918932278463474601310031015097638649084765940891389768688733989705320430505992290600059353277970782988615964273863829654890016239995983449022423828870376609961882563671669931663585985846847933874566997286649309109357091981493794636087727276916363623151076390521469532752633579967868375577039512684494621602117895411766116880666741053600648698247884704647385009384314913682435998217431612061081614702933170872594880984987103752724189073759186302561315287865316905864692219886487221571626227520075109276871270697190909374897381400404354140955915525371223551631807862401475997080785928659402551553858349739189508068291980441301444832674535999418628692709856304394074946216759029181057180045298295308572649590171135801238700352586679160549395665364383899105385197714975137560090366587700050437406536948901414651014427346754555264196024451127982654910063385936083207172696744055123335591264405566266662401016330508769398628829088914772910153904352129479025910603876227780682888824036693453633175219573440044711449210113996264357279479880047554725447030554336908090750782342196442840081098049663301484592927032173401529775127102055437530945217661545576579698630710579162329605008755229899752345462260133524206867182238343862762721419612232471677144884377126963301778183241425009225533370770446936628226978284186433983653254191830635277608825242889959553331400341251582768167849892919525060223684312878395479477687512407078938358615062225250912477629610356072922225412688325016722276474901889680020880054336806042596667786879367660777158618718333179618828761311417446535394009616892367021511147738548175319967085944273517329531161535990987608835615406039189253608908521188214606865917575359926471656026038097133759788796082597970044918091196802897883740289283729079640989673564610422324707247611191344528512059508560941233399524809380858356322685951668320107187579441379303743171688453516706932552284009029491387959116131863542458064907375141913385127541746180114379612910240205394612351735967743305068045087323351302479622463871537640676963852245590179242200308604226834387699845420211379512603810768602389535219861438118060504785906633926464791793112011687283088335017175744579845585874766759058364265553804987249960720599313859284853003762678114662042001015509707656440124191703667291478693830771757845782308166256146459241320226192153241948463929288815784342423370766854275419545896383957048108568664169270028857218155962364788595275981167757624537043075746773342215651758335045913857380462613916694120384327120185827675246550624300942954223874140921185954749981131027237689781555968189776826214559390453894502537141014469285063243698313113256594146191790563555350283964028372543808751272580329118412324163350832461154316701703311374376916635040720166793383648041938563169183752632208894887639687667581262349339283754772752794238326306854223622381247729919382883653490480527857142761829858528438837662439462317940941874791491873880156660468415304394839942913092655394557818783582489542356698756010922045860336153389219072282487501050985352237956786604197493324567178676122987476946124386718850789105195921573251458046577145574981884054659061076693712658076337256534611867680448171893383371483354199663140003791455035171366624400848908316265131727083084363643858198489705641917399614389097685287743846741146963509628174162309717828282722894770986046498650989218868008828643222300915685933179808560570409797341391062750522102663287502280202944107560484151797751969795288249768912762187210294685702417678911682603408804532448120700561340889318698455732207140559913308312887064683088577182430771131815220413876095277324399633329596574338650667061582974803185833070482824684652618385874198358050293942419367408703703385161746327899211320052982405438732136325220033137435839854455239156886488503428227473628817288312412746019274996946220356764177679151690573677742644900941281594920385172319494817594466273356892414305709504746496542228514216582091441493570674582117934670083761496261300053653671725312431460502029243661090195650404351664688125254901393718573087299223178743369991472130390912672842090075647375649589073122862701841535247413934345772393269388785760101830943941990216441116503197603750834262140252457652254110074367025873036107418358776851220788970050208957850163043459770485061992866899567731153862515710473601282881727633403570744115664880251080278461586119394327524491255219481079455683191531451131000487506547509131448418921665332811349219888245382795718231253477266940240042497633805522567684142775511088336871299149228229936728787091822239020237752539512612534834221792251657960972124392424115314206950379813127323798186068645126717416666386756380611845110494923525253047134640675632388265742658318704989235502415537266265836628034933982937479403724421085601337365241833603283562894362349697091447582683220689068753432132597471362449894525238581164105123256436126116863850754754101374591433872311426029364989380948837351196452467605727215911024946346425363383389672328276275837201753541833196633817380764352581644279674878724251805752741917690059734639963500905476403736916485224706372050993654813674800265738295017231377705137032476018045318794760483535420717687782371581452702066327258012536684189223141086254458921879528439805082143102426974307645491552947793996315668934896226956852885206513293174265936577016341053792754042392694019013792747544781088224589361673932205292272534313283758348538878847305018457659184932331929629091742190446774860412329665671486358354751202332689676950934632414178104811850984925281257027829642197037391124382870896203396184021289993785953852528201606500493594550432876564614841301349195449354034897622961419784812588556203372195415357326717516644407469713754351513545857408749506023486704391616356428884141123082920598076935336695888930403031577228107996599513400643546591746539459498641098066600510338688956401381823168462715396579370401156951385575425956007679805574272978742793987863509909837314220380872495147387396594742129350418913246719471802956934195304052991160446816940222104423398194518191131758772005196462061166673846844005470686450673258794855293244117231620466872489689486322240385878673961934711729454885188327062111363786957248062489634013957316330380099101977445271831689022811126551302333485706409373374108417948075636483702595201390578658916992294237700676054002452024662848671091492993283616415827981101254146946538256951492212737277603073663657875886616078566944954944756299820141004858117404281451717802422032765910497294520281217174841676990077234835286708213409673943181755542936419426241012153540127171903768517907957985378280500303950690895330941060590472979283815381888650367981446723073525744538246260230721551469181383966615090471191645979102777290403786389330844366790677696524704703204486305338638582278559698197032029591839743535291515917083088369097190642870519386385029182191068730532461024403477920589988499847022260825628524030854927597745111949167062025374450476822629081503873879608066143708670533927970652029317584033051910821796839968065074543498407917617475234631240731488773989217921682190452509837031656114203525804629090271218238418089135643404045729849416010154148403039687330666049181242197848843492169485216891493145733074773771332820947829787316751049040374838082344421488859907035701903814938360477745698448575043512705976666116805091837274107692898103792370824845238053521254076497545774784418778588422183867288995108985604928201450631835841259979921108130140701167894889332829459245602201115180443216034289055213366992388283114008025042140765950535028558657355429569591732703753367325034866715530024402740066229020746228973916200743880128961308278453623360237838373143938697076459871268092349436700291502342229510978712545983429955738871734513195567656556446426863579102283317670180300778653926017723637937600858394350341172761699709179593190945693663871867447812111749350688111557170863704114131881851973671344266778988580493604367110193245686666646429521530440932193406753148438221478234192452542760148530598999021338688966139618631581804665495798037307303621907673687388655679228715320658957796990538748950226508865332763475484174681223729280999900532113562240182129286588084893582338073403916323842683383766514016702045773556034629059401798939897180525918616479510508823991396662002807257645633359009616162781882483769842126811595908404668134806056722313513471027370201072756372012091695774377840661642643126553928856980277985767811746668872387276386707547266424604919654967581232021649316849677506978853576813308453752329851560669245141569946518497205568763605225781927116339060578498181203875082226257343020322151304913105309663393087420396635420529517592607533126048664892035492378914212294968243182343607786127339057901266596809890754686010202231153594828558495025633793587846430315450719178324746835602059708294940258991085475171278184745072756883353884960363873471154948734099868129750492250920186983822965295993718786143128516895478919601748564392383384457384352184358838590170660172529405123784889897712040175916931559565262172651204066992285237607565243581217771649327043814719012004191197549836282806987069672358794014121769054636165468111405893505204173727859780130930410150867746960345994587594933734683367035367473278326758108440822382743727149783783651273959820817028738376026434543505489321723325152411676957129381607646650487754071105307089677397013823963750247176758688544400638604992125446795578585288309834287245790940614580583522297425372742573378449724510271786327157208308044032329924256082565468316520913279058303153833856360783996934368792451886816385964291136049657372373611205519303096056556748422111061363332554540374803803072941660806007426481068355168309889839558246303213838513623691972705343845809255443560000994688775262978906460867424678189403311214618645428926062898411905498232814499635669786426596381570358046500545753442711815144102591590039400384811505171493564115712083452568814765088840295382321291181343507681603804149734488951278949524065102855695006938864782167546653189891386024399380358014530654976313597781870844762709679490441144848777729938694557084243569568746312174766858956178119526129391494946818014485718849738683248767159605983934076143359181756193133473567219519653464621099639289762252436284960808389257722383254744416837472071576438532808322215521181476478561838591445326662364028275582634643035208056067570382007769176379085931360565838576345896297049074758272328155804257145036157950808270196761675238267622055106430470822988614154931976469581654509001685099977132263414740131933513712757369454843969039461104045920045749538556989703033423499704074179011834273796645287410558819050219983559915331550856460072781936461846174845422528797139110273168825630215256867682905230423153582400565862778165431639482478254603524498214715602982826797153931565040576847541428998027134042365752175368353387255579865495094216980716709943125013356839158195460938197674943638367031861914101087174067695955207482448501819410656731148406862973376344712862901397463731353078535144481479392354886188177344522753569217401675359176294527201708903203834579128082549066835483840904157925389645817426809560229932147703602289984112534651420417952639933185017861403103645795983784190828941851156806384185704990655502710573908581140979693288465588484234407051959523199654182067352164891876530767265056256699765376605867017712264899677820977408467869313593011646029433303550530483155752091259816312959108621428530905480877073573656040235134774690475124438014746621580371253990644498111881012736095122725958841149626444968115930980826836898037243150579128316516955808899375398188167668656841862958324258582963110680279110608716062680683097054950549724367973673240789166279689277487534309505877809840642295816824721320001800069432154548079413462206627506784910903368819489321441809172332787393289832196434580606207079711023238687227719753309486998217570359142562476968347725086509086569196946018131226977372062294527791939723237571905184106728747003321871881722840660122322182692271898120858940573428457017448028356271889160193226985552790744848603437483425180107005807064481857333108184709479415565326837932188565008421114875965497323830631232534353905168685930657268720598332274487995770302303386713903058758429558502522791488131068464603335465481316616677582184547537207776079122803268840666002617537017590261690385412339570264869643549239609564375280067376682856405838927374301941910231070545406937048131465206393486276546987469776209320536632879732281959242293386791584791582988314717978800813113255507865466236953232415467924662599154715674228034478709804029763600781725438390492210090194262320203996065617238693388849572161804792751989686533663351239979037937777366226603521648727029697038558066166583347876431767242936050860145587426195531570266709981339913485549920627559304486319314444824966276007533573243462065275244081944044732351295085842565194658293515186617324890178730303426947142069477257955162634026299458482032721664735221547107923485597818428595053066105899490795036205559794891224657756279685200500163010006572408609614954944942808840119011765391398939762771976696121579705128013363369171648589023740192623568550222832184890626414076017514823399093128286469254744070932269944692693347190655504153782433952396600262606971609675851729359259089048120404639664957662346927842416872105881627611249944778777957640002702950746258647044724399436184339636284101607676480418688192122045638887259099216026988955132487389127115219977910510960215553416492822537867071213636869955229494585680385135375790586124027502612697707971130024367948675078928387091656541816798534841534796362393051360674089456011069833945832860485764469131730129416037805042834312219051755416541954507836540969010215467200445565366540307776369487626265102497892130458481047539542272065206259274223267549086117769848493950626032608570385826747543991780373969014618243808361867193492869472529234196708204768004938769545185002918392840164267276446282168653720471932714253363148745267992225640900622940674512345485759084540972119790821580031963938328897871818202603996141928525380924996914280510925198670912438918455202959239312592395382523630858668655569680089768929767369611798205837613962271478952947306309238892495561880256654457992584138476539852913753784779202744710530850790568227936769882594957972087281881454414733680679628800756790103399792465228110108985756443453949374686630877555935905453592097645529669774850854537614655291412572808315716021043601395639120439622837363651349822700022191319099228696923495563950988266534708689297032044259718261587482536726505342516949227300685631173022519247767673463922524398859055798303428840182805961470519819102962335073727923550503973122278539807729625207883230423106865869677121067882367861847012112718175557896610884883597584120473077404907264374716010796746667378879196890015165428018092158994329290978118475857736997811045906702908690232150418901001456404127258960441990314733547333225141300993018355338564323037858827459206231667877504799618876393155420585810695845334782243699894687247011441284296432573197676964717369104658351893492105831821374596294649078136187148612407769018526860985697960402983747228958426982185134640364136265966970498263488156710501131881713278016920087062442126775776467504863560653547254794602032996395682327833923469914732841809718789081977595766951845726466205098953285619929430288419960868021017241846504558459028937581921484705823531080203576132012733634423236556119048241172822398909306309682050741920127251156432305547122315912626976482229694606236277090934350883475614294651380014773741184998907147699599969734411226682859449106940934805161403817824212524230640809540017371423944936283799295183532959649212645741188731839016449393949863487920192986383956993522313472576982792369487183818873669670432273928971141945750293147842983740485825260545756070944971271288034824175072083268701248864965752372360868174799272887930378328977524055834664625302747056073761223212737650684576032544007222849492082729293922147567143990634314302979555726005233632313030175140226348113838156682187376558655419378597674706359233803493134587412983741734433239145917211440432285057943281942604631230459310622888475985727409077271505004343414367708382808440330696721865453890108926629763897317837754198572833365151074770144789925589039327857128904319407301282849530141157036809334147872427220137422733311683332626052263511860448885227086089583353876361680513437704728794435909615958016496798955740418367251383068525575726554322896697250545820143800872987022390770970215782764342543742553187120803931695336243777977654436789225249200692955473583975709532362549684063095413469218398748534065444532066530638960686135098372044281592514110626643410185760251096378681111052714992266375918322890177379049157901025814189044112455633494786730038648797282252237283148844927831285861652687105299201383706791342332368622123775089157506120701641001085657546395138956739918219192843904724219910774267391536233319011659377640622240629844539936328795183144787419480589982346947724811782697591763345608682275116202541294899407298734234008023773435604405603881810005970850573578304747566547897560995951470416340369937810225046398429071674730744997590850269254223523438726128064918656660061828737459163677052071474466162221752785473234677692929941006067255858238238904961962783075293609766024440986049531608670204064373355380575111281283009226120473151059635308944722551470921038162996333411693704598008378754520087180737906139572044212044827295023417712983511285247945483270171874800025285387635216520939572287858139603400371144429962894451003944352426405480681344080164861077468959200121472602236900689453018077741751688617020680259014841159210073610081443587836212961071870919742859801746521841205131905877826899377708740607138948433326790836098449475364107032999530443413038475762666808337648272011731983891336408139261163655676827859677113259559711159144614760458237599741322877266042522065465076349592770266108999590234660066362127090462137330785201893642347702128747292452115948727208454158619936498722424696056804872287046569642794326532955744024694890012881800588825559385452541571469230621549544281878615179880853468209260289316978528002899897726085490443322644157893325660289998666035507133183189219259477277407104371877056684592606302493253980076404187823784756017530153867895623068155654547471269870060257394463782458612376975898344070170652430704753227429432470918529129459628014546384804636782744000718611849266144884543844085512136357008332247407984305743880269470782114602035491039785178146961669701474618346547445703865074441362879847521371222589450745092398704490868915998442085921699569883346729523011200770529891289888413476479688138925299942702654993282667413754902669764868760069881732012935380935663003450244890441603167737358890411871589005092145742112107685396702130849750480844131056238254002160698961426596335910713293266289628704446652654593731882201846600929147608899839540451252504969252127566595004285294388749692703631946980727263704520384007891972267037383206605916285571339887705848720048118220754642838334634990493886370217818477706991189366710240650474641723832050948616155633399032506592648138239138181957347079579636939954456850540709995354185589743959375170460565303890057745723772115981485614622484302341859716185403002766034550814597762875756347638786950682039440876975736395996764080991382738196557238098310622608056956708758720720998884857923451589098180778759187580325558903340459425868210456598054126529770794394280755938261098937180368226292502689822593076672725869691046172869116819459973187113940752446872910664017674222454993786339522242026600001458098609160718947555664253692387599818167597278171209509138846117519063397913535625196998787944224990134270795443266155397765321268954401821488030529616497686394421426994803517203080409502770809918295208557561258548228049511525210720683719353865098299589696911178725938857746523224153698094431275465328356845624509191199744949435344556876468379392886232508432615053977344864195420719791673724545208357092145232019943927321929316853017302234886733588989648895080950501139194373064447856061485387500211322466454270752869611957308369303519713722730675317212589686295422648074433273887135787656884393388053772252962561210441236437526399646556488570085504303747125710459438658847381380258502639150584901946086540165702386008533819261021692796201305293739584654247429663319907532739761929680833567179633845672167279919117032313776798115985491753618375121860765939828121638874040806429472438553189295445852588111451022129400368807172108345010125369687773526642195984182424955096999677352450338608231295880858431482953657598539177317723590177447053733990284002095826415813451219236557662212324862273810885767067514581787842135937885828223076434980419477442662016517801275714816130419005836608499529301987992070419140511110270043706532920843095939141846702685359920688932095727030699917926454669222409563883953594081588235149055087832774238820387854160160104343825053616558409222621164819264754705899390371947070423273559764928209871107540673343458049865321356813317312309998249980205391486077362248684908551766796580677626345062120443839626973995586885359505162067476118127966004631070685483016116514650482333495886075109114476983654439722326815452165658672656268411485611416522446447376945433589606683958409192842555747723958680598862660132916053913518918170192117738149755897550340392261233395066488355851540024378987439314872264279619466958626376827719487597677709812876681297555464728566766909450869642905742917782393354840899612456867028150592254730135553805445143714740032428404812473303951856563241033451691845179891908174883426100274092633605281633503862810045606102603116878964143421579223403759622891859847733783659750913552585141387122045973882347323829871276821322645697987701853951586795944977219644185980104244110611742778897971735260444386828682991259097101028084990972602447600539785139439297537937005117794632759832044529785721970586914309734371069375378044224182525339259651139840304928357392978595801082903493887754217262193492681521448339578024207450814615083627938935799089516821336734095049415979035564166258483522561026092910580935570104573375152629025598632055270831252159621432101727933352979139280128881250348875028979967740888202963190079600250364026473451401424342189557817913223133032686260075003651195797785293605060533209047552147012982637581970365754583358382010060535937366738074532907967443503059201089843909420792134115439338773255508513492066354190708462110391600537920323677893710621312116314641348715020449137187589080630290941580883293831787621238615286436650664451079583566818005756969153646276985836609284102669083393097225162944897319184790557820501228930375224036499234199409324219951487925678169681301190536485866593065903799104176449996790139677255447569899585292663297647382496942111061623613112110381906489021619217200252580696683095560481396004694954276500765041475667075852086953180569586650799534180851240442840538362114242721140133694320514174102132175650372173930773225188389219921972826456924515052477995834726259309892500664163534777402959543122362594831345163076662786614076747451959119345822555300639552630707270935277071548199505997857637569713364269182067067908621877638101125165430721801158036447442893188006749061607853446069594628615384430006137142460021952796878859093259391830181936271916820422436041598915194706961337468242289460245502137728075446672607423988784563833609132641719594240773587640467962360234259338293470303136081018628203606172280583955612076326849333643759676192924126332716622365774506275874853463863992108810438096626517559144128231501881905470174202409326431232302284389157727645372076846838490816194298791332237935427947488807029809229638893448754314708914191623497059647052516425796624268141157624331934282554789743864736235101344354475977186401237250610250059996318845268107431864984497736166748544088054607750629606837852595853054707580851874524308748788352744101163662699679631460353236910082019626600849222875380656205705344134608117684618312041015894875056892094469926751730525682028387396747411252967134081972119100153210167635570195172235266815904306222016521029982833537276691512150741574764054759172313370583801330572103637436328250337195438736934655058397120335026767433777720328436111185462970879971515396075767811896255752848800613126945260764510665477958049261574183597106722600206433723196307720393832570148644266465799424793203023156487535963538191676964114476736428702371028823841650901576392806729469385906465474268323629525884882926548571375774284376370594347766183924399175202969584220895383788488756189856998967052554742041332600418707930558325991184854032256851919534393497745799176447352957003610743694529353311766798280180052007056801633097284699808394596486764682803910543052188372031806545283029148828172662038565651658769429471510969067088445899976783816251938864038186096181519838652172860836624257331602470089464557718180011256406673364025547211012612344799905093587328361562252143772735168688938124751135023762310810003930453004881792895292070054490949397869217799037991961620585185400540143050915103692593664124479000351259753462961515156926201404056017198573946937120119603844234467174208540314499607559330259986165862591019438252124179532187387335443738372486218318191274656450218940757992345696355630608435913108372054692317115991859474738473977911888551583133870769979970097809754890324688083071012238986554618791269341014290435758417361577635267082980204628909504399317005070441145545568603485310127369194865019416159481597551527601797960049384818379943435664780369350930703829280727856054427878682993946342235898492786677846134464891835267024392980521051693568608930103855555643769364549763521155276894228008778768869793021399216384885612784955049439411238006145472899816613165727106294186168303791717766031924124056796055481845973233006524580086827666147930843979499704351194838114978503661014738578893910512172986457454693440947999943451880304633713554915616056741886341405661011606375600641243701342267403617999342690463619234122574267688253836374603125270746480596302885545636274337069605332106955858644647902931051973887618946549208393764108997316438745571189545925423802407450347150693439394164046952610726832146102912944717065105387874269300258984843240372256917224604206815968072564068277156890199839578698278556156859447272870291803379468240275903687633317032611425038595971515081072963735016631483885550169460884328562687955000486718362963852102830292403680391627576839189751796033506136969438414464487970692246368260267483259288959090137014538871324843197109992250869608320156330206314169255483039356805894519776331942839375153369251871010793628404304849669201634263086995434756677581763835591231954272586994883276332268249986805903551934318756701143590080271002710602940414284119925703526895620447835314311159974034063363203897052354911248116695811617177687335961084395122090798563079463231516073349162893226179200463688291692879013000219226844162232645369556997560017381560976236464032258604961511647761680444389392673775122923766990420763460601829037097708342427865995773157489686185900027581804680629163323578164530414618960262414426193889494905513238155840848029845298804643284039648952836815857325804160826402887841307463229963024345420115709159755610434507757799934775565226358655879587784194473729902406556240096375034585411990056176232675076949648245800721198309194074082361433083198493374781947172248552131983300265028325711396341989474110950446987758529575913724149396016476794322786201096847456094460620234568971569670844222265021429104452241334206464413469410355779298568617239051457940809841198983198247139889166780622854371943812609595011291505481780616152975029991356831093380145289602619489727708425828990955424885736872257328216439631729738196209171007705899147807291548237729252217146124528884991349759338898077692269271666693174036185487157230863313059782210189529356570355720739958142710573612839641067159853240685745225304573083275142622822025938600525112988719668038679930072500486747404201908910330052442059651455958229081679124973449545803846467444573757464202496844888991242583462194624406045083593107011749545337273050369780971668045184442998586331602148570611543741739053560631074299157205600964724678230911230778137227377003853974943170840230085799954306381595441073078639483466019745348937532890816687253590032399512743656450649464337069408924002483309719648732459791321831676998170537212947044972731722946970111229922112575126923622163885065862757531007986943472754922355662833015906673212500550414331512585470214693627960669517873707015849930131298206313571208621764236235857038779074199563570890889377879143185295561895460870032632223823552363067381182140249843451204504428651839949338732020735824734380678961350762600734263378930718845390882014475575867576197467887117560149989811186648977251382074668605173401855302677739919258986145340746762169737766443823014255938510076324761388293027476192112289656570726629590464810187227535086795747518063234943947260456178097274009594054948258162579900907654672165678588684767983656825908168779408819510771412175607051122491534474796256514506451904460923801246539337877552600704699276963658871740437608754860999395940706846840959287503248677523902187043368681735747208565545739069517270420432352997980903003277246332286016833742903363256054673297862259436437546261232834224735588477233777725003934379801861392589897496812012127001174640856700083486586338504370292727782932881537502981123442502598009691029893665017535644215231484750532277483986905945361070287731854581624694514440055907209781031789421045700164984318172729591010065661502046486296713089925944284009949235204754998554559734074678443293196136332043232570770100082190612288047319730262673992257760437813029837796090174162165492228589060982093101484105270040428842244695808219014736461960763901601364378372621632117535738383716358192691189514765767495401881082809270504650964812170975004143275697817168501112694380964116337278263608299087307576726288909669042133122924338808482407782081556178734532010714548191831235651858032783334939830025379870472501656426904722482112733869290250087171474867202009948325958597449672749205311546773253035071077078780609637648223398573591696475089426024884517887710616630560811948627522441443688185302383331838480602707235681465071127177287113990070179272590528320695929849502302248278325618765877891550175567974924694308712973090955979911826337618320245923789941356942333646740434268753899722029020481039234787972329292779482785878719772990223097802676364921976881703593832435434254190388659199639074633113066978647117343975356525710611812739112284518380832755428263075440232117619813745158440054507852539484886343008997244282738024621758408866022812301985571668514831412735320111025543789921225099940139744021288595892288358338679680297675820434402630061596268421474361790947984793197344647111485814637152787437120974480079137721476275943797730785041683136426989845606323517555636792129287376700962440046796660097305913158324236226307651073583539854829730668436524094287274989630748902502764689391172900376997431194321663909457363299965726952699787942609250774022919566192761132067382217506400935893689123310511733871703604806639610510161828065178875032672041036253593940528056874969722611131274256347249314170678584934776427462141639840234176012064110494162275543094107405231678877388294261813507605785075691439871502905503462653824056424984627081663608720274783019160345650869178111088893795263289724626977800551283964584519608792767937363335660620968944432293200501167178171422199231876447048672994507877685814574562123442914375411079844481402021392000738971853907209536676608569959538112787745077124496147587381690447673048058243823936190345841264208278714787178710723864350735926313355873536637215580635392170839676830256425829129981681020678525944273807462443237231833775624843739201655446826020648432645596597649556081162460912785918327610124374771320464809754700198445983837082753902581185325997371908485189642404117711081751591467698590132756464833631018119874243336046427783314278825867054802703064872674780257765171952868389480493833391366096709984957155973884798696774757291998465635462032296223652980511343969368549977633249552247704076313037062917859002042096346991843238913344186817892928498913004487368265789098928401957951812882531661481710610857415830268397379505765528970380791899330046630685785079659518301580680170321685134302129488941724132821660647278818229968545022540358270363128096690587718221284086795429201062099115074483907186677060858116787853188155766231561224407069362897217061633824458483795856909895613068438179505849202135315138615914737280544320261535658430824568847299757313207403198251907592337420012613205882774502482277943159623291442838196557143254703934994609119980235361530474011095961297344000185127608948357935989620756769895152752045409346081790618455085227693813652647546763440480076599057784764929749803034650888351260917894294457095868773575077691934716194256600175346006190370435019334219730744858024223990119706494878228640448706965845367866139550583624798724420538031093751628852554250342423842102782186663649200950078019428907780829017225025622435377128182373428041169433927205830618821649429109092138113885168818407839510486760512926530756350879380047924405580993757382266617998587881637811737890193496604781347401978036651558167566108528541927340985507944161043406114875704070606932067669121134419980868998320620728484895879143696209610215436598267319988774951805594196277740747859014229545724049209078467749504797564570003508229277703192162573172996584574977421323020659981269521979901761896210259251150489662880870039789387026759508184380828054087263152684421509712173100860775774028639347123822432062834754549627096702483136887043943245232956281137574079060353390533905090773090489535304314999427726114652465807338755548958016977986840086945396676573281263732179066786081861827283842202648504654472575145539437065340232424902500588585808802350650272745128015565251422152656330395004760001703376574354818523075707301271700741147898077047863795556943120602035538537814786324680622485294440131789668421989390208938511776869241372891544438207624206757936094240017642288497217889982853241542323814206520658089469824786355867049649230679700767995124717266753034946931096909079755138941116810116892178764278409380996209216942613912801849133854691310055100211689864254248643541690150265365485697158040332649363332714799078012307030483542890815704778031186793395962301259107195724008848041483378908607477885164226607504708429290611822333204702062344321181969744001990125606001113499543931401366645113922811882656707588676960509793456348495553371916072829408247119560523435895229082237391334968138716089625623916393116402876180883187648616491933311046418410960395243884833322523390220281229140340842323572857391104698141744722278966508799332799619815779625470999106905410051009409412995899605764124629918784415058230140544046286159144067208899666520193375428731763121965484369221182926929600210360816544881305175773000035996613380843933005272969202530328722670364579307227813330686649853058439662920273436469770418531091036899612005158213728892788325187976247299236886441577850149845898704961285923916623089303484045423634904767824098014576476830598749024241058978169912574349208359061809731799288941844276077198885782359452747341353831257906883118519629341572552649978106817375449863686405666289326040180641583698383855852856359936701960973566892287750236152677557894973282585268582202411836088932834090288359662249372450307214891641900487463570488717128519624200039086653441410192217390661199148919980069409255641296172483830515876406802324338007643119874533986997269547024726916603929176978571244750337152716608098523102260158304214729065132308666660536167309225512373595871852248367317110081521130076831872076315940258391571880202887122414553009578974797973172322145806780844073438758150734729546645772445414343186297987793101335789217449389536914953493943159697390677125145510923819602446491815819553025683001466166775338784330337332230435699482687632436825416248607937924502096374502399675804243308285535674063124906538295866743176850316346631160794471563884347873407212037840492869995613727887793741427934140638889038655682786364835082999167834857385719107404431593521309956601700196942603716744724188917198617599558946954337639039720520324319452442073488320864239580445958488438477990086382190673659732154825808402853455430803226298413755656372122233751825813099538689047264576367442089390301136362802840855758629040254943538780716844060263377112781488603953706021198495288515766470389517338497291470611146591749022726742354254322631431237707171347061922533394107071461284330142305635840492703295376475472181553812562020433377770708233716555817212280618184256528612653787240637291104032087431125948513458460783411455664673851845862990023485786299633416141632206163946548063244125571635888523840073644507981395094704983223884960531653899451470459329634572572602734416780335806242008306270808391890136949650410416632831056182488834819392981282712314830110158826167768778310137128159195380646530903737026403040867747857762555443749095238148247544662766536657349717599109877643876575350865394618920988823698995786263662002052624439743235999563811737308278170969930323106998513826039644117156983978435802375806074764142899882584676686929055310497632052649869810856130045677804812491593141957899201795642763462948529300495720768465559797545328859333901353027100504089103740031387382293488889824481552884991256792736897946177449496132110880144385515584165819138836813824581012046561624510341727385688544194638612207946283293576947854922768186612094143538812483939305411259662823696543293867318550203411129706496713063280069082435702427778058389135544096374122675780534729986981368217883225333052106339318099664139185986160598718721128684106437219452239066785041607108015768296012265170129242564124847172511423943587100327075018283826330732182630197245875778927359221301259558462986673907370244355951365853371991591755188352505804162685202879619247029578103052359911123037137443735363440108120942562411028412914746138284988146504225571820357748488325913068961173930687956074004724216966654500119849379226172818956525528710810269936913018192075336878941409233111523578447338796812881212245637670299596839720844590713078453355176590379036557787390725546935049533583914365342638148912095732320242746310647309261777247513590301717391043202322585849266939579879916599728092341731533284658301823439940773983711993484187675158064596379177649175900704435137537247133934522547102172193296405999898058589563809099984205249393859718622803943538354765694490055641693354599387912171679272310700671733640501784728006374022616010823254436164875138045515566257129663409020140587796621446534125274451367397284992893696374468067958931114265091419313560393220984494496927600219962920079726479962722736960829955560792621364870312657724970826401492145143785802133044996939478945801685052051902601664912742298613614002277838757698048262513847120203977322028889476557043392276637917257075750127938169137644118348228967814732321392792998918840724370729378240165388006089701395288484468602996576723011529447403647361347772576359558835990970280125385307138675279602571984057736836476491393406885912552378597446146272133444804866280289498815163938677835068597081185137614536075349777924240731842764596164318974136383965587036441495467521258844286638303669458203432574468630261970034509008622910122322306640913122483592779741362237473407727299958062792208426952090896208707612602897276035697821918181688836235399609494722730392545803097021517764248061857910264929896192557630612687778006695616782064637330176526880251003534278005435116248077475616476823011229227230040609324634509646970126667515130908771930631727749142855000060599532399482984479922812836922318946870041166374972773541639479161001977295831561054420122743106325523752159980307956147400543793135432594837032401948545720562248029902268615329500531267070125341201501298756693147034670864074249331100985208322246723963954783139806503381174135595937586391871843385440755558478603573559266104158117132135208397848995182349039690548207542786217385291966060928945635729314156249633081509281160600854767974306687361210004511809636661887087258001299039690625070817547729321383021849217658868782918512374542596020440818019302409767054910393414365549018715001601408670201606964593164949910093782847377978630313307240731322877605339814972092650206523524967962327740453842862059666608699918862799594627266752794820653280892597213209439348683307212465950801734034448333832487020603903659946512613378242202953845643316540326496535885606174621784396879009253655246980423855602034498115730201344865250390759779324239021616034208831554785834626272312997003795440798305118539163811674397295963870425784549938528469804189465271893254021468526021195458583010443431020638068006089375907361374265347624462464271186427292765431981919190756657816561527374580088868989606951210643504112957911986058625805301725222621990495904687290423768409640282439360517553754632693355135479478636619954609821041600837463577041347232303011270138363577502102388469886398997470530727565636645505959957877585500814503745969228089086534731968873391931701400885480350265600931749120152322682147009224396137409914874326497502778919509848794093466841829217997903307785005667071446057978707101994416559879241164394658194148062166242797274800640066304342597979892425615841380796536302462072811159376194093197173991265568921181039415631764707844806433066029835012111207135181078594467407855032629606794224646703202837310155401339603683151348165152961156278218247639079324425761264698675801469092113746874043742350928890376636402897215876690388473333342710309380257328466955284519456906533439046360551723978155863235573711262403166764939226154038714366999162978097689447020796876002863655083755556459621641525848396947951437162833534499197618093050992322607703733360206767498346073700460076650324102530142645839718078810107971092413678730264935428077583724165459029587645348397008898908116243326097387969739546535087745343130611036419254959813742669221627191516976982627049479004246602253206223177445397118738557250231178302763767479579579066855921167157632584672871546548266440574369470425595979497409298935450510533531189029898685587963164106983843426354511086797650659917296061996729613482111902843106840424680057217142819534356569043642562918822905313813685956193166051160130554473936781557827485929190573390976829393086626924343477142663162011656084983012882131599371096474309591805579923865932808538512478759272991672790808713034896858144825506814364949838962180467650950971552987797442306727443097196097652234443597837205867013906960903623898329194266053416399586986688817726973963633193852697312133744663481019084559222996863034085737337189863911576177086879898201536500968076394441759191014099397274012320067691807676646407586993732109465955124501595115222768755526200520737166096417380122249008087650933242847289380508185166945705410839338460337051454546573060954385872129697674528372844868414121332212367062766557857869469312135528034095852341479843073141536325170043208609442344230804490461347636092380648546274025323145005833240894100373872754947472029433455371580047254460926327284299096157865553264518548897552558407722775151593545125092980606713711108193483286906299764335416261074707598796191322026421812790810327652708662902896755378644887517776465409565579673494906415707461907929644427577349421557113004542161242849126851056432622561772061950444093656069449969366082662783444909796746969042712289237152525997478167008336733327514630678020042965993417351613185287810768710853912641963359251668467951560864908403922549704294062381648169425979986974316989052503208410815736157241720113494390489651056103287834076973406129853538603919463217494499370295685685342955592371203502655241720371826078765846096584522717687538816292134880892874386442310839165508696875151381133850846847112539429622303016115258834027538636446485722826988322776583645407909619035244906704612451637277113836890082054647307618094912606938311958723121461733330838987992252190849906227989459880371126605978626773495141745162662262393465883830050742144642746690294366677229676087524398018170674405922945618165346243038657682284979867138824822060032653196047917176861653136141717123186354695160271120637753683253088475609569402144795804466118307538843680686774773153791843579738755684933197557391727263078988586762011651635363996002604883853199402389183104243081327273140080452471754614786974714024174624485353388177355556266757514676332757053028204687234097716869785440465930184989945471106618209540486683009325503776129388234384708950605370378461345068086902943548911571269951605973500594736036780096850920704101354840935756831059737119954516419665081786712575613525693631371394244148651240436196995555948880086160504804774624456590210556417266893557260272532880406392026743132348354773559644728162364675040572251999191135152648453058388987594170323920038888227222260718712639328084599269880905101147971982623826848446193035798322756798225916179198988312898609271374617252773712766365482278677207465069681130470153620275128355776357613659053467436564938551354980188132758941759412816272900629167930687443802108459249071513153880786281735832905790650638491864760118693091675527892916526322215958264046243359224670028119715166043392997711523023444400671466391963258818846985143245855120623522421072348787399163933183331872184346299523233910858599310310454586454233436775268521998660833556769180549024105688463446038183971274658710908751107782645112003461288668732480329623584248384351624441702139370576844381791693489363030311818493876739899025920256096346730922336080642701939223010781511585673005014744941834976617619831773529840479181361123018346155081127931475710640593738249236396272764376190221048710263777134763773562314483133462373192235242407148507150289065852538740729132466717485736108920913740884969858152019818584893428611679358919563619198965892886049847895616290250350482975581570814939940994711028943920750647235285437018279338233218129478023558403397953999106773303041726112077915692677319556287703203489672156575307385632197335258561061489369590138583716274727302962987056982229279667059697650152662863547005130319194745099954546289354941500212505591981741496580601843155768716418050433821079958937743461817041403651937493722285403651868283638175596165209556819787633459931273408827459641319678976645751103069468711661814052279590349734001324430750381597013208451205529375993479717595983825454073712168279749486120902252303013658891868049684910160167703154750407892410403230937343667178502653490347157969922365896354085545441463044458503965232062266931165290920779265972109486801778815315864915459714779131906130720097965232880787523491958343672078852753659529403704848402846396063619190352855963627779252186802316828063683129010130736551236766711738921585535152957369315234121549900026461481214649923903287069302582330093369063082042452672283343093116621839767436220779007907692333378535530744752136198133202192848273245064752008900180820205897570526020751147867342737449317340146321686107880726537994843508267816909800324421180122817937717146767479316977176565338676908203956737466231750731547400804551037256539581307838114484825993366350197716093322265113407834311106915942018898844536802549984048936995348841414894679233462477602045672794869124729155158033105518128699890467007550224292333722532520946614932184043950047813818095975779992833041695811945864656843550531455849271056336167000238341054784759190179667731637925981428018641820078368288835237907865509672757103673713028232748939253256935645845540013700404820117486361824681079641413794973893262066257338719889310592184436931398555710342646793047380184622670265473878141357264072721843477874724094471979132098721434761161202866076580133882587477947126852974935614357475815280978107440320947888117374608035731159633617908044487329887854924901595212026258567934829510920834731349575403153979808996834304546329137158705057322277976478189950905711410440564088307675943494412999289869920285474443586269199991403384835788564191858534266997971464309819841200114221035893423328753061877815769968020099344001996055130713718088208327900324475915789630736687729238850206404883562421142201247143839391030335959887916590923511125773129310423857405943860337253282402568544724664729915717736317172281476339446486804423733176368825591384328423213361409224250444412316906229301534499910835452527118980022299296613048013746296099868858351313129736479703580817503788070729281353388255606241442114245283152488864533771540007701880431845938955181281907019970641671340970059631072392527402608783668309603565748276532917039013878456630809038147880969968465748881434359497818047433330597682712670324759188235027402048077446469908712963951748562907769765399440756390066046517058129630435429724458017883672392109555505296457431577116369466468160794345841842512658161392303219275097326516073612175031634076532475308526979765245992853905296952112316501194718085830489951149144734111843568126250080440427742812952038190995518415146572006573724912950153232351275107695435083904538603381232238092639510556897788946247191675411125437124238589857209443740377792886370562015609300720771126223855125837767435481980331131911275675943679021612199559858953575961703611967042436832038566227606476619553335970839611207250233505367782997174788653283411631642089855003308706553331004015287959244345634390882257856487551445393693876427610968726658558018585236360166143289165344236024092796687218663107808878504114325699630141063403488920274112922634283128404252817244181567185080715001966976531485265103657048829071140808766459195926294359587262759817943625311777471759032654172619076391383210714962692218381345448669274694793998048489267960473789009260302207044355689992880040954430964672787194680024289649515606057441457999936639771397924853051016805289953982610202886192475639293615068221371984683026027101464684099815412753618969958676190749676363949487216291295148000098681527962488980403431649965028207670877591439721306499008732714996209438133872163791858042063185410609612750061634448878551182992109556504125715812682535221998377295341680561525640203551517407500012586762860524951920735991521051796744176498963052662817430925488365218300324461071386029028858907934698247614527394446896737290544624232927333589256369008323109336111337142162150423537750150950760555754911667068351407281629600452123098452854911375081690530069895880415435228103527134602927111354342878027011248260260781712746859978604598478704279553955420052751348948004605481719017740015204365954594718886751520643505929127007342757227472731000790847913484064994824920847853848471855461868791155302714737457593991784468462043104424040805258080444978853412669104717055644153163477546330378812387280121679455492661471356630152193277731411709147597880170932249763845380764682335156856858286723290613478998758804405383739485515486787355354540165030692731493960126798809737144180269956270094187531724030596358331400496919477342038337208987566623357340688931028224533223161700043773377089456448424506078694055387837517153984864450538687780885713043701047116903382109716847451866117858499723619191973224501925492061823803964579446579969870114874549456408460420157344062110208572981678929248111238888384732572039069218365966036462795781974229612266871447584791088509053484553570777230245246338943329251731533489611280657771340449779379419198663011597823951796263536918830619888162320329375426894523774035040683354154410106154262138691630185922693782823147811431924298136625889526299455523135389172192671398227767125605294821383310770964116670162991745550755755891869742603715637901634614027800240264351970599266291855009256617948182034376439206104058809799773343543577391802683778334023679767461378107439252729537209993957436242471776001304103438715719673137091286591332566327060510479560956337179518111309828413665933576060107630522989905889691904484349663338757403750444923045819566698003536776699538991039840977916789431581957547051106753852972194677096237400267987455629003113865023328942126266627651152343897092147531791818131676076917268263582447544765887440834947407244794126158779890029479978035444347351109226226539250119419747631030372023171633791169605334099235986629331821702326620497191272173630942973943912052667823515798249745477610230979532619537309490766737085185374375440784595956383990796459753447334410685598884344563000462300694483846680555309490335384337196478530279432471650695863160360894924680692379928241556706087128901258644512106411717716396975391235791601097815215975317155771237669721294250577313831147432063093367935976687613472013298137829500751528527660187300780338461557231312732944118444714424950107979615753665698968242556390628023810770672418632868958989843290510771399114519274365697866273635981285343534689767134678753615088198240962536207927455259142277764632123295578589632347777901101350810316475990500471134591669505565580073705567032941284349738238069800061949678496988674757982474578814492492012663810275978736297061853514427205145708203269657268715331871371328051077475938221244018470581056788154056180154494429149862398961924050652217731491070775233930103759797835339035427721832302567614860414739612266943740236248298303925544011003016822171241217744764978768507163408362173658538935387014273799849758549649382474362393262149094992458233424360539743234460758400711710845571278130850659734050586371595073560377288594055912157334733607310237343363028150208891045907778762242710473904773325186380166427114336295508199492024127934941101698675395834910029701348399908370474394774841848539724023547170762684728016195155413187799523059979747568409387747003788261420305060764904937350965097806715454248929558159324713881526824834468151634849812937093808433808565089118236285045889437551797501773777735423870735987085211389927729209513546260039934985767897364003544646104103952356801231876025931786756486456103117242585191675894963937816001856779228103513454338280091315918108406761370696469613927643893030037450386442455160883907545673757443925382987027443986418209631012942067793165871099479104589217115963077317042861217464287069697226383873542744927201930839757074041042958948262224949900740072761881468941011535936440644845459364050528473223856297013503750411677074325716539501130090532578836040010310764422252621491689552447136070435195314614348829116472051077808841505957544814483762762226394275504549543873519619905175398583566843750836783239636011159729990947055326922265803711504098885987128370281623706549104511581211833466613724706588498407396142584736446327318638417161535639661621111732493790216770052233259849122592829566854674540837956593484051009165226494599659453964465662789421378960746555922994086576695256183687490370884614110473414429269694364944259595482285044071293743533581292573668501903643429865902190815332445168237502266001848319141229163176158807867852888311515469759295101729033568517619136392759160965248583879202399861858784608785429745671206379927677377035330865346245746684948098896717738296092346980820240158468141174973177406337947494933608004122552731681782444960273881730408861776928424558786018294865728904412528482434385874568509809656291351225747228614389816073990664966273397439358730094405602420140025728701653765442562636020127145317978925348371777818621771942532812539814549188755460775254444768386141068011307570901530169794469345912911765368657356142960791511904555182174424826060076681131883481034172087905338072257191181871719265815031330882993784200650371405407400674153149893213484051348717439944465769172962077221927423303711370097288893505034360390737235428793582194953280920964975953108667813322653804660687940329682489227307260157979563244159708569266572751009533638506743381217977404276311945760292613155941092159764673212778622952417366720825113818268480188282603755456342867032157971477205358819797951908932501324333274368940266613312943245328967494653723224322366376422589663029656517697390266379512994945628555168826397627716406557450627229572819610697041563161817665363743945981441549278106900437800282792932107174312357816305070061998560417305265713214496494204317785396936734479071257166372278665470285081202344320318759922374397423947918457265741042414924354827903260512435235471239646689275571716282755903419187810422364812037772211728377874619951817306173846753178138657984467321933389493931407072544483745901092337106840245012315279268398706843841910878122538924549692819247628724372575716286064910232090821324253863940261561361001452983110687052015348206515732912440678336125628477780882634916059555328886977867858681376204957709934532938785278760310820427447667859151139358549272082061026772383089690716878454129258015972441133838672100204594374953854790123590996378529968222717593468805974613132122795740682733027217453932017271670574788176446482294259716780821726962392663013246131679822119071118823797159879431822637637061009419221496597505933613746023566308192135961347138101484380560850747102234091227974405010860189019348036557010885302580866195227089509391133146018696279678068745407089390573532395250720033375393640822698731178189860448553924053690380401703731766882611018902860494061666657788432660865660719782012414817847945528436835557767439219066513310715583871055156407914127794770636684466701214574957524563884264244617990321347968694661160541746748133899390995571138857597868930155181771644529394179883733372255772968056820159870247207977191482575646629578668609298097880937088099482888214013724296196812267885345525448542303065239024480551258038401154091694816135809732644213218158861054698471684407343005667590826108044915355549617737636097515437070693640055921999366384901416728972509141721600199311148598374653675579327276373045430279193532314380404671598091380155885173347354551753359456679121600997327886027226670723034511987499788537459228955324426935000215113949062207722388741423564625673114568049372211125975086616439324375394069616209130286951800515074554099335108915624880692274291421510951502636784579080154633915275234680080335217591558876151975473794544014809401958755411820498240483236719999427374866728495230634516828945557881781035814015854255071153418636469388086688244292492799494886020443965040676473321911635020564166134967396579722272573809264067806302881316274714838532602256306593936288839319683967215293143721689163201580082770164059863418003259349509620268004104646259958790591975504375122594257392855981103290306097452250192034350349962771302881611099592024110292138055533291868736547884130709476231108395433424654705384580671155049387197120596233700930071192865097989777495066207042200970238991211445749111829144404803781459059077560496680917600269951305184469558762584255512729126211250481233011902469241844739180407972833824939469072807941001791476653705950676448504419749172764471719986241293598970996726027796537956570642236273586965105901135133124272665510299088886197435490270356355666339095386113482405524992463559688182850761063316173882550920808994137060888720831130370620107749709147889093063074681047493544825438419396959351838980254634500868363080326452417132415549433915454116711457323695351190267799629911784380061692911089156699662407934120508198605011448978026252995849517668427356853967160356855845732598998498071850711531986829995730269054010828295121142634347689122343440579989731452710836428759452793462850818646812144865993151856349961172753132637978780569668075814234666957708057668249240694326678846663007804781239206610441147224497143408239579849830061201706732335702760422709334542663987395533235034144324763121240302074532185379753183856624175818144357293987753678850676220697436750273371830473054363227355198722431018105649958779796847745237365679055298581387736400524286906870028834945530591118705352108025350880071626185826937600444554048725540500702412907740009126144517598428042302662927019866577985062707958557989333606995301536097039170350676985395443166020858260989054782536678084418997263803815273545512303645322037657318109194670068925447546632559313213233152027960653459697604281248308477647892271225292769162672742592651461329198304233009743291867826403961636217303366069749077362189889542874543000590243578412630031236995936411824802697725799645254161372529437756939755324839218384430289521560970147553634257241657828757871800301574028470371737830579839265044591065981299008097711991082461685967394792981702039749918145980521652913219232617053049371529043200466061525047171639539124021705606485894375966419182972311703625334797602609513187827079866283871805913515623236779544321142844461167403957111635166108903314892105650859015400978093104892816730658334058948431408880762047227750105337591779021499759373732138567279429565185462781022922073722108117560769686161516156691148065286300790784488867848117405332364681321322647377978702683333616398007466044566343200007115657451848461906344322452843952121643285828805706410366340015855919749743936845497218547307220044063980581236529119507374525553979526940464650171738784161339448347365483404804053300138820526198150478257491689666504926140707069639503681957471748870586130166546742855069134698644297480715291872186264849173172039982559601422772337763681603840342875471303313970660034583426807599837966334638220943893723116919639769376175394905434753609269054847739288974474115074593684197587507917912007934010605443570567316709699406127089011762944783385572247874392702851439688541841210914665562578073163698457257660704873941153796135795248482135135308906629123267089455371462043559992347038883001054371350543894515951212439801466509972639989340924505026263353822145970275183803100884285002233500597343966900281121778045280400071720343936976004496035448303452435539069104193574891424969839488492292436717391571986099653476602903815099360058679487159665830392401500491338773723709080131477949882047331244248532652045158214645554890678543848471418230046094532750826765833355930347422335170546071887954200122275210703185609471494984247867529006105893669300706447815211365089589598939646232343999595420968508182236992436420645567801764433534778861544490935040720555722517690169154272106576293716930143680712253672647159329722871245965429677767376683386057636573617591032041802365313049731724419878974365037222084444106736348891654033714978250638515091929226349653374860805569787954371225025427145035918621506534099066068257394565377294313343288211234029949474448755442769562032171556279739135902970696280059165646823217384884427792489769281328209410619914987590594704384910259212526333899625810135294583802162166160036353335065147682030186404133279801811762410487060495883134046178376487582573521255455191511812716296165938925735486328078882584361168136322405796980929224814730174560176549470961011815314907238820306788173315781631471580019814606532882050631239094629545766737227677199321800727766687680665432323057210276757862921296691570903032436627808563627644702312932768679597598913084801036746402134385830806328680483043363552142148527021313952020250456500918692736026807788806105084615874755144963930048370212168044275808974666244602993183496127366131829598933473067491504318286455928256970696430014691639758282923545763612934197897864765940774170117895225503331156882097697299023232626271057814406085563781365381070002200846286940699870725690328869416244412604850180556032795393207365627380905909424107763049467006908510075283003672666745633928728876830615933479168522516318688026149525647065822615279687984991778349711591948284962917064046186073635964290888315636801488847236575572232811201988854979403603056676189833193627390444211642380095764320013299639142647466891736100824502779675685527435473481562500552080023655459410135144357431519403603844664939392790798827912113528879399391547321359033344270841098949937293202039413305428809336360686100326583445082282282977083008696696440388054804132719629174756113261081637823582454888774273493633659046292689631343413573139046251893876436048123102962318735237033819412370058723511545248464179117654165032344647105833168723623549964986554530405242715946340362788105386410490087286777261564673688990679029512093995015949996414930229392038859936685829779349873529043039922629608919765874634004897202234668619701067897698322758391126901820366561779547394372411895844978748074050404173766623788494699163221034615942505712273011597779948463319730287109971604255920994775880443532528429599561290447230281707010053029991834543755290948283470264455774081545197311937794661622320371514035642142674146630467980287762798239150810820368740061157267060010719326244396801089979592189269421340918609692007185339655359067241199241244761538373097021618455924246821986908229559109800891467773390534938829468530386175317656100102808851544168363272293775127403366324427860278352240810286046349464125043767203110317576002798666631210603717776448549117411993736008929956370009259931892792312242170116907472391536020332852047169222390227520500395374676095376269826722269367749148912489970299209788345381936535436537568533060048164693322501790549619162957896698578285020457903739487246179605043817459593587065533856317827830002208640571560671549751373462637820422728410110738182906397698175093303466678858005930130122490318014444151655884841751939759354410904064584785365208781375122311845855438520967982757537973449516189380582021475129104721678383140766382990797909384051286793424420735659294926333202498816179193351854118589172174481130835540772000088354469009815504427321807869115260585903790055934030005481882841266093246645981418862539300195430307638144067800538492076723498481850947776645860807084306262099476504469321865188381451878358370723275975329532665820033395928929069785150546047903147994758074426069530017634990048320690929352720171939504523046460367736914259383208519762931036164574767097133247849064549498200351718520015473694915100864755446596417026886376323711066203523770409267163557246003745921014517030675779432929520610323714397301874959375627589218677981762982356419521344467173922401686300726910941483617152912376815059634267191937706000356453544071151881945931938871447035783397193548499687944823541244209934799087652411986717299787800873438959462026003451707543558132061790042694252053708023618203587038451559912315749545625926660412488931772775365568583337428943928715666110711401389748149431247154217046222674361681033923481374728414812903079666241722818648913543630141259125391129853927712381314530159557477565887393175513229814703060986740472302728991086895855117445811035768181731196420844183846830709403736853820769111574329231805427270632538987038659080163720336047162236116088454065851951466459863980169347859617663774427625673553051152650043967595786540006591622380048151717380643700585312912164746433043062821091757095937424449306930367713432432581898594296487381142806646519453847936296106310945045136212520248439784779474101266690956014915670418500828655055113762553992145874017197510840327453021216801726341540490105129108434279869579832990197610551731910120626087148461962924466788717553279487926164086090826521612332913857007297586055112874923645926610195155394087694383652918771293938850224963697086849633901895855832729156540883512877969888079948653607530293096631208965058340087979034109495484370318030183599881926078671018216790675638672978653033763806132763571968629287312593995822482121549580240658330238175080868761509313326252025737826598872293945689831985228307572012326048828186258746709508146639087137640199427502893821393811747409536112820123834283469998815965126901569465881952350078751228722764548568545404486126338677874947700018886811573272122402750775014688467858410575963439688419862940321982524432282401521662570019818449306726373222125417520061945071110556689051127653243576764197125114435398241129296628058888738054381932922700492210673716960557575632511234854320183753216598354543227587437060636060405743407742887399279406402377292255527314994969080097460612759351818839106689649465811488067701826139417280200666041368873117246224572707399611574403916095417812818819012015551676467045903387647743808377503658870547659475066852925562698141864940467684468592308559777051036833540093844018932763187002507737319735966449406001676147976939031912541169549665610801688793260463728322606748414418225423647812073915335435735203434868682189659917597074891187166220289677837267178799019544186902991706742228750881739657420057163283747048954070612944070617492564835776099666183179133913377038280620036160731314695439338018413444991302534043424497484369756618425358869621687994744762950444882109143611402440568180542544399674569453784347914607516790173460088391340472986588097498187961847537669107060073988425984162735651447226123174383109798173171344067559248276711139281946796354964490356577767587603979005052446808464472156012358674655890080238512694220358758762467119477840431740226565029542806517094821620410032757056990944220486173327277023098947204211586855010125791172073732925828519033008458172038786012026433080100155151636249758832667416849402512987602092350665737417923683305393675518758650131773676766251375481297673487141872497493552490908289002287349965612626631721576499220738115528252914270429621949437012077663921267409764024419981182587031012864659408536286093556178937399505616214390515941113155020731783927879673399246409291137607311056864189335541103267925462563066375084050743812844304932982532839575732710006929190069833443110914428434844650446118595683679051050771172937456363482030690596147052174571060660869001843759398766631317040717424905240511654442596826955279652604955761950877415479726458319627902650580171527965467144349504306804899768687784030925068407725035162632119482480836892981812994668413425008935852058052555311834897840327927232522240402362028293534317881440144451823030302441184742483663448494806438643149670169375232635155673842297887554081488206722400009445642597944209656702956312658778802081926488674282668834931853098412108208844084897715382515730268866628106863903557777159161449225409231455320417363725176055184413056074793965021621814008597011407672018144793498720634685153553635119905737893785913087150207965993985751282613720336787941969423695334658278737008303718516948733546910715176136694821009781855077651034542580705646392818332167426924157122189483130563987283863565007520398191955110372062579070737275058278002849954971892543962530908088659093062110994963695992190263576085257803861028668740666933415716903660246659700179523814701155722498501086630248766302687400064116674245155587135771913448974344758903633472071464125597347733903069396111028362720531865367814737635625659389706893781374690317888750715726567013227004038983375835634938581632838062481926401942735520487434164566818776733545473006535130680894600913704911995398216445098422534910499659534940885145447888118953428970364094288161369609135985520643281346344224440900405027693038605373269911186581347964088518669155767121930275541783841560052379968468556556570189960854923719287454271301615485972563442067422282227003550126224746688411459375074218474762469496942554387411678267538093726175720134727579759310143458585224337112878972534335320234689418610992285194340000773472862827868148629967050030022395114950073117403486139800720867612181921468248516336700424615274350295883296001517963943515624942350057016741824076305459519543764228079692991608969292176817093477845065294161790905106390779705011973963593146777189993274902959675274085875426765984101142583549432877469608681311260611962167999272616752328231575198585670910206013348330333183467178077255282443102417411101690588938774240612115406968263302760349206195913463277956437427073769901741188442281179057624091466676641265874839518572110271861236264923262726983640074216735199704124882411425670006903850525834104433981869351964120332321017328959144178958364982896097456105631213828751717096246984155074705013358172160351715037870023818060837727791793010521378576692897430216516520265511003570581113291985177910171851969614835748073168160419401138296240106136286178328019930236300484974434856251828367080406621775896638497857863138744982224801378193785896331650914242961046611153173430560586896264185215499165514323100755730217657407389186749461575283720594778498497749773369157885731987917175929497513131204210847025731938560417264366949853666000073819565491444010032883377406443567858308776064775949376448676320795652800632606860660579902009686245654468370128855530067600238910051972345133019022806440876674442471908115450172314445211950095532207703035772343981452997263066984970509300806163187976623852988800275392695755195132172984547093318339881688580571669611830779843803926681666576875684285588156591004857026456633701769076549496077429937895286673632927438501798502604891216138843464669602933952857063813567625271824703283442315575360521507180810985143565729045725196455598922968095601062709676335656548793302487336027863494747378576547914282210910258345091268494711447668877608782075289371331441299696564920115482079800393461112842566575394004421410526448406896937207857862534766945209717981917226128844204665829702785801740812170769337031820853050908424407554225787673451749461443361455722817245004614073975321981833512792506728881277879511726262377506317725545399410857520751723295818550905002471873935979750359695916714641223840022904227625811425314130504354393372551622378985635156167560813078980071759368036208780676777834171611149084558705621023021543949365651093799804453915319945885466216528403565514685731458752410222856883424671003540960876060238776688330493724825018259754834886045631516794918402647529928577808448641433450453419237166018290910106650765992959464859722462474074331514485033605765841479897877787881556232688805223146336793145742948970476158999053299307744440417462681925513066818401947370189197580099035241145825363993878161970395945657295182986210198656250565805974053842985846451386872424037461572975846074263562768947554617011903700612976162713066485373132169286461845663860672406640652862146320305305091642527703190145668281556266131604683678817988968713562685212017092183597908892162433953885651294895687407076527459542947007234230246237222785054222392857384605937138057601277618398527742780082087753908126349720618001973855721958137778337249915470416800342284564334133120258757375768694847363197159138319124557600147655287612383906788221433743542269573697768978707214147204349402195716879978400264039401293997838040677843407105045701717780289676996850133478841979219591947264018819080653717919158383841914266163809817117926535688418621147262033179705464908065350101238338628717735538044405107627576111013511637186421193570719661171829260659614063870971941631328618169559391183297903984826953634573398637768283655250722185826502562092118151904395628274753269695699902031158592750829025265975470009019721720639348542286543578232431514362348246277970520172153042191988244218421087030915356096176658791955082905176195518568030122963009266732111091175817956531253396699933172657613428518867123995258951036928014398685600431983576450066002915914574163242463251137309214804005916656119054573553994414179185867339467176358582998150351258959311028616734400595464870043881515540636254790289913725160266446260028675302106085330192006994693077864711911504410626047744278759288178706422982180627161777087872382551848181892744284064554829244917418794909019304988962878718134812746480151440946917756732762416442503977879078209310954137083555196336327747845143460089392159006066230491084962060800469384298579075822973303852018243872130683549421533180060449850000604395817505886731315161559469327774789944202273516704825016146582436804363695565993903465665507206207597797500482499809512185270261403362980917889290681487395628900860567313272619035963230527534529831158110353107030412005101003350297100534091054943342273801968464442213622680137839722664869356095075712989042434010206230835528393420237371259768294504746542886787866322502284889855664238736422147593562020777300730432314505267647196558236648109710873028898621669847760237722713634495303997761995311911460453095821271691953646503623871208437922703395946961450433926425433548564607939461010155629436335175278716502527830205417846057056383783019241648498763733948253866173466502197680130951079636215683401821170473829306244229290164791471151187279127012305260915234459087038859414736621118266795138567331272553462028228100662651242344561463545956068390756404370367865818976254408842324262625833082097465798710849285137153952679649667972315218735363666377678190426233920756829060488207817827105590931609053744975248054231890201082859231735622004251941731931203038884159487141370638185262874732190437773113284300696250855884178106524578032809552059530818355217480395575129879541223185308385992616214799617308683941660477514747136222554838036277900379050481453651580877672833361327613372271791304870467228923829735144711159812129434017680206662927247569097034257544903248666623860526101438373135035000000996131442326961785844999036544113952788260257640704184974554751928554616893965844946249159974299694555163260429982639668539252972879635345405530703236100158979510309785696197371699380422206072909541933906489726866455386955531551571843167541705960599428893034179404522242740724504221792966815869831601046024067033120507609187614528096017317550333233897898286314794545754492347506777996698807837974748098059102255676136819890579508995624398568269975657629419805518771950243763706549561798610742626904920917076520060228588227636176720698973391161164774707363495437142729584527300647766993986315941230229618645032012518619416229226435276533644612599073943660321147805031805767449167447426570786162984059486988645846755064642220531705338640656549749375637422153726717796483042432717121943451791313665436971371603283040436125018762292404049054191357779659727260519302381479146677136245619175541473866680478819939892094510923117461283473004854985487427442634331653424794396656031034818449160293710220167415804051574608246926252314576380828878859697135804010341268687935451755077662892652545957612044152730006855192188994335014186596536814465795350929730855188910455195103125661351117246722695150970685690076562030726985240191428019533282426526150112392213055045006068411068712025856586239951069911044749979795662297119537591763422981540056412782408496164378360704738312840440984931978438083519626960931674200918729441143959655585323019418988062693174577734130072673019589355253332533124103002488192785505304832042176798336749184385738254877431654046900837897892928257018990597603848355949128099307457613210360696136444658675858872777034911942906072816190552027571748723851948239619188627582818662922615522118179853189191313126448036900939709087135241375108229879193393085672631554226617376213321515569703136099699784232798466726002903471083423102617453229839111454787479393666504692292725327422071711010769803402083720691002203248187748857039876822733475994565662325091261826905679402728866577941960174331057094721884517778162675986786481230213688566383342297463468453334259572430141194770263018790104826256683323947266556030772728190555324496137245768573733786849358630100166513104714207517115097992237138284768744262152390479669048727140523731651308217524110547612659920423087818094816695860379421500545450224584831672337058683247093143402038894517927817047175137118937044720711298696334690122384697177053428142423724707102272315911003166903243463702936750121191138083687283918910661462737713171079029998189216139785911425948843164782652984084727547938980416111504351675425235333535917674164898405075678492221106222428653473836013396284190854906844998462853823360546922431969623316185414681118403628747941008816832785390211669862771068708787015457251510351191925210932297302374859781964323773020205520794334755738718242700554397582820862817763662641897735321943568109838617558051232209559047955300644131376586639960890227684023648997056177053452004979487192784611430961948802382403679900637484507953389139797623343842652466690295411397292141010674539713329384640689568952478292202443238536072302591825525538769042114874313608663606313266244852990876337502737197040492876925255832162893194368707923109968704209775021463793295870141431672808909758434048674276534568005716743600026598500421811059950303422168857943787975652226550635112724579047285928422181925930998343446654368028269780698609014287121706634868991884628677469698588032532999624692355277831511390063388547547247629665201448480543197210186801593262662807429373595635684681184613743802919366188644557149845544297810857624753628042415630438103481399030807511324515439574731875872507638163660399240042334122998428683253841802024269540674455354583008522650845602695825203349075943669006665496956462014973908859059239269730083730181604955964901734018845234964517924711442250690980504666460538250806010899223246152624192414541286885103673847429184764626831360385975928786218045756099485473681183188343667795190525376726296126838588879952163929221961498824798991947439337565648349480920234344063650449554513166839106930603074224856061879056388493874404530253962317019675360241026228674520668198307370335484527399643018136107851091485465559132541631827100278811286998734592296296173540049397664538058861432558900127932424977396992114004333026077578675690789122351908846871392219078711952085448800731980771559981557727354911817260893760226066525040996459364992315970105195835331530583358155911744478068896660768922581714133398251656906379320654321909316085761638182585406172716142797332909311787303954429278489303338200522759904148534332847250952328373494485272912378239026263876003397871058229099519791024600930367965997943380651745950000044213440618375117260916787845325737764144907827328018444892513537694167868663597511302197081379194593784588906204361842047989360870916158383860561732446637957342216939947549123672715453998409087392301062571584247775435589591475412441460031295733287637455579717088360303032612740188713868406810897747183151492832839079835413043950792944733659299511685876360299357600523418974249153498247097771630934521229496577830923614328151570263351417405930054532463160819033270027901901864192707221578722735257707155147508823597236714314599508987310429388495945900811415377107721062966195374956592698428865651924109275293315222041509025401960989484571228271516376132186756593417769291774003413821383588233542450467504098207782217513222583251733023604020079572764286705352131910480977794173123678843715112204323608328820642365243554375739110976298954609673055282132771325411734159323170556239397321852669670206685085517404541374733923271820176256098108902589973420538128722476954471340007221619123332582968154465553851877034427010228612494088005957773680700427383614742370644547985405848646150779110264804404057684872455310114629320592350492607586900183297697655227050065542969411581967938540772685664720353548344479587703276282059449066488863906161181942330551939423633275733148118580886235401049012035337993731187582524040250200858068007943825029282491912326441504406172453105419709038286592111661137731046566071833909984096356801553850369741513732080692272795314375053088583583972378336964579003703657251362009217667104393640908930516546188188022995823890651258480286921629254419558718161920152285667018319160981087915690351544746179895658076748857894832355580580252820064772073272228297592575430375861504815325122646265560950199647298927557921838663008642954397545940913499753210649190641195008547848971644467518308856437018848276333148147063245346016216642372504199633817509167069029745809812390164090807028227094320991746004189644991973325778659801833087763123527346586501926969527541247552457247045077441243674185101447427677679188178903928237300561648378524864476271804786931903296297078395883265499677114918419212519332548859447667230350588402413954127276440780499288143147546770545551193824909939157855357021080583552829672305454004438199492726315720609985144179740489853524698291236079605073985934705214365217090215303318849672168953338500511974675410945169039261590105145953122205834732573189677278422991092624774169418461323841575889448521813901179923059573437628239642553517183225139185740636858911526741401903873199243389607332001798469952691814908244251382335401257665337813139929411096122235223999433880679697524588475295976909337697126099709811933177153751419190628621671150578392193565457429088200330513314393067286745911659977378508034871566072593660429301674935862674603487238295069722990002509099803691219807810457852363240392047247576300701221962757753245393436350738576460081450692747528473413477586299778736017248205822723180976391373194807092302117113576400789249910944930634350964895412993641785807266029447456149797172247476439346611000848524322473418881140884281982259411806527105393626032809822366128876887521479701487495288798071585928340596735302202622230282737847760096997799639044795449601817326915522459520658209232088231311427565101184872191565439372965209160915751021982109315139411171055900419453520504160010323465931606583546872472941489893104973586132546043262333747513950321634333065982498086640385679218694610731089989600604452037632756620538455395175901467259337632075092474198090740693304880373521225931455210394519864804797726262058938779635056327952597581947238440436819833378390868674663608702759565809892907211090665912910305008430414368011667894471267118855197566162690151582983540856164571919057225430548459995879748614856948606069990107367600338522856777477474914741685550087815988280636439383486774226186655635114110297701548445753124698153817322540702065414905401447955176909750006530136518135418911586308517652680961795966502963456870641173208374288965000856558421075352609762692009945081453536137327118706874874410531415625814619001397509136144433582871067728211059118167266583898452619204864239331910656694697054312912582787831413404399323718422859695349209770430901212508328411780312540455708935728638929315654508931550902795765628240938386846735736533580258454276299326133338811661861903136079437495239899386128860050736606391189914544251485704321231849416571907955542864163221273191326396649832994753563072519688200869355064074752051533644238534077105033894127882211259406266401823298409695913637589629258792331684427569130034747644160594509424287469828900155522809871775371557080664621207738674814771370905618500207041952442432669484430987826547579996217058658760672739855527493962139290618446891429016260135933447643087544940609255050045932348649922237303696598658414049722497704402505755867204157586560332525488759701539085906003804288365030268447052071861762327294955106019393190564766381808839567390662685518746924537928762088489124448697787419898847781010790167235994108246851984315840772441566340346107890930338009826673834185975314131695939396767881608140418379253765604854608041674709638167069839476611684345351349930467041606893352660358802897754281915924237609857978577664780154906859125622368064351355939311214167831861795276191925336908526310731701461825035661320781807077622310761639319859189635054996426312010708240943361936820064245361375964590275192545382016744015974090398072911217587349685431688241716994125110217895124857447603659960926214724061873462723156879110032807773488856148675414181908189353065287820688645720836544746853488514229661059652642977051520409667154157750017590019201774233403705520766390744382477586637661030216831093946205573575161316229015171565687383976049069465307160619222584035494329401864288537418349212030359246043633791569218385148748758023203361319797543158328960357977210430446781854464187592717200648149829828286676151448843392886674380854741281547237806760013658305270396404921512647849037117016973391311752353920392148673842996954479059197902977913446316471532104668975060309152194136222283504694425364912851935268067536290564306018904073377724517838960557478147733173921527204037214466063230193092833413198915660355085428218861455190721454233516521623860818815066433932063995141773940291123736936424809375523073653995034208995283703855939651275468403505004117309101148971505240052122789211596611759911102745434842807519977515609976251465612388407393948310864935795193697168105933650534611221722489983758656212580991049694400783132884483739869825686022796659892094155164502655690945167513788776690900075938338590521228893899253284540091613051914464562714079777630202261656219531050399645443927723717729656905650307706550501683405246101845862577493372697410725456191602253787582845695006620357425810754911326249088936305580828615174867240913116009072577473874945813929892158617755321599958175215501403912622096670620744743769016235431458101159939943005098540409388998738260173698112019613487124130823217493735082473224899206532090931641718795522249621619773455555171400913913565974998097805394424284665500030141136734662809115997698735438222651075235449111469149731744015200782562330097635581313666550095937931111377791516675250782966473461773719139088635862710457470206441216515178940406294769838263704912979718694879955337538333782942669880318256506071590868330822507743605773916146069780187215401385335187916964372181383189288039243348394806233500326123238374556569955220698522940179532314388433431206173466321197613099395769237860352500924786007250992341926896821652921464381557465580114459287271574894964022488324306810355344509901751634913040632355924763750891190095396163381738646905651007320661485966777191239175629619270444762933684882106515969874036951163547269778296387116817012116326764609812022200336775088768247572140995238245005048989927688279082574416458254558595937301267881248795062916033031179489244744845236425818684967427799943055464141193184128888711340168668454562587189830263318200084257797160831666753260159805604808592582826409574424392205882890378988527303536849315252729929229639910281053080127646832673893651583344769344532415292861001362053235553422374949313456515937442752894742344363117194231993737710027515120597833885619928309171870562884221243880037446943414853300876399410373778341030670954098106902158981276906223175526354722235406429794031848230714644018204675346556863430818847585211155071917460012723084870361942678902077369015509054098709284441720838137707872786738482838329761145274106655537938400581194960343307072309609884062908052751635724234521722144045262450592010563042120452249565368118250593548923866640094075181634610727721673816429605193888127751684981600419717250657356950962082626369787607734841217741182859988517048922960829411803822473104648722757571254992247602925165358514696463831915027058899930099160950518117003409016618684164070655276862288949521995499234612303145080618226397291983198848577712743925122516103103685482435977951702137673787755050048110344412361733362574018696152699329438877613843043648283523703901022096500443678226967608022291836602415955437175655981294569143306677404343847701036228729664862283540184033217452994667511964339745210085921816974830245914246507271028479268896807900035088777049724462500016024576531559035705084680512257153937531574147043594811137543661897717879656806705116093436358878227605688681525116237269289214169737973710990926255704963067923841648332864150836458084165068199682880738495260897900570778306913501786112056077578192217036578843972308036712176803079060157793042582669978825433604061090251043883393925189160663264182833289643482356730716208015492010874123622081494223734884415584355532998700142652848206565767583985159317442665966422959173697584296276927409768321772408704303253782565678168598542080067594356097057411809715948906188328684780376127314367102098364107518647403564748233572135539752122047308980920640653632106748032021602135321217160722152628059616205182396029258572685869124318152108958610095161053454106223485501635092780922451071354225998300455841885139938980907100544004667948612448250521993640563901200384535162732100237934984608322979225337664226961852832882949389593502208303612214421622709308383405134526901238296276049193404123244403791461089227111482792946813706906739845958994597667668961273223985886201640736134107245900827694623198887916237685487024943344991578987947073601536305287069068767648318674782579540872263547437038234127000633656231407366946249916368346293699705430095542872371855365238350324742691292394349987434577023714808314870807671091761747244896292214355609067648007325527591976062300507768999992403151065903108315241098952484227334098505035198314084882913071219919817642420824193255088036372060906750725987544194683867380092061296201657021158268681949299288320034752595984460354156753804072077515301007634210790811455617594685750127467183515474212924052968566779580590933901520681409087217891893456538466934138190951349980356015619796368790798327761416370510147234241388008925696633073366344652773286774338620054687418777565109195929303140078529798169274258575844750961882591631325118438509577837708293456694189828550874052716769155750193618093745885652296460164404607021904330747659072684341764878335217945053381724736088978735942823796621539118554779718814159723389820334376646413833164944521551023222558255172182462427849997752905373753533856683165173070502002314511195469117016879518250373257420534797319206890115245598731365506161920844626615151043080063265955066175771218081269950035514540899665040996889720549887618918814775304819661027430972488589309328960879822359924807417823309023933623941780780445744164249359003131489513898682744172368064465967154683824349011356102526783679794043681154321987469636819545217563496253108444062682319923946995178349886780462514735375470394926471976640651986248990385074383037196526165216414302104508049831644968396788924548899965983353766855333776466589326692026582737686974381282393090451409975743817497514399595801624168690692370956427372396157517806193683362358217385946633543962269137837783201779759746719265150224643214604893852050628410338942764835331673236922147508413522446601563796523854196390767661483975250782977756874412088300637561561591052152519276259033658109983460488775926206787527656353726560678020208539696852865538719512036512595355490674106073350219849995686859286211027116015731468124309786741377308107367928589117824573435296423716678774933033410327989643057710129623426975142662698089971088665296856324947703726467947403090705807946984573471567064396949213200486561033951337658857150812039072430584951622479076079551508628926405742433148579304206676069370466917776570272122530751178864409243379523129951157853486996275237980592114408147636722130752169410430069524621246673688522760693295379326787711835053890899546043221958761597454074616934786810827460057377829754741995937641024241864781582136580324079234367902697522037092762915933792211041279811783137219373494128463059432341408072287877038351177065659712516172834845161943391720600354157090803503720750954853030243263739742651190318453272635237879215937089538609327046996539821711145182991480878288681023467240907699761907694623309921118266991383485284972018872778460378486429502411951525015085768274344505938098703463648770567073945886406132554485314220925604001510795013783743190966866961593197506903145964232656037027442692798809481163522942860147240559330844349672646974546407168254749890413757512233432864085964984382895398533049909035132647029832608449387367217389321695916322926692623723436774617211044451155913093865344311140826556584538120980495808744813746715111015677245148436559889079186625503068297224041034948835534989703112078921736592034602472229432952544181468483864422782396475724896369009379891504344943920550340362183367515447775074070133016218212684630209612677869996196507446172528579466306820117690474122557571067692247192531799325482927426640299352547274279523931187074895545026005403200388237226049002001201605874643600023366635902563982508522750228773549945618270366819784858712501253936177421651288652553526510956711464462392510507074119094899240830835783912483896228120976910234747703319226247885395943715871947195783024891603171441314274097801858051277929321342958840281564717029360971988879883590307869366495062908141641403364461126140298792680403004005724582561945113172918259034760830540934379501140520797731827650030297734312131655562727667740797806788409474627185235959925311557051762560711748354376775141481716679497216586708880874430439078532906411069517164500592722747375565795861853409079803998134549990841769735998015012891364402833807766020139124113730091751040025227645540902783020414178519963063678558916931322663149572921480957699195310419684763100355869741237196336201569434014850367147516406725582579549691371512539025733962641672762380733605350715574935939114186498283573909431372626836283824570294323935727857915134562018566771730459128005244958959594635558173631549894714862283000657073209680988520931152547935479461500881095624408572110958820228182572779941820907505811969291845991308897893245979860313517226819217676307364186473128170252312062588065789042937465034654720453091385006122151414828814675937036892711657454918558328565529401089289002703634852273736706986327072810866566753881180493610021104325613585626257349665371263047335498669122630238352549193732718277630605853416850709355759431611912532205561993567384006301089435963495526198134912119010794563384440567660125896495094699281600334979025182692526747321585631176241370688618816293161650808447218061157843522248591666183604431474108982859577433699759057731295300121110524089287562543419198717041948728717016745544485347318540702434516053067210356759317446588729276417877500178287334855466533415628385516005203349591816153073091570712064255194873823675627250534628064184850817282617982521460968581648664441312388249922030310585806991360803278445580939198800699072385042516284059518000141992848358926008338688141992339446130536072652620229884673907006077294215582255632283083980887781394178335109492229377753305460933469097655847759205059666367259402434084256799987477700876867924786315967004891101736529394828451611182058668120522805884363048434793193777213002168671449149363912829842495297241912860074107830835076004988187288887452492005598697118555924011900163548255715457444675043535721505193738702893974774898168476064509746591707811167374171463513202549136538904045296451601839403237929161425092548248774060250762682117831393452481276390219386136641259694966190281366966798864959622316914365802312513449010757187292013719102927156672121298722828128591625324878565807918909116333279898519906316651487426475304818463224669077475215161890033075305753957730768260536773669872647837095594128854658581117451762063691562963130127055888972656709513317226079171235545936609777081625870358860434346957646037481155507190833931804022669618960934600239576317108534766192753942881994290029501788132519022349019931176250241249982576129832759148338243964735336381139558015515439030434224171775141962064335887271375653922207097509755173763561461501069425451465848260015635389539116261454078527884448319099237033171091132673680826750712080645421810536914620520437064300585715569589368387493116481409278329303827064736404563344164577963281447369753664216018050281611058310284334893674762129841787447410215633526941074085359357712354293319718246261306766461963589224027053384757009479871611221354125277653841107512351288680656893345210086084165645827467535289658009941651365568691193626051406396528350760356458352729017695270840440007729970590089998926059593258810512411316597608643563819064020308348449256839864827176492771374003360143472933119233820740932221176650136009053778672875925086974308098042610512659081548086149763972390061934471546613969396358454951213003649813025320926022794612030333628486711827172794407502800898421298324534046886741410229973860383160285603878765115709927717189650530163666701571932624411717812095802650681964495825531604951726671356036061592479573631701020760376035089019609185152994485155143489060198859078741468239255608322938881024549791273334181379918718292729465554989275970393286040864186349232453053182347643789817978724699422994955583426521629722886745317005650589369994928162376256222887457481021411116481923880299153390232936571118206512866624471614568427536235273891280443918597472836642482092520225492831852398255817273436892844617455955733083029917818055379004510145119467785456076111309365760895358813394580772093446800709312333127148178127612455223541739599339740566931522746777690118038749133363635952417426599894790144182915380748759491753155897151338577612104312010284244551527595256070972183491225809567670673254061690246529122923175413428180542049192693033587645222791959592017384254713566123608048469852980371440023492243285942411815990688979571343230508142274581101671910434213441680561895178647150283601950520798277348250286850951485988053777287693812088216233000588905548267541686826294471827691142034257013149896643198114906295639935606589926305058107305992176378538564709968743368045731002963132373089865646987614101240714187995953655316073644931725118878601916471386265407149147393255723553558946665688535664351949241161989182156622077265508052253939065011318964535438357292485954989013639035501880525301860261332283320579603432333293428602043830341559609457304533539126976869061533808749305296207186599575320502599015378410159230737764490734304866973315793289105822337448010914179699938380808512851966200616905327038114630860813218162679034537568239902306343437966035936554188932889627350077227140271558324638617889634010487999488218080404595579163638402745611959778643868837914175997894468396074122843795207355201610146366787757058361070063864027235899613754799443978087556682685585495337674789647680443424888535939863280995066221591081592937462426723612734408747839801499445539967040402378846000635985811721448916596097487105917601054301035652178497845817247839602952334874617349958972903564065742364665548986826441837364321476667806573948121288089098535321505769980435631850156325123649286126896883121529628222692434211576092925089641599071372835094104899573112648387085424848431351942599077391802959081270991639135946863566469954415282930579430846230729215324340104940938552721693222801841590312582104361419079314199707300208419003672444003283912859378549144074776955455785943191384562026781217080175238576002108271129945298518997014248548003088572819438590517409149321718115160511452265966772513466756537170970530618504556850932799528921148407295950232671050109953387291523543975892955356648805697874652335977407311823276211193456710416368367874718786293929029990194482478091603894943287659903131151987229373198816226804314596475650938830721501168055115658945447715308383099214203420663438542228667745803091344993987987250114172227973595235574574826887715057870337901977972521173055766722711789735442385511970892116095016457991152327289694915597420029110827601808935022065141250140423445792978221855744002013962540148693173298169796997860835378392839421982099150436761181782858849459214812782337894481393553274332019686985719021049041510822024560684698709452725499223005018038343616777157456800801208275320913991608463902181476286277553536779175823522823058563094475061757745595457379949447892895483013667402557080527127755500747326413181985246990972881219622981104078201088982333898884274432705131711040200853131989709808509142024198507828236915658220594535943605191551123924394678018253514534163205272428636594482427832214755785685831504813473583304075709907286870537689093140708632503139642725594068016843910258044818519165629819435530884420424324615997894380794155878280263878221377006202546581786305700972902945188775485426650001475194759027750141992067799233823553198369017750930760003090026297187558045276956214883708688183796429915999803516147381523557047877482929838162531121713310957176511233063383375942678579034972344726356505739157254323519599518339720390519757206686745088835718686773573931431597269383320082606166244323700154697365631053920044916898969639215059383197567631768610536486044099865694645152712105763761994607338398930118769858801818139153850066637971975959200222763173044099084096142830940389710444523656758994615827312729954388079008647049751161784917533317433642778575886729166718755779898058486909936464221870773378598219392770314160658239674909580256218421227492309817376819071484326867880199385280067657607047923600901687160047323823160171105179352706062963707168234778384131610565763250868603203620781610346984750087333356178510262827956768842048219261841285535114568540684840011391519966593152807763728604327447727405003571081758933317461425993216628180016890747692613091453655699945171077425410953078899177924512277688394749085459301468727854550405343293134861089007828662568503054765621965304797365431508757973139502144800305285374368674030140320684224989990560885237521258554555365634934155663211020431959586904110460121910889168480509456347844165588915741085766316599826526626892020147155632465141475326605074402060955109917511269370694917027429744841748448833885923507089033125466878567118823550406301887838160334251139491285382094389561763791929086160272533927469061948536290744136807292749347043493006307372020904443268017386939651727695394825809342619980952293320417552692941156387171280713639635713081676939934703150766173337211347511555473264832796001692374786340407888806418351350951009589768450726053541470941355845300594271846305742142570287433296980439025554040025944194714886551152578705578431099631502628515960952253601722030877316439071187105279676363524941034565436138348144654812735344712943989068248441973905407826039786589475369157768482342964648017677077735321477735196888233662009233898299788163759552443837661413602303502068607489690284592453900407891192635116115448451826114862422983584024504204971783395497794027468518690161834438894330353307158209143641981621751115188517205704404304080152282749572949806828635745094229956508783535263261894290023593151093902569608955508902797934604441190422719719401105464798090969821070613752618230339143310363010078253250070966100668583131669436248146845004500012454948348460288111644171765294273983949020534869843617982505020150412153916524716301480434243961036528036161146285469047660142951918094276736053320043843620246441617384886149922476452050918168246325873608708487435115006776851904224942642271251794302110442095238737199602323978198928278490911178508622553485383400662518240800467590662006237541721789213615311250374615706144724599317421704264736496079562502801679034153353430267526628685658543489203372303099211774984679731933986920927571775966021409035332458750221086419626587018808433671334154186775344398158842811905873474826547149457349041431423971174808410888367407603461667996197905626118463902013077939732570450525472686675518330155423665028886507417515077659124550278493597253905118941184685331974222904957725962402636457253121031623537852148651289961637745407014687254777411951601122170991388674489402512872012074067266938981245420490114808567444833647058932606509597806787297078150950982623747597390090718222334869403232264484232457437695099175029457006274129604659993436974679283523386103547452549132330348866819236208457632029378396571666274225630838418218716513869471321242089415993325685130599944051513126029720104512600745373196812009136120159823660304844556124316687865756797203453674533114815212558873117435761125913968201648042869562026055355547251012587073453113667142228698371929316187735750570738582088443564305502706185702246399946741563365671567242542006407612566326454904223921897249365161750177137848439166289248201486051605044724547550499280106364450848981881144597654787539927280151392954616252060979603197158906100045802976806110174432553829016833664582805274027151370079108192607902872462158417266019120684633206479854114462472257525029846951042064352854542412409606540857738609044688290300875465469364079950496297831275494381211423853671622487822510254824326508678436535871277910467669380288312537039796809508471562152668419177218483140229927810638337621197657080973602595035287809578465978367717559210692403649943368796391826575980822031046508468459259026895157484750476964722807909483135164808403949280913931075235924003932693272098649412504317850888693243559252420327917695433833142778209958210563524079864809356801208385260380639385662674170904570329232975669453910175797142823294107605848556114740237138909611020471893299668503805257879008750802525424938510141034848662791330031901263540640255859875969293546328143176236705897472063209608654661073179897828889912958116797006710017921063029506968560528349497368204175296093247076933196039356211989038026361868594767395767107194338572538601022868318521038971530133146087303747095221675959803679371646798240810552657905599947600404460230157747726575684519230347801193053103306033861768624535655088472044970871151316754806726170434892316544773951975114756143227389650882362967835953290378683159233481770044073748467299403229111949973712310537605182485328423579457514395847243881614406326938873587287992461902974080545531490162391711817902913821729668883501638039764396846364643056818559065266278380265804472927973130100211231276361777485598892129108365882238275552828492468354386261125331010452067447836535872675011692026879210475942190062909840561616818736051663048027983042484558136871625453989411053512610483587136599203639534683366319575185526556156610997752255680503912868120558019466449540231512692732448244174364549445356930583335816923783597887920893147643810868545862645330495980460431331051414973506368246839644101396308409475344402815680561499878117100583481740724417738456415102143570463814482082163208774993388508948285892226834906758798213148094833272509065577904072164721481741225529358223634622923948066504738607166430602365431625875976141680139434870178255458581033636927799130521858996265319976714700321177398516829980463007834621675006455612728700032291956413316071585136003114584534576462187436530978535424295773085307714314671506235341016086672139606006515490465120698492782601263902789687344263264858321068849785836393507035729319920845397070291886316558154000524276180695337671020492028713500641623108664895372983580270394742255704675100424999579770163850043235769378288834658252120220828796331190064775617822775556402049203217357158511685933732081647118383341719217188109482608146178351353348494579948058360609037645382052113949624174855267479905366171494132043494640552191656171408769045903569825799119287419827722607763562150211094573218572509113111709059668040546205628254415500007491121996858104039272150409726942230548008209429406314846789581197949997861068407554100817233376026230758335149884615960418310462956123941289406765076834311931710806949474222986226402463035093547499047338957909985904514333840732116026311036422059665259078443483776212181233163817745941881218901978964350860655910100517491185023033527376950777540652797088510781027156628887882699632988301703364891311394879339231073542149594599569340617960695626523747400203234566235290949210257666980970187928293337701671747180421851587668310254819577327315876595655386892332533526513188182517295234878595731359930276964424744407327001695063078160312667523522235080940465795834290086492968762415415942398880289418953478376592967156910573339581407673113310932807650808795522083630350046551608369111353560767964158456385996112017995678020685927159447942146994060942150297679592200325242916506985672157884624209025857110877329221392083155816319913737681222526065855708785837037215188863006372810506427628224311287018176596975545672330610388035796044067705840147411479120072960783234247210517235827125311998274135772991421477781502559324354828842908993356368994767121043677739895935543003911195064993421190349434807320849448106355352183831338210151336012509978151775859764096361746897425215353452197045753149865334449561885152728336955330489817707015997971284873011107007045539931695927083667762714602997962914934136582087002828822347961781676092010722811508467780803986396144906254710168539863224962337063810949405138350563093107941229607373397412960811020674937496363857959310766753636970593276332184630560662360116352509972941248328926877193220330715166314215294833526794351677790953045670816487179680095049832037878251073499654487038226986993582591949206465009361494524934656315580823954331658549474515452949623189020399147438857977383871106309864874529907893938674970516788599312314261663579418706164920127874387041660451140239255642822502618969348989197163252672238348818351113540401238551465857309462273616861573457210252966950134838667388802656969558533837402131951813341132135757757470456113726629763406852038689728013956067812302486561097580106937047756450814424990154729709963611757354864502075550820524103125933560736789620604488570205368275118983422221869397502980117406089409344700932491084180964656956332826848088457586809990301636753206304180219081168065556292874582543982427807867146798881872314049534836546781771535673971822778642625717994211504730991047233881511479444681343358669962431173417174319381933054183958528862532804058317893339990714422783499007750483539765131374178885811850479373956138727571077282540089410797262935882280872230157566714051718655083918041218608828452427673820902601403547649641262829054399586954095856929861839848545293582960394899965071872556679349272398771965015726943756030267396562395858024755107660625533073616549665470903008380330563039585220596604991464389998958516567748323543844682416681161928228847618609759119534798583165243134073926651563111380733974229369542054134841027767561920033304804552174841401510527275245019939459104246325507501989743776586525732954209123322577753858909209357637957145564493799682273654613026555625901515100633386182744846464276938018337908415097071930995163935884855184563503613888886769740140328735855602769079715304522745904527550466725856262259996734556194881261958058963651470927306502932725449984959697948612855460522709981207790389696863757973843206778204367603034880694813956790201055182386736351051913763184657408263812892125975181095085505771410361843783498461355212575137553973868711628036064897478473448945488033873183457002731434867686230337437891341389569717665109806347281481381207746202001109091812090061322497429677286292709270757278021647693234558907041237718622662064641804855817620391059224144434120879663503725819836666801986088582119890369059278925474028738285378591153451830153498333037844298848007533563843052108889730960512682628049344993748384627635239944948966853630901712255731821190016377902163010261916194887471082176749984570030969138837234703622159229528810367034173558221859214365722896531771940670057588543893675828350665353379015815935748737026776175290595321919188914013996074675017105380559798003443854275369263567411233981482931200944198129066466353514583253133008774308785610407371061499999589155150025824536117064414819603783044612692049312067975134535311972515143527942049941816535365679433118102978151592273921422971480985695115782112602290170541080031982112844592214589588833502657320216755400042369169457877634429924118876859547418313542908890833288971925195579940887709698685576763960711292912611576539086013702282853342946072713246792594279605840696341554417331519290399430091883029480266864241279516271795898149220540533479658251253411437132675873465337647462141710681890375217157349940671450965970804163647800940832995152451697710355672474351883846666735413754859343574791836488026677430958797199845686441461361485559603013364405655097894603176632409052314032963227974844086988730901706087815128999839984184119572420673869373147545587683582308321473271188131054782594102884492948214308728935747201585383722679074280041055508079752888555465056801047807614787374373284042976209747742989204348400972754140181921214276290575756668408818997253093639492151597231403104856697142443189087868116762675179801800746495083389532063069132920054329513281511310110245675555885060057021995759786867737268794811224051184056320956100122815376988739298869846061874250519256781835120025239065748604450403947675633214809541083006297825445500206314749221972785104774034361765605724298211742409792936863404309751319775474988813460204252656440643519550447037673324493550562552380364212608515964713631723805392616109584134099374670360320386651393066196267493345930750438886965512967056387341305521020911255052010751738619921892819320902674420363368299092593011274989585856059497040615417484258612220534043031081298050937680044633656105619144179395283072259925267088152385865158724802288862389185106496866897347320787228879467589268754672794647350523768088091970500824506062606623829259719667210031541509593014942085598389779382553939240323307430837563550351479420581512197449560306632877210960977728841784943114091360619315667452103454166221677409826330473604139340008373211501930311178328118575955626926259259005165197909723558617785172050258178585717826096115102806353635228899022941070770773071960419594532566413472915522542776113176365030970878945959372059515532203933763907644424701537583425926970786318027256875828747160872085990044321538562347344623584731669329886459893750884454421856617430537485810281562325929853512119518085485747600952239997078576347703167631974629442467252584729656997150146341447351241422612378365227826870142141239583779283238187376255248880412345126066004313377447692232493778288359246326037312511500167610974108033959077064322369527378695378224236877105529409873713022491937556678923924633248410357046023128446439247399617750321008283062911487343368929275537853379916432266695963311929732940757982687957530446936996792599797713987807645497796263696284973977513221177259089416332226709058479659243576707420930168409422035979832491685621181067226957035915811726122688341548745240551750264222224480739995567010401139489882423986489175454022852959800518669746428818166160076918205410543546205537661379254744058594961190375223865084874720900741061496614202514459979928128245607320661733558234547341758286965947819556944533067377545524506136373517288162504487008631137262998215894735984408285255147815710494989716156993446406372965071442546800187479550251640844451966376219207713822745066961812096682070870935469652512740947874283459007914039967301155136090551996036057200480409759519727288525701049655652336235785727400688219505680173218307205818381369200281907298030185953135986152071525353835162015608348123473858148078723337791916309341099397610090667047275109859925649880689447964752751284990013676165663813898296952195271050052913951828675231824864999077248860655898864685189361581286972047126970987985041216834673611013780808193388631647280694638819352256709023340633465653245284019528265309704613398881221326652945474221287660334840350372562605560198538482674221619103925829765680337058093506712518059300525712421292649734645754338343398867611191768199457694784871616967993781338815902880828941414960094305891851051191217320669021380531681304452818376845306760545868976301146956783190042607877962614290695231551703465198297362852274909131165710780627682932589791784332310454529930620560669530650764904358361092654028552300852606672826523043058242337553251501670671860232973570718334502784509180905911173199806865502831083575798765931685245270375967923208955084757821806123751901432484399352484158078467223388927901368776187655352361524008243496581543213510005279851420201263435473443628256549672963132519456558165045853273991579456695970710277706316294940967434910252248239810520582884316923007346632181020815982465486565599237177575525439867203732119969746149721837437290711087727726692182405138306462692053612033650940909420654024034181585510155822428743682131301892416933329703086753668289390646707981612042120127055829491373454878414224135001954216270257425427003962452927745974396854831020754520312916346627017283540598286288533544544333389573933628218658785890692546357092393903167864017116474154461749922299738589577976383783515926375282163967197096411560633615951255868574781846847017891529018572670685640867516921651143252951369353681429073055691976140117778108305578112507029601053397199691969711879857251699355548717903151964529472730780707558703898850141407046518683393025963904615639774909099545921122925252813551630068857947233851821278564864736211736855989562871930603187687961276543390404020195407620073331200917577024082949685178617464415074618210088181961575543072753505166886662022631264069028710183154240609183616917311688173441642150920268512397528770001229935936601574059288738719718889828614397223877335846617768573376606271425235059267523487271330839009305446902918717744993521597136569617415751283694991771815422213180129342264170730053020228414366379708416698062205243034979716674204971879383834499712691691541117745246951882977265533729747327080662861464760800315922466056946628656937063956249601820744534852723778682666997158911702385330716000112628999886587016729180256941364652372863041054252303061200661925785401849432826219691387927193943856741493322049298582696427761562268438802333413620920492197172107402022488790305958107548984974435480749084853297586658447727600123608553842475266377927186091771967970436195696705833042753030009576441944271985346608767314931985535053156297291647345377794303887777179116895168660345035995353363907985745062681158052486071707747330822486283045061959473011020816372141225442164620983730285514052203132852234786419723329750035543450816024880526301051112343846227640555087898243322226877835104870421355856371387512262932696705273310140815265849881688103593858480470985711856405509441901788907000909314986407997977186985480835678550463434926709868228938426304372840964677235368860059461545622594446868317597491588869693570609028789706128279515150820575797918233193577646941207846726528065673534742289530748321667651959747018939175254161101029061465876053925495094971636485621187365530303461890784195705047641826139840249730604737498652711594079336813222724630756018539145642663005049451482352180811649425996999001650604992503561323088511542770204356952772087562370112126203315530708029959423600528054437620435055982065705263164276161777666016078379336805664560204118342088792307954506826592291045432562008810241225297636541233225532254088273642816307687605483091132615946544503484328251968769503066764726532189686199029316745854539352390006486193835701227352623746663619455727686532895097638619872101207146832696474046809320449368588747242830669698023373272227486605181777885899551194155102420892366435156387850661109590384931803833671790707691161832301188269597819734559559415742067395057661466074526762669835687274891054419009414066287081764342531158793437974209687004807211438840925763264122050439346845577703556581724565559356009358879421676562918715648341721605778532439225906970268774630060742580742962045330095208590448258477426639231804751402129046061460922128831053332282845419353909368789028108468880907769784978259852249124637098478298407366078003167888217410582159656040737352079421664770199704874881603979873681575182381835250085294793591085842751080142218219849819038283849119927953252136250655535127452859673924888345047179977529290692641639774367537002008209852907296496174133060561240830963945556483157949643745038462883510192569658598640809038414934470026758537002747317857552718107008290422206601362154256995405039054197377568034363860544384828478513748685229243821995692793091831116373162679079315511593996888082112363006318093146766043101822759992107060527766478832453178816839123213728705629764287013056232631840463819031653878033596514390009931567741669066270006299064970749726614010791032183380508722949280334926738294784738126884910943699089781398499540668000922798214658506509627782944058620213236978481858798416676933587281665738795010916257231616371856371805102187982060750520896091466830184283310428149525402983315492947169104719811494730054978991052561881426535007613493081082454926390624838974457793688931335383055617023848417548873863652781743831243076369503244005725708006676851602208784244596339891051911683619155242890491170658330593050796273030643028981901558294882016606431371058013737754392278604338875092207414738307584032852148005184983162381643633986048098884668881534135309758003720141891346253647401298367117883692228505555913923294221915446974755866130422272549880648911124411728961477561095895296775159633473411010403745276146736893184758399600885161415478470609020097981601788102633474433958749723936399665380094413423575863486500072335732440393809023426978934688389349526999633722742842015220458574305642591965715838552079567270088052709770001947457420553879245894891668683148311243514762384696185011647726164280033240957186473394881278719508394782841840008433102661111196111625277758369552626393384066952168773753341304112944287301778700428319061926963225201346292894793258123064889861888126101339533095245201414208552186415682868217940205258430071941316320704677766943985700730562891147138397412196727937981093428661921962495400112534367349960518813748174112949224126255364051584475816013518618695933453985043011439941472955096919222487592798627759573669859660448920986128719921947879189958582945900237516582482940394834137783749897236178025922400857340337074997612003287752878587813201192333377800299503122867769260360992391341035488050945190277598313980956846427996665054784926843712677386474313458428964176626989121117105152355317619753025053092326132451880487242215125535563731699067618313154314049901307281119961757379843993134423718310358042060563879920250285398767770653087604627869061581056281641298532968287576341228051650172349391298624116909471760776125039578294348034411536456728390895784349650918427592179745579664315326081843592361539324623950546032703461858674269513264835854215226521071994947620541674034362676287642313511945288332747383619895355898636380068261103563408877642628124669786840799523442703526305514735052789641985644945288571024353500638941937181307038694441200087563877686401808782294900656575377522275978312783648332774217854892206949578341488462506977278407424222665692383791316424717039001973999390056446000126071404479492706176376599366755603042687681586890214239460169209468081253757594990141787943667080638917465014092747485189865981463348587236408324151973411830624866719117727014732425292310565087365461589023935623578110525021341772898360901712591793598046919994889809183750181198620221823536038158651809260509076133227918050257710591810206805256573841225566624651357647340422371915054017237989403547986054842748134786821007856941021088491439642207338915014974732242124271734776479341964694108944508911385327991544284623077904212085557095367704299189309253191712983268071025905104235569927517003667435851861247717431629843973737743588928851687196528309074526910936750449768573294296460121336198043695425226821633613836944883835449018467819889888867761033201416175236709255838043818277208393549330327636774996368485173314053189927595481535703713919661765870089182194711862242200016595617720908465182514560462470783711263566819487510169572909881207988362937099582939454615322485507318261085712942475007668934958528201996641067362417532744288855132873919426007320421880972437667521512784009024338091998604036883785950320953675636641767846757786592466681688380099289318027247546629012493043712056201580703510404210779373151802684630698268901303033099416599717164659416650161774005190114144376261469961120995775445312992394650084292414725358064471291830613589426596694003924050411833073198323425157959667085293598428366592650000149707232284886444135869118411015738777541947201130940054467930391747145589356576008249512733487828524259255199205181188746932483638419555147077756262406272875782811738780054876425901480826479266480382336043924044512222937762395538189334025622286278137550086292152525756526642513702134383429589228823820840713666430153567371173046679998598632712448194814594175131389660978921677197076383863110750148078807227880534065747661658096724485741448515860805640716655692137353983319568972534292828442550572375742495912100643727049995343327430137594192454460263156095152462894275597207347520958763879881502690202906198116304936808160384307376870622458344868070582948917710833422897028759682816513632897253047097236597685072466081777607501746221295049269190789582208651676143590159149548674672745546418656208100729996673908777725718583521646640510624219620533318522322934123008983273367095239237907002555777129196844920088330505144487567005372523281525069921581748977381175341486308607085017700336297979991392258963327583434779939069605808508466943076185200939299232810015358007113489914598100721210244910478437727698830396841883630416593522439343772595886834595925238163498395031593099797791719807759351945683970271227946365047793327047719836288489672567302233932556194051954622444152730006877566698829785225883307071073030691568351168328163369626468356092270833060887643461624449260025079228546265534178540618575755392240606662044548922540597934629077399155636053620049070350573368240096571773651294151884401252326855782751419766480226257757820295087812328593029938870977864473757644093950760925841044032304735292026139213301015399406685413317848403245352634259801510375102125492504396935565088564405585276443829943933307950447476048857274814119484883511718016429546979346625226669333295791647375908719710515049968766468319318641721024758890728743636709108665686133878000819637498720854549481542371335968738462313175511391181348640144181923657921632717676675789861455957516492917805600099970210241927214506023040350797469873679127531534239769375592084811357980670659613260225005302050950958562074969701699427673621471323783028601362159950789082554959259489818698542916605144753430276259968010977168058024610399270355487331935894264472811396315946491103421665397122915327607451593803852670399071596210105455797840349489156227174922354893867068671715124312118294204920211701750816158797535726184606661243392443478596064808836099091006879496371217741006706793872906952303188163511004770780718664514356510223783596574899806291343869956261175133493531914612112808635979038156063320104910952991244133389878383755509325462021600984527877838397427462754979384876637314156713516568287719922862728855428936747568552375413663702864353374329595959074973053256946516076326134516987719260471826865430311511241217386034522434129651199670738478375653381939083051519663935908774595946083809646562479216044165196403701059110342554787954576951981407275731213303642557771541649684909481701446049791948045715558162347861171680972758604379225410699270326887085751721190603841177667487251737887956890482575246066837814696806392398298154451518917868160645811905517475069604864064327496341017889941217006043036021838164321415078169327006368730801141607165370155418868621297608377984896514597833262266777675531249120938263767993871387709685219795141450459285897358910289910850983793766305636340574497200108479947901685588180432345748894749493794721103255751509138724552022368363648220313278796983614248934092693765817245755191258179621072132907766560863642239558871258312820756750677603730288737105576893161287257047949351402136026941568802376011097698816289195561860190749966342810195295951977188657855374899880804258742706807880868046322646267762494569439551564920598210855989205813067915449570738166065930685791863314073002238805311927043327287083069735906029952727118919570799162844097413369878560826803964531068038490079583563687139114283291456271845343088058103980721210856814636490334309736387477579335903318648878187672595850961705632658220304799669194113233825344491843712694427271713220174868599411449233483314453599090515425704237681276250039955105718788659336951727427452444028320719965007461071886892670112190874887800418601825848653296762662700083191415772717755296129322856842660272843551047603321761875478471352714572659644178300549234865771809058556567577064864215803360336324952802899959023994099463413049749763422348265984115282785702726128653248664390414429479256306042552887064782157922886398532939944174202596985983759745981424804314373128662697193979457140566853368197497999732612290709588643013386594602591770489787605063137743886874905650420538397752671561219337976870353030012313282521708134415961864994982934238182790011187552851361722935974720635338334191971695424623236080690773862684938811803844122387504331752654731037506256266829022231153350694408690901175331749901945105792128056446556417451416955057936972536807069087134098951982722190992344849456994370583186304537223805906219968315639198446191897925990877367731368729431438411921039567189267158374296126755087294566509443630214306238046680414482065911948992050454173467240478776506692354247871661498025592894073347913322658631528416651615082226863747285027994281260872026920736284187433698627021087763425441786281469707721883218071167218988969527560342055314892598946890301419483219799026182847557400957261338210806905368209945938973993682156305777502465927793111952507402107202178925811441372184103928238996764025136838278742971186213923192264611131387360727949381434877679137547509441456470134595055401725459923066516302770039817635170667953175834665491521530999228229609151552594825021644806390958683958998008341112721643335166563812851590993156830127280770980579709360959383084231866467440701845132825033820233240369414474023066201913410905657301833112464102559212689359730349196895305128506679275244273027482937577173039523818239360402163326901817265833004329380437530034654871018597720254957598246930147110826564698078295045674275220334086250217711047024865571986215991033748694575865735245181772208644705023368516034538987005646847123158823201070266048429960281542004978954591097547460506620177339828434581716170492731746589458116599684696337424138749964908159220418392981688944624130910901459564285824206060221483734707675601233697929905004493352982667052580999194397546083991804600645202903692221505245270523502721848631068672142991744240443901323469505738486143912666341389041411688844861466283310940683238705387172980467483747449365544740646777932222595054115644287033695293876943270047931281733280514604164695529844683663182206723603009536487965519051818819337148418785976505825102808888722867768584428152794322015512135656835680131561693181554743174498772875007455167042760246493575754494500844287383838076766699715366509315547482017924142016510106487389307546427877389347647710369055819213640802410751440663917866460694212750159863391002220656750523659911455250947607842614583237618144925169397383665517016042677717204877167617448823279405157529435034125998665939311507193282760631976792886042969193840847952084846973767075420767958527566220364981545143594886422488961284362053455216517718693342049438047489452898649460177123874918607120623312342270783885488537081207934085042259269316756801416640648158468365196780624135672860622966463437159284323629614629508354546315332082609445314528134862859281104181254894947747443187816631163380083246974764381785295287533446138757464399111813343442067305772291893832147078213260080312624745956823860717496437066753228823412292258599836890228082814948738863249905893538087064478352601755358244328289620860018066490848411627406711862713919578177811379000051370728049959987066282571161348540467829457470301931572901847597160012703493652126227259946545324323778604613637238182088415342936737902379228757591792089537807035318643154854229464423101116716678631299583470994648491818143484732156659477068716383319857438139268917129386744765188973491689104865722683023245131903056614972964638589413557589323602314977124894600024459454551307249792877123244508052574348287077362514167170147384154706908861055276184061986695142371753827065772389257593865832585170432361209528907121866155404968898408597441424695501605788935703179790510099961612733501629708786522520091026267950011422915365735754428249604197818939599414228204688227763478401837400279524050996273757136420607382224555812042339757192550937378729593794070499780188710385968408150707724712871793048758299806885715657234619421540709905482399839921098348384667663302851289888712325638587579698668864389512630895389587650856674813511178283682407270797716598698773260211917374635768525792180360432041873084107704712053661373534814865430829302032973875254760392993675317123128328716369055507377934367967323666566283136996633076842998345756262292852148929014494099527833307398443447073113942251597681320141477084970453408691214928688340771463691688170477454797681343647440438399033430765683528736889105665379615813341254680105898769868518113867704809223029435337151307427357328127165940772985307864137194794116710735503884882263981058894744469314878442558190071860845448317818300409254085610440442035224400749363134004070282211361682280693668564499458945353714733869276683604306889078137650406107990925541365030185368135661709426096525413420719312259916700716759638993962500994185803201984874149428533942909356945395244205600700087774873458591081211510128447818659319201688802146257808800016458552808973462252355525310624133430326719914916502459881671753290441250908463351505329123151500470425168801580383237644382763519953725311575562735900734654550309430066389575359104550743280451769908080024385165889453034847853689386559493477430732152769603623241212208059859114548268943448028765410268551718485715018718887734008890370577473015703268430183461027638498005879170128795453202506254933633270379461947958069809212358887181601143696280714611298778766567163231278579158120757796865899913758508905728110207656964784519097566373507982945071180175720134246340403364273667756306189786317151770373401609208367671501357973454477505117300349655851365784806938601542412577298219151748816082842351712243751406629456193352322490168710354072445137837179195289349415590772393798663619431374853756909617799470764067942257390859052316988309879503143753901731137820608664850791009072165222921574469206308689261868829558823704605561949989953327645210030276287329086089523661666382272913278781599372102490619558132475661657432883061394701755563926699183929158614968401421725008222961528340499120417686878860952772586163793340593210127841798407690145772349426813408756791604913853917480539739975689938776257830350703074741569127202563439918984177930415965647746361164750463593850053897218554831849331258899884183626266010406468270162119809692552574933904271663883095915020814074417295986384875264940487494356726957468417230613805127961269322041273995118150590025147080955074918354467602314563528505585735536936459450204403273577326047129033155742225031658008614512548083298607148603729933727223490508427231619410183212373279750013647245646159621351534255708876390922362530299949584461275775937991158034044220653311966700931351222007590165986916437962815668031342529543056522100704593934866355904110710609499450159465866048089526382069033252636773032571517381405221482090093833232047058188824359299396075324155824621834248889679400949147829554375777705318124728628659930804836170228097943256134789094459365598715602102771090830820124105929494079384648050710723353570679403073537821144369844485203901897404757438045964868987590309494974647345977720270131439448166024421327711789280534180092905560856416071581329078646949399441380266991599051269061119597017457991942826493699104586084837220181579540829036898108007145249151099225402097711296843013599393689792029953992369930441359378700223624777581681158977843126070161830437093079341349782350296339100631900257746002946075716113151086364245403608787651584079260133498285660154628266111034532185645011940222776563388162223303823373816836237994688534350060833232862244833839625051874314677187452935283049281564581246890439528327080899721600742251908834326793498005732144520636908203652219070966692616058719152769229917002470740739544397493982494563776925863560143161319084409206165616002835385707330554975600138353279376808530464497489272481883104391309053018220350529128377051753373736676466017921250117630177166361801107761511984783000681186557836266186000235058536882847317341387540848047131711635969584192753922227106127956464761637488640132423193990880236195227474671031450707268224951156261295146850258669908837708201440145482028445447443552206539025613857305541960683085393799569953558565259259903923476671524395430593073438496992125599634314763975177720363648344737419065028165840653502242902726280234363379524483773427778984338077270684581193982526883669730784484343124054939473256081541404450960009544303701234444008300223238973764280907993034385457198054966167344717286522191245870445660772549530489847022279427885660973834936732793813889373945787640308998103404968823345727926390768243818205766422479405372604664376240368505683159097681779022718797715294423976406184748858091511692669558634646243340684073836673409137004688602274545471075229170676051406228698893862048769459876179383295103011486477253370740440097264864000369748704007592139687975575894756688544213472845582022721658169389988796105950164582514393388663989233255225779192362192885621622683993722189224208851355812866015668425842359062189352306930783293663735219006737855844946713396569036461707169606249484944254565937871782133670344824853123253786313918416724508533975216700591723600201803859759444691891750037154318748989309528306016385470883186944740244852552600807775159818091437759380577035730087512376873176823877137572013894160064816750143707246458412875387358757131045006818868683024161232873740119472099194026309083195029067225967242054295921850770644936735586727888701372505300828876294396843463621858674224830732378780057013890466032468312380841088123172485119597429096605181631298836321668586143615605409947894897269286986352918383330497229853477667559176825115806664081343834148884676593921658477773226194518628357999011336769415326840384925008286739785665243547995783127228984723854362488882934597432613329782344978677260336518772784300651818428907199802284059509822831217602139633020032962274763974062112114725421315992162018579031439058678567935202655684643927287005940983445968051863371919501321705655162242031319994929759523408117837939543652765409293177924944363417452593681763773932718650243252993380848472643453935056021113618066603333805623631505574133172875815081322838484501647093522317809354108090757542242979884260052575054496770372223644597499186380923730720681612835928965266276069096200003094421901623099905270784816015782492487836389274236242215485388813925884502317711421396399384562526761802091830728296257814377445838307069708613743916558738061061403425232439612267640789271821838518584904143154437063427696026129153796847279252626564686502424202377240753415525297578758512145423537410937843904158881641801754494365429311488040970612702737036472997782374181987459788710739100618268590234458985742570848696840488549219251695711185620925622298692245817592842564306055773128744374145278325985737340260013479787777816077108790929051878653644305276812218043586255326852838600259644457347522421664291164281037414281804966763604128380420157766472080936276049820966788930561636217855305227386267055711506613066977773574620410763399537856972581579189680509726711136013965568251338266974766137044946929060092217511340293245989616011565422094786099562305782359274679302425606466851146698828524814202972172159926381699214757491433447262809821736253877361008362864841397106232580912193493081126461801576581853553676015223253660210289971118518178296909802279683593575208600982568608216338900119175015528050837284458292168267966486404161895890177576029959964372133666977165643190569151718073492256764535778046279584016292981297114457613709908310374642546428274390177233886301896266214245753794402036520832511443758223729805514894682224460682700014637310288943217111018368673800472516040013013640556652903031805796289875716304663407848053885312935555755039088972368879180154064955796574823313302841260793499733913921928282676518336251041915040754856165497572805026302270275881308551037079556417061778003503130728391459237433597202204699328174249932416056110080468797809860596628062416189343480412970475026559785299830533272967328571064605527534271270003918207857906707056221119454469705284482376997960856087057093745881358867996715669693968828176582796572423704468493835842346419536417329296102287411658006142869115655444532114383731118234620857495370153641080580625276384807397604963171974583179333512546020326226106830606389255682272027499577429018158774576122781227849692567576763611716295347989050638735493205811741897367695534842251645041229686418200975042954377146583881785379483097383157131881839677047840456645688521897511963672175554492552059314508578343852597155634702183629462057246126017686491304181089587781157559713164505878704738200014591165324355960152617286631411944523995704311259953862895885884599748509734607055737497515465975463216470753207089184746935092003955725676152883916309708917106555679088281252176384669329662760496359157593601322145844209359802811605224753944840754052387407779336425739719129560497152668739652532401640960726605595248608795924088035012025962653290530522464640905144805380427960771837423612600457283674287736551612685142572252910335223324899174234870444431987310037248438221884857966601760371936157656231578220466527352897505748295751549626512031843466036923949999464812526798578606485527087110939799905661272977051015291751153162862300146299005686422894602606759887958915224967107824585254549102143397190732731188350466555928167841806062125843496091272206079243266601222712033915237396512046584409760444993754771904297693437732808144519659915152002136962481962596557962142326002047604134570956301775089060920040801150590780786381204293335775004713736291642621885067021067936156417210564602046646633140471395413498181182176186767414238312276802575504537058818782568655454615623826845552858552400489699515391182460717041627422818162538006274127287143339709783084482810532651364804041923057105038291255600871785757516576237363886094925117532403108292674730075238111098084725210525324805318805127758429929147319695806925572050219237110089704173672561670025739098197793401540352341682344905503291037791904437453819560585729923082250637830684377246101037885236451228929779087960269234898302583426462678318804627732702408102347568606432886728208075175519697879327252094272111995616095483316191165196976533030503333974155872563568609961713422206325647778969145107686125398896082471538084132295675261059039612305774569926227709219620980280139638723378344265406454955966396594081271606714770428003197329011474667387411070720623793263407223312916577142281918349076821577162337388159275269152203619043739948644744277407255961464961908175727298400687625159231944888181182540515529313890110192437077303508372637944058995520907500223597525238867594372965836803354764549975122016491454585942038368082945730678404669139859727469295710034732508106162333300932877083387142879527086641267718556162205155295367094981668176784660202767825752056586385957149369583701239344574344778604591994991179147549696956492444765719428421063122722664646311464479811555711302533803205189072545236002194378503985321234550243473119158765276837390696042484274722498566776827431817709258891692725065312967863065567919691333314506341447080068531764235865997018278113102580055587757838999554690169627226250220061755131589546550571551715672097642981141236224082111761340449818383511692608118463338902201813286274017417558391784117902097820615469842421949843779091262248458531240901679970086037286747255438482718472092710105947334531158596382477591296809081845254387230050388779689416612208322075330491101992348492295884666787023779079843409058056622760292945219555383660164056343339737000257022223776974330778078279377686667382159292414303305250672585244758562316844995117088655260884278612817894802273906059849253387261884376463616941588146452709667881728980022659018668070935156006537845125931187930315424037794039426301873509819150894645050001440920122742785310597147718117717614628782072837003375908531584611717361809172869537811731407173651164867403535575614894255860844764462162998479789775488250713679850287804622101158238651305332515930589172507394596949799832000157875539303414692640254030160315196999597191994795847665058942475149493216929644951481360646795647737273329926422227058509334434526699701753428341015268599293915276703722369343311167489595432501205995545890989328565251634785641453998300833351650706116609079664172625510490385183189363373109998178526270800900913531218070146167228409285979302660632495207292165983493986535817439700035842070198695081538190882074063683202102446344875546042067162934823641449743358051829630383840114914087712120388501091903199668878938392768745232540136506173934118473226813085086870181646726912318492556471043910001519111486336346130445680354057712540447482955237099840008831399292416283197984398789483022409297065748531235821235799152278161475976622488278406285714658767102456130714965522311087575538658656908776054196670800791505058268618680313886602901406589375606247258209656687688682136820555144337505324423465989785891405034810544040868508754057638557436766548230996375780487919706077775754427963552226365277360537232625781676513227115809308287918112451023062639114476738676900968538798507872464160618275616986238846097123183275613802940245349211490677473475424437833249339190117530390704579714575226785121284246798199452171876402797904319057549921575276558170562578685712116202029056113660624674888119138945556348302839818078927358153253772258463068843947598311608291788573073097288277870518691900743400844082523914973007893542558282813583110274123696805381083341715907798890919091746552514613512117084009522080096374806523419863051995067814903184334822422024123946413060943183235199793095658485397041016851660202473856148349968237999139264036164290239148724891465989619487623545754257380541996976509019353520031702768614543301729927170118078394494279656737703256974540487873565963191296442060929487191326557919756829150044196774495340848787199889574398589739857625394362842705694866396379489250624745749975122128005793037109392304620508806375289671893800063837785221408384447883398974446050993558462811864261861514072171656096946903582852124045650809034997553896891601205970787120587234468899610367936689938424599813207221726149672194048688667197900531680484562754016166408136358899994589959973757401403597813727755674209906143833432931696343319008646410361499392083317245298492944516907235574440948086360948572823195075368694577139638875411450376416580926615845571774084388621793167584429353951036847271621230420865874722092647858657179419812663204494048932689108208779804794297566068622949173026655589878982949950565502292469068960392822147788044601096176583859039948047821304977985341716680462309495319522113711725084956252728533986924704071745952852802045721856594753706286597635362975779742936240895292447651640281462942849754211854799827590161387671065133018380422411341402796541325181611615233652690304556270882837141238230382468060217544651454878365195358301279554021028445428916321439666666850761435730895760382075226840085975892767799182914547140391038596759934289304931444182213320011010563608812519906064229117017268221376816475435282438413462747648116566739781577417078010718200470958716533756849650691679754827619683012913269887803391243300300146936080011587787085779800168293408851156791241581157466634986209767299166050729308644682265018389652939531043144386685269364022632217087269082215943207872011400608308779777242553922355612484845662202005756402994853031979588561313430994790882332543023854882605759660876965447881412897786038468296417718269873473185795788383693444143169441197493718372286283765510131896102903233079497541804510510491309330468558354847237821209435282542211874393128767215423718012565031673431161974863669579991758432119451432645440673020309564534717777875669109799999879913143810357315507607386167744786948194909052703466233027048609038784944170536858086167217341704324539641309098382560345963537305158167248942321180856263630860876221497252737956595031461973603625829738652680655636477731490356050626047086343676853884918170758684659385524698266662235847914980711812845842113175648422593254599131976922388865921513185412807789384878307157163039847640432698816274951080000903847810278408314542840500909897892359579779943212004554778291450379821664013818128871962150720965428796594981506150955200517383580800750612787032631062870180985882454192828977145220434568484654957902028909446621069508436419124527961866473169788782134813747359913153973413682238240038376473581113030848477660082654172007985061443065212754258465825079949841341277595339912789225781397865102655063785514993343400262696294210935716333426287355706708652876745856300873983655117601337792557208932084159347973927261550470744807331914810142231785416023027158199192973051905379608663437196509178723899089530661431687000223524606668182010404026710975477428686769900342039856238315321527871559825388201686422291058285422853618726383907855607765111933355005298135011354311879421753053765766977126132470990606945155827721367774488800480758364017459852681242739545122207321207031659394134569753551265403909171277710893900968274999975009899690795607826250417953747853310928909110075176266113602215628427125889326534115567882251652461136729732404366830437069334165834747620856967194077910253811123246777623615549712121307159470756907684160908732929374325038371161404335392360247922912273339239696881437630215527736180747670455432145742937623283412706412493044368760953451685407653915484457889796791556578895057169254693802679702629473752997106967457543351054530346689955567937060916058514982926329311377972517015226742221864746406100701758696702878068653817376620422160530244784426344692884088915713694624971862308821622945464168731571404211220656587199725299992976656269916017336636692546513503720515960459413423248468361885400121655919356935952108600410325992944193751936907921858414134946244906011928555314041417912249438447726109673199356451339398351956559970818323946756195246610888868147399329990250339793206567101557259727748406965111352338376626946935517991937905373938840658752364358560652742202499601384626969804722826634669058094597961386475119485246651094379123495815763719467446079720252854892431522833972094957208551448841528853967805964010341249180790865063116913080110379385443743401221511452744239286660970846468772592112782728062866007254894160577057714540588923144367407362703681645617947607401659955317783044330217877506191788385833362971822416704277936006315010641419269296692568150567241636157477824657677876477043617069966302648017152307060532913435874010257636814572336774699046805994918981991472150561612070742498195261235353715901281891698655696498158428351235065652107351697134065981191522314031374363332129553639879964300631957137871848023760667148650931128749787910824310649765680166757801861692350099259627203593791508644087670268738758663537080924890139757594807550692045439147697082824664398049658293453121658308835217203263504743611573269205057952603577523095156898391397539435529730618015201163546459275921424449600922346622715574269036849937871559664624941120723432241832977078856632576345186780290181145557907692174331715740904463813704828494225819299050880514977694730177035514317464927183177428982663771491270567181137267114935307438123032722684284197558224036671290783072025346157016775480947673056125801958267017189265531834122013060232294389521543085454217201564524683205919882583122868107353777433960868535163559821699248757732420719894406809109842830152852130079429003621788926107168822673361159883740682450170055488445845835572812479426687957472568433378735169362594533423463102329347646530779062916792862198659806866515622122881355692375757149667853124710403266682629237314342630659241728476522938200603180654655347452904141341601487258438797259773545149351064263438923943560557509292775712424091094313739049293408467474925058622419150433178818799139130424898350199611172588109581767659841629230631041862861184844981259850630698889928770732733090663032339790661649070841626725098994864277608759948604318113334515497098998567218279716239763393078589193350381266628474859013899182404411159545248319166758106912805514747652471112781053690161729658143691649430138187389832305139112171257148546992552984229577023118046429400092765097128313199105383585360741818460273885269573665602667309239711277729546457314928880885587107217319299177230690160025343314406827985352691945260298408945930367203910381597963186869299687640772391414811066029649881683671720140692880526406650086999416361358989410854796189971892565514230077680573635403235582276129186255506955300683662508664269675461799502136318171680315430989105841870930731853120994729080758001271219136431591444077036004909796794438140198375150028605476901873593131066558567472712932158540442913971029645311171037864682602308910333502599980861054455223919960730264729261196517040036719317806753117824769667934616948595972305486333822437605510073533762464343109198768926101946640525027093655709744895435550931289431014299362504386423886768180296371607467471360523232474496899280579560113708263514126750536469192252756998432498119662724325325892778773319735996442365067286685560884010709564769116388077204152153188329529822089770297231393299010002758897882717644255751457682573127537937671389384481651660072048010221831592852495770449317888877197873129233603834946563333047503215543227231735805269640711214557243335222436771707098887874360785405845464154322107762587672688031810060884735165495759602638100863388674867986895884148571559082999095440275100152054163540009745541915921076651411377928983174727934254819144137744936367873940696170906994316884696743491648050882059168329369175446434508934394399185555091457607360877158557122206173390728871446265198400677278976537278972499287584962915003570197739412848328241373186616206303745539126593464060829236952393576891995422997594084055815915157785225113942973000508196093619408365475198429785552829920256931192024175917483057894670550497557384566100092966635032081281266061734746207120827163305028376371271206786806861022881947235397200149773794777745600982281767286240851075248500066326116180809749038903070307761666095756740288086696743776759501019836391945842692596658733108665887949916907508095075341156870257305128956298252087009338174150088115399202475884517419560670677290276705445980070404354093910144980207518555331423059353542166374838766752546330593117587298458875819588692714653738698695502916276994004807714547717440279902200674224499164398113474736971798360580461081511235903309076263008825977061320612216037559090278361798950948941482316757408661953035523657107040060746711564374244846775075763027966955897836048857682764146142813617323347885711614977480427890307894980603663614882699604726139617503086329891605757588730050019742673443637594842009063738734489576519933534600573987697073098644780362007886190424630210188434311004122950429007042120250871968502472026617385846530511637310679540341364840632933611901277259713268598699345572309695858746933616208659521935965954292017508209501186188277239906403340672680447169213694740031397333776572893381033396596737456080176329088471844336579132781406087161392686696316720351475097056968787928176094052912635504772961886801851202752354393942147905882435579569742432389873958867999712870104634446923053379446652189069764704337930977231742056734312189517542131319565719747818091939823109493351786853070535732053977875440245232786742295633946009934859114629017964962521240710172711556743194726082210711927410799049289952879759604748637714960407877255009146621118096560670873882680740803960868699955870396637259486119052888587073420857182986705785927070861780266716796177718848148444154465173928055425852129465303194308132595898242172509272661277074243314924390462394811322056564220305840409993622740001089567928151991641337255779834715286535865002789807449177548614022814698772755642240032952389896135157812525598975735704207018486560230246434580728135015665709937785837836683814744207627420568403225798771260621199989159251012489484174060568674733404934254235510898914710521534971983052758987230670953936562983007398426287951182250769839525895214496856014836343942333687252672833154800651642043112425281845328961040184918305894712371436587573307084984621385797185548260330236347676493027305973370770523984595663175562645441371675101062879689619726880857374846105835131425361119823648576469446534062151789858031175322780737947992682991954127454985934217723561475826349726758620362152347017913926735028142434207593624254196794340997744026308184309933432512485701956545500028453998698401527055448852518634526782903911898375170622919088757126480720285961542972685994851557431065970193002748726793101136797433194263376486189557688278899989590742835200509539500236627546657151828790786047699922200348463009206493641147810123324572554347408732921986708105797079738131370512363101906223855896210433357469482006456564121206584608974712144952437893023667369177980315338385361585406449931424584697408182476604683396980441965179278912176443182569729946457106765991932153548542015965753519329977503485502909058686332930698474449820933676362370652452400649114060508123863457845180125761852654981879874556109421341676086977851375869240372221195611237428954115981886307787421851100054727295335803539453355663293344907885541608167581249896052085928411816819017032364204534032427205041495349907467611667269018993481033755156495862539859850757696024865715685228421517780634258611634341169642627959835340527359482041645258278973658065034739770226889088540378335505546435745455795648841477710966313151479253167118289257798070955976250489296560868688860065706953148441957763523886056616565561055986787487897931802007613244887620040045564765619691578245046161118871692759133765628134087368642096191203002211739165236893228496713541463690566014502679707282355323034564297965323892146138306780062605991421742723110979087370915787673443343970489421032980708814947342777024796879900000727925951409849192806422393300931582732567120398098139037632505004612994335038031094303006656579145235174032876563116309219942127780069481938222586001686234478036834194333125914717174649881400410922242098757778910651795391832403474139504821195570977580291482633503801015685064628373639108060362032588442704322592206067307273228301061321992503877046487573745080230224907867407458080143712511947973250251953583310398197629548151785102437298059731317108545977253251866831512136494517400555651992365015537698840402592336252704058848434226126452908987811118021479692714408278160987382598375755128540185426761929704610013638205653529765282406464146218938947546028803719814021343754025678415705402353772024197510319626352853264115603274658103418859167923331242686013883889821175811065712418778110768999555209482622793091246028261437892552411721707874981097067507783271466503790127668730717887764011614035717446088348013614233853519792088552048507789567002989893721800867070895367462763006910735952414601830600056103086417612785036764988151596004950690972056939454546043724082512600408781729638140171400912419977687556093776728113629123464000751419413012909290052143071863782687289219328226600696693061674971492283284360264237790450421143594902475485418895562888672663184690296818062329803377277159122077657644407153691124982782502367048623761358075234694562823497406172286046757590394977967153755267060320389840294349805654689272926204299302323398033140841309807233893638392070214867752959467689224714165762586268991799679060700869640424927417560017267242294826084257937118466863110480529563077601974166093998728434258562317473956870917171214257167287426838873774246999961251290218971526879863970270435898282138649918653528427761388427056894252825030604303685284135973648871269537402822558285732082467189174300082466694465241506612437488704530447163530480548231305225358553888135351379926870733882172400057467879499505546303312109642067864114722716704297803624328732610014377503522218025055687932527483655426504092726425541558735218560734628595124080879173018142113995376246184566199019332756318540710695443053568553633763517495043582727115287908658707890017895249486549484214236068433615849944293057157902113839746835316454946518590950535636728289687867371760771240789534052592099341786920910445804066845932136519942544144374108563528622788119540695588581861208503114779351192653658493336316915361824376937124886692729825047479460033153622583861007596476811407511706267338003476797178042066078496916791962919759545594094180328613515007488941798575705472171193805289664632688443350838178102547479785550646018073490722772147605651310165055274197073660459041687504169289988219388384761710543433325910340586768571235848494836111597137302866289598948967734909594630778155800087590776533696318994303447744831760292353294743974936064785815212921102593198316337146711877341265472174408046113746842008913543156658391117743120912251738476267903463293727364897450281259696329227358541456318784576715869651269002516486526681944402565168925104573604363604448088275710055814852907206758602113158415846871735363039830977347951864312959779894925341733493162412727119830516807433132849497493135605088949688572368308565371402741580969392607064077082630439590796057342404870619866135345963216095933993910407052399090849761553593745762161237632197041531584427663278555216952270757323141956961595878425047027618181034995493445465660101912602633629590251554662406245345661497836943765064962127246404525145130152758181166513200934709646602404317075616647943149321830489031741128981919318777689742542259542493184237802829946690177425446839935359367117328665489297053556754459533463610027725535629613919320224885097605833676571130972228893288064498361993098459176978427863874583956198484266843970994556981089523581832150571911039888874580901277290098353895740969646517498879603667812658158730700559828222959614069057071949721594006941199976808961201790020037814219188356334111673460771091984749748753058359513936552068361830903498502594527048170626348573032576861227098975426012819963243710380883519569820309467764525023475293019357380373268824848199646693028810111464913463467033602371244416713855059924852499467173217549491382195942696323302446860699771718327836311763534078397135655615062117196230034445600741300922063342600641516277504719611391116928024766269573912458270170523923282931019659392659861253946741667180549707119120012431161562457870345548900765213633185071367320338200725312108555283906823015569184628175589726205945236581394464118012864314198092656296035303710411444202909716282395061690442799127295721024159429359540556124193291155722614575616752399043196382232942440681534385302965227908958844217404000478943996725011172543927252252195586916664579092600373653968197302647022988255505303026618919216535823609496382373837648013776677694458006261616326110121554730749016026026193163439808766339256590942781206564070310275187998714102327784943027562914148274650314231369998601149352943017058418866825165054356046723868541896976936797659850722693644811555581569324636268694819832365339823409027838660607522890872806525172536092533603489964903781051585788813628669592481544913493519616981065952534250782022675025457525279643323396553611890563653123169291206933953090654306223667714688736372546360741208430169714470890716303700178221939869417029159956158757039008957152452634566216433752216230930515760088328337051632312618005618311529479151629227593526587849063187261850852222732675355653485743398528222633160685214504758549712910397371249627682529393336638342772370262873541767720854610194381441135211670438703321720617075179090073769609422364655362095210091307471644993496833196619570497963043221866840911818593914935862705302943733143956542916111993828028069815983369773946279789931556710681301188761113073798643458898080087182891861330613935891095821513113873489883688115476879731329980775848196019192805424931452105723116013897426834095916685149136106550934584688705457982712954960744331012537247885403896554919093294164443076545276788079460078079497350784121848886784656751953602500088385030378117114676971755657887201959551726261340751271539791032865393503792810259325195972608981984729250021150206212285048172833067654330315514582688806155237831988917067671017767064398613258737063193903908216337397588652910434120072450618976914148150312846460502244475176414048277398403020518509062265829995274814117186250451712528097928786412341454486556416529950721156687152199154738276728511073171817703133973155491816807605506161958367816811789449083091469244280362676992032048559109327962211708793560228201073831910645495036942733250607952871112295829782650053078224295287891049297491884711915668091108387010087593810294876412531761931033132553508728134594901378211614255050356307651466411528490370400839494063187362733178251082112748170815284322584827554223390786237811343953175348342430718299414599568360904937335769089179574877982214881270307294866507849691221688275898806942152602671280805832937752262681340417919965851230354045962569748990114499352285722926216647521405612606746653692464091294566204022897268331199258269753131166196268396492479666624048232970206919021668722721953769823608827644509929213792895599506466703875620587177983783951435521624561628213705648655488916158039280187928783519163868817020955635321462999821865290471124076456043722414913320521269585227361234113722442889561520253224639187844136744439971875902570038645523135914542541339805430589924684355315622639563314315450719905935123082816377846526116211877619326491209672653177767348950693525620676116628601289305917160676932835903472693876625059596854699659489396933750365877407758959157672042114647081118626350201192559662365895384613325957449029689809901335072888335004740301437091994405696885758364468709359159172479687741660952099450194580503869153329769070142260201725906672560715391185369029723241453812226957525867149299485503761627594290631751032031184996488304576650343480867306620286449512890397649106008074695662332851385555869542804119805230623342137906670242515246359498094587330105048030248799736546277861901718848745360430794844374503418657788103152747774190799591856344898582239764932694873381678407871039201024949708149434513572226747132573416595817478639337331105456160741984121501669165831156749827447931520794960075862757010864307191138932281243355874709076367738547893615192759434229323822107279542294716472300944831696254073255257833756733532554032965164337493569961537746613278763602952805137727827685410791784731550921050633629475380394282499986686277403961353486152220784974661644940817982303747032273390854418068963783931992879399694929308961774976899574478135787175410903782446184816984634033474062169516702143261933580207307668791849799956765060455677449471918103423730974611976862532715526975926736452041916515982555799213520818108037870020786827260443900127813243218229990489514610689447390989070836573229330757612319389835135887106542410731978304997312943687943931160292183946895688938837807307665105269723953255805203129878558413058401135325010478563838497935613793268505271747184907423004197951325623206860540444095373117796340471322941224295165345218048846539516185407638323048815068107852877791639724579493384967160019761108870452683666963521577428026229075527845771142516855492792743120657693487191531294816736999795164251080996833443455001110884634832631446116331188042740282088530869474440959210778397881033079199247042282904645397254537855255585211665834659436370471554704159772749659904621608224153660976964585608028888105308376634748948408605360283151261662212479228498599640636342467653771615121952796823006413146701085226214936730558662269413655592865381220814815218631459358015616085265966387419846884187781230849889486795552816010190652450626437219886023379852320984593643508287882967834031962446963981596879685295539189133353176701968703046408668919115264917210277912550634147648727102989240672306330307842535315198837599957687179592654336766227717672702699414362685038892876189063606243291197546692089396145190796220265873392334158303825727142916001906580547010340692214907612821495828556942475884973079047830311378277854556254760958026545110999584272427505096297570567898265379628603706201026994712455351772308057602737155269765202171931337712259229225611987563304402862727801972911619903289712528916990126659898529521928615892748554228701311465231681442049402177412113710781768198531525175640617850484476422652086645924102948625053354907583815141340671373859998677162442700992282752655730297207803699366519256108173587326050890261608170005659408073618865049698189033400613320425828008597200924289708651384377571352284466884202741840090490742925953101835967010891496007789505989167342239176939457301077805764307089268506042096393356347497870904304860304873288688760073890722966337774308440954112455568713703953246496967675123866075484838634935648541572309521826892757611896085343568991647894411020293069602003163830857497249361814085522910594639033879958491010541289311176128812563002218206167024373452398960090519361040758193813204911163925772401319116398883441483499386500774219792254448076642990868850060227410517341877600878796653907675963290351570811767813433651300430055124527318404959577440388974907460347848749472628602946787435463613262306187346538059444548273477768848226000808562391925229019264362891545556523980829325890566552320186503995438127443663400544041928889056954578781356777218763124416913658439291728159012578467026185919578677773589191488231411715213535816280024615424007369183189983901478410014826037569204785672299695528093431030103170365027125819877931459804612334101953866391134605577968190758928342751576500958432230471518005197989775386553386597318352670199847083520395963235965304932756724581035393837776865121965209482804594385379374122707528992682259278878493157743647628036736090431983664949904972334952098455333663033656344177535294094263676946465921090835585046895317090323787952929428497318388904228697411769205575812292317571852138452705102707129727968381037038294023934749961971465708975603445375854734364957147784177899113540766341929814391935869918448675519191282455212637556605286144312669351344331441468764268528198355426986478885450158527869973108798514004044499291360973522724826860635039349822540522386382360729911553104185618405297771878922015424744571690415641000254613256496905101545424308106181299324315897789491432470737724837230978542233431723582573539314745480128801039325715600022325670933449261798390863563807063696066113629799844439332074025188517105377648469005594699911493806844162871714696763174786552228708748561234141804196992297345027509431892898050341776113547107791772049565336465929682268045433151647822457248924460932770685305429212874744577953247356394052912000385149897241075999768908704195516772646765790241233062853786517973043877832931781705731345751504268200773270857103928421942548289146212679247932011732371800103683721297528081314208694742227082499599031500463560725202827314631602433511097182224251768636183644874062932952143682767376322038502594157159751391282411962846952734227490598098174496298591227358033599064288629539198843857114849194040462132882190076017348049990050695582088097182473638364304380521339783802568772227936232181712392756446769034058034675086311572256156429018638857061580367777129437125169616658427696461562313740391004605237410648838198966095074002702380491263131453479912857498682288398669439134517336840944138957908476940382097465964984292374818878616626993058683077488602930601133050761671390788877287215654404585586803375242480333600342269768509345520441404531241103877081835073824352841836579958189359209166464294379843889610597752805015931962457393810324708476164763453758490041276553325325609035218629405508129497985974924136141203926966910256310824536949662249656720671108240389049354725873916467128430970006604024193413392392966842400363702035737970197219711744073026506321727440426250056443933488700324260719915669660736729577526038193628903017870231263227926407192811838063704068992699167326706756089453811709236475635415746986660957912420847689211989597481220971995768496048571746840555987415591484781283775935001360945924167243928273448247619789659173632221782367485792980474847584961466955099712956459449155875396131890611452446322433132950428024544387483972121877351343087215391440974294945512530169809518188779559559392884061464018985788207457782307300303703653355210910467950221506203774180523987995079335239642372353162332138198170165026290168576169812464789447933093390214607025125546732899527255529312485380448486078724708406953410771760751106626226511669137296700386006109653104913426462257114409501517587439010581927227066624015503531228688303002292069625190239072252012153937320859144732469601043049087826964772527681677754977836437591955009316451645482293930026597197458813380453774668531466900635934241215232612660914678385690276380615736492384896095441660405451860770528952682742392123511927237067551913010681556501876247641178681608504314981062806186336638536533280072465828870458393921260880339585519743795505237037741078358895608012765876474261156295747269464181866049302358112926028880453628649003721762420019766815130268837353604555212550149834218979642371022180169187152581351731859277623493728641922038496962256433922671590850256488449802440896280821982189292840226842926259255330158119781272497652254123270105248820143629988864639789056264826127681333202112404871098973339121352117712670753524676602411372430233149571969335827997748487300933207035493114920488664610012352951282090459488506934009631314484857676669887964717877280082198122492807632860507196080266700388754726824678580160980594263025448982075485429332289028690710142858515671168439252936336638123666229504892657078934218519386178250048936125565464147723012557836880489210464346865824226476892327164519994719020311564866825363742343739474887721092785281260003175998929197114347657367840406015188769729258479219034221398863078136221993155381388905832684741782203432253740192649850245645823190599513695079701176151632411847124546449173974700022454266356080320971370229797956146671594459667212272741017801366673604343691853215229007876260796069873313062503193265515475426771704570765807271738378729724969337391038841404340717796041729274717026761876728422056440584934915219459335401758442737253820410981192952066063993667061239110228550692849328151853010675953035419015290156586105870092743783922617048000296169802529554950345135010735313792673446689314630623774917587958641213481057450926286738887599316189958904717236994520290809174750429098241109034682372687988446040348112173241682430761368556315293389272726715561255562091383951959216115204583089987544620543536660879958646097918718198517130306539330176608994128074835094547856917291163073718529368953129231529546450908548529622915496712057431091476103897542754702738243518074194032484387246735930614201159560902568203557247721671807385563944298238200411823519537224219038672607601089943562823390093586434052802697615384552421543212840523609558211951643516593286141109605955079178218039334581095809285042104247072496232871831333610122065229017025073752574139563387504929292377324685278489242203361409683018007715485460544709645846830597158784728878954499270105036461476924502839135961703400890451510542123232801707462456425787057824533800641076941622267462129073396679632442293080182902983251113264938599475853360468610028415064791264538313587378082373760200941430897492097934497471547525964046187027928588432885205792098677069036620080685912102746903618821515828280070407818738248778013574380899777855807091905679920197051604617194862871369233292140522827453106611564718600324824385104299716439811486524049697906663658989252504068884429791068794366064044305210925804943558607116452392235633573294249072681480871241793052011367820471307734840776534295318342258239946225371709921224673863756362103659426928490213178854474904511969069371683730966018099016753848081347355600174160374204883262715053121893134052894929389702047033278296453205351889596285350202126440176956739243629365185291905741210164082652079813382847728448860468587590832840962410808570941351776716332341299507325687760809774395422353047409278817841147899562893900894933093963256453648606731733570223347544514037610865952235317156554110027981190566454587728845052521682551207533801659739822487950182901135065144735929298447900904940049521913529253372099839244679974875181981908971413144377984807626138020519221183412249667797959613581550081733186449567789238674365379061926990140199292745493043894998605291356997913475814139745925023740111140219777909731873001925183969457209564142032341578537781345756892692475347336912752457955705981487760687194927218408926714719711697556002259730387478416221776507039218345904536060554862514204181144900623712441294980556727684113767619988201720562249097194629639612072530574009158403318956951472928797290536220759925593681052354909115364385665468490216776747601590446222019297461802111883764007363689415042371916077065580563857540307458969429005546258585536740160210702056860057659355200927342811397714200230078950223741505765425586770283211422524236294132789684642260322754260696389276726523929850455519653042864803619994306373449362381908536916934714139098104231361006428399859766579555993241416368917144320342515660099671569349287432730701124762218777028412060863126467842118210772738486704909477382673693280028971251263959384261355475489168836499491381651071315144896830861102779754232312488458536777742848966953003888937389508258055088276331663611233781756706628063509928475719307940849813575568552766390055142718773722361904351651463871942129487517471025866366914635709867671880539198610520940204444181793830521803148264439632879931083162035938588185082722973035984502502915691921427162336172564164544374138889321348374282972567587060222220639401035070277919549585174272822177306203948595523221972076746352902357939216575164983104800254681406700211226290353231259273252491150704589715721010750891493219756523441888902333413672325276442504095885975878854362374957401837951318084036881722704564293014681487348982853816720216859133059083939128952206242657167063370015495728815760070700068768260640751965612464318024368619563152643113909036888683500686594008701484668614093839987841873536412893584044907420473099636505425526984365926554669343563768637445676979153124472111765614289040043745196282623908916495121441447526684070482621475615293739316868520843819014726273892279969187249600219983073599309853343570851930181549627070096580424566199436622824146009248927867326312217426246210459403656881146652944578601147194963353325264000068160384929409264316424391692756847065262707860870719219702919769790988350254205712345397579160076892518629041236105629266767058117181473138210805726176729332567250989748181935615398936047550186986652311140033003867203692429845882018005459289770748871478699393042319209517344584206724856472576438837494445103037448946846951607284969195721255932571557749335207005957738872134147007122416796844763718857157746459770533064538085802373463213232994057578462233035356615492970113741142497665215335303876217718432603647963576376446632331042818697882817630518593552958883247689612477303713544187863674132789298873829918070931507347160113299264579408726764174517056572250319202471292172008126199367024471118085096224633563366859384628427714913547009305461335425949492906357159966431417454307016360317294117030169707856521052327200511631060706407882601389348391612884965830544107335197171962997783647710185032906465414912567996318321138026112273085014285598107501220578081222087800949207757488143661026434342850284008655774564127265515635229161880867419890255612474644772026021713214312184599551458581240293191971919221514708401704102297741274188580795273038755053699046990750523363772808409863419223064855641343563446852488083830273064555182995991038037112498001830054293859872987413549583017661485256062756908680912114637599406947780689559024957463696581133202525428061323580589759611487715308375956023393461087368660612795319617702023716358441062996522619555155879145238608850706721348426507586946704379506100661065162298351865683541666091211339945527556691280184790647190886349387914755715728859678486247039868190813252489612017754633075280568107383701267867097160317476669010375704188330985028804759331882932146044899645296929639003870467158558653309320492400515921840680781506932088444493943591064374268380541205705226976643593951770095787800310912309710051474829822113782581667776002518766945175388123639885304136960982487008057152556755573431585560775586565185125467416478451663426100738631256904861210483718602962339402437708483901316975272363721089083731465904777011279010545161440283250620749526656379140593841695150734182781047025135854032490448385458123898700493477837209286224424660696096066474846205898225675545014674787702336021551869563076802968535822883270835219333079179588363808195420801779610763821279565164515292270889213405134601020974451360043545508499544223436307799324842393477886311178860724847260153677801431495288433992439516224134697190857932500407437940603404376334040967403465609597701225260764289798086151915647920663570883646368603121029043336384061000774454149532052257892876043907224107321093812910642827368275470144646391778083832099478575981287674810935591060529642837690131742245713220909848936395166659159875030622239254871343126145795409517498912332621558181790732058763849001986833810665283502542049765725837508189711216303262767917636118120120349326180851902502924019980811659505661799859718082886963068119000264655800602186918622853460714181350405677971298309160040681665315125598387886504628764631816150083912441651249566713656007997140813248621318070088857177224336881612253097100496991158911564546647938326871976624936462286222174175589578045706873777527969688298116456069728698929932658287689799795018403383819630487326797039377567275529428182304905813782148261835097714946482426043528670646828571042242918153048862424269731193153525953543932547157063227354248272177691902153629487370746804337562194653429724513425659355653955980693525044754616942729434840943005762037065181523594492772390156861889731003948774353248029283783747619838858377848444120421285589726026703595573731740824866949146851521819107642638490624051974456779406779356761171822869514402728304842587296627020104344289182889841192177664254297241494327078354571441244886133228583776494452653505083202615431025851312472743033383779148044550562284895609610841143451925134316376298939080810191565571965240342999306809088919154268231495855580090957170066305164034463940300766235696116380804778072401431271509062026684293055165626200208985867579143410551609349054747659207884482680434824957151120208293181651965815738272433773640324039738037992955348584500647897920312330934120575303510231400014532270812070507447555528096845874881196701171658383939596735090235884203270362051193557281731497224084146259871927526767140129458332895093261439930899627730888504470094521838977068566027721484075717085072503134414052952707197722362270332521810915634450302958183203116640760526512674038321487039994182287158126615500793742220276297894783218297648064516115036271391841694098015169439232693762426739279703009992861543199997179555821321180204261151604685463401825388670638206761559853255942485534465159256823301222416731858433917587965574028519449710566624544863823217377880654647087930406097585179742144790212759602808825853623911912831925631176563819009701046415913743114943342632805516121921672753087970435464957444598623458358415201926954721893768982181877417804942811750958895868412439467948595262155885468619997953384902065013473996039083511263872947448198594944020312081129463824369305392662326612992345742934724793160713199446369566035228950144166805221116277161904515050750924513994073900712811174198261339166463755938753185420282332929921670486650207397613732714445040138296070871672934016194036425199180332764372936561267268179368495281487753326470466475511243769214948410482607003164699836657288121497726187894899893690148096494924643887611156050925694239384088230822602508729207504618923920742011580939954195022482472374495039649565451123769812684034298573831703291667041436117519938878034178927881419244216367475298756522708330514007148980930581076088939703203023802452119893384107482983560465303504342449246910007784296924032579837795882190888854780051383178510591839268117145199282853410296408255616237535451136305001299215226454008899902333098998303143549817439806634897339914285688796029829208815868337899640962118861698085575118648118568107086860545014227302427131371255012611422446359426172651395713787704264915730698200656851642165755891148632467376768358885069101211069494430571313900563403762097086911781182125525633100905044530624355345440160048297406007046135521900687208472582509967214251521388593967594703617495235455661309794443648787516019742379469761762077156558218185548071343399159611759781191601926875578142866755463229789446383032095899653230472720301661867021101122601798392091093388978605467749888278336764200036327774082661556039196530393308949589709768160190131977240058721520622386041177582202567931393420059581598342734083377672542429594309889111607279460137166276070414930648175261307924623830441046044952811065174892792436507650630353875115504257383323190356370562045454200431695657099838728676855856493860635118339333337121356925233187793705756636153193731675585139221875212002710535713579567911217949910856670207155054929571724653909713318492708832448986195196943365849505160128481698073776756567796023223238230887950937295702253763370063966883917379767635912895380058713207370182794937872409287291231748292972678015444969565740489168530494034313532565879276526474961141276422706411628007123396683204556567466989425319735415948922574099788535832025023744791584387902135479466293084064798673782686129434334841799806776173686618413505168107119373150799920517368289949785320214387833808823596589242494608331020441411655864722759870242728768429566761720161982361461334661902544057470336845481445442296404038958326667292920152270115147632395349580415738323918195610369068338516359082147481808365858661380041676605234167097491658012393717466320048510985481919303585151456613631896091234577543274627445323855487258169917502528009323925923549871005849137044639273579905740485885947410004021434624742500693196509396161310980136666745357008143916566434854875734851445135156042370860629594381489523374355684649512036250483444845733068221518284431836408595010927852039685460666256345132483850189506993613202720045948105254194001067338397791244315246218242419294473490170215536444537640384342784854496625235326664816352153800371414951258875144073595521027215060749963917038282598088325806366759573985537736346316072330901752138077146445303971952591369698101706578972424316358419620179957066780871839627333865838121802289485830108647188879665457227528527923009185925820567322196705966102981187000522831964222386340494207226004718843952012718921760982304563604957406867661011330255544019415148444605173466027115229227331879569247386701766162203786469922580816105683951806778348080580018403054270903877925081328151554783789925130250291035308733069330501447674148805461527058314774356439845083826710385410549077460394774258412490949728386548587270828989657524183772566904981563867030586289851878163339938049259258458066402680213746003646996504406552857392826424411743441288728816283428784917318312002933413829508727367739150037038039213680783075388209056688963111937838936454414955824853560837005502042128679496820221394762591257135269915868961480178550706039057935182875387325751678574058072828429543832949843795821323478392297481301502275748376657234175013600711138975195436649981554567108873952182265878320158117894915845698401390513216602217956231827470927018475122626026964732562452981696377324461167814076678767522392425388676386178449478440289701349052384250650755886412161402992451272247040749010338641516784949534625753300713622221939503767904117669338439461889454162103111938609606870317068407994323592290938288986811831913671541676201713672312229277722769304494042830518436835257426179596532412545153437645440132613455184034156619068582763406845963622285028864005353803866784986109055961704200148765287811173309605261057791218670774018215606943418881479588037468265482561829355548631325483879431399058573620322725144191372491277372936949420931255543516563438536904473249081364421561800891070236882202779457900541139742782310203580675494249967524326575839454017577507570711364345754926050607835700047264784208806966144146389366828425371518396711888225209000012306700584215472560851787865658786947355570718394665477520479417965831904887071595154757952129764755089127131023593051127965522317644282007789562701966879500985312499673442003438590750653547386530607765873089090253214835728578772823754491303686349987343168370911958159556958311325869521501116461605185727243502194537724741861875264466333129546214345918702064338272919070600872824001641900235858162273904915068345361366787711469683918704278768321372961695611673536832030293326287113193568747277961280681907522999220275268478107492203667482673967978563594426291955027388743177378153254919050276222531550135666877162560848135343230495410472123821330304452827379488004405134358585794737615339540330190514966849021124810168928676575205018137456290240050831166052555508549485350572332808442971958688371718045542249500180939174258272506231882701732761307622391975572911243550334568768341596796312166948525369412143858588168025200570255265167508943562089399916664623954515024756152038652018966376462477877350716851157269122257440818782239337535897823993640750717464949712510520633745392088433219785074628865565291505882178330005347608743882596173325773368498607412846891868483553243841249614366232271151021753837119574845110707969303684754368109198554041265360172045055116104683792962550283286048799696891159081867350603123576115878014430836887861242395767612240624756809149073640052123258781458803240163828571498755082827295242731430301677574908114515866296094626181518626608242247559359731026661135400460365376000793784499197652539757654631555377594247935605306135461303031356411060726288257542848515972600027521822206765437717473820176946555017905950051093691996775434247538846448179777222904945620871873098618344507732901369456348503353235232654901296733249481379994960122129880954320849870999997157212505549224317338322696924220044062482581093345281342319766920378548257634968219087578724186096217707409449190041449365341105313605791318839392458419381653121968294275156909503766469592353121990486514072968416647506750340438871828332162544813386543368680289202175588898805362405351151019793013630677947021112864833999857764101080909618307461534291663582788541724892318491342162864014470989854601971213944375991805484670203766100609759532743648555675430362601156610227480871110436985842550379228019324596043994215480622122037971194827309754204096552153742123676165851172606719697948844328110794476677312366005816092329082215220664283984866425541971645239312619332291278063399346280053742684789686648244599616312928727326185239421295150387044618835213307832433937018635659910390344208897717110520190485254367898144830514474543173293186013746497586947958853195485413736348583435409562417797829317858156450232200325520618250554378070251527786161260834322782243466135511409250770685906338287395521395704261515086503539049094481814036127719789974328618796332167176167568235658310377894309856165231208840718635675242123632006650137897014351226436509715135523107222683378091871170842319649408278227346836641332175596958810782856903520983857089480965796984191045644068751406225679243742578404266132713752916373866497075359179622013963592079148700661138876448718788590999307324086133897841301031345225247778532649179370336930438045837967555615227214201108471289214880980300060888313952545678152170879086786378623262041797691534797857912293092736666380638736118658319126626017836348352667365990286922052658358036294411705220182423976619388996279038468635578123536030980444320404170238486667356951460296923091752344887896801596908949242220960884395124263085431034887915455617351212680695757643720593920535602996628809298616740865336080776215874616028688121504093142063982695228796214345833861865771743860049675303455596896331225117504273340410497272291446387489143367105238180754048975091908337861485824770896869850595948385680368912141544098856372623506475946429024203131072132377681564431158351722460060174428470542296358801353755892678701301242692839391365531766519250121384027472155415680009559904702534270255339842037025901191508848239661156768801606110246641506860975933519082687597653418441764751893933903555928015650358867064639155834284608141640342102677697172044495375537339763787682348143092470722092037305474130624148296025789115101948901371759633525467539686541322679728694234730577009662063569108941795326218844707689590449190508297567904812161634026114636030711613077687939177670672217361875620515515891705330758934894065787358846449454450481511054016743919148754971886321058274004627111761180197624558183927838847068331520328222524217825870850009159036421018793692243477470768701743401995972484764980017158184769648650314000338362496012950218328424836159148221137493312488438863280441549760844216768492124662219531182515176363876329250460503036880084616109454787996875972409032672305216632656821566527587917043928191306354786528242320101204184671366184617038327451109699430513413261428213827539196485099183159641317847374243342696024424257974019727282150742756381690562094964421736458001535175323107555439746766417752399639806180653654135503670712873198452604573945062263921457684764670846652138027585055175150710689622954479145217901893526987540800368798402510951854732828322139444686037843126267682650201405694559909152642410331583680871403506595997199586559304482764749200451326490863227999118512514168346431804257633905496846879460201949800186041616373780506274670923519028585212071023435678235162246918460561260033449103109887794347256770350830620096037275810287926267254822511374056415650977146296379125530900516414215028214842005856465389955118668998805736083756321688156318587809671642967502059084629693994163273421066465564928828987184153042073440246927812704905126392062370645762846442956294128607360692821322045523311533492539998171321475229624303654810008085900562683100380920655692615498485983595182366394840254596143860197985438979099650438899920131030647198573940139783695045661693364257868602519510098882289297476511305689746376423958837974239998127337181302410573175744407343018770407034161142793462514930152268688469979486274834376640945888801253569391236663668780250576425067065638386990994657936716065864481716445236168242673398398079150344343440054405362040404330094818989615252456352582831519592625102206668171827381515273466799938298799199619859108360340590536556663776915276014110563087148850716913343866493361198684289220693299170983329550514863554272299952946641459428366277347910517610637954824452694541676668893038511127934715078838305288577201165397796694359558524161318159446487981788992834765428332686030876402776189916906783021109706208485186271591186936326157172233169419863078610953085078771712263330204840616470692465451950324125885562757852376597477639317020836355333375386298750462070748836268839875814458848493365930738768015311581486823651780673057883200827573959028656774280491951005910717744032978276842360416359819576892786036802824756696558704650586458301801350441559800183672918034983167538231027464617512111696789031809894553930770773642140033365247867225891127076479449588359577391977447059426383340899731258406701535864069474372548399197633902738249345665804790400729133329275953221627318574124231437207103266935378491710088970189651846919943104070796166542977356155902875307694117708709405697966175700827160923408027775199990682952145365319608793438368708910421011785980851678489502069317012454917807188812865588348616213582769363669754586851282931833903963087082727921711861757106623290647311682627502683863513947812530791490354985206664547998692875108416861524846386509692648925258649913933886446832596956427559274340639129927825221834487242139960614684321318442676831423093349077453215905859233537222853826909475923988289774295057629256523628436759018874239187417727750553611744530325013483690671999003348002831049696393776781070714286929251713484465692326177174081603868691935838007847969557430502577048401569938701217482443427445702825996973091522928181171963598207733720266555676661412368768996741862002988943883988277746835000622026006576483258490106163020231540574435357183808867272935577749448346981481184374672960838103465856403337569520113172319375781093018789725747290300483372128192507077856069630192818014996163297831819277797818507555713004642619435286085821074391612697917917553122545787009437104920742024871859834819914023616681540251075611436863649624209150481360691658282399508600964938930937668428840828423117513277199778730031781979767035728817601958404248568138134845464858143608741626971225597656362096569711412602554335812586756339939315583668488372068774811213874432747651841126162328426118567430938920202118574541948777892906602070705918797146543855967494899620944271879919812836811433838660841611037489269060386478001960239940205915935758784955384308672818531268623540292071447003586648559057943167404605571553756045613566340683779675624493604238885234132760286897997423987496443098416783342612701355136684845924673426544172920123844757433924837879396599675443390768906959766630245958522234059989273176708951387339459880109577598731060936452064895915597650943547634142133748762415337128775991829948699347873366541010244614725447167899992416932501120765461900754373984728615064830586593166148042055832965909762763598741189737473314299000319766362240764636001013891885483892460817627468104329703479604438834562184503645972343835973721240943614223374158378497299892490532902729212614207798058195199657049508776528811704097699392437426940696674165659888320903596348494742775187469137022852611747314052167203143219080492650622554184222245912402794003690532231121683094914636793921815496924172362356687484792095914710007650896936807556495692370715274099966685064387628162011696948657649671714572514926719196147258744626354711199904453391125849428545969193539414105791958204205535604871036783261358050277167771361369404733840338750438719579465678253720499272994293364128450602804039466047570189021632480777932676249220917529496449022772570392552659357842181180332920568211333236740411529723563368512426903284001881874746143346338435457790817730315505148823521384996866043512616261913206504846798512640152010660412601310923619537573866039119585676194850770670638841560994905326116842933761244392770126688523200289908839771166708371762425521704562673769651809742821187830604886266207147638733446794454955930196698072679467931256426455346881243886562583840675079598223493567680424605779331095073031788128380830873945706188120923479340384392213789755131460741513661352494709930422726007871018548448423291012446426016610867412139031228785338351413168670898227454825122403627460684582955231142945793386753072111758391968076635830063460784779174259604954679231921932266940114913369100489967974626838305314798724389528694503194899503688539449301274895465962549265538285170981709327674644863253989937526279618809567053036134794960425055579262224202871022488238761188652129549856974333264815538761922930369432978731732089517204763822559437874431083665311116229989123170493202103005017012569663077969965579990828039207216586803116627610809480296359926177273024459258653878293500143516865318427572880112860726606605164610391167043953530385403403841667819170355482216253013904196228258563446956175052423947397288791207410121601478608118891025065300413058345528152724073683319581045655259106137203065906372277353955439551025744961796026398624580836138511214301189494199655289881376153973978942296592993791142221334728661089108697210305601874659458744634753202570499366335665582184415848558199143724381244310436394524808301522856546388826253877752074009342165160908567994208340877443403643288680213831198992972018657753019670760303123775888882714419584078077024122394614082462310796464772521479637558015627596208561171687962507794606138270183086547454514030569808008639016114996527499993289725015489776641767661973360343398650977632741554073131590715141828442311413276338992502088242782653246804131609636845311814416278510843027881336351555279427191129996197494453098121377873535795946621701103523221457082526782093625111633202704202136593116368920026752737087853476142245992921647703123821945870490651416212016411578494255303089308795734968521344914371954909924711480725219791843569629280749914810361428350803033688266235468642001825272646794136207622982249121929024453115330386879113706503084667561787196095411537215415319292524739658998870171053026591314990853553705579308574605541779198589267578511704048747579276353630568560785549999590498983165908580117781786235503008030849888035923627539185966335737479028084802476110260924417464300322087443177414305611727801381465127839700259680372004358448674709123491908867303176675315983716667664160856807913995704442489253600301792187562714197333087893720130616032776986737664325918101159625566720792637643194237903012906113268550606574328357790427416152749568236957259745312434039335147711343454983942727200612656845323916244012761477514501857578622383323928555917734251467547906755022258085122804282183048595102187984850741559098681006738397848643859116755290924495382220168202915907892460696955499012231969626514159138498288435922584943352600288480627921099612507228547218740919744396236625867000927248079594867966667848373309715541308618739460129581357519904789405482508634867318800248043666392371634505384814352843534533128582370626487596729213627450792617203165422395075801078397121050385976928169286892969794988441660973611897431240562120445542440820292166395308454180489611498867717291142625676904847599606558714883180705978349735587281000426842449296205646229184674459727479514512638722423083063836538135739287480178449151609127822033447850977730381018471228707990606997876216574514386010991356717828173919915478662624548259446304445069761097242274634404175320737816639835834746970301849052526890500948330279288904217048898505783819950702882763376365991624809896031849832577234017027889401670875993881292133996899097967850554082431593698637793116937399883561089346561369470713163211154047506184562393756460746040524623249634491202349516847802612422334763804180411212252615746732984170825936650763335474079230046325088508084247557683304261535600088100047548199090019472918849780408970061627782647873657166941842665023510785994477463223478489202228443131201829603072933029257903718940885373823751755425137953884493748596421433866528904000177217287939220833356438048257679545935229789628631195343358961185637762109584984948575266559996010674287460215687550267945279659623944690604435944423296529938505504777365421043319908687132902987367844485096813194666388565333291281847650115348381582366601711564800282142314029701774911509253414719043937469847885490094927118592009070233268017292197345130956162182698450478102201202391890199493287845001217571210985759426507473475749359027599001448509440130284933688123701818215614808091073089891805041251799589848892157944578399349483038422488763902746355307014072356105080461664973368804997450886921101781096346405491669770072849602055061893408485282085995798518820187191356134543294579620935235701050496781399867541262225118293502395524318218294846250184203088452122687248823392527894646368709679417160572679085449327212480601785673388137283117736265561461274072412139422130533822492428298375223283757312673175584502355843028906823517700734552750103962927139955339441516452168160813562349949156491998494492643035867033936817346659200762659313274809260264223602504758937477061515347193494982974255980189379962515315297045742787338968693592950813804973519670600682784421757441118361372250985687158277100699636310864895354725165918985731360637180953919297460977112217276532377664230521954382652335747595081655567862746792326757437690480173827389815100945387844859652606739982232710212194173018884720020737970649841482437787478168286574110797079117680924194469667151719692767737905954787929682212204613010605991475971952932646872215407066447650849623251834034116335657163670496093031101246764461971331306776701674835306118946454116227040097545321449109146458165286725794242728298733347552988322630762235923589270889192233674352402310158163151635717044278183540649297482678141862702825889258395478775485875856704860607554018621455321368330753177106296193684788599045537332885924019563428137065883979103363023295423998815398053165008649643283042314806814044594002016771306489072189106536714979286634247463249338058711959437041492942423976198207310351190076991196533719304049305517289550442246952302911395624119362648516076000269562524491311492122377630747389124568064800525534686713936096128314271300666761167590305730051710348710018914983654640639469415304293068568091260355952993412210309006575351680202173134984654151317164545586074671041459919818779852617542514069477397625279167181098373594560234522673714489876925246318673639228726761783967881300235737694295057967530394251323327690898401142674666503432878413771371895179953171936511496197690278280308614826871231000817918640292526749964789211736840148184098186248699276807088943247657487982756516271865198440858524111946845219743223625477446412661118899180434176851217234126124961327676574478170931448319335134368120601558230358139787999079207312361771973338758897894444259948489041904607857823926700955058164300589245283009937956751870285383493143276637363640350231469751142641064436225325453373369720519615335808260415128903120236399123538807241334731822732765381034208165038189887770653380320625564324681200102010568069232478968232414271740735873906252251598332877490364592394778621472382475854011294733140786192496193083168210561161781832615166419344109483110724883371177906336434722996513031101043980010420029080005425621463482937506782145839791315241339786045180970059837038128771953537245745517834145650133512565299189748190416213193530216264560229314325921580998125473291667380162653204933462739628985026164570261233116312739661735536742611887650465040732547063353811401199621694268154626945823940677782379769665659294545018697796269294283831413038894942203155357778683479940269626225025584291289013035034134789795104861455200530703468042001805849211197321601101218786421304258248393928130826807562236266984823796639556671652038689990742601500864949993182870395014526781726411454162291978359923399354711143948255884816393501427443560173601702314637054700325385832762680196688177018967793160512638695498559709518701262540279640590941653313163700613718915228302951501690389682007889899425505518701364582939219352519964771058323397130888938161527151461439187810476607692842520000090479370495893153109702383293541218124077512286886381314747690647595719064303775581610302779609826120781008101337119574574512484734229483061746603818875110082111860170398921080923501906058628302315636248572886688184652677728986568523549266543953923659851868317218211245260484648318800530220668752095390622638927054610796043435639187772944381365775020529675688414299499997508212290410158394460388022528236646959159452061171454087159485833295176217098219577118098533599047975706838983125851327011701807460407494501022227892851300704716863077293265538092449743860798555576916135165813208467566438302693865902823574283323289458530155179321968648483508844762871011261522971378328306021956457719852198520755656061265235786704988043556518978292526761544998049983449553389780281125498889358392927360698925597609101346213012931591801680537039246320750855133280481644060515993503541254728833751135701039330927336308950930623825967092541355669588897200465745916059745252988215813700094432674435179961712793910847450395735719794467725743939399857135503818399864587913266649626917017581757705405922180613530226232141289261986586714783084362462522019577709757806611904595400888027283141734476449141919250505932787968604363134553381254636710274585543832062305966430934388474281395161537725479559274983881316347635233333791149811316384290735389582094716629061364339754466174015783628397553962381360735557289550049313141763561789520292048487778856775198158292362341319822599006414290465891914979765358920621509965831670284279066117050243780934434698199291898141517472054499012871993589188525363164688013725291293038866528241199416116227871570662873408521389729115576758700026701797725229912046385271352537268656256225301792289112299294196499010995420036243231548245307946492039681519836405150045754206900980036256139211350413534135424185449099757880129550939192841883615807707511026186694067072497136073637403750215747242990881599841954272129048899581463053628478763169372203473279249075736037443889419221499871757542644579920524904935135858885601125678852698924792306388685516862691785098556022539455980470135604631500939110074675772193309222391442067633552061326429804160236056252093779247879684482621416829199815308154417894242455833399814246146671097355163784056692619944939783074517569629158399357046233457057059271183205616217454073084469762892560224307243178956153273586239315281547967171635705155201932549126351050717542001811776361244270462933115218474279099336275646654481663678928782213560268753654520601059027369917795673343127547085663919913277041850581320517867894680130342462682880033588802868808473503055579197351697008712083188038911447434258342948596394047945800606125438325765884232173869472841161185361053284869287650441161963316787734764343490882121438621985845760644373941140256732619806881346613667251696528230934390286244619771506438313622779216200227695746970292482847344446706863952296413544176295669314432289153045815731152042447938802287074275177954353546350943284792906270564140755812679344368523786704707855899573769248534537634852975335894338855343912301222466046872678871567233158006547574992865575773331292515610849492662248508305170978802681443259917691158938946256060525891794225976627675225943422115808552949521350256350974645459139886195418146685204922290888897022631389451605649536850378141413782786473928342066194397804734477947239084905248484603792891900894802722548918325100952706473954988687752508544938470978510953216423335945520125112952057335056717570556233090946086320024558949824221611952333327751587092414583417238689709347713047596092913566489903674246667097732485976831830933815529586499551266912696354240710377934059067834647686157636231678391369334334697263590979112375486730798908046317332445978226760046248715349489929741379896710060311093888161010520046979804984525976888005386242399772030412342646030580844699139394956396218940568632244597820054082195898278572869910287295473200632973806884495270886138240952966391663653334670169516325220124052602368748835464246156649918483043148740351958048031217973852171894263534769792605773131067496829196128679445023056120410816796460047528966377891476980600779043297373654333870580992729596963062883878302214087823581159615053878830937978608020319869005738537956745179977606105297640018980099493397390681477557815062100816527785928005792679411482223587466873181755495400237750355744967730786290968980841850213310548958755752732758318681284305317857065517766032439921807337499422316349728289835783933216370279738085118263812180074972854075029891218232560691777722074970285422914655307177327324023901217695847613701277738155467405756713242961964256731590227387520424335788139957099378772699652477193752004632840029370177042248150218710006659308310085159259500512528425592800085396670865354498629630672196925864743064626673762323973491160228737846052459369671011275115771659059815838794284067828675015263216294484094337063603717453017321080958584937965501041881303104779101437729491900345229275276774418219319484428939820069393306041344330101264405708540186998626134578534144735291225233017244830838659144621048969926144829874934011459976149670353614482028843204283516962973404961397102204622207519244733165356899409495120120464557689549425531050924734550053198565830686338784819851126258154269694928168727346049000555736225895907381752706445816417386024047180508690429768486872120782074813378658901943108455851188484038991720670849172196552365738489740429687813869667709018893170449782050253124172558201848139725140701250911658412391664072647369024173142682507202418868073839483392829297919024481704309433705490234219386276472991652516990277541202414136563360857259324578250281007408773320073488235461032309694410795426185836341129060907756091550667048064385331442195707704777862147839310435366053514305716631174641733294369830200468401631692983014854486109522215357381460046310589722186261045183586949111027473875773457863674922404781133301782262541469780538505831466433922638076841527264833303954228666384005762049665301643672957770429103685911678252279540905636173078365889911359894795245739096360438347879521757420103550750874572616106085763970956491574305168534069583127920389636971259918703418332865186548621439341482104097451824271770067535603075529849153864163732815384488779072152722195365521119599045341306429512068115093661187583706736625221318278446060832952133765414466738316538040246060735804990965712287950635124939973518796099749437270738144241189729997743754681738996395621650261875409985990045087177121195698162428752692570086942084254011189229003868145226423449956823196276148028285616853145323089985931292148541318876836281279277510761776621348103635949553785843727457356737287284175473960058448797580347394290229765490303933145145837776063107665839157354504739466709131771517005337518288989872744632730374539602807888001615413639294293529864300559895392947092835490585231475112541110624877873693766190090904262998519197829436373224924126576068658649850326445862732022122368859510280650120397082055485610150407414439874373118857903132220584067381882940341481281818391360875149153911787712709983498833512549737432177605305589092673143731988151962587667374156632913936158205484711917958884837956780209127555767045787101498952280886038858153575984262502702201581271200299943306328834931986104901168282262501325886840304476308232523177204121677252398856199632110192531716753320931959643526724612128311562671225350698390600825257657561508059547711441311456292592964813422235744227405543577986095158276006756402119897253282297595764337772651009371534215389149429789022778013035289190136723940399801270222731326362802892705566194685044523929750323782619583149396335645731699598467857549106503460011896216991864328473615382156581956775435078075271114601838409770875901714570765240999419699563621771306043353412554209277169737711196117608674980698279818094132353242020653475325961394111996867421049416205925312338150985106811968289653586457230153223050546218800069252131064334189877555106441477649915613304019339411742384623394658321550629457703630092937340150175225381477363185510065485997052361986376595323807334190003943140878269502502674140316915473824175808988301070637467012610828931491951298091518367808585682153903401524940524661944024897462606235478292516683326633281922649669255985383632670780245679090523888846505795626777522443700744221822394117477858843373223120999156396770556969506002962843037706315655562093454654852860252102228641726155080275690333415567883539098191931462379250138916067640789755411864270245552518328696528063218575144368471546856450885937895512956128922626287191835833065905477342706637703939635994634724936726776397296599305829814769576856460638064239547448304313382390224561830563700652074549273672714772336437152367994692969044308913819502703078302446029302244038408871283438406391960613239831313810028104982006527942746273029741198794184088472323976771849595694428258110272074083634745699202040835111883344624794339073153434395592053396130399768221039506246046883958881899914096164483838826885165837890718296024059743796932837759756353882665747764791210085289117340227110342827627584319737413208840692290369562975034639298310338705405787527964112736989069326302813478530607785784187273981785605979536673654513743812709145203661603242693677466440042687924753931134893465605461868580473755828126743016286018264750821374038430591684553342621906517180744373224349853310532185265685738154066214423642232933348792787062438006500253487682802329394549430170752341345515842067158723468757435467885252181022436530147314884015652379089416451858597554964214282540421776124938978515561696617823602581101790572310045527879515316068247201521044898965778859318901553097362736798314163211540847258862620805544313049957381922996752596177942292146488337219741704298832250353113733027391883695739358988401912195003260564036749417910114756841304238330752848308931788223530910752796707015119683630294406626535051898346941500125638396278919989063234653224818626276233311197550854129723817129911433144556443854964043310450782809208944604236557315151047673983324115946665888427014567800432584872125474267959101256656194761631979199188564619867114803398078055732940731229148587799607893305630379764471742253133345167727255586493420936358191979528531061118081650217426666663036718313091411624352561429162987823515909133349466340439233505751661520541374248683283169461284116462222303653083425105589166720267912746332465838894033112464724438230438385814976977818828094169022621435460737630272013486864584846671187685702701637371484036670975466841683677896480854218625377251230718515415801090875286873209525302788935878405085688985352563020317621932003639236243900132224681830174660092592727412887092108484481626407539691694539056849222864783522081399512581399347243501639512284040153922753067882930550013146473192611065041264985375653273357004711465246469952119691886964948914379883740715094920661812014542415358424377942029837068061984061766005172052447997067031303463106795409223869880511475010658367594909829490867689250292873758091606551398059215456981316814873328226704826151938345357678935932946984201387444628675607938222943198625069995863846868758443714214546574404476543870998599680397975252227765513792838784344162463263552061521939439385523894941656042247207243010519209473844228464933400635518861308269096188253366945741552118879146790355745013030693320869295713450398509285521208603059875415779007435204273490467214559699209127289743771273999106254745645157441048133121236345269349893398334136677584038967249566467668231450678057654745374781948225726855310678841863815947423164417065026832679646569203339128573125460059532780777290202177920891812407998730336058678788280313582334717077435967173020807800055109570485260659830770699303218015390469214778113989310381847220181981194525056853147927775231027012880516248180763800867513636567810657783428482879121691915699047383330491598162280098940639729729062269022209430984118788708083897047253495437511884690705732637088616137882054796561651970313262114482143769749321483392225552739863383476318094477575490148092825983481353763688802005395800648266384910552867573413015430690723437873521184979782915927773773678518197420044709795441621076525372285346861324573746879486900177813126413365314231197336148344328035008844209156680645450166001519031857511729311546744902397538108700676127292585837790576769624190490696713154301819884108439493787715844995476727875505304995376684985166686911549244244984271652690684339576838938219772058303734738026237383814221242778403873494394446374348119952625090450678450728966774868117759623425936238001354048566746828146703097737602974607524823875741341226009702452074221645846566679002893837222128624314271457628184414787596179977784829409956340958204989450988490013912628078769607552352841822371412566020779592645133892833218383576382509697637993502460035646807423671695988037655314039466332970218322865678144288177047206871747282194546710168874920376378893087771912539603514109178085403797237513457960737788531023979616672260689073830004703980901334487825175761189369880034495259179222545884059222322400747526371824957268292368830962041486545292179136011298592971533433494649337364041464121007030371864463397279235754437705285622782012627430446570307870288703229844890390469008300815464509797793120169402342836196975747571236370803879739170733944417056657686280511779462146251472689030493707098572798035589394762833446719335922535190723786568528510713160241784082984147955574890316098392745503242877807050119443402294361143829934064857450607328133073956664908393058094337610924632072269187689165627114844768517610226254102645395854248924850281655517048224352279220752130647242927218433172547744778718262744990079744399104900476757538105829822526643456383088919899268286528649054650573922554865121653241992863929928593098130075703527170738477273982470707592310009693991230609008242132344449684586438792049012669010319489329448306812283860239930975263138738579431651272779293930642306117318927998610447366794722209572497554639672661161745425002064809642476403023377660894865089415869768100580051009411786099015742418630465474076787813608028100546123455830862914761541622564772865374848049307030401820936960388971038182242842412617249815102020918673299215667152986625551595330716452078504577989712397553367093410443420396534714554112736242904426473683694865222677434558458507923873603732781351980672667693282476569460888495831385352080709243456728164667982084870857939312748941694780691189616297881931156213497674324637890801787527377570577536377217537722315070695122048706009177372232295978246983620334202951000315852143346063864017087453391436226900858534915121539766681055918769084633999568964622566093975161798858002960374099134028531441676990113658746268980488166565545947328664219728701181863780463231602824880142593767822738294540464109296855904806487001844664923019554969905196849621906058838735403521653313486570326030306940078139264825389243217346764470832130344686222857775903327278912349805835030235288347274501949061208703921655428153226103678632230446079877926417091754486620846169398003940236803143553067170300533993777198481741732909519225687587595248081180290968411664552532662686722641334243582636713153095292339268664735246376290978882529265203599331364594627329968772209561789270199644967783679882165852857752810795286618168147190977301814158291949393047166866671187289474189262522285255397187070195420870375709588184789503429911604462100346288156359406315551196883670078845357659428961163314597890831024136890921572397136757774198319303923225216832183198598294904857319802552750504751249209869948020628399029404653069465428670925422902369508633902254033675686824870123797832844650916507494316087393137286276757613372298729246363804585775062590852998107808619908394661696595809444603894949321789297317034673161589849782807101733120794587729945513868648857445012843057267443938116210163011093362798723537915158726973962878006336460810132056666776444044953098516635809378475905281530814740502070791439459637224939736349345469843769619926840567405207242822974075519980806730429738757031645236579986511049741912635635660477774364429942911391945353007462773193048272399223105016094486781586054115024607393506534896120526915054220405790572068036192070450867308887299663971183402049392086093687203366196044688510290329267953893969928863979417100240848607612471872306262443006144963277370589767265063760875204148654798849404455035675886420812003954613775894275668034988784831135706866577898754468059904190633766628527745020109581646275750067640764912500065977626968735853800460395542175627906007587102753709028138770996764003548155076497036582222862253567422912607397547510225887387544227968666147553870313591321155888844891773797777365269706076827250357469384721970708090810915821640305648325758535790093606243934102284065563436351124324719638740066307372225164343093280866639924956544610864945147811024867340683123974437189424302686101281587812386880870617032113191958097410368570745304478929083221979210568469932721678811619669577516305480490625016321386947744920558754607545957900246396690847015292917865182909691818889381403872952652795443587808334249016200462332356769024449338127304143118761512603596623218678647945615254763436095732237243882285709063608551032864920843052132984587748272405100988842335745376640582033244141107622380691779949198790410071684340211438871489930072055314834709815280711381219159002071316513807039725864190879622586427337546256982278316744726277953419760807840580228381184850338184418462836849862197308759064969956611667980580689414378437532998051217003459631311797604038134988834809621740392605624736885447120199537179370803982909979723930675574762410937275400801200655278290405227076833675497013070834150021539055757928496196090614580449672492594962323242593422709014378461369971047684423604988522928469168556068089087368813942472421398047053094154729576743511773190810648849573675555283071766279506722246440574541010752522002846030708614920559956693631632489612909003054448942200878909703256060079610693537455723388409487760515160022304518079195099198086494595670496082342032660335054252912914067042736098166021608059004027439177811821429054502313554296289040887047008237655395397948915382419468266914292754367388312041321812882631122498180647443550332146767201492453109152902635416298943523404236442427838701854675217935728603348830708063445343179795858326210173526246791175101302913921984184769654498618014316226320890366195025742736147161496920661964154392461306463242159638142130443019649148150822571678258657761841801240467569108812447423284866194265849639131150146362200224720588619561541510173402921712876970888704967538853310830290663259892906249915702743204120051084222095181384744645382957819088754522315385972534455810557196768470498867302709540395330102911467438455771839040506244851283569423612353115179427780652567682804648485692308464712348917922916606748077221785464680390004701279553672860161228692378960406610823949181391968229918202629117885029689263022273906851630992316769917637036762123149251136221462085861266413242630629265526387063248438523152038461853922385380093752495737350671144898371384794435180858904361753944435403647595515904705135604056640252382709281702733664819647757238478941756779126052274948388966454715742288797494486937926829792953896648140397456491899513239104727273920602202159574656923383103011593131758912086254363914267412384767119264983749810168071340433382931263369918499793678982529618427882884189920478990165875797778268553388359676227421213202417966572577282555496597114149972950603264727982874501834414113334539141631226989649124644155773177417802602969687954796073718239210202573197078936351476614099942743015127035382436387102207024190557515861028514273295890422995746856938393907381985067291140160412096503980669677926067070315339223098987105990863571637015563282911567954553743280403311232382529417768222415094270545637415806331917571578149121080506158931658985245382516690359328040509318872796784886408450548432943937495830599036543934250838285125741068466141509560813102602660443490864297792488593035078526803042532164887124667712435422979519622184122437331839253217796742535690928717972463404607908449678212351701593650450549171563916335625326108548827826893680436902739576702927633194719657602782274647223560581548395526352282071167155078300808482752215288447087902906921941962967852563565301502789943500461160706392895402416822604935686252251115457468292266019649697896724730362488833234260639805529400364715071933598988629359957556959746591375255347219621502979446887165360631385611529347694036479675255538606843698746081630139097741941228865801855314493302317241614304068134443156658028854795600189084291695297686249080445913695060025379744063017645424653741464939449287913443774350745835349153078043274921634879463761197188206559087801254417321386674289303505623310997276442492099970440498272223818055324635924280861563444104595671084870524987378673085323079692534827562094064369564639785788487247477008537351210893686949867324877478684363109954784397795628787444382838426927618433348220772881998642834137159769344164317950816679506326199401555177075227846726298848687574969518124779858891983480997429389302461903206252749799099842246914116188276299083012253190198649918220040266600509298943388865410400249885350986124390485104665508323598590482400476584623756195975404814779593633366335455596228519049751462348032221789553046075596498820712033959487710853853741570072695003038081652672044889545251849155098996762957853761099035526169373841792291824771529630454263161834407698379889280835958346194764309647933136635268548836804472112478372028088539499464047920770537169977056302993167023767636579799031373340012850160063248221258754826381214833213490116480875658041829456029120836663544380022440633031971965691370755646071281033218018986543951957184473593738079827216116275342587268969713035389007543714825201536650075495714187502749646763034060681709506700367198975529832204647681281512075554034830044397600978065659464532763361992032611191746642451080731378857062300353444366661123553289088696395132891746252793009260265676566584339578735274049601749969681987566891541146870700632007347488627851016356596352183481853424589663536214509473628614987782355106000956081425368695742746528865557075509103541985722774576700671577215189389517398882936196761518338692647552349686002445211910562869383219026974780927635790563100184064318925631498600102704961393318852142956501124432642143821530926210380989623860080384070848946620694193205856613587142377052021114618909549844016532076832179957529882480360678139474053642289315919306064796672310534069425641873921355139737856081844858177694562252653597531303113436859987156302187513219082190097436624925095890750967135684547378722200648205059500898966173048332100921334763174962227705821497525501306634878694775891814139312073016759111297661978332857120742889698777533551110970838345404270812130225655684992016166784738882852533494032555303528176851032454027225466580330697792387616413783493112016064590365517525484063074780266492131978413529126582436833618191514186247458633883688078998296842142654116397735305498027508902277957006875593926459585848931536623903450270562175646859861618757834224913316123407125847394130635850085702543875972024734627652307959961365913769814889114292541925450562619486548919976396960109835725520535718258990469637528114162622887066268584463960472814900397804114676921435689093450623284273395711731544816795622324753099435591989849078431725920074574354503784039295814785844154492837315772944813912859307419284943025217891375903912089797259036552872933278145390122194641647122783100649081369993160279853436741219924234754746166677663268478897338520118243608178304427300487365516897213504399017821711650086789540823328951638158956480114231090118659195467449162188076318072676102042515290499994997785274684076721166201204828026035556418641344707383049602905768953570990211251252960417598287606731910343071635187331656278789170543315360518784233347134614910356733008569138258111072049791977839227440061944744924207040213923264970836836058874927289305242171493737720473612623777965174754819253399116312038571934089669606625329525384575585498987231297714993860630647305045342384643781172617901666778073448216829240850099316964998613216610195092009564541760123134141749588712168434811674522780186164523634567800549799382542491296428872502086095745973739462896667839940053645854522138372812874358430621349748330612910867107484536250435599678159703429891990435826104670156541358274791840981725425108046942046131955163572911573015594267453553549454780369382323178489306997415453741003822313459907147494266774680987007746257473355028006201458340725912722134166985816346675009500276927497812830621122389452485276422794197132677583929472077323354206175414958008611776856620840925474665279493234141920302043608208434129780242075205975604726013080693601017753635581292671547900165619596006602584526076208383052352854267439825227003335415503106679757822018373587380888993775294309289281961326233297726519254690990150005478585355791134173152584919169721326211243772363697912781635035360370668819329154322489086196608396769411472483968845325898020269043752942283795333078054768648890497158573286817000923951274474984066213653899731653328524069026236283008979138074484688562378733912289969609701463796715473797082745657093672280879605338051206084849980748717588705342018070731159310163455205677474694603562278603112263499465173270878840202286075195779138824721109375714461212402337803654012428407410746959053758694509725811932128373266072522054867106820543084182687290762281935991887855074699096032626740959414954790234829746326552358012018271208706461779827306117529530813257069137002518109320934777218499988190685786041084741487423780257348644341550005939299801737802470215298963074503650157135609883594864252179148398425374516968210326548790783151768075833803249295411501145181069526243624495457345155505859525467624129489609525968182543124273389426659905629425400400083419701706878721032410687948798130128345226228650923583273699983459036595658081508543888482552142142992666915606723862547299838705105426510799797805475276085328507914829211524457154585885386089044539238419974665970059043833625058121865844444178493108835254532671287911384222781446501181805071567537134281237106603882872673427451259049564621245192823705551928113326502969217305335098563255075097194688624889903318027759607876093552407643213434871192850852504630551695601481864056794340586419565751041879168462829767872564375683817159138878985741545992141938072364760859143102342762092102163343749962679454381054899489385779784837061582600116124379992742258651548232239907386939508692935853634337591168167184347616376200432844884827716148398867320718504772656730903446712971773685983708701186049987437372804971698346612649576845332321467651412851670802810080285729384968398785819829277185955200253306002540628617351519263330165052276572322274687238284564764336189013107490279783567487055990478359979368653877843768848298357938797119171462977739979166748834642449947963178729945569409374782813914106410400668351975923661380868867773660070764475067573972349285739124776844614860243887334689997815989344096049702735362447523056364821395967194027613787036412083946965762030368851116866290381874189804598720948459844641420783974734772448385087834086481942232550011680585111271675742335017628202030744515421514579132316602037060012858192075253226947661602777870239917420610495639784551988754869555077856809312878449917711482529340820787259105084703358599083289839953618366910765030614122629247551025359127014105706117757820450050616836367021232851229394888322081537423551382910557803580090232098398009754058089446326869110575593605481443898703443783854555566746814735165899543867557304911614490545217262469747354975775712341507467241031291887188647643799165012108356790320213640687954696976779926682921546844086392306898330136992941260573971357869430615101476989843581715545887035643185985366166106284302779510695943685831736548037955474309419938954298042947143254797599531824742607498070668914336149502688911416930220763917121347073118001852092972413506769702531092349264458898077359669842292423756299657768190878914484893429619545184318175160603661791761173534598630917381056159020482168770919377868302179974271560146149540295140890734644675513613486726982142628226777182225895561256102107028307636985553578786928848246653686038768569922038970054987532986004540857317324319868177312577915260995366252314259348872126503685963535477190977247766088011239539976409782841536018078419375518003558475190780130765711771216669951618314641128790078381951183003973336654574109893147080004622744682242644078014278802443732971033180018347250176817970997998658795921799401838325565549486061352336856856195111035645907086343653448309920182465564409216940860344811183101919856977754367851845934162165097242223074065967510507992943778258148605024230651538064225466921330034404321200177684224940146905062294947867639102636176970783384050461399203403013088187955383559554746395698239780043822466494058283191868374989929458638066196404447222025137601584284898008827792331282466267527472249231711346725433228676939764233302783819773027962280909344383382423909774860995424485961967537891736596743497577586456877976545679464462466441414100472039668616488372213269151034339589492589349946264130758764832000775269052421971247439676999570963263846987536097096987684368909023169857422102369720487561613803527426715295890400759538524352625442550354885364909292855353447441145752082106337503708803981447148977816143142090968914754801825481405986206337143286065858260766255520452374639220759507399601901403253144981008059945635783325497196565416036541702028555999153402388041923321865810102258454823811671290822954580078786485212258499301054102121037480021203073348354615165017535049730927054935629934504221815875399978798087762631672945649109609929575503317989722595188227993306454791609476514869100087108238184467993169986796318824519428534639225566661221782513208933397970160833901437157327996008552190278300589628580568255270919860040983148542307267413780233627101339359702064113739228768028457317769168180058920918861663046998398209015497553955688622989871494125617984524555814000094131214177983040959853994203338334425089948872819463401031641405140433729685219996350744110744714542364794548679643455411832730284769880653837839165710272149277800737516105493234360782964441590934709235885903257699758420844112431376096188004373497895733219922041898972785143907019021230897620729459140114005329015414475423860805685768611567821122457340752724345887521807543775428023792762175195526306050462559522648012825869718524050685517013398673574807918377882280667779892003269652256693607626487826436738408631913874281072507557543970956475823665407500237261263253519853234208410450788713982700168686118114345770514657100295084141760195038205387577756027047787321079577359036044010996055877180838186716653880669132500161654608335152428534070277684146051737516646210089806367947664623845017489642510609143039383197250449346465318592289252152583124279437360301062003893744650294775738091806528941726013806556945430014676699367296198985122168626612667072618188801954699767559382556933447771890100815901589057174876947806681422344912054050380961651868235395420145109394357823740152903284579484275651208781316608781978483036850504776712743350027064753148254700448213436760548166012491762193109139778451821821113834594714199285974520789913655361800623031576467901047513151212355502433521124455660299933735452227201206325974204499791270100487755677032280068987014582177000411290255513683166490515130334053697207098378713137682082789455391771639768808369403556112161465466995656503517345516773967649858326171742257462309042059625511279710281600654929127285695474028563010191953764992209344667626655461720318034953678581791824211268371926271920357248888971086651384901370235051384554130461445497129595459593105746374461804820837276317909133846385024342294900057469764014250716437449612349076759878144360217816088505137217556320393297064451164775687033810788609252102799671202698916326350560253009252821427895917468562839275841104016287315365265871512855964944776785736588134391629663355114175354812677785564116702226427238236762794001510836912178108958853793963235910863532734164560524621491943496491302185267628383723062421417272190565722777631228681786573048873396396788823770493117617880481398626451957063521838095884436032620671933957569888023508159862489301315318005434346508689203326576563190091783590195634490273383868635439826714488262200589134462554510905457134423248179310750960098863613795251318999923698505051387816132794667089917046121047501218643378503628452257657789053709668526568105196726663105566850944633608429883864842641794832514225813043398358237976194310714235387893956395765337711562057133551429956445842815392532764705544607669326294485617687894484150175914710672162153270475220576889093970418339812717920545940186336494974303730754225339178011168994469154416522780744497682350364565102490241948730630469192517739774611479692260389203795353472003484972408308052760954722402599400866477336908093735485076990423453014644925855759822786575402674307292564998447467410541707421460768932317597863693468682252183923069920149426845671903777024847032323901866774194617218000913493838320957595474044019661206403054472407706924457677468208694726499332080943053215352975152298160938937877098095578375313976152959983247510943090736387952944817642894720924899691713334732524250089264277457938495284228310191610274937430538944093670292236751489730430509310832864455951362369506621280226431727792997191186111989533361032952089722956391998613743313538360473339445433756355085894970816669216462522180781981855881842681194358873707020567515114471620880453909813709868537203278196519857972345264314438868757976959216529177961563154227047832239997653159323617271605191524633230546081986373853144201564168160058350086388845342377556564699445917732138997523516846806885490989696941421323391041592378455511873146633700955940365253901412929689457323604379110356570128753454236780897291339171505450958859081091394866842347774110182206061365146515816629543098593870365908308750090675402722175227754710169299556142989341305984772167760763519041145568481590536185062500477223315217394015094771893622918162645077105760771856508265667859926258512381603251529995601878952259666278236392705681003682978110224147569369190899513808173751848994805380647862722333046741208220626693692189534610455221409117480509186541946117477325092926090441583300847439563500320482385801927378036150820955197034478213596350035039402654706453532673681167361540800098706141112266031458413128155270413761603310897147175223586253073241356589672989309653862661341438784103380414673847311486372208867195811887287741544427978982566849073811713111916331571303032730484012809459262499993151180117124288692860395824159693212889070823051495347348840917441762310502412802014196579016146425008860160190338950623863663655379973941875343328160055648398813220298225418330656193005801172716260392104361895206551764254027207204852577715697414592216945973116637118381962156436963954966566545935022468457443243318970317130957979624290029654914076807896482401311201137731632812586035744294592737024175948131324669884250105886208433311900495496964533977500212449235199182643397352144439445457102427753493540130039795061343871054428784277137315345521681327486342962727004602304361700737653607811108377457879541587028618543234731719841552445827632981370932143092379403272644883476887264491553424855159716662381587342472132555226450788170305112759675384304141880485086497975670749855723089198270546055603865529671413966503713448499212035626975731824686827182414042902730098683672555625088774680058542892288644409832685266301137348364998375529834995531517682841507079508952079822951290878750295807982452587430342906762675891664426690233587110576066297795167267617590322882452712732559693594702782152537389758979222465280037029028961618604672202503377838504686552604377014573109320302328449699726224583913290896908860586971709044805588881954855755733450113524975971920398276978004575802524688074130861508295430447792396545717413042571777719120086501477794393607410592555370854580726766373986870253065806263785651388086325190068224969534133927453568260570912537189448558405483489641316894773941672147566804033662966409668621559250760487700488565279075359201193564095531873275076124461518299898478548208785966895150332442847668900925880437504699955830958141911130153312497498731504910336274996785657524567911501539480918587138446336157284555867559349816351479476933475449184756142358699711666568066458146653140684004018078897911177335012986070408914304653170755001552163451310399710056152612767039755793526136107231003873640597110782650854643656228753066937245754985394875768146352914325245034344597900563101055482922616623870952036954915405844305316293778482994043943100177013322242796430655271270132959455850092550822195279846027925388298377006571756310495378362993994671934764929607399359562288144234381425119271019987348643094900700129055711306544330144471037589078718509165447694022885689835415880638163258486939148282138429343532620097472994055835660835487105549807871618328954645074270232272671001362318111028100259111395743797031070437515255134936523587375524807051748694363564627389105097163030517046763388567647496929638088109907890323888233243348788450764393520474729723993876404103537633228167322263467079853104346745183692611893461412641954872379458965773361333237082382061195797803376746805938474322932100229134037548089699903623241348093774900639628997371869555612202373624527585690707115586442790935081448982589448219019959098103584157689493107646486194776539354655542501451063438438690537735511353144176231283098056485220149677541886022303717563874533384046276257111108774670394665828641522148301139496785839149375847649651836041760511318599281753785609589790229525660565232762638656424103395641316458028055787598127469625450822499421817110099644719256342958878486406564739975424894513439564067850907886729045455188312356145599553207737201408793824107712847284164783002282953082563899000376585257921874243718006551905054980909288654788613708532898489224812656414739527965625814177553157393955050283207832660548827152508572663297003487222154606752350293693735839256029509807269465490480994862336491723030784545721398207682539423240761019754186231683917645891016389698293840325307023416053765194937990901556136895835254995352508256298046590018624440580607630588857450780918963027228457516319535045167178932161286037479150120084341537165459942810239657146534850347514273336958489182614749460533098127039844500446272237452766655710186917291913029059213853886909939663783701451298989264115390548463174701428334828120912237157109138604379981472220136254984436879272463948967992298232593893322084088685364415693592473175271442457042290881918123449316542779485278398098803334035102280527569565970178743674761974887980684859428944639201019487681118265170109636664787122669150545130089409599606327532439528580806768555271345119588770945324093177711296638770289513614101863782143195449327659366501575648221588226483137959928840892455781880998715814370021259323672106193758784602628314682846543844433367675812189035022492105718720275565067234152648552055087475926012690548328160625443834960955132979910937008814065458388477241397569876493082144795569544559346199748142668693364391644053203139451438230830936246163255431523106967714445239382928331518308555501756939896212681523351743766386951918100059703076420748443246066477617035594791858987947875300627406378920126382394888552369999580404416610657103602410799180610514192290336370193569347761490624869237959231302705972691277303729551613671852370493064264889230285050198598666220594186532449373528206920600183731210244211073030018491904654786327340325739608549307083338748897388974913620620866865237206305115809495599226781007957847156853404761910524507084800781137934794857521427670024328398620346856145001678948132921761410087676044197133022543603052446138392581505365073711222618977776662922088362268046850782697001711653235445040908151528344970508590682200300503933477992431799530868180156287524887230644868646631651822363786316073725924988803117089733394965893967369858995664258119430740475405890031336509563382821254573648017124884131499449581155884129882672528097406322116745696428752673515117905206544285186852932133609463221374930190146365573889575630424905655378832212442090677128573781986825113702231690534100816658544010606196396798364133984855699445248358591861023869144416865388756825339736391678995774625424440777364579923216585138984552135638760427536977320430793350488536925533665211503274327651708246542267322592480649217035804164509867972954483796865909389096287027234395622462247799019463405453732169459777404405393324485893682958998874201086625092497097496743581395693485829650297543345809915363059240821835376919345000190302357095136139091290681901986748149856448344184713417100411969411733790848398201126578491687072751561898032609451665073852864797039966924976846752434603105958583155530140200516783300156128153236528284231014400469018968809118109447340355586503409447342579826865222717616179676150914742166148163852894964352959036848956147076895640845509967030305424735258064530039175825813161486093298538884640179551698128446134577043277858251000320138144817073675743445336144835182129824797095538501804312471749551270714827774705031903570470676917866682240086259566952774645550543068489926325869719882223293622916115736362053060445082658490442748929273728370693978390160731867393481265890783026713925075277598152521168615870983363795687195673449591256037944848008185017652078524480428054541761139337191964475035956064304251138396238787717955815271162547302258866486801729548471480260220436052431055208460818428523574091004874724665732977324832550096798362110549636332639658830565805163473831926443964228675107060095002544894818820394529284461434395535770359105162471019378049407076862317784424005050217803180618060814018550054228838414784467005359803632777787207226907391967618954378400293109586283539328361278703423439737719353636433739872697185806361532800057509133952738923889301655320492579928091662754093808754075695102544741312284072711261717767845770007381781753281165768577344428775070395107583425213854884199092541367946487686189082402199935175302563295153861606842528693137565383498250889381321582748236688215720446654797762446411479076284340905951939837284574302563873978382073217592344710366356694715423390110180760600908072946682539585298600435108443622863264987309679687943681861586953679947544049332249612903882736993017230872710651568328951109144306486159353918258045518130521069766202956806080213202435810433562606080754065770891001431968789688678370859511278373221910826633985346704220580608780067555969942975954556226807123859460557987112149313612134391952911328040738192118032608878353243634583180357347336933614196981572969955752459599788021893123247374940622449080695326600994930744475173012453807362959265624053159136170222897780932734669106656318790992293570581646275878785908496724360363051539014955506915160915259493408235173569358645781885628913615968802973670707112253464300599749086204299831474019596661988641419334076029230507954023450989796563424222918571406886010421594981404404353925648002514849674701632886498072033354868634333137306698642417102844585360048165646585869737743690837449772165906238674762520502113052757710116290608652520033448088103594964090659472542640456650895483353479939584868659260554116093136114991590840174917317932238353449622876102324208894946672511470960899241391202594934823412327720293786501453563719409128025328391358246981066940449519414983175034875076902664123883998699671481305292858616347296536251781855169017756825770953918008490443383958210140428470158384333890401680160385368318871247170033148751828035193841183315620230446693877588482972193019461958311851956598791106947973574128099668453615785201512021455317303451026561428946399782661146275746019855480259724450495398421482922552986730812606827345310412602211111881669783991248334079700876509061830198591426860082887088814011058139290694347085014529612866567347273790472301416494044230650919065117710855938828143423115617780992186052067411345622846215356162156611591234885295118327035803519615468267780497292626538031308744226222478348647818054686469242501269400390475210791666346788206014279631616074115958456638826957293851444188132782188596526431875718029325375363350556812598352562474597923735470410449942205762930103976664488923698150970411802653216906857714633028651284989652522691260366655586965259043735945378671073031391618372896898211639631086450555532262617305886434002411627984108566775464372046379763833312646380633020460485428982137463125551591121061742942114613462156833120570625497527044479622687573264320056039286563983415702378548855349935735414079961495848988104138207302067664182988411754855572639945211909958658588016490275170393363060430910317063741170110469117553325491478607163681207670907171760976098438759378038966840911728466175704647253806866050659523001261269173358872945646183595188913186374007250841505892329321171598522409760381921829501198983361872965264950731906274947858059331987134474771315715402415636891967464258289316146614856891572306686018069588913590581089578754692343430742994345135606602201673661689305640260656267465307059132280105372697862670600457685135967887449221338016184214740936538421114518089757571571960041481215936110529370760263444870258421650259679246789219443560274680989256882577700848061395931381288829362935099777756833717279159244916309220757049027158177543307603085017447577245076259506050468986555669312405142018214631233608991979075603635406575388750632946837640564347291476750379935709294726938474461625391758436970329429215721314245159100446293587186023054868040455005251169589889918717672221145673596045032342483242712789259986263103027659528335321488610388139510996753582607220807038550257262620908767456220794852444811820031004137708484298331119617024939897388141946207285809570889662031021309160284818096260401009870354620876697747852157826563420068300400066220872427996955306003119531034613587874160933576369274453480583055079825600917224554689638863980291515185367649106602479915047640146859571599390457828716784821271186760392339416807130930263540334327834082519573086287382093943293991023955880664138794198229050845427078649213211216141630953707727897893820675124169608399970085869744795620143314334123115643355205602982635712722489423652949070240263490124871766547507988046797543771494016596991761817906309604461185762685696941984042543515752183032995751386747614316797642336963583246399985146670744260270927475566969899067022100726323133851613757432032577526648127683009174362195957451147855489321309133499158656498675555750839163034739046686007252650944019439718922004400992007488106614093653344151756924600844887887884483867033025629429228608444497935288049578296597747285059557109221458112892412826222082885520175073961467560122721590742662337608363111021430113437652097016463335785241295554449743356962851497613115626098364387232863818650022219756374349328463730883081604047594605842231579507204459134904829680143582672453314779762351523430930829324329171854241676865682020262769071393128937046080503903311352129569596508826357283793373741772946910010422230257888679610502874828441687125035706015938779272109622375236951428874287170967391885832184392064775571633276624456767017247151516812347548577248954691195728456506078471075487901444168817325574526378109233484983898790821432909192166045828950967783716581778626617335477555817427616665403416836798141669947021936616267025747132404070128551842775045035639240943225874894250374466897089978744081819999020756523462909596583813008029719992805933329256876294680800534978372642593106187681877656941894105606461873076833709427184161793523571484488185946939582788235625746792452990572521514310152756566709763702352459606330545740959478276268527181185850182169475674903487064967626504140235202836206325586249691150368456956511837463050440697059409557045259191459557505964882215760040715451368151311102272193815938058432428128855674181542223872616823779972090422750065106722362169650466455513162320056505959111524771968616077386428771028323359099457174316775514980509117890903233387198144003794034539075956091197975390656358276450279952548301607422161390261042424449592196516826845648893421515783386918292653363167955165429602636982851847412126026107608485927885005187603310849973130689967642831594649015124323976372361650449850042172860303558331062894228384254595298644706710183347580290968308281475457920407424016212070256982506196255815344308903678312481855037943094850696988086915960384233218190014115205190221532235926034296751972381467300352950828786015902258469226957155186092105526229360101499141857581550477883733909991663072126850003997334323833553589614066906643741914543656733935371994579263020025420354680703155956217787709216061578227909032824398095400408231060648652955365009859769945246707416934500390122621071050258210717480573508860281770551057872904322903502586194859278189091932898277079097579679683922368645798637418671023220494968038448907327894625462890199862158640884023504406716724803900979542190862464482137714811309117651424839113529050394869609097614736750288221592977595641375695938727423111000543517572532529375453951650138794428771662639538138613166380735641385807864698284953208118187306468280810198410936569447962621982267283652146719828205770829931714885773597782808411484737358572565040075221734999535755700271953226742628367122159040112245441375280061456059688478769528414029785883559488926300864216726752265227349965174941011842151555685481563938285937361325619147960304666322184810650571625803428780376346562419750127978394112565825283381728128249412910886018768266124862477993572581764012939771539386984683771115044024673763080876319074985246947348175019560128420823540690272487798723420882640023670150038551715144632209213266320690830711813898267537482834475034631390727415013708079083214609141018476588336731631604068093953195297609205310719389805812430070950011518528235756490413370314672142327476259457188973551501522065041023152194900441140041307378281294756899332282042899997193031374134394153825572037692259479883093715151411158149634774081190633476352682839376727497050932732665179226851907757045905395836338962561888069531327224003627877349617284935273279427949365361754047768678765963578574312627722831809681375701084886970710151395886596607826011611703132807923805289343545238546770784654415620952675342790040012287950970375036307699019368808132144757089803302157120521992965412854697340254902593345796468589934539239692166156620512177256294457795317738855904867993984138224194880743127775027442287693523227870346833658240526880244557922190497918900614077175727007170114404094187242262666502430873629998527510499701821706333197794406453272143878517684746219660884232027287135522893291594568101928275287701656059405534935476655495680564243452261234868027171846589955334621765776802799636371879864609848814032919642866202518595559606787650608604055397416414059329048077739039140532813640720005273684689377454618423541064441678662688300430041661712275347959639921300810888037585894404004045030743043015364721958935759863609330903880225882762701216530789192937847358007271551595842998936242704174201132194783288836023047911628781606227845126030402442122518435729439412662128149357956656651886292602814335556078351899806563363634594571336614618998781601819578878281392269019357958149640421296289770108921011905940910295025699542384840264404307627784274344199374948587489539218180020769271670348789165158962054982463310170343471054186506541420907288379563790095845010433054487352266339027126600904623497395239536217588633633752821705724630552970297901239045449075875167667268108688570516826220698391771481846965027721000411747202272259920374127520907296902472675649686463702537743987851397347361450063631852969212113252857314399643964316278902537791159247992787236191738296615420630018614031286894159056866628661889338799472237837411582372490789056635387825739656256524836966796540026906607362235771816117036458496096983984935992097946222611310500136456764681177586565124796470450835021135714956978263361333660575941236137469180033886286665924550260011398224496810654226360096805538474534943930498179365197676320946269998831681540661525179014204737918511571095220601182353070983763956972815139255729900661311882960689955885525265315215752379333959009689634476597201609320188959739232169953548808414823752292798429180586119364877421499067527026419859192794420109815131331169283221049548105505730505630898500575730518751613407302512932289899748423544119579981657060442039504189490307711236582560597443448858891055140188593807567942325249766664978463114499086339114074571413102697433578499716782137616713527550714044061161523706639942565157617677857814603727605877397707059051347744714476918263804343338902036946037522483139449743836164891699349465531377109141583011941397964551860436417651240053435380369916446305441998870654268772004417290888144060317419274255997069608425075418901831124058226667123476454380467432664624160669949244741654439752539254548070599681611235338861171960686415893941256530188693882995566124880405685310289389239383368728387711543941458445187811294476762212858508535508513956687204862482109906072885023397087938613821192212368054758991354327034292548378476969853168002963718366441868247563126190486564265562666669303451551720244027852010408111789051903151385296369996846707819292366199000887344219622402016280826461127713220651261160766736865511422733864154416940272245838434781699092444905905719322766536751269489546941597676403132449257465583787468296463659354243631653529106581757801713495936317203518558987440832566726930578884408405975620805364625005312213153624332158458090463367805857434710123812821311399029361403999141062782542565930097159312370685369476636243109965407011689855204835853996506061823308151693873388972123208665250819509304082887284367080618635517541946908216257572009386916090638646399873080523864637681337671466818699015345356710841269008680467035047910052833295181014810746221622687852884583433959514387803470133140618575510079662063063112812534143435148625118422461776510599773989463575156056767189783863423685038200798648203368930770424063245083219761288292263443819258818329457775937558084147069673954121902196634938331483895320193731677276817562590946622872929988161693724457854753629871344479933390733703711223871895749989809347375150315715766138790205612102922149555343099565856739227245325723652845007030853295365892751422310833423190583391864774536600781390590283819561668923703144846987267082944628278708308368035283496527564388164907991964366213434330524114794749007222616934924634911878583738108229101602410938235427170335772135145739810681328682109539839525361646327771013407011971984203436687605567671241127875112998558818998468069283991524004051066012936613111797268781510464432658471963056562481041801595887567719679429323913520208260960035202846651170526119153101316964548361667482940213078460483842756756008358807664084489470131938369583117059442868865717353797812162478260999477395754798677948347071975071775270763795954700258955977340915815378479992146387353029627900931427798468901725553974243126382072684301688069600042719856400442350761215186660998679911145835849402488277668177625725117876320029620426077733506038807962381055759415443368142592328966039155811779109483072995848551515795906027463794234484088059352908333823218546246572132248245401656256866918701746558484471003693239222379930038808912256840904815729951427406519917109824668036885000974980178478082883803398925374698691734542386723511777231355721730103869410967796530611499276798867061099944521732096371174474380907455409205198614743837411921313647741094637173155906342807271534912504434169142035489841621670109809349655760035134692548185723795038478608344843552216571166542630536050028833767360196301271726690676889575363477962503665659906098145219962810198010053660188116763331186402516283164263482519982089008589830570878919173387382426641948110567313091163186415419543695990389507694766501757043220200169958968698157339699041879894912844248608313620509709892891405064401715468093212568352784161947457632704911312563505874386256761960935121028793187370278042821248925670710939743139323429134069166842165622937550885245154276366602056340084558394665447673242023223429523290732709053260396491638866036424851538227168403657863678339538453477833002606989810039886578862922844926840454816093976556365398960180453902093344398190337049952829227827507360985544787897384696902764818314227116843130776893158466809791666961591375271918645882277231174131262990174386934676054777584299360560730794299722671870516617492547991211129202226894723304890273541369615086501774583006037673933482028521620647106408616411090707391540049396980571405744539572757245452704441422185752320563716503604790087365660174364003969883444224357019181499806300824842425107175022585497794681781145671011784893245977946779933788381531260958419198420014372578270844990619676199711348327466160439801980842706925192590870443498759151369253038020135445311619625249788729171689531992894987274918450497949961667997098969022477463084048375298531317815029180103488037568038395452556095808405142460841178510393898711751805930172190465361550004202416459096804642716181365072976016321920942691816035791077928829109105583621496314539768125365673725342387911032239169699896605687705684303696015582484128041325896555132306870811339206519161117862703382905281776387508186199253755705947039762217463785180288624399975538462616762276998744172144969058089426650888995082698095012878741650303634327565131672120405585121428214782906769851583544224665134814141208186268607965916005963417111727387708473250985069982581959402048372740351502301199159723786670479924155593823695647973361159415697394666937783528833312006865736148676058038591482070956649080732777689535726527391181283873178214144356797394827149636835776653093893364280581407941866496646689754544937875573682560137483042310462061942278628801770138775189356517268244260673887081547812700720356047811912528010009928143705519963506392422502398575678137253752174218662375382461057968662938590506318605450750591814804606060627174340405145666640349428812404522668172457953367499096075994212187976420757457446709343678154136685659750200018992823528610279969905607795446363673401711696483634616737096191758241474488563644326403732555552387850992272025850320413372863413220439240972491088885641348067485474968042963817464532424025619859333217306516056306460808750004933698250873539915255666837055862107775298154494126702547201126909161958655217367070904852540547286705155093687809714726690740387773635833347876026835105876985236336062750889932139319570847073131644686123654889121459399217286052989994591834713013708282232689974517307803935454578902342530766702722742466889029640606407179684570123873290178847240500274389761702322373898857447978540380371296278987551356071137721404550486718219409710024881285505248038992038232041673968216253048867836519643609621774470322978978184788634363418794386666037866734591313162707484414442740136451819731829524938341587604521686616895979265844326245022976343767074705327064072385512011285977189658492644342850216172098098460650727413931080496083763996691698237656115398381770333040062498283426988161694025607734968404413858856384324870126755468003109879718655685490032614152823560343808599413439141279857046514046726133588302424055464209655731819485359832826694807388908607451566488158246234206002980034092716406154743624040736393407575835508444705792786746342018683471367272810761697008100912976249660161601051453193347338641557932571425166642055285975091430235835721310517847561719640795778045086962625455308609674322934440801571594287957384585825497664487431861673381055452756058584517478631216265769799196607226024294819852924533141679733305433368802474354550622282948562353566456575556589908123411436340485236754146198255563200755848811107632001923634408866647183645960238028323455769577349995663039743544365786468026688726331873351780815658125849365097487474440978647645804355047140555637845681742422532916974592504013208452505462240488982107911137743766342042844072088881260729905851478767818285844342923524895560543570970493180542526780673616311185757076909792496660261776583381162691421801062523553978549372880052916287664922593974094702118407208305511614351258547721718346080823703635610893727967677478251593460563033518752561823752012395487132565768788848696577781122555174807043619814749717687500971147648176930392529768346577767138991959500515181083275503889920170153253796491541562394794686760414931520361133766152032602919750871721092658370712306949341452092036957195973771500195823606945877446050769448661940638969500504911894307062881735551409677317483515585729603286401672594686989903858342522976934864134876003919550664800127658163888098726156303446401155039165975316369447721490216195803056574964817279610114713819883552705840845597930105129013983242355126498911595411107439274027080595015581301820182543494199467483492821997440341772202231883890385962633203067652027493228597394156845115301759116152936388351120368282515663066069980033343267897596515748588876537735113491400219617764618852189287461547964454482688694324650879557518554827805933226094050666869274782429686101083029835119945974110650542169544056453509825472374890210724373137140139327704678960610749407338389120617987433354388623926750346625109823589813378072514868538158213669224374136478611470073022449981330641150120871899510801250394899230242188850466621740358125742296603048641239233569097013244849189359820627028345246765759966909612938583367935489251092918604823024031852835278341533668054166200376049172243861581725201123237874329131554654203621588460936019452939458040629378107367997602084671809695027126097391538408382942296072099660983019335411608146616648869026435470287623918376768909452366796787221856276912801265767492658124164920513515334548300076540988319463926785366582771449257460120104542250342569506790965880832428874121397465378660927284747202909037311622091869848346199008235910756399366181248610211145749963037331751506326280163401037923938495183989572940049458126912483888656169660244763706257378844765401580797170400995786365659227217014694102226968212020081030868935163110583452968563933110294854643858456428643875620401805274289947257209332396836254458829779036877519657585633053513950418334037099836804036611528693071707399421060910493435696671545689748504706809372918842048192380599980419015293859375078857784891596246328075125914429023891137266580324999238349307274147981106628950380546263976881213836052422459919199769233877419373347242174588077457931374371810193176700022852938317344479032908691446529894157287470594891907621724543798005043966362886912401762125128030182503086066567681247771730564197418820298858081516202542341052952754397604644123747581419381392438165464568437083764818378550881767901085538364316805483620502380017118681693658853262842508447087614864561115052522368322829406965132395105583238597013195760801822458266555552368432110012629938728267241448414664555157064715467095292090533723179123386165784467563689434395490384907791501359233287243557100894827557857464033713118252154243489494244329358700249523604207688729505040093997766396144197539795045034860457777696870323028608996258331603765115660020612550084806316997269065928266965067259559311344742723451087326801763963609421887224928378704209521910633998555448095728970209684488621277347915910185784292204180694799361348325225347490450024702347740328722071567077821906075817359687645920808778060107034052615259954484675908086212969960502486049062651010565760723270466499699717378884440556316291164125042266432283680786154809333820097653372010181164964563152093847782069437988158940113239220449113953975212685966075809476692448482484554528455809538091650872261690711225418235584864135762263888091558569880696871707955495083181839507845494920299132561282050659265679469307032702857930291913534822246714566259390750247050359755514624474883472813725194410885547746213099979410208786019168806864768330568213383344069139896206451559052541845834036360936288753096015579293782299514750546846756146691372043483169200543843130463811840598926526640191224954584220785229789756924687513196037902209724769001080010801807480221577331371822639274779444984851630557171798947028500893254568967885914690697038004380530174514211979927880689229865439255159018293978311549872749165399299657051905672526363277321121564889624004632745851412949486997938544643287894846991204548661366371103490121208080355316334792187092118955836753439809889507790603126131005297487426295156382414304405776667844202783892361214039617632207919568331388331695316366922211652329559227625118223792550944132592372492907849764192126440381377535607944627968987335958014272316154177650657677883542376252246953823670178607166464251167756985843370946086815873681914345973965746248983351074793762626922470326538204928523818977282809950793581372769470564580039117116684122910012769017357239882105773232614385628560172320239963655781325343298209913894761452617773002091279110700859983161581215917016829651290906058776569402209331118357789000035976877740431922017653055888449481878030363664064699851944436133987889313767568659886511546609653949528523637073519850518577029865928991962513260834349719746394054818588620242239087096894875066311826956966863085330884266703825116442384559598145508445455149702225430570260592347207043507045652295189073348926497782799739938992640828433911069950622569033121798647908710091657011417617887393487953946060904353914320958379506871572979379829518685356361209262486334021945651863967631320131422485850045089341601452621499368770887959933247378909623059657392085710798488133999683117456466101860255381669421043743995433931080366559202588146414032526914895148071506383733629377937736606134366784303152948675768071769989349127790284361986467588358529659406917712207161352981363775601565295069940200552814792603362355866091239115084960111218103932995818299308544621092893250852754769078599937963974296198959262576673177785927411661406773169631643712535506893020313122651322641664947594475201368288023367496216006489443394508963956371543648340398313474914632350133563730096109969752393986796482762154004705843754657101751930539862824193462944346122730826555086927812934770844107828252804129915320191093618197112929120699857755868817028141824594590260104891560385498637266676466511208904736342553870908257311071520937590364802170207811573859741551174562969046211042351445798792598709641080501516389001183221071396181035242385047914907957265222363216050102552235669668585377007949398979137144578220784552556264078825791438402877013354822644704536533183422416499387393422135811728069897870325094081210433687963571790357870968425763801128681305541542985552154587179596951738068374913451497241315730056187709599661742016643800119060783945474267314772881975771195065981222415199927148441222298276273482240835758689916970508306177824817140259998107424551682377837064186899732200137799454275786546748512506665477695261189472360927088298739104706227547873719245220136189820431025749735319876040516322510435983899947600511463031229818904383020931892730575564553392153224380297047469966906066849751084264217450907373678930505280520548035794376687062091476011222629182494049748360594261872018980733669992572733862896323832266849551838129333116615631219350827747072832026001658276980893342876447014671471303960300152927828481160537669521221585847936317269096296666318635342111199012271011554715910983537265043503196225346241808797489346339467201887653831567665361880920392683819389439115463224918291556255377272386863427502703629634992293483152735861454036783611719550739643846729355761736618778443469894382876263269116211494158735317420312268761069777465746961858666412509753806216681158219989786980195789909467965927830842848695518067576478764206583543981576424448908394643952193087801722397632731895301904092158418159761780019285747614809592673633848693424744923411878616084133830866393263001516068099426210565472481536611944392721682242385091043482605906710627652175393102265713630221674934434200664268403540832068601426609142685672579302523255124153956933920091732744866043778400747835484026486658329358806043386325172857369525826035035503974873979598421444136652904891263132471357373828842465488152542882945906717983532974130788172248184500563501317054673745226749390135567163852665152679515752201607852851409158011904862262469378273903843018846290134280961372264943669105970559410780721312549713522123811275372220899868867439470472983533299616712942851884528239008767950936257189349346983273112313482654966731886961238595231267845583082645159929535793159487758020446158758537500564496957172732013625516197353890664921427145319246389320170078498660128910476340976160881131874518892732863485830846937069499249149996309030671993710042477129937677167013370098855611737471284315585769043398574050194873145274177333617124337469069112011707092095500152566744678949888184673338410400199898011283676343408245398551854553676113692431197369044490502892480206358668138624475084234610656358050551426556938236937406566739873027168945756604689915407907852256104081646192728105942313465180185967849660141343558137065983414573030068579043289038191474758279919896820681566593223926927494575981181995155788555510100386529940309324768411531868200774867849968685444428380060909446168565804237138251620406577722409535971975451758715581523017475163315908705643479671237135973607118248167732337857219599827153738503590967348970248008100238282754956746193653047929802124105156536093503676866561648530853690219664363255149563018437610078242598857324933466176127420646657166065239779158833522946374943220430581990870711017127504067011235101828072156938942271871899042962285636923053583618772660133814721883568597585844045013017972988396722205779472077264934716812452720214181135712473059773926452561658514131067207454855543570122062197631401174051138075752168417420430374868706595533919840001237144235241122094510491729103698576212402202483979631536462598928152478315756739219287623387758769030104417532292636689530045751377955228786796484997348206186465308232105574111124148007499847157110420586494994778162806631856002344852427340558882612251946404464369423961328425486289181818703306957561780990083349889196988537820887957975946392103714278024951493275847627169315711888820612338319171418140430532779279616929236361760542520596418141180577829817808895125139575890476257003586364006879787262356995344599948416973744854920971533390878956029533598540086833749168981580279895015435411152522870078145860305867977411505600165124244640828277606190451171911555807351202093883889868473294010186324333279654170627848599280578596612745680774610918889908803242999141500496775376156455703069266644274529561400082458087238952825725405008469423603056162684046641672920526524018164324053162744779337266670712132728397378456818943745816181412955355079190461466083776079927871347864721964759854878264137815221602930629350334756020812450533521729576123397810243652304562077574539401775235350407222517922971733372683095779638573677416364024353229627589313534451550396587679127667762472117543404818916996071504862606722562538123795147134035463287834088687911569572524923002130961472861599008289452782506268960195492790274690499470357347265455186423913526901214310703362524099187805734888943118291915449005147719023017513901675790099052205701309534465983571431858434967658017389493987717810660597750039457073807483323542653090617545853824136627806026298890520544652988567279374808898987779828421430410349242165545129511525576123331681098503612555820815530958234046501172164783943769796741937668467922883088424602438054325528064632578433245817603438631572377328755234415023616687952648411962835568331591321666816617074849707819684135846704176996871864313610147271403163412456703493910979253282019066585724294818108030198038784426749790882293541968625778656105864500178485773619673528347767363824443046820812642850448710130834343750302084665406147020207392078047529843220356748197252220328095133983945757533069406870316616005290238783118243876975257289742977108112763419733966972778114382655057702596532408842649282976357991475062449041309736678647323243835692212553271928072083551666820114745093404726297811188689407126507939531688905627049988812590642440132371641581664132353243530387923094234160427043390092321500151810966299288218356246870996460210471723446136245237692737287667184184345573075891493711555828681939850152623910356514056444089230427646458945097215406994699067212895085701318916997859788592514393258136439049532461826268896214448548064396443630488777573643778047634574308249762896446557573981927901092147019525054222534323621498568240776700685113734225362415382887391703256144503919904389690153955869785308924686239543002562768569365498348578119627524640076504796058900891069998535200694390124799442685249706957611833448790774718602422386596826081466448032434446546192170327853298337416157456981252202752853618271880687647378534814967341769611198640169488203907453188555605002481602290000797913331470277321994145685584880016824534761802174773647886254221682184565810217738557407982432092931795634216740983100218061851783281786378645726136258149729212963262657076646353657769416607130022059086145883290654974142013757399594559922260031827857831941380209792910846379005518195533053425948783982708130548874539125776504777050800238680784759529919052684898513074394250071104154081517196930400462996593877449718567931536682191577221976143059478411007394750582407053144330294264982849875408745123540584110012006658421729354772269761281582574664524941423664938281479371864598666700182335943087308048457350493130570526083789648908076960666283739468811950864510224424893034258493781009249261401537609533643690981795624521444692531791314822613590444539922897149652006814535596098607756511527262458510774058320371199988753624112857494456466477462797632769719696273505075410632480842745597215094551931259570918758873329728370868101164544995075540270790212693676322756024343141189388271280642865334697570927273916316230844230989453237643513321039762726193271786456556108688991910411726667418259620044529834779127937083678510800079281858086857791632245537090242200765241518690820908952516164947952460601415892759800999911741822289151217830981725316330725967016669341105360149378451310295020226232520791975857234461547131801870093436455892180739142042988723986128255650751428645373079770337884921463629981794548860365127194166980863223242110437991349007655799045301837530478880691430453822788639235167986803495263746829531059302090742687388825970757258791451631912984695919881127518824633183380273040028201845286009542809910838906933024046782680123326437903108451772345826719464846031531500402448776196572796489134330447078060372404714179753523694608093031935508203945084680420527340179127629035990306281563963598539583194127211212076589798372652934351825044467340143996523946652139438087222935057911664998638538391869687316836725306257024852450789506991463462690698246966897286289611040264543237138460855845420611794629271798824589371060036822702103503103707784191777996379519141528475314600050046535355582010030991537683509796486259618930376816223077393228228298817050980757872331799889960798720774474503573013703632421954365304114121895211305787755841851994170648633390834071093109527883629039045059892998875631574163504953647623968356499465938255370813910851131659258696569909606906775143113982507008952552444199783358653086054736130021198609769670964946532452261482729464980450957735353710948572382411326885009943651059661812617249503288010265762276743347693121277781640728532248454708824171130183553250479730693260718425485527025494938378189049500486100267859393308045119243842481724134667437454593250264333696168370916186236628347054767837153538290456049681624427778068278970080476058118746170540617534591112772771372909733442759634028244788124408955811773401581868812368028281196368176811394772508051014887488410271377953585811056883546183095985061785916214956205146412923478791184730447417109557368121378330848474668022464795121733272864716963634470922129128906996002608700628102636737572649062385578388058233190640756788638889382421594032613705183799813550870755097582939831605711993865812258047114591653254243985745851735850798869471260199174823330709216825168656885167043733908923017743047871304733938930924208725390537620074945650451200577524445086178052307968882775437126753017456010936204990133794435624960903298572955506983173718199086069811112160506824792877797465282241847305145425374499861550098364036222777816781552727425585947003197334364992165448779816451337042967093667711321319565983777449662800263090688615937795287713116301436925307012694475471449929583691326461196801611290535353079835302829408788336965354534384041524039318198445488090832151523130063816882702408636634092132470783680184334683557809948874752639220312183372082763796681848352712772134191255486242187769355398952652048905801037173414986821851178338440692774630180725686975684975327587945829210040469382516018344601323875006505706901167663279203042286829391559242000951323290785531752171466644125593637700553907942555864627669962287387798455508630340258026715279543641835697065596568354548761230746423875300504005835037132271912892322045615063261807736380398837012988832910091520670956236244299394557765925924725747996771861989831368657282361780971880760772953578549467744809886562964752553962679408800627962235152547574646545089113354562731406932040421019367324452870451907870155991954678663993007312785191713594028326477255722188059343563888475454710704947978636882148550965418703123966052285375525238804273840854850198443650376441930489780788733986846531991839205719846800951654623507029000759249732480099453333867056283690068033664146856132231566985101634494554039345733363034510535784824840097408737711188959258113121834331668940802128619192064413282341431715844612420326833677271670745987057633879635839867931610587765743214121298242084799104800481708868935276052605540723601294072643856332133270248196439553885292699505582276880598751288243502278445793038936895681159765391119639586103391761010175056990774350969900762836117471804802540115016580535066196138595065204785553664836127676281325809578975256147226002669298940576263676548806147573409344155866117222492002855176173761439511967460789030146934798177281586212202085891481277153635821724673390990777439543475270287243156110600297590664648128497905703950492114204862761530327731610350023271516708238758805827415926657465403000027209533364169577756892795259805051710267258419140298367050079248785734148647196074186290932386918469372575215810801632547085338672852040141958560936173034640919901602391795905611161441959713061110916293397836944303758830008701184990253710349165888059479024798174627917289422328146466507409493001567665304157012076789882785467807229754598501201719814932138999787026394081677088492578412707852491275436725699853789184868725342784604686390152939482281028210741032442647158574084606092866230879859771733933080156823889190279816032352812345451690235768906696927288466421923341199996386148925758851799713080114409003288132395266069800232487937377243371495976449999711737822312642273952388460611770204991314816111607087969011892772246127246979701316378489166969510175374245277474200075684012086460678637915886342718654810533306226734019746772763391469044248165222897999984454210489976002402231414139167781337321742130448077123329755405261670121709884365874853205432705323416540599952006292965372912617183052601711791518376236548628465943746689702544324099792533065792653315630111329979039715007524730624748804319177136263466582868798554314408582440031403891508049951190233105849210759719944748568349389847562237531543693324318007469817312665071294242484046554470053909943782512342489819270753560067795917048800325404097823510554993344385222433520314039999589462318489216020499242374461638965665724258190598576624505119278124854848641376725381185864780703848448040699163881593843147299519747210239469285626978799016639060354760067826230317975577808670178020699113953496254940497834293707215907195422428188147833104183357542677278872276290468205450298123989326253065441037102435266926378121297822636373522035656180789074824710943630381653504782573864358545356390351295736923766599764520323026243728354777505578165131087883419161503104091119709546090307238605429211229719488035326623848611898240464666902977745355751357422793667520302465471867150141605949747359809458354671745674107661154532038030828347159111476512221001987999061652062294046313456342607580758303341313663032174496020442124277173117011355158317065599307719572083983509407659710446790489972316510669894671416303086213236320475630643886173923004023712736410840779369329143139826895395300193901388676401771276423461988604752395476666416598991796450239250523146472247973803679305629632256183850124095891934303076394282884572796634521270296926001357338527269243210698567104295114764041399913265937709696723195095641133562816519641279814292827264231491370006918998837708451044083280851805353570255135926922444129532550578589136456377342324956205279985754727231451001980590313595214308522758695251494221318267792450263307528018959097115887824919679263774552394863338250036366112192191553753456719572182738292218548855507836190023396244382378078943376314730241690050926442129697142728240523595087060086048007450866677990481551669426818031293377912096645814491526919124098227509964413235713945680804665217049139035757213218430550569685493637450122205184100168346268199307880954415089369794367528331852291757314132759392680065736733966612797586352484364593484563653248468894784054296827144134131213870112301685809812977068470171927105229355638586655801914126564228262324974122030409190876038240819935899034817415877611338709655438022532860997149228546471171057132086960892677285401330439156280256132219171708617605886085543931923593327888146859255293592129883378638825423770926780521651994628303523588139741549009259975282112458689379600551337503943945950386315826745998347694503197775602002500754114567221271886028786473859933864020632158276879676532967015804357657861520134555687302348654241891020263526476872847073133004350555716034884418580003140074181256335783358283800642601474493204458471429384706382343637676958795988962157849844458874078563936417665104443299977243432492284911704165072464044803004352629651211380352525024716426329583830894649690329577120210113723839631386859287265089118454162621441757821381744172531565439718032537550481272522439095556655568221981346002193610243445735289833998845432089269691110555653603765159510938497606936262976693670681701095187661758084760137994564810177567233795427763765044436813202527821000796281391167344705333062968619424623615548904185251710366749876013387225690909809018827662257829895840271617136457177981975457609320019996560236635685906988329671850966109741880037907108685562600046840679823336501672773925440894294878184220147437251793539674217598575474714931909336642638348973291220101460748397162860675426389221641516920737094113497219768696743864003605840531181337413076656976394336400430575987008588244820686105535752821129588315878329871519294803200261397957419204757658164178895740157489863909142021339107023661356636979909613229803126872893399687020250912925709012456758795001909500079262053987431670930386699786350455488320425314385324317533290502450404161800030037439306674335111172723591599448155374868895844072888651984547076811531128093606299361567064442971892898258331201901339663849402183922514461949281316289385239304018508253730191077957039584079354729761846587327976022447227363210854864580351695480897161770692927694640903375120678409314317591366513803573686767081074633974999765097811842572102838637354158723706391136319337087261508745932350647353884708845498945038970134176777787408812359894760782162688928914927282126948870637175595133637020896793138686035578809071225583337983972413860734494399728542405861553699437538671795473380465330516943032710011474889984556879394187357662217075686904115336265244757496778472172987042220787220594776906931603804562729727342142941908230412216697288834157920018674606346011192908296144076694421492562190948335072248873253102581345175448508680226400042494900334326256855933133429911117134453491135514717691173249842204932592750439203860837508030213550101877891637029291675274877071665156920615969737506872867391670506540756775442622322412627797091109887170553308230959579670603177430868633745410798128576481264821314914618631036759754133558641374479937290114551712852383475898211512886580547973655478526576620131337828136620311067152239744370782124958522381005388049023220590114745587071375606142303158426520299327284915889290228801499302926110937238439874935888164868477359844059172993564452101224880566584160192121205589008643471054358476897679721019232682604295446832222069983754629311587440395573156877742378365375521838507912555296315451462626718795408272461911353515885867519393930241006174451814698182398329894490613364275528059292654565764192048127214612191956861131246388528521943462874144744798222438261356663846725049121835728163904696970967879356396559515612313290842299989778820851798694096895931410009297239282851182784999194347455165328127141155559365436283644989291599465037968891373934770408724983450129491765128865275085258381736290063972064294643599055884774738578696728564155963751693345285007250549017191660183241542001368090636839883357039060839487908912896149972315784598780982071941640588593545333387032901835553638726820562607048850219403164187445869142861498637062325325935444698832525065342650633690942640369153567152365990238796210982604925426770553799254280899879767430584572763970765271625124783518714231637545416142229456730695443496250704775314020290701314617377668239641187587840879783066190007753797349378765572736007661705541114279936387012864443836415672071645151311721259468546694915940801393471279638357226028731326380091042931017780418260417749221278141864196992089193824371614848260286000195218403260743003845746547717815213177515690130253812976620638570384110872157977772620437503947266171574866008253906146071240779431936844407246288818070751279973013201495771415648285922315583207125525807172008781985118125247560174614259852753107340792576418367792798696670214575086661544140629652268645287496769905198376929500404135884475414720438511252213541815846607733905172607322506614939530831710930646138749741233482664502146304679497073310176128206195802264681157038378769369023978694264766285560946726101340236110458458528137125938659682807758738249003081386164217888066279162722869839730119321211939787049595290718668420928897277739031334022108254636234953984189748120203471428540149544413811535258443225411463814269956112503750872227117342977940546085020484026203439395087433750310990639412409333077114680445527749716559494646640114222460988024354737406260972310022546738952051820820363757346709448628365979664877453648491517392830988229468771441887053010321113949712544474385148847859575704820264719761031368253210992581341919722130084174970556138483612241681312330545783433334184128286320690717184322662446027606121503623022786420035417316642078568799048411843471399634067527825518535923706001270291373336404193503931082295989634723841997405587944956005975030338489083204592186673772897411017539687536805306074014851031849326310345345097258349129242049852338882652065067100556454997326639654247885496784366773399787316976952576997239277646002988191865892799639560305634776214691506826652574251213905416001366849202265955777558360205072160166190189313921265315002809383397610634668854518892347404563484354631023725251936695466720403467387199875263895611104716969841600688127736445630246077585563187559565532167329183478308533770727609415519624509035175189518002330406119704646996182224327639328012766806027952678361079458380885219732679066122890919500656439859692314445281916073857617888130526020850384346381931105856365746947466676797970267009935818235548667354370483510312973384082020199392793002533364153840819510537609736296405120957548306418529905245470321804819673837143947547831366466476392972809233325906523952999751415658802081693421214389995514512127224048678455545605663723162312533750273299398544273265754778902953351953981523871117668975702285461414117786259486345032439733786452256305468007808742821619163194726347562640001067513338379380251765196408044597495559231377768781449233282917990952173846334925106577085319150389362085028319585937543146891802032987062769360506958654996823800680083787297873805731840711567683471750005079366742628313570625370402917714851982710323450898268047086684708482364536242519862178203390416992668790526166363977985631201647059524570110421050264517969354501164667414955362551014936499345345235020096135863046550478302975486797615441824447871955660219928472964337842202196225330416200917181823135119060569590636814181676175068888598681783921482026198555959492443811425820893043674142092234115833260858141114238837162976989828216560093591831985578771157378184925501577712532149468366208956405570215218863301045845517598574176839060074118230003786170186571141900244526437644299069131628383531382686348199234010075132237124206084223646540572718890084024163098451406763987285911122080763154957979367196816589693541709968896397050760778716536718507170989624307100557303015633723556874511476453166114071309090704131231428340514302196103852021473888433375947613155128585117060788316904289363351649941989887381502087543456606805471525151730853719144243945488976011543755819031239896450932144868390749868275926827154711220091741448058968425735642162231953616490333252398601935016179832552381420757643062045829225645766649300434236034799766216213924653704107139489000354167305637832569463296082041478653172408221543677635885391455212947104707488862637897223915215057122282004311884790816762770438761884863641643758111637392566867103351247144722799868801973378621748123607616528615178228133696266325547813158570249508967720021563779546079395430848351465783583668396413951663810001126844304529309184056365631756321795927699081449884169508827056611411579320184283615729299890819477037446911554056314907738684861606390839692870636697571686053773078088193544899101304056606534212113450931350000915418003595908937483385478898558381846473275017522794228372023377571445391082926533421571491613432308003547953807924763921517985728033977793177912254928713335275098138252352729445384746064339854643781512542273503641646530433342126165211310844326476816047379543716379207392822963038807954075158986758012458029840897148886421999102777389587070770947326713969456041451077287969784432222166842940422073391957423598565403934134905192776507593269906612344801240055965843109389894071860584248465862390304839427541507302703500712034982574865487383270342934366027307157054633350550541128766137304415087844320615336859534408272509116317616450843854507026025055696155554504244473729816117164968905318114531542940660415620380799875528057121149368767903688940305270351612377241971551493265450751052408020777628777174006486164151679010255001276734415992425158332701634847652754070549778999981251130912692695479038066651905736355116354132479077600788257261594032334508783461188203246085057165421263677756203335990815332425872868719614937215861240847389935804863422501192788342292039476290801254310609165551694793415199666897115506880831913273564436789744329096764088505357317524770118468694098014096582854817404727364035871437015566854561802926619619072906229988804735466798629182754739816874347831887494605174056864894021207024679217294066762020951947214909578257299783112646372664128817324121184576675391687651350638053991616810804981144176834998283592474914933943799195949279214294295288827901929086316256526566518346781210866282240625343158822029585909285628442638535961926084351744969370533741104140693296550824040641759034788276968178419692190751934607079999968722822563777256262562912219667795245710632506657343693074223920016824140756675982814459555940988276475028669273925876026754828181267497372662626216600909883828529700778545784909171712500395274146810398360162046979423091433772582832759363286746702655801604131020202497683446960083518793053426513054459043436305198097096746170291511903781012654085381322937074062138351007871403356484739777063780556375879995451482312954517699611712598564138690392492059024026204352705747965876111355628918615476526352898550737350715840600743254049395904209517234049266233464905151976818652423311487156160356115197193226344394502013544358331897744275540576417145698173082976309304817519688088920287052768915248878208815534636574489801453580481647528319153645737852927170622247865717573673369683405513182974835432935707433703615098129824299070600407309572165406103374716362088897398616319897418799864938950907882732165343694606275296096425367547315272473453186782560929410575067034777644106210727769920067638314339079185458356581484492899590978543819789061551005566860368925407770344793406148020463032041220026649965652626901816556542441682568826107661724397460846985690866558799962512610538269066131302068593384732557008802688486445020688268716239742635318345603406146533197307452674577284691805447116510493877552677640008944577305405669496241882274668913440762133033060531599435826340358724117863559065671370566926948675153639146877085369466888158270793193510955269624043436681386272266219661468204662807746108952714336401670024079508882058126595639705547231005367128135489540966370078102128846050355235394568147990584692680480947665027525448190033961814093097622053362320687783818221875281339896265108563621518443415857042441126154842910157560463591659922830523090002352447140725005520445725525232703534688647247924595434616094261265426829572817909205889398368402184246878846975300381955245254938628571832013105565360962376652036057979560950381559497540584768230431665499860934153693805330703587886533950454924320294469845307803510981237003116829233641606704764523288221742868228393644115563490604926292941984860647948488096775247621080341787513465233424354456760454574544824506236696751292194170560508709848548475391385229033306139304488770529491798724217400290266492374719166494066383162829258759773836157595040664338244901315587639713160651469170910684567868748743649533088842954427481673866531654993853636474416023288424993508434847105789873475112236360186219304376739885060626179446893431591887802046700309200110996293160083063483485426524141962423446899126428612433244652482718361990736991029959235294493221456771128084460404047357396130974505981315987465781443941108006467074425707603969430202326794723898727709597415285053314022844973801598087415986616173026065183512785578321471328448535665118738570526492689547728198562788575887852142095831093620788747485120066963822562459519879649416535053956443157656341230192775613173155455213569820624618749411728257698456085593192539914357278907728179581213645420980365927017804214478315937946382946598227993094818883796132177747470780845170166271251757647982291179458867070059732922344396228145283543464801565221818129864706795751845295453931884121875283035078753200050900090126837010241686123479672408037426023639251559805561039339578231711346910985227880884039776299634168234800304416469416929680176392345521063014308423987702420641868297435715931991116269252988778059749136486177353760003513459434535011561497131696252403937582364915153588717301476640531067094178484049210197399654049239674151878734622039410120305208656959384295391680028209604061401432392671317304188446614341878862436686882734241829985361323505665250840040016391939484043495761950570365062248797801227489840582648686258057452602546553675405201455021793962143538966374099362649099822112145242738111889389048657423282579198170239930420341557643885877604116912076261254477097441099184876648430678472465590392384253912196287421413044623972050472451590338605325322085807831921333139477664856093668304738210439923239918921907388139233996850434021942011390474907592014369263375135601098616696101201311721857195965051767047717420697001745897712190616750613460367168587505400245724868695574261390905887270725590657626979426599381619384326590063683038825955001341321612276220411038231887579269637237766718508597714704413104408520254711470222609188870546647236341239379834815469792816384228225490926734219164088063775218492474946264246407867110383268322687475170208005760811872593930350968581352912687156277352661648200156804987350098239379354461929031592482418317709824903172518621868941456729757121030131815356361738241544446473534348030429462247236528516834491018099460726772062249668007758351018605354002645960435699378575371630258782489319750091312880930617157984586306138625436251500719039583196750331192778788381768023287410771632635853128938719577859659121812293194781952247586998781916721174865223252994330838799530983336049910773251848224835273410839601456076084857887712537444809037227721922077505445767063540939108773858503764985915936888093757287070364716610631776893481041167193172665870319240156009080717262532943260582230843967405958788597332544571847085416462433387495395630783225360091143078277391314768697420767127964469339918613099906006488456428664995720689206648690148746672193139143130849635916962074545643054069072631618153244832085025792913403683839699844261228391922391327410711701797655225293862631169777485665658314510669956724389724078004231342965872246421849060028825079239898822367037572568260355311820731653824224813220473188044061742369331237436778909814950553245394445678256214744695711419869003888034639316872876405066875247424436734885671705019981524405594859130462605491154482393980278108580180236583190955520260993876476191084129322978856536728271689489030972841642663703544424540540807556830226332873141287788311687091409871083817020715834270409371597335228985911832666651501531467789327673242858968888934239749317428031591363587589369816544503096866828980467720870845621285904826295458467415831786911958497396587211509189124699102941124207723921034079046035882576583890255071770582261246019639918932014919431441399857779169514592968143003478542668139989862988485693416345544548701094055924808267931425420590114350260814714680901996038013108335463962277209173439405589226898921992603054937369947997906425558816009616122006433696664019813994177103191220267329343592234264341757685268202531480135022647432367894309339848656940653485686199759872771173398984330553339326796429525402370566794172137792874804662796890731693548764434266899235768234006013878769361860526918833997120095173972468186522316123734395122246537048618707230735429731583803842867284431174976303007270869283488882737869205152410177426049431136860143650306701048082865472208136993789957061473244639052253736048656255453801490411203490241064439907302871615021001183768750745795408047240954148525653536134310725683687975957616705979169018326083922063724088668755666344468816639304701443346175904860969342114881795974157251627308910007792530401782294287065954407791811069927675545906366952458592115033641286396226209768659737570936070532231625429731988397326799267374980315685507476163279156612291504597453384706003806394385500513476626844910723729929030371933655285524465743134894534045572886281652896492707472540043717762551060633279213618392926515875861703135430014834080315788121061089605494942217335291715028663101278707644351111836097499982544666290006937742278949534718708786755932480682443789203498363595764800174170372837959327453990686883327922762017460710850338285802986838961967664546505670706266912324072083617412085096011851727752408649585401565734492776452207327790874363828918771825402006529013166283311303996953456996880241801194353917087956504413891621400233238236982274151729441861550535007533405263544948531562128391959914390362945721620827983912649979300874545479485546380665298084588922870822073148529585521422797134525396002174887868896064599316287148651064072795214356246842724101005507552846359612447319567291947264022255435291749823368942777469558233953004142348886898103973116595489017036543705798336017013320787484944244694410764814307232943601272416544309194717320849052197985095938184361064130859871624570115427179090258275550703770771222581903225914802961828214816866090776968714936708567551010532372989741136120866818276468889646579360669155281502738495591210294146818683584214156324867877954302245516821458490508652661872844468728710547011317421728366373468393640379822388058182037190469903788933044704402768087426346554633683273533660854501474623670828321749327650561151708988512020251290831634604961669014322605283089640666747256882593632661357223703370321955689560042570623516820202444396654815809181583261704012191390433820853571171880566439452821175879534356927684703401183575008276652289417410593077878243370346021344080904300193405295649727862422694426283172042962540076907554635248305024015700738782611936510619057968944795156294856656237860683612120595789100314661019526016170096946303933242213463095527949073421908960240358952241932659532054924598587338752610326364197910494990340807816874635832387350557810261286165910117112766355288718423137079367032883193069744225761560912494769972456838149465608262755038616758588571341999165858366450215055253211967624344663124534241728089832052574618643703606303677568482125425331332249511710310137909279983123636042317143431129258402612481037908856020577169714800600270011874687088150289514349909734312586443821440465325996369982350115682036157037116774450003168424527209394013086105222257178138112064797862469912134917806951689188496239799272588096495771139059035220239914833218978631453268603300014976236503515992494786478595032964782143654554316869236045932369564445477054607450697977370918023360734257772587847739814501912342250768908609024276412148461409497130083889746098722720895088319076072460550526254010452509565674198102358243708246890114363967870860481673419226498618731218182623265819119090609258732936506340913558816606955338522168646915493672690076323054557904910567203548855610901576700463804576513614723410444375758240283544154424241219631022471039315223793937394878361630480417451074908498419461656426281370990633094308805475371150690817052610770041838605934445819027441376901460894582101111758968234141153180617652915236714570082820120868557345159162806953689420362546630161462914479347322457637683721603976220024740857525822073896919146271158958918853548286014204707390295636967935151531797737706524300194523308803090134685557844287186167601406079743059167609573446661005804488780885387030022318162075217835827218541849703631906184873623819561618378122763772745228363442531824529659357792974812689715034480627112750898442219258637291766407560101329434768998489348112381467907221577017558390862419304841374563425650719424265857393990679769718211496288060615240398902279962664953653178783776654802775673575668790310970627892022945682569446883267951764783535220403137082239592743152007534066163180895926538784112155264924166896693031081207839883684804924563385423824880029099223880933299741418776016598899381696649850499699674103449376739768875342023193357168193551404557921448109065531181209859083033951846765342159099281783418358876588817214253401867408499567737074121469150740213766992873769335001693558818241340261736942225909439029425228701891304168087321330071516840773740794966994820642682537530834867960400447181167825212415924664687345832407210000139157310768836616744152763004658092989487657325177683350375400849956840930925586001763763242543220731414700352881109534162834176535958266873185326056267749920492845652303068213063882443242623588285633544444705438899305664637903648590640646579752798005086237632732373116222465679199500790080775361346965282043536264409615920513020116158252462022550559911211811178402181231936292772285274768992014843039240688465703415493899880762390929509945184360682042065063396541730805961864874125612471292590610766972247063492597620982183383493945613992033649002567595531196577409185343412662164746077334274102510277398214855085738850336834396527254170157917530335997154579617330016153994633004772761439561580431155665117627519133417508005601432106919401492724232089291141963805692973463128773176338713191481521013995199054871591980175142119153284280850710990520499728862885721535765696114951301679833099997463108850431651124074267523420685916314993093164720773168076768399355374835245412312734656770663207524252035538084260470236811488450923950231205786357753844863659958979067530748774860603737398629170482914935759824927150649948740515944753755666505839204790873420036084404308669040358983719548169587247894449330067616321296046005167909734766928666322976902589370196659372684238060153437936515326329628575957820737375751484068516735335143020419028751202883605153820645639552833941646795608772309898916328502441306844097687200726763904938588867766654070522298973104036652050576060512962557749360550298325317617612111902709478949195040964410969852131257959276844465883338555408351014171158806958286046049770558228071735903326710399028464922168018164319258048971902581860003180888417796732575591850611237034526494670228999959426839353562645160746852514822790713585322216031931268085418799997230618436228087401697817483189255451063539098954114967039353326666537398168057891514472218163370111880764537811782978938138332946251288878888213610272650182240859767228616310639880109774461567357226201346570322298457431202122415507158881493230398359786809499002990512169123679139282545286780742830581711797878584322509441159734763775481193644736082689700730506766553926686951064537546783960780105025127389986118067772350008576652394874856869812825366950182561545875268366000558532556306579492389871329151074227864329240316244484362572605148273037801532784998277669630431815338295184262887154313102616653853403834412977462209663958236358161465496159650396049066087006184355802219800082262784583397198542254491403055859985610332332294972125379969427330470580011183733366020894330690583249508845158305065790070217530566507467883475190858926490689524892709304428665295833689161222106566326503812781139439871579341954157652404345120653008100103124149562593874812175136555693398030644862974967183310910849922810057684631713385110501209956303686763271015301604235988248642607443452623366325725742568597583347026562345182884852104139936857468040555323826766927388476378614515189599751715251787660600891291194389864588900959442233785443035180385136711211668563484994532136581348919316748388897077087093515619594075444764435484144131278618929119433428519652941730859011457120691717839267699373957052036861172769877705068120928802020282924059324915449425282769656461914214988296697117311894787853005022798615187985666471554179364444292837670496599681401757865352877578563945720101961812925866091838890921288466209119401580512959946220283640615214670278378177085012361948113402586121111987044532296543661439680501164043992259681194375299523501193618741124392534616702178901468036375467786160660981271844987159862262460854749975818013325719399263769476762216202037513285264614707799388909174933148488967483369906704342186493126395687614311191269525246425520452405486515148321930925509640187013010424556334881214918451994065639504404517577419308686262197723426966438410605471449490805949976210949818020009566620119415409107504253239890748289357975219011400679523289676886829521556392886793072957502918157248802764934579495113811901944698349006596163187047856618841869368031201166560981837235417122228598495721649310948738540192336209015432764322806031486986057452913941881385461720837704782309949652020963087356844561547800259872692938353792982854966420619759472840035003771985581317821075187698556840029463752005174479580387825144458248584752686744609589292940180135374800270842185119560008381030711977417170882175533703144340255663674803004248800519027483843487227039909876054356062028411638053539713078359079148842814893501978759158428525932253636560337722536569882000331456203564424812071831999871438016594822263317587999604853431656713521040196396511913232085078159513794504446259481290701000513418369350271217960089030953405253871698516358719243642834021824469603278237109012685847122991326099307075176617128990023342076478208927005637908229823226739338020226343998908933472870189820564755886334864199024715149224535702173426081020013006593394715375338291888115278623758158313739704878559622118290692230878904821084940227883230916190808013087692961405730375879319762356076123080281357439982222675064840057312785909922739248061609849470005486995212155786944215719201127198925407012304819586981084181173650325665572052281518467924544688416263640068383616271120361091160869456139485744113271409192708452777926691752894528910879243565073979441957352726035425002036175832475066389177966159585319045931326816994690485198673623329885922008546622562133664114727997715467549946916839359951075881793225108602469649944444440961024967286050989088907815081850796700011825766312862494610096901227725304809538119880532689903138236134126034429226660328440005868472466475998407499692934174922359174227639895359313846852515555537374311176081698780937239968839327167722150405586118925123701953825616304170079435825487744496424027457195032587528462280134704718797577234248978541763794366383267653268518869636713321696903193264063096130961819731400317491919283881568387309526570248682701186014264694644801760432949984967475567166667853530610335954849443812856761579804303538842901295768909322812249541341084086342671758578485425942542044565291369815868244427693503166569539706394992228086274584654408656154141608428658871633729703104210547838391908615361372391091576809394207951204217029992162393507726467959809816601759186332418129986137929393226235050008799144050466442640312884168737015506623810762849211641367149034787630217921073701214956881335982423074452277665224087863988376068216761902915806375376881401396965111540301963310207225348798927002773350445790476187119766067509279705805928066073205380576296159715438990926377723151565586420007878316082972419720277418998454578258914696142100086431544620939087180138956894400005033615768516540354005024167430965963957999977475636036171212065115758336361614308101773568695755917627179514154383399539794460815517268215642624571654614859036484603501863945033139429740373543159640190849764914248657250605185968614256116190640468913312396470951584361793518340370251458894925491571176521107518362200703683479605009521322753162325408772987042406770761163216990513026870598525878546810945902716966233727892104710575761463256948112574811845885191129813677104379487070588268680159629272867351664765559529934074271277172587349913505741613061954637454631255699428755796155182536701698981600925240355274491211524809825433558388800104094769833434381755851298755485684028977399253719768520511393525087857897000118880996019696490127135887962676287880294909624883295859717882394818981053695477148850491172760272639121755360978081412993818469896952179062148088797024183078140151721393460100064938818111478895044103780460948802594018929169707693452261601946561007062112403823715936995069633709387139994196206288702665833541110434828020474527261855757975444224546930340088645588970356175008920031518450003255504060802570227005343513858298335283788757425287640550114063979689136664326080874502094269603343878087140007869260994398435515351403395608811659794563984995161215842186016071067592134512457532793596385527014972981444110429145393378960476116186591702182695012631969307664361687932549832665307097324693449597122722207960439335501675567725923674047580893971022345942252303569706145240142521805306400374303091099411594273906254095682841564584001061638747672987309369382181774175742563250204652057479693858943512170047925668692397097041378363106922162069671607641186021224297165265066482264229982152267535945007286647965605974617194359314045430755368778972072750036575366815045368202651342084016458209487599108180061021552901796848615596310077539657782885131965094044978829916485299736722226877375514144128853066698091883491066397807993953184970335618697903821403508178278397423834445907258979634065489938392236396825451386122776303537188219273388950049091106138885831044952720094933585270758965061110304483313410717837613810058812401490156149747919788878071366256364773976914214275278912882040383412838821090908921785608208179366672877945127433725946856607743245350381290640382661263767424100429313724916695889980832599452893502280379883786391550477235565911970205164472999149066263910443186872612515506972271621685791328807581027212221700156953624718940586630864057762058307753724862997361087241458022699442133000566195724585058013545966448089276925554457540844222481331517213121127682824063301504362144296525433673110651039615400307108555241430143951747693216781322953586104626399306018946587582590637836589205917508696834425977211546021746942070821051678622795461088270473684471252069494146737671273514462605993712510124633489402897172153819857276807196862579198995197955159873998208149643203050453355775113642132764759520035066515634494329344398338622659807174958156031245336435660455297464327090960929840992253412209312054735085224984698755490094262667952587896687277271151912802374571413010137490062496382022705670345264349470344135178583290635699050727448357724265829579148351316751820722954197460919636320939079489736437148285258584514176920471656984648707513375532537465286990009183012757226127938643128769627307001654659962619751828651468498014466900447166638339668286309400366434976201881842198258987962871702111816080723621765023310654873507045341006155372089088621525230932428626512470674788686529539615807879085854891862786672090482697595056111702854342106000744956928441963994256924898797878472327150339773337971933753005447698478579931317004575477546562497895815595541746199285301611438449286455113249775586567446537252181968723580832911616669157218512795042495806612813473422867981698900353876265674911111768635243806277079501416649215843621821128050217454783254853403086611093282603203971361647783108446296822881625086468874144290002564794032598941894619900475019297491949724647136513563760998717876695795691319884128257671944562986742002744452373136043144949942834908783366174221823505283995617750318695142605116373752218795241044675369919788553908045388636402016407082660825400314900799290761347563972226098463296118647390861251950651691395221294299796863718995866405000436192570777232176483697803811124258812428482358015660136875521433729181739070719286713785492695023720639067883113661888929233215287558972525358651889394184765983702578154601123448603829146007110736447785973970333308072316675571129370854274725153824436553824207422300774901191168754235306324098399595768732860408157744489695543994355323557575654641452156599687336083003229795733344234355731025555599937955132926906225698163552165097675214448608301562752417273804594352698376583781264419781868986911581688230199552592775427121952365688398394694858882183865124236093770891816456284204310020635542154307518902236513353973040994998918043022436411672820137652929804314355757197223564079835166322782535449361655327101231224641234859660886954743756462939179927697254803061086435153750371589846169640219866463859605302749566508474411085747352486925570499864998933130442168265789481921568584490510750118868149907950237690593188009814910645308171320341681251053846930718002615430196980841622756640325021713755389025047239647161640254392091959887487083881760136790204383492966868931828431566694913054730324243264880207869534725322031697001977513296617869280354107909390779579864032987804543589665668478512337839471839688835491471174344427271539446595015343732939627692823444300994846452133489179954949333789432607687593594745381373873177202622966159991577322260974701673536722327513938670732193612616134194554050310047377092164417493467009870639341883266619376703600628224677660611964988397833743881296840239834238275491168752187771637378988435604666711869637276815804120039177811249007792402475590454383896283657473029234824964084602674370953266574821938428199535240309818655020789246990501899394055443033525514528280954598642999585140926134909198636174199212824066483531921168336107007866354111610637667312600139343978118037928738497407848521585515492035331621153034325107334570886969898217722908778960736878181312763452813563157224357088218943215894077617730366603094498129637810869551557410210316709913202248767189743647635615503150194345212578946684571476979919704874003379094045794604187913782791186588074952090786341212331373803195327162147078812621284503140560911367991722944488285363872080117997545593492028542973714155872576678064155230862401269985908834331565264988465093163997775489577801911242290558807865152846930125764240971798603830336726184399911608957420825326350865984595538218379012488238092932112900790766958014624844520086207463085346474463172694093752789574665291657224786111644445466371898152658109836083753594656492009938502608995564335471190326408560821280139557351892782067070265254105997737511302203787413082847052916126523749176358823960984091240605811636183124445597269057210501813413977774465672705644539626062035021388472277022875788367927622120343910614198692733738810385825930633490445995215719214393682995891145788471966274804011100035018101657924089989487769695779632723905528386761460902018599043310552896844958737738508756110694586059491187090466706589789003739451027056492803133318006547074623533071331830347149283635631999269703020855513599226254044636005863328546956491723831427384641017260625446000853405288201881011631227627764939294151697698590239880974427412397829495346986860560112441976651071580178196491179913742270684175893932991745350057575465012230504328365092765331625314703967212958789495724548984564346113512081112406987289779853069229390273634588875603468566928367572900617553862652225707835901405900450599337636805630490820848949237970855531782036620484742356879070057249453656832831437791034917448674583593147532845704237545949410170879516047038597881732756626256838567115764558031729356740295083729820103049289355673845071513548658519469530931936189481486546026787430923933537101871186687002783554394102342575735776357350027481084762730758793690211236064515006856658774692198213599389373642092444938998017777375517631552028541758462670599235113293053652614639787219568312590494881157890642884478893990176046864359815685179331214393876413729321847706546346859462279158092054123040850083683831591902501082836800957014953258707465397879852453863643625672215246641384527049362053126584308292218552920182708294147204062171227927140708375363828792297100219927472350524713950731732402635168779549538537497284470356838303273635958985740301965671082405813901414314828407336586543673295966104388752430311223192486886174143044695225567758159558522445916587728859420446221655213499162189730700691455294099361050739720211977635540939639491761059331949654305368077362478354081562050690313744180254971498608931564057634190869274687145406065021834187459646636939580714020469376668535320293831347688790387375775062709308424684264748125467318322311271567152579697646885827680409793650985970464216606037803140944793397969178166981792104937929256301829821557305938807806714393880988830652310694373869045979421367668691296265182913500930601742136387035343368105730554755593405471430059092539470852537388574613878595367328125693835338469012451877881883635320232884159041668913247714212141082412310313411976593777436257294729256712096542583055097264658983661795915948553266050072768029889901157394825657668940912566251926169113319650511705914523433376829094712738012195660637109613856279094630874395644581230200763322453214688495753566443179805411395538863664939064324607496926734344817691024988163502434791435250727465475835366104296897526214701734396214110006626195881686444569701832306087770089840323669149526502877459540736455261242252082149406980666877775809708724450151752117797013276336364164842690383371336065092374604556272129181159817159274838100731974843929104184423176915862288306556951363887641726436587755073451731564539126060736029472889481972842715744686319410311987173050484948509652558606423236235335346526867205926576851735427344749816106737467237119367277057699098545362902219740108860044409493416118077878499863748540356670898493078621101051702148952592527257650429627371864097638769184893778375665569036538258660683340091106148984701294594654983416743766915248963675871710409789765359902424603890906177293823316604774218556731541477888482030163113380262896660106897659634804870243299854056991172094583505844651744856292110306858910805895931710447169950411132978460929826013094094894006672655507036657928413074437784205044881771112572588752200800181398082340117781630896871602437575570418732628171368718682853725121842572603710056548056056409106182362347681996304178399857198874870014318736062606713500679909649151996603322903951582306421527027255459368139365351480790128138202203897233021034975449244825268866118025570935544646877918950624105432088070704730066958619534718612319933265311805917542547633497757754202822683049100799804677003616270555971990537440164121122180068171593870122909624084972266189561231421629647116922695732602031668243166919150473049054217026118924694954863245826042539941640204567615294026999552187394803650801412782683430532688694716419707522689085535201001953156992013161447881827770421296720513612195604509017933784895767380206590300243745999458809615208779676450078377275789731958450818442671355700909123677486519633695030987159337617864062861040875179871251591428361365488982073976560160925197364836801679728854197598280778664645637448155521101586480413059686257030233756391904998202034769331437989513074040682884990349404130258385621226416049573252002170081457093705286369429098610394846044575902173485914527040959291045126173498223842917416668677405316434155253699997377278965007712867372547662199233744726818300692671589086210990511723489468511350778242545353865894485353539472177232314290816581380442978990827082809939390998151409616745362285589462133763198719783486483714288270608326205506841893071807645831812692735846143924240596240669639392919771934709596143258482026459303082506658371571796711531710470005508672431529752697713409042078848804082051590661409084219908501985536542000565990077874697742334741932719084485850988922138506075502558891715528718672151614496912631099992488513591260868787788052490252226301646687937862490976206841970726786959409666426302577124005623544575022830466857137134272596436842764726530857778685985374684279382584987323735577051550660423499845248776542990503982828622101102108091769113269905869174920596642941015906376121278700146562918777181068801052390427099458720407851790361919392999128056473406224148204229571725367246773842019183365802800338747702213892570176725808593794611485741198198259077327617003870069103061846576079944880005050832280089523799427709268229867391722124483067534385676577510253826256671824460792889337002799912650257241204785168592787874640921386017436039336646499028729849760156105912100339138643730860403771212080481416936362740145274692761024278658575883926034120254371216863442334565139369256103168869775592804135609700357653832427931309693629332410224323461967387319626503726566030584945626185704179844140833818976773067012812296369395152364456030416975896075828482942162741484714991912673972053007072571180695445667555986747555942984731855711588853962785792530721341163012290616810990840977808670320188839421716191268796443741650145240151556136802259323874526320212871969497858262222704030908028378024783899283547149228356207841368682700962635744615142035305156254433725423595962552153305183335668919271093166685012985518398225293427148551931307173754520632703201605927044656981291804969832415571813507860914474949947593710755789318437374778837123316898998735165893722242446908132623348313833443817293909669399828056821591715975970115335165810270159269906829452569824632387240034907089126854514076557002327689109906733359012710981257317334887209601776743767902981192181105143145948397402746326429079854489209829116309285668255478821238712641859290878829390493209146735974445274260751061107563475054054533366251939651631200377957829748035954163217638290608257404673911345288818659465516924994936541636196003541377072503190499591869088007039129191135894980355640797090238560227915295593252349939284183750493205874111351527851217064438627481316116335750175930520260572625814350733130116227133573682716300057384482640682974816805445683710404893874757332395141396852680313702197309790748835954257684251732055336847448854650392154689842981081503319875275474138036240190828148046778106060680016779462308320714430234568598526792246796891286563384977743231340517415821168168723271153904104414103619070585183145571686736394420223204390196983358500113785543609143930678465682604948119062067040583789568896682017380020926906607829040322120826888570228791033620564591618780401653038586834506280583793528200255865097494322119215606476300055310906709862091652287506131891177304081793313400825388435738816472319853972099930104633088539490491642172519766812372004398737306275444435864407633995816622466057421839679001513674668159650436423350088911984834891901741862163609277878972178580931928992701110739470466436633179120568168333287353580006825561940888127305031101149349416896363684208468489499927260270277441746474070791528874210795265284938433637016859948527812767315289345519795278577441190324448481174411741039245060955152262581639923814799080897421123405996457905165167119456143325035307890153629830894423702631390718129304083935334865396567650324425905013111387767989053753176680303869687733403863044442803064528809676603287467467690091301739339086268590654787174821465313909511020711324632826868057744767819027479226059380579596017195151638541637507781314931632208321740226346313964007247445475191899109983042918883464849460944922329048569467294213858238961011254664090972914548368912352657160729589268219968981950518672605013747405608475514015217438422616610531784860013766246937222538280736742996539682376961688826376990692904479197133668640252326245954119006031220452397031891944233202276496233001582077575650137672837662016341388572342766470909444044764657700825813054218146752251521105569750332351236967284567531530896085314538670244964512185539421797618194703787166447153129628004974343262810589859298934390583916173636800418290534608804074583699270560374929909562923720094399074026002576314555046187593370843585380495256945495149146158806188070636553662854779955742831574982287717937875828572593798284299746183755349665908239257346393831761947102174960334182895414944627743890367898172807542443636560098428219338155821044151210840328806930958966561770771217991802703731420865500143885607946581303706392852946262673763446656053172254653454553645397736096674657440713288636132011598168973294227455371352238327937317064895611650430175333053884487477332326973448301781572544213847024650701003556482202440756912650528561535713011163259560365729804929551940127798492367014140046875903651710613269131998326805684064156190533719064166820068366210631734669522221809220850579726993016794141710781717008824780683524246577514048173451296875953829231934948043695073401506866807902778291159518074577056343360625047588361757558472863794400906828287220817102278803999256838555375966039004199653332048563214318220273723363561675543665092562975609015457285789101385280064585917888819708056127852229293073448010425875920637644810065467064485028678549609634882789077072086430056050711479014223032797328096470875143382894508951139505339521013660725198577183471544775677192048913409245363072192695245352603247521622183994576105271088598800533026847679541735383574571167359392140886125388731875739791424796562669192609541632818362025894840571021674632438427273657103126128210516252922365167598462420697067067681730520994340702470283776494356079145841008832393460579465361192448642948472520052810941371351070910503171872485419544053257604807635162238237882564755446699321928058516722999012314856140820860879056101502209025818152785842929603564054167328113053795604546272831266686635161230156615564361408357268974479631325417092329610736524504708491062634058631319600275622851205526323775886273583199959677434920012295248814743860441666963237275116833314845058978155393691366288829708329500941698471183248018891582259331819148688518644596536069101279515361960034738686920569314434439575138611770333594787077864025777759473674145255719359495603286186444314550648824945011359382169698031614941118221076266043173442783798155739968410164856911182396364586649484762665544155667805745458685873503034416251201971299118234137255200674009297464630904753922495319341567943304457516672098763461608493695115212523060275061617873029653697278509443098750331565990322600104290889968851137242434907776194143945968224890464524429386023138124837015404611588687465779785332448556371944046611257059025197122277359862646575502272746650510057875300776932912884766519268825970466288302858743429197736566990923059248546876880256495855512533337437391527556642031664013434222002944676420363655256854095004915268722799849463737911552810256990393854215884041506101292636458893262677868552948813416224547375254970367364718733727831382887840686940953384787153400456653087577361688669520665023406832184869939044869488677179317308787893542896248528091883353358432591101925030479480722432714897584414216016967939122230791232225763382498296971455138673601646500414125744242112049995783062201032438107968451642826401563741157063614035331271175735868047555048813532881586245848213792337907360305133440010738740124112324225415722311961075567045931868084964769451000747876963852459533987413818396816650683159089383283294281298844387032076609405409190319064106804660539343772960658318432934014720544898678744626257157231433232850851152640998501276049221560266342334922533295315478107205398403334668100571531375105984961687288659794708429447704578782186040740657709401632447784353997862522623646385242369681903829851272711945945714258148786324842891810156588632742699557554476137586974398028486689689524593354694840392375548858202394553709795109291399492949285215299200045405168453999974607732295374800813530443465356237397916497045238112838971294646345120526831839392466365140599046039841024507384905007272390421445597693554019656654210529328951761951139113600689581805907085303251218779473639348718842058686465165525590687139573096711709741123893381212548168800888572256280706311255695752367741655983290710936168136952094719681746246035119471800819455442154754313165375862422542575345735237852879723639829538733716916440968628966047671618700340385944278594799677380325122484013785661198982096127737318849190889993982880229680582505893901020486888049342376698578364865401727848121761017091680074632317511549502094660210034464043980803449984437924308421839199653567398881704625650646049489177148035533362525283040107122805507728461600013275736662591377470105232365784185362976989569898691558396699862681688924979831867499030147053802068299747566392853596426229930240756834876221019538865363356427913504071337090981753055873219425682082586785051935259118738842895055620710443157029522658884310493116820856978236079326769628941718549253734258691932642883336259572821439578475195136618952457987796617309277553710799273689472459782365712594113268838235369197405268263147420719335225130928706435969548239202571306731042756581153400035362131444627282361922054117127513465763169802663974467337546056562597592275633635648734364290788014682820803668853660270520398999459876472546092282489536811500364798304090145061583301403631876585113396050123521493919945913982688793472047958832568037351706103039015245419517471976788883709551646408660169546312796112644045514707523646575355155532851583445215925210960822858113858554479738566357057204749437728555473844494132335202645541662652240501116687344084199579533420563647226690754846772173403684547515259332094702721804981366950274239060030730085654493606233469632104668103372901165494671584586577139960387065850352727638780386856066300142196630267463027070727380545579119543482307404954381438118885197753013292168062101146454174884251922170434163144600544355064825170302335793746898525379176507726862791214348513560308528211991993963333240626426319172347658217777234863643976808634956150502248168574152196779872328403556032321423465983917089889541040646644821393915546913703019243064910106385916941313246952929567178821374867494230003195169298680537289376799088525453057247535015206973757826480539137052583272220437639745206060539990428774061474374828799289940279237712372081781205853413843913254508407224597343188687342703748667348570278277760680600385759657142593893921411802480115158281274846001049737502352903967593085050643957843451816821095215600755764027895065443205137538649648692358970540711895822581473530929567800088790305033942379426207160653274203418372020955219074041249448374918958949267419335318383603897028560343499060533104512210465695001305638256711930114650003708223363529975862228074565710672074560203175561342052336989242373880274394285078737586756402831231097246010569960883833589688332237226471768119224523275536652747309082219303818908793026781561605343269730536151373242819041108142465587477493734797011215334979681089286691297872321252726940432623023626052660075619945218344029025593761426081523824767619160489279751577148328489540080682270463511040993561290782623214320500847919305199998914125549545300160189460944662022820007530916223169947836665101005958887856901545908681485465161859354672443003729686615773250601773290538585630690558470758565050447672421040187239512887819695019698340946229245774396384311952768756730708205665659670025900331412535976782322198266321002407147351556758399399480064683167883199264895274161361835924742906008032408042344936307345924527328720642121338847674248142237756799908718190309972057448782277107953681751402553859385888841458128067902530738415952034626494836500225878282314652152620723641410996552541875816980207551025323513127548016632136347224136285194214190913058522181273627696320585095987804277939807268957803483232017512625590677809864336348302182698776697375132673335598473007097030922284613910959850437596403173459293775000001570081932936148058230814651400909918742859749374796969354516846346175798364137972298849760553792873610198419451202402302684200079245650097967979663506349726085919502941653434832241589844125865289990457869958523010161379841986233857197616085098159308339111404599121979483460334474158249477523780291478169877835467226816026364689100725067847302630415057689855220233678696766076510578125734242760110618379022241462069439063793220636379598017720125242203614230894530716269754854133926548777342434302074334287549650923762789900933613056551650342459492239283666142354065949971608795460032174036467468424620045336858143647208145026592514783391889878821006146296971038151241019510876776287212164484026622938261639576389755610078481013208467207413566143614093129565291223215799831366271027349533231554448116909512782321909170928594384843743361403278791270447817665947714326827049677542260117059227887221747105061201452946751694426142033113587462128371986794351042782895893663154213750263569015144320869609797837981280485594873855579083560709496909450748336136088939667355816844914162257674471867254792522866180149187367259878804695952940584494057161586348043453664653767935844586966362866697318105920790659566815227883004449768939766620560504334504006155708317956763672139007292218924048467808759390717939173547181399793924565238234875964722865983048815649886504570396519666663214487618764283739337119606822508567122099702148399279821725409972926952255768726720982074450468489374472588392693798671138079420184725383663887306780226328045862027677188446969924840608848164941383948461540029908923903647797793139619592134712648529053730582052335689395549427172854795621551876607243649534452450663547188831308459475053976506312169058801099792625464172609563073308931124959967273292020731016170131223059859218054460373206779974130463954469124415624862263062498468389631670095652700287815893988324776918239048558737410512851643347826060719821744632318271747229045966699640600580434943538924729794584864201330485116553190297525925030133195478958907233378621245677842482392405800323681127710819634511195898962221282865881453799203991500629049462968955569520261383962968028051631421827773529733216462986578815268036527864281600746219171866222502994287951231826712714924903850625273361176736997466121907121378848082064835351390860061081609118185345473741939197499962312251982768867649185863294430978877159759981546747930193721875214266839144265362457115565662924192261495871566640940252576709570167620612929144601960198584678218653010249830465464943982904900328862935553074749051933322865928973018227922314507099679026427193955916856377812669943528915342702226977311180807645195027662390985983959870590329236681577462971192010114754054514344709040967592696581298152003661379427799680110078966709466930002829010905947479947927503683691718129939368271061067806558135392164996471944118978246938262390228327299906278766150158379265299831801099051838843213388574140919452694480258512150925225092163828824009387167817206434654037806750907303115461052915572303223354724874101036239345232937876983207323332151492659483504384412565237404588810078593597759166759245091012310936208817801084880235398824039076169807028035575494945921012863509947321878622014331972960493096812141084826124202837849150043432833893056275520207821470322660779129284526688709011499584322817610651988319627492429144396260749856967366706012814235921864473359269651499822077994291304191884095445269902299999731191273543551282925482658785312866529589664707827541196614326158965483258669732093911590985875822431666496924817707293546527076968727432621803451875039335218145125432461233854958160349429642055959725696073417429997982104886513759290999955676171036520577591542725551564583939310559608624118001667384383999200559422585847808372175622507264099266819722172014789629683097406010809626036258117844077296225157895381020318150795391114299655810384187983021771692171084081592543231486261007417796090211971778175956334180088883657463830756642864744315956201950268141345497496985408330957385142302605197326793023206759581902709403100308615419806931530378325958441407647660273469930035076350721792606561215112588473233916996861948041260869034853669901782505947061200601726173017248529162349818198695148336015674392316214131898131795835984258413294055066851446974236907653105892614606852218040881590912076064226653837596038173719575532426378243126009804332461043520807594902874963956508032918995352880681978898158931522023230962270735742770866391000687804671944256792509690287994200858064923026461636446198432642397993599349738273953072350516694277805873436291246703028114044108340117463747933864441622615791290812382416676398814911639470116438872862449015442417197961548440156689661990472235554480517084156085972704107044506029356021834137515088528874853062056606233009777653426659867658878119151683459886874518119165239952067769480780471754930501718746171628631789799458231786973603840648724715740200107779902841184233469858296729751534085272520466929332101478636718246306898071871416137404882945430956405238072918507129181544121708047368786362979736553379580510993648659467062066672049262225264282438848935993761329151743554624386340431887682470373709532963772202909800872670861165830035741606572098476619092306977676515063192507584502788109910942535576198246539927877208957279391268118216049550422921581420009066046041849127682622400404321225490788177603306925480198001674386705166591108392390343659241526167652641537593613179168915120673842795666678982357729536559643455337358661173313277836420515278990799918700254907584788250094053222402649301843908036307006852896503626587648543269851104374107334890970444867321383765171983753877803934892709740295864568160645240183610258817226710383318330023309632149892594319381680894610753664625151745090519546674308143538903814937913711038761221140226700069330923815620991266337752332359378862474843263989820785521422526032590963874600859793078898710730627026461992364795789596664766660109858535112719293652720706012149146403138993174218863557752692807771373781447935104507942618784455864812474182777115387472520155955221011084064874771059337819689950909571148208162826360959237903447098284261744103274406229313429783677427833466133733221810117964044804937934016070467291730709067882265675816938207790225274373265933942820819671691849329674590971444055614419789646072034420098467622530543707288001588766114224553905825411363428854683166305779085132660585972047859607422917549645924880507942947069625666386043454475113165742180084195621539397647377783463234039631947111056086904792673140249018380639092619711791641040918069484194481329584895682892253893038827425272046031801495776397091498815606303770727801260360622273009953450601568518475326307049762415596269404555943129309933160649933282589002384299908647233602609834745348422033401742685694751024891142728375119238505001049253196591097388149449025723706612564098280572615213033111355251561814259201158868869364306358069766387512142120827046668807835695714043299549855073603573079995739495360298128957325645100759216730109065048751764954580202705627351329689076353697472730841896298810765409668563494684554991592619479962336264641097824794294644562673948208312382076693777902583209683988137927611833710006302506002104070883785812348790822752373531874076103947442653760039710820754142401799365054005199450306967566179184036131616196358152601532204470789513641665389713061213088365118634120222260706001004935605340245072537624634461205255795119445239637088680986245346572693094158399960661995920245783066795385904179621096992480003815713735192474934152817377142073466687403923757022886249804217379122443468735349687736901811818087463182199762540431186276066191343884632015141413337448238906025153690009305552807717833348031919681549835290481394779667934113568015243731415761207978369743428539856466099407527815164235424762960665433975377464098330818691027713002635425736741814680332291607493871712577374531717125330339512860576258075078282501687908463016082714448181755495515416388139700129001793514872215464845441423803566290152692984303817759004847676753552465761126072120273640449994745683592918678033618283275095377063437675807918858724269757841564629339696501653850483814715206321891399337313350785561618816296002078191658591903732937538215706878951573638713217332454649535924606465770798893295462583414046796015422362134854270658375788488796720348836114969158071110746130750577289177884869291343765621085392464818830492924826557689252017195405566535125042019442102700607912287378941789449745108848308117931261779037556952306245936017663140644965312487730749114042337720725235616903256378807194037295122333130003550617453734610470724721423029466274101122050144965414307140799463646244558722643391381013709292928548878122055409177306479685481972833630824825583272668603338160665094905402441892110302477973100501898387348652021524167123025993841947480092226064510348909802457370253460746197303074255813160447138180642074218600059170920932276136250503897871919622033048973153486232239166894550394196462532105844156015880529997664028691140455129694170416696870358667705356520118453436421585242719151865258726973611374920370492414178226960208683468769054144378101861265195915504468839229163320472149822211915561692371703679257891242662297741388286357512444408174268958044244595630619398173070977840869347585423379146518834916880777266720409589302886739936140028407200069531433706890802262884586403566213791972613535283438050703658862069433625430312692361702497114409756748486767589989312311784099160643295511001903016441786341835797090467350828951591170989638412948612755411677625076026576051147830258225668465201778021943182852077332017677034424065873003324336682061894013697229234316537141679066783405931979133830831730920003781270814567461937886077332908248371160884229457859521685897269133010624536775587311392817256913334035133286871432258960071300786711249412707287120780508640632611463191388778700355838085017897013582119323036791108521993267559046846980031028801779012925269070376022985773274591792695730855647169688624509118594233023457927981117037535678939878449819110005842202630663907378819703611327228761121804273884089687220191425664135933078775742569435304613636563319137279143921474081780398031540365857938444138462288303745899463726608051486353239172406424249537582507056434636487228635057688008419259931647516708528078445724902273023702712388210158918751880845754848572719746447099087187413225123804732988837515363625449966730455496048498194771639951503749045149232006154106313658491009334829042947420288648012813063565122733920732768713148558545372220771733701419886048516776260431554767403899243671722158910859059732773111687638540291441548731797198626791983431184187505148411218839860774004221461590468265567430499120689871080891023329748812525729854627764368570819020889022169399950576028809574091712602695371072600486599316251807008630874208523055251666464450473826022838234519949282047030309089671444416192879704301288955840707799308878542426145724910765032576343289170028914753772655723342540304141233387367717043663135547295731198240492531657511579002407392111228751042851405574289885204327985462828723336318039380667057165501682201853921558379205537879802716396185894052716647855681987142988835788252511579860740516555868563007216664455259117760674831487728006981734843965181895065681259510811668087579730344798597939008926917409062724973060647541292816617180984554073716880205327500506285783943251875692320283859943586841160744974773767777416196909112416116918922785687890634138227405118646838163011128860286866253021212576899575700542649989941525168826766708410597206134270506115203649880181063618715700019681804281056454016719822447460822940626239373308142724452305940683057785549753982587996902125878019278648826016306289691523191524706975601820592347458145763663759231352090775775491838783864128750398234619383476248622492790608108712767196480737636762831865527316998214655459087629641057290578287570217718749341640401541259708944979537416543268041769827022798585548625063422714558087553881802383929616897969278664096062018439796251737709680766486653225579565231085854033265369126713955094495067339791552081974526649624116139210765818377870365854241946227612657614626765369691182430247184764246678330226777374178319898459297469198103563332530985237101148588267042779569625672610070559361445712978402005424326901860074401901469309597963361240212429266595123968466367888477140621249840686632393099049510896343148424982702291474114991580104861309013723567020833193470058124077678313350822485451789663707372295248185771922959341723451840697407997137755385076818709374599025655698564776653053977832976320842009471490540067222690630618063749314233245141792071499324994839011807426630053926523277141034421514739416603688819648847143926521184942376157770999146092481814818906490823869900709033928578765861594797296989029518721807402040261088645390096980133814291246050382031584114794370616666826988764190890461959669819853168319751553588505411729967977259570527775481975201998795750324917227905759462542521350061750481953090226433329892567749003053801425118352043811707950630201983142692107879630046970388578457392392346106288535088818282726827098510754060245172676002530739631101357610574788198255885456581364552853613835629115986620753235531022595640134564750879847811729449371421380466486215533712607268694775671672586158732975921939848724450974304184262929616671531777532788549321297748621175204073087781682198793219938250606109330123317221703689381806909833452152529104453702939304888684418412653403992067958711643511393070049407610576175718150901681772169753663958850004754009980398800494472826635845890710653017989094241514127573541535342610523380951566491353734035302228337585297267037744013816907675013977460601765415130311600714828735311585436470227612261696261292571840140299106244900893414018734039394043837580652265144172431308064841788426676480017525644280938477906220908070062400855782521186768283993217396222922876742856768974082558565668223111348455143751247233514371175032239903704000997712318006577949696064198822648967071095660756531668572818528042960925942161120855673897537801309057787490726129393647308311082689686151594929808910225290045084074469833399337776220921963266347038775660756414122845027907322145220162766877989609123356322683137574336975995768124935182370011419590073937717844924924660379522229040151803520600999097590697463463296776412190373439362055560956461842564317116453112276552233148512064417382355567226180195958979311691466258103478677156028309634271844363570910879322543940822214912850079623246999080303043151534336184007173816475436839962700485132461657055439141067412063231282873207328518689925205255788608822058583341282705087853811300093408326103075324740400204646399208881795746650215339302968413915454812444068903993257164668806958408231535874155950231472570850779201512614946196844466667612379906497135134648129151514546880710298166761934444018998848761578291507847133046969191217721411718686267735361317886588099728399460787306024732069990077415158144991618312579011121631601631829942443893609048672875911342771162089409504178299271415020184036512881341870553860163237564402520780674332454406229352639486681780552818898060299526484739181849051875194012773064115345993338273405413667373958720843269564112441398065723559933247413130731975089876306562395456497352367580035621090613367322643219219588527878134963141243095996022580166601064074611396946484119652531991497173203773002646782629579637564167607129955237343733398334974450529994330439543587992121661128386515476482531020474505917790059813996591725708482547210227438407497730469257610868312631780404598150149362266579740378887396823217608891537157316863270184971830731760946392866478771758194662989491415489033587925176289644355278535197639507352600191996088978214366057847827047963039403241207833917914333505510092803299611021753880613642363308874120690904111125787369515916901598853639150879556734009990046110860353675366747722417219870449406682754551810291992898515011604853215009271033131847588973418381979176812621953371202180507111707100015750068299372059841332640484428918049610498324079343741790217675755968822158108338551018324816379636180338251999206446947837353183947179517872152562245189006239476716296476629638618749585014302365474759239578555609493228778184819909208441345711864080044840032050473759652228251081184563273145674329223398561515310236548027640654382387825485083347412298108787086533848961376299983984761377783964390009324873076863600191857037391972894289593657518341843111071864584037861341164270549169770260655313707702640917448879465590646967977715513381589991350110250621671372160466231363964912129555260869083492006107484677551473064046016513044287511313800469150733875996213350694381930027510220919460275377694625534846663585151861453357550262485792187956837307244455455863098829790963732715909217624190823256384687105573512279158016340052311668646578961516680018268181275907656257611170173625559855670932726188462551233682156705996559783520888120436126543351128895843303554305478412961311126371249702051177210725178057428351145490192278350128604201230806662156424095881773063246686942426416820520089179377261879734203139516787767820524675334590982462538353426093506776874333590748972044897884353077626207499861633383675192422730691353044866143679512125264563660432991637237599562176375205047817681343072490437914755443727835752464170869232030642112277074833484500737114995376760412932527858348094783980048033719331440173288656979444102414033668829382484463781825658613052476633738860739435552116573783943286231612545484336217041440337637772002365441848210381012035028700657429036613260275479558733712092225959721145763095825090087476026662239283632504686003005039037427494134519583264150790663639762895352054911461311602269570390939373677312430139012747879917278695511838712375110646781889400722104068521897623414154245434087083263319165724390077845022801873921040698272260819485637949667823831434092812295203368493601155087376601402624861389895147273776762556581186109673455023016654844082966639710852339225655186550588715236959079575273162262680136748244441170670559717205319461200395807314976448891530204692496916541048640400882748962807249918763766090406903579826684777593497703758634115237935858696668370641554309654084803788191275437626763110613580042684416562612530271450395854633319246603353679494409581293079562937963039357438394145496808816677024563702363866162604330766347022751799802032379793577597237501588906176143268779252302889046887671924984790254423234588278326747139981748253855048301498871332588120537568435037581400762995191748691776765847458832344075951777705040492567851347787134613163075879294144991142948100511524735705282165737480921638097423930286969180819087720339829583710464510371542342412503887357325590670826262677374261573660670211226832132830017487153423307927022287967769023531499706018847488490376414148216767047044454234756886721968946304067550695974711542467437642595745572609883349503734966710420039637158646927111697032405340453533186696792992254075535812390808855834924407600900470292992727441478781724809970376335088870052022323565574033479158806895913272182393262507972849296599025546912493737258362236011333887764070393643680203059165634168711014336155069237646716507413498620763711779200403957112228733878486484455528667868342915393442235560905052222194740554188056166433283936890339130585353014062522100639386986306970545494690925483263597992807645736572552899836119067993223479238328306643253776266545742645120753646656732890250982492959152400422140884623203191437125871575767809374737895883602430760646166039121054346501256145208630471520930291379477453545946497691668321030373231125379853327773207827543233772685508329070504860783372279772757229185294584523182794886210419516841815127557653971240186243792737988947587848180726663272354536873669352317683380400477422285908024002604028203186391992593868080684720617891064064188237473138057922538582121862524158272902038760062304020000321750921712760752157739824042369356324031033947252461071472676380870497435727628778141421695144871734181455924645599641809489751761586128257504334802724529493638258551534488183180841497375605870093759220925564146321954983537876612074199898253713044558086845314475617409489469203570400426885395478275972094271483518906251111847904956150771531283469007460266788200361933314140625927001067645229148642555007852224298329904718196543688940468402978023106662816996911247692947300552858259199662648068990280405327110071706404927813612006560558574881504405396242856844650032735988616214135622090216622110451617187797785937696749199039370908444164668368913596046918336497510386668226308765794754785303606031650268665869679738223059638616650031370455886491367220839821980583780190381816404451872409890568560089559661797330324711644558216424035853686531963182604031295308456162266567962861434431784409267214995984804370003431722982672716937095739756754893188018503173359397399839907908571409101810813714738045240129139016722673587776251186556044149159035450886958068513517212428565754093158898164198654088505781846022372415118846415492014844744986845212167687787856759484807154724953328101176606942966801062619814647608744771422575776861868150429745893792958807718021047226059165296516034240435402451803634918043513367581655384406239038236369444446494872664025730358903722610705298809882238531280069700936034081141816054179990827689405165785415038502345453636415064200188359685184618770557520977728205350760779662641069521792671846276375992512799941946569183563017182965269088258056876885146044356584959604245250736480795598586842064561286733051138088230724796550886161434622403052215164017994653224452265192835112225292993777278886841180768419488685721389539995336773823088359936844069156569775819754736714001030259907836607237232993837478304815632920383163655805191564348946910175842830377818773167630323853734845698682386855807035509211020601959563726619950086200150556308482190557817176234375069929155760340003454424040894611258066073154322702034341087948321882464035730726260309828174669185386353068430538374112665085100207835350610794789723012133602676857134474684623981775160955751999613046641730532503121924141473119832220002742873901981484654826860204085891440957417955936817605707469618921088844883696811840499613550377083694118410339461152576465623236232320242865600693276536744612461710623215372024523339290555681546019640465676305394459760246201763945555285166320911606422213231056402505828245361267613365407047605916646010863509307021107372341806266120913229200315577086152699864290221895564276428086906548135832752173952393790977012173103919509315500777643510282513536792019728180035060209543955524749321116304258737382413790229329763797227403751295101185805698517578148777902846380932764874197715735748494219534500920464319225848230666846617368926145934617306741636647891867767821467315222397177748206919160654632163593059107501763031509402941545812813043664104276376118305495984551900481549290728290670314406865776405777523611376874523006570984470433804040497606121805990433996101121911045851678527789937714609259923446280748084271925998810679394217796767276003683343253041540885687370134982950532217114060262319157891830910921010284177807997325013532198528830211388703078864497685783839416780115739181922559741256562418065649249954389585649265546759293771418293680585919284261986026414727102352032713496046534276751207635357506508428379214656372698728772235868134001627462197914587110048392254439819377450585296993601023463882621291298992467926113144725046095719498838075492665502073770566151931729775638639330914990245677647637688932107164576548946058047246054514471389985578150558958832009797182915517874610913279246151042968415904005366129577262387512602337953115703324736603260830774090977403162725232989797718949485652040461933076769709813508703539641421723469410655273660546195156586584953770472234222621570858184149572493119536329005497998968151227726723052912373848077058192178470318893870547446191302792589670612035895957172322210479660026042823135928800126328860973760999914672421348068213489366433062655070483285682979864330227671754121189253398621190943778593827413365616994814226405160149021105087184620546346249022328703084908141008601721635915856343088225565555894406255458851719656703717774455651570333783091990618649714883187542632624116141329096788794807779377608319263967017902410744935693861728747445319843919918162744314022583553703935335175955876011332135384454591709795510532434555095645009596572179514597855181553532826624122613414243984522749510090457920669824844235669664947620160578653920122585770268939661918161162748528430007215201199880292863765698335881674333968525626251234456823752239090523301362387613521331257802883115382382786553326899489487742590627460082662255182844850554632021212146117602005054820553144062348594884325457325333075702004327063898826055328441619076874965113125787364384817195557101078459116793159699722692083059483505922439707744387836576090954701593422416430228463629621143979070100831670782696443870278805785126701094460586698109695995659559185313431719435715785040781402379910895200711225244190885200948314263933274951859003398447340553293984746823375558814587082429625337908182442222255284901922815381801561768439299524513789407851133795058422614844184692396724384305449314635538467006043582956084948611842093464529308983100915404489012059895231802483425594797103749368011853193240108284260943102211103446045463721119893110132827953733849947446899226036776982633543025977071646696473391542897958713643376445796564601568247068140779111859274577120801418140983183685288031322711969425104687612129542846564791265303774825473787693425698882339530330715445644140266268677524404038060496409803546798208253080808122093378348981370250096787595366889885748146954934903610172393484251281515513645564689898992080493817363698798983144497892807560226297861595885112431747606362393607902027522887334180547631671084757448412448438610893364018890233412733383617542924635368795077878548857961928179177434317492962325048379885010863319974072634448269895867970379021615133684070961865388503999590870567950377746164739168844185233387712901773458155027429831438975771917090873788265193314985096165455513977476813596233190287672455251074748817285633473832549834025262539110674728002477630624703821292999446974435406618399093553489839732754706433210597100281829808028193845257117474290502321244377777499712593330302156411309586360783297213697121583930545810947859342085407087041757263750741028604120940724404512197753619346827732350417193671245860761696537119746701779251655670697502424140360012299780869172597293214830925181259985781454624579582847891673464691115544823280451086902052767413340921316542902899302759716594456837319270727016169453441336837891226141987554727553608113613453279689493499499337289698245999799112751453903126641132968266463831657194024611020508595854784646109424523216278981279483607015995928081671634422608456091977706462931142635195477282772184893294978893562653372037666379993375150623224126897292713394711462828384420865596753009478100799937506683356780841318539827620522229804037207835645647627889304416023382628116087104606784505171688847776766834561259895437735579993372627961832010089221664081927767966599154327565794806286408624354769132490595426658715533639090332804873169968736110874530453567803715673852419920636629400373517288152623738915520049261318499107655416456024131945544957583095548407386678783244998053255705028608636489195888935886665991611723927972831656120555321015311634208841647714012489700970472815174035638419709567984002660116453159416012412231170885355458341331373101528436552973457452044616040392100530979342779247515671012084856428254525058210139012924781713133648340414754515279838583994892870945107826190630597502650399390310051106585714738471032854370975898579765426926294051410039366609736042718449637116743712944746652531305287075602570636355783022694682313848292245442120602026884083524462469262442557144975898621602762015581622823679700051322066236881796984925566405783905700034335847877654954789441024852515146415034917696479962305206595619980443510832281658146053949190691250382803505672076071195862132846889328486629250796571478919959530503244226730894213101290974079913198043485348078119619707839880369685939854797267728246935994587093959747864792516365036665074648497581377588078670804633978559108054432769292942210033279764764271367875200187056587089453445610654345472592740206419700483918073400883677642403466893445629871014093350292533694425513165764623869811243620077438855238400534941243762601301606161515891549890009542261773774886090244175536457804355987961076789465730093842971901201287059743383783907713424748411518903374820024790998941500209823572646575159246246416843097491271414723314098492751623991122760140067070921060224083759017019313429562648818177691971658604075459316756295820812948495500738107164977761977301772500875630917102395462903603571329515149217468653572991968811743652705990113427474791608265880302598571241986145270298736856011979483621738926649321417410982939324123425351589867659562086858109050956801995332675620415631971346290251672151750631377864147909220902043929772317065304523970512450345018954636861810991672541186580116614377967770715723193620852278151857603191190899857277796295443195904490533155657201030144012934222996147218823828534585379933885107646863593506789185408145465357040050054291974118876973516670418663803734745629403509700595447944631802840841743646716762509764425296971467593185632869211265538006216897519980064180373931510780453141020109193539875480706703011512786099548420608781477489280850499119302218570553057657843600279049129652442492767644024416661996489884124624649561263592908351553646768179370144670832631164875243102405418321376750927097537466699841429236374479949734312400604494578868533457769511834196010092333121667510975741111021809451022510072645625022263216811824738203258254557334009890603430531549516730804341675965285650473770195218271420225587123840650018486596336559352807743491021187688570653896809455498092808199338329430189475946278642144444733761782419280253128700572070164684780435655403112048981859141730499768858060616975458729265729594903799850291285612521021131411698408949897940635927056202256465906106776715778037036283886669482717143112531464442587320821879792271201464108325383464567996818224116533879054696614442527727036599487518579520487467009044204985562385787848692093193704712890012716009982921015355292814765410961975616372811983644132447755920376530266713232279110126476425867144394254030092777314287500731852027461230105150382188734134322150432386664927343600689002613006227166566166696098582798637405268379684073920255041878687986421136095682502424444608374879591338546043953631136283898375837316945356527266047984335766850290780486295204948757768020216680031330269594491119503938287474987826010097294259519501744542718077186262261499680694167996371870584106608246962460128929157700423977739871464041289465244071349912919584411667793617231308652892643493817202244980381891724921497996620954145323302858975693731176142583735523537975562092077607809753264189526652062711510484180025761436329184488468812141423917400921811330154583720750828295953580746315098552398634889143294791613906574098681721472242481024894316046844714123236834639719654739154041621984011564516640058509698367549716821720267645940155656172026212840332482764618388253050967128487181104561283269608016837794970091413746932092646362905507346437134084187365476719158692134528537516779204978348579880565014778790469011516342421936759767423486558321161325393697777289875660765228264617915493934531504852246459853757937161046629430298963400392380637475380394264987489078949185234580894548997871864544598989076175926531105071637475352318005009739726903781384699815159303425314106320699710682225624031063694944741146533671205908332286490626068739237625187833742277010407001556174027016098725150038211246901381749081665505200371801613447771682044080424914045009142237831937050323841694950674551715488865453824562869516915980627439425311824031979760245257557749404067535404064118983724653685845575765478017626226828532176480712838140929659068408720042019969546216688156664117888614731779372539199773047388007674506860852638323214325535139369714022114016283217639657655196018121248549307477306118877296227137047225364651074041645383100334392102454378793244076725520962138042807779756593275751200203250228743334666914019394390794526147442460114758318068365052476369776864628864737836438280016153560397145182757103987109081008596948655826710342281461610302009652319897371757088144808364466041582738518970727007989204351596653491328972344917370756866996313534606045469957028872431282433361445519778548500927352395294377042364931381869375399641494958321721110866170359810435362818274205387211417922278503747306463790992644110104051477251163642102104058451047534966351468122787521912407596786067928331842305779961156586948474951026358681100205276179955093687069071360009996023132461902948571639548842648264532658339537238254192117068158836848217104403966459567842793255523146147152879203633131542649426479849072857042859891096346289873242479886990506327503441324071822633158897786679259082302684854640264746242382542413655271405930366366908910604114116306412607270815521831509221265371031700594756398684831582444963847372372301155799406760412912300521356304318153803822610030458265852727292769783915768473017159552986951828579582583563836918197744577215054406009398628335041734469107104807438781490329536273041306391906751025631124112470276871547774107849329788371684180633602938176081498706875948522139086386762499227120488014531564427458975754157320595495743488424274796485672266621744091149364857662582050546293868802680747068588509091431388326246326236654213980003783755714622860957788144727374318562578727515874702484217111292518490939762589518198014426149478243050220899727102027088874499964226509348560142858128815747644514452865914414815763885027578248964203169059562405012548911907272278073591271137433396105683137001118899980516499262912948217109148136515293778991375353063057500395784152793333073835831223774632720318254801609909677162211025424443097473002888449268273142298306157028024786491989781789778754785460280052569928218765498579130236380393936700653084373014439398509161479081734847367252223860358145452527086275640213918928301594324463293114106127349974058455033243094768312952231734967776098876556214670862777143228242442132664225276944132224176672834733630817236509556591792841967314330622173833316787650229484147846114329839736670604185151708837093148479166398968608067163449697205349905091349556117503788644416709022020766947877485254617377925959106078528490157220715105546762478604693183985789473604726439398894776693042501717411878423501416804819843282639938946929954245291771051618542511790561911174606267435559950475845549131431261521739630018737044463609539973164702322679623487822550871184109036098382676783805641959283210663169820899101837109591446336339939399083497045740903970051616209711418515163418567028299868025566163492645503004307137024876546304761720411544482569226910433520490514235839548156169571923099678814752336332284782000591185879488882265263886989853911917889397202398120462697901639667341577512888800429323057796952764350497415922241049104458426106541249392097604270334069161603761148953756937916582126166126283841265027345058203116375935522538272201159535878460842075644576764690027672274242247432969562620706077816837432632886185767381588681206188749988165271885710652963441288134434955471723361123115949919291542371964064879309118564409537453598850666452027123802673192529587876107106287014809713322607083234380442135621574226508632870177469259773403226211569933028354940872963417033777207093681383468968304770232884202969885795285457351936103063232552326383709821892067663183834561251218366552389245079301924632844482968503845037940141453512672485024098697356012318033627063254320963389372604409478291930700908003764941529982051294687141008362258632531441836678478596249371771236173069589695542656554479225386765119638321265062154601538113549474059280302145822391659955352352934951194531271862527640260222671170178620866727239331270075672995065151229336107280396791595513993654554319359528841026616703108531600164942802236101889750511655017320915335156475284829618261508958703204191735258571174611712929422223571239062864590383757610510476459998428642107625121285390837801119662957182380509713611692636243658682324962277491927418552414803714869823922245291983449513764586945280781362472855366229458040307473874385725203765902269558483173512589305120114623691245255941866251954209005352513300531545262693870216472156501677201481964317258836843138987700110530763992887842701942305606334933672196416019857172339964211863520043531490406480031420175048752478065492992453606940451887576684660468729161863794774376778052870185655469216932922208081772150564847734968026216628270161460398019734888399749256474699828326531973654697251281585987050880994311510736982423171113141889409686282343832327711107600904469492759302550557101895800575990883983274376750104395219418584214787389416338419645005395797925075637752864384382155292786839747816231050824854907995811528812120392370693757981470429575787439986564118111522841132849565195352706452696088502735459681349888096109630685153635957241418264489709566442020969383910798702842994112746307413940658623255752344944397802763974278163340503865331760078070905552441768087871820226611596925671944879558690851316461393316316490680917711202122236946818169672803821653647372596533690866045050280353468222066127284108937996923067383069090037362559681568822957605291169949004806412821431447008186493465885997938352458991297167670985883437036086574840261915090423239135915566018896858920771445252631910090998178335048669245530323186903943027888180487978970234100147229151983568593192674931986129959945766149300556336231881869421088665348044948582895305534584430113534618745354829994532765434831618908856547726869223481139565336777809193546469475414324120395290196554723041066272769492307936339855229581267232339822659097579464109815299956935694855539546997023502228829071773624289214446390594947974286210496382915966345456465005595647946779346035988275704294876649890148320945229561691499852523912873103743953946559863085020706089235723506682953855097741622453592880363225920908874908010915492566302188194859956314410641707399818464279228615972852309359987142308624831748982675293427284899400754458076548180157438106908365943827451004858770558030012257499878064659032421790622057305638046056624986443688470977033477558681108724990129889903836765548659108380699662293377810981004331333798398224585580473766383277847035811639765304956894452014024678758213787544479785593635617953800782483515504390684540898188020111169895018267868373831943052937085330828413817188326496290947940412415874314032792853764038820562217978310448829000184102264771067442458444184068779139940833015441308780762162784603913504873630697043241188674144163796530239584577866241842083862440403748786455800431904382642097230156181788378751251042425052310023534204617279977506358639951653161318930330028413544030397456049698128271632336927694823721323446320571683966257875032196854090399785394562512884744869036303349897449294564038920543924453079298288737398834587471540656892989393031684591121353400957506395037725787853285246601948436792313944358672541375585562731159482844519297664030751466887579314329964511107556029291393962732409644606463724664983933140137495631600018024796612184991124552734229858244345918078339774802626118000455459701917116049785596435456257274022209319771739493483505650020480071238360325486195283650521187397459017069658417161740480135798167610849044339201875716514366744339409040320880817173332681523041357102415982446500289641591386742797610996985362434416508068253765356069513169448424377891863973858569655883865557045021326970265051500335923483270564454883029947909953474989289165797949094177207405406589168764270858808267381980039432121366896235536132852778314592815329246343952361752800392030375264286835143506311054851315777529713282667706590968232677666182821757329645673697356140133230968514797907826897894299100998808271905561783895597793626632787826722734951867070451570393097533954488956771293929164700514451079495178477467118632465218512344382539027107185567664077011661289404355770882548394135585513612711001716843363842815821544347468103687205701905795323374052224243197155943132659842108716728014281004840396397231371768495933698179808442748869894503156667534830732885944720384331546978951876490711288156686144311236212223026621369155358748025681333791508023109759657477213341240164984965401203028720170741280233027503559075968576378283120733617621505230417927601860563743011860795975890936597188451791909567586004832932845778757837314455104404402238819083130706047457862233853956665318754227734625030125216200995837323774807010221018387376202767014450205042633781599690363970244158184283743538926973596994209164562703401324608752022867922654304342448458039847741923123385990284994884606497785421464485661691792689799114589713826657699807935129429952008607934927819010428255802993850178286841935443328979953538027444354282290998851147884358586152116410277544499704394561901906984604035733414942105804462641864568847234270774520038017174191409202513234727554151753917637860130609367003014080451222214305163294931206662111149942924258476407338750725193069782895642146365924042991519987075145309919123237669262312758486621403228756965049677066629518030762501707286764586714167116363377836597442852018040496599515103315066659502708127717077882107048477788487903717807271368681661353278987823246718000115021203928799309465119766808331708241549416583829782459864427871950586486660299583900061599925919602522886380640496177600079712485104813911042405093764213509079210887284769139219112832827049504247231270585706369156784699764569296277030498594988316038584436028011435131553880914090234485404371953191884518084066127482676852216885403318443295876118310064579024326569985326877102661462870197549134354249881580732826766950562615681076027627933145671518773415760572221065283944353726580654461099075074828993645087881479016373530523149206770164296583025825026403552220869778024263057779757662693665830996635240730503218389446596491520285099056885842282601325195376508244919991952982147919861495177812426473784599768641677015643327669363291970200735072696462160978905122591975935957971312393258696114279333426942090580091981020773568497538708325227605509643275002214002454868410984845248727070379222922295853087692255669906475853656522261869543282630802730338876802473356067219312567694803461256328187553808964518042277096417578910469249819618044144637166207082937092490015963260069997283531939800622578819453171404025834140533837885871141243063504322225666093429271390595690090200124902246962386729966201881151037200714638592245843328910549250376461515447022293639318217786463181459746856271872940715902953230592832670486802639728140502346363090346031843192128504726132209251021771821794398220437103450288209255802796953204884085707300225167003948167570953136353920516602816458098751667068327055931067875847727558800843991422033102503103322831025915102830130789017111079756479367383768948890345241536293160626360980859741923088709978731480894500257956078362319747658043068536470764566690019303203802019724100877249915233586421823539403297484318439216786977081521606145191313059277534393583721184445783259345074714310396304892850438931422785278570432367611596028795286587889040897191798247913258930309918808018578797025216885998887475397494087336651893127777871112584248161197178752808688822346800934200844795526809597706764016625470187417308665022911645405817433052756132515525441500944220599133469472222819568037529840443571069454346143562464274544935226311409238219170393910549023708212627590216644238253814400584490713954441442645393082385221144684930235962551681977827264148500717636215166605494688988342474291038188404211488522320267524943581282407227790033577356127120700689045904017254708800735944313617626735165598782489218689496155244297754079387690056778487389886948924276790555296416290001316161067952952803351481822691380868337737488446165326167132597047021798840949648324566832106071539112560295018101423562033058879203133133891665931610937985793296283327085534718030725601072338906823329711239911610551268128025159837874860628758845573212254634371396891186294909738691646293246195076975308082312888705715079989664486047005592739768935150937429017289849096869952823138413903438976251662622686758306947956094353206047243585228112934469118767748885271968542959569257942260076510943756124031722467104549356121172870598460691622516180226357851650188012453312341609171670577786510554387439307622518675025325476238520932310681881258775551894155573322340744859540152582802443305120947690171222939051077672773189791826046378052623817392291212338526042098022128744894005477902306232449220780583427919840237132893867553962394645231385207858774988511216774748282031971011617622731531288469181078068183854899513331134229662601238581511973798283715946342641444261732751127183013527100680335495134404380806270016092692199243659105406395293988273078934134554021061167828259006252471700593302125919082556414330545140987788804789268859135039511200860315934610042970107745120533589251786955620153835801243776977929414456399142574849914003313275230185203438597945654937088742887293904492488699367519820126288918631290829585692334191279582742345099317158123753068273103877768016859652053826188150408563690893901903163088382290476896803851660914634692246408406682947827131502139724610960989261833271438523415529394393042517386407960126115774247026312706539458030528513970035115984267987782686541594009251389119227520664411569016643295617771771363923547449682391325239680190360060912093247228763836056652291628536442566463729639286101093833095027573873757762634847106726972601333431006783173257057909646605723276527135667356097689745727676662264611510151696267379926719484139147243042320925779656428002832975129287849668249669078935591085611881677701471681578664764772147684334530648190464978760612554472860917558319142488307656973347128681750605511687214813192601106574590145650215775055485794267503858257298324394022313179632051824100297735763511714756919130095819318309884231385280899990249819448762117450053317452215810849277669549032319316686090791952525893884368926734328256183428156549339230448503048583621597817196413320133048084749337979049032844295268872493115201728711807764355622743202156471964091532635537019552471360001156656248334790152104043136151574346914968692299232063291600610901839218332720166527099954014141584650716163339246296376938372401196258214996769583898957626178671859360929408540027285289485022804387558942134736311138273462397583064992219319611107722671406381147499063157940799968846353406192702452473683356130456327739641709409865106708165048474255805528994340090803938345552959232144245999625773129532186383248651901138931585415253668487381915013202450581596163968368715080425873850500744182237784533190915016406550507295770258854202445718634294022280670482938561189202259976869099829008483027579466481403262636915059467113576473910360378818326106293497829831948766034026886973244867305933391899578424364675298143470851267051293885626012003739304706485671450630203581908977858335274664954044689211109593939159827346578756305241332725126080358181082078724605611608545670036394501361584704945338537973832501356159678815784139916005651354710587788917786212188229076074613972533471306712124383818771536021282037591438363995241627382997514145661493237933705921704916998307397147433095251212958256689780118931823646251900830996181504818346163882225929472336261461839875601777331000300021675515255143791678717507584881918218381183220165481442489190946499890361106777616186765777202175190363611202481992854626810913002768936709143778448339548821859562362284128992056256916270357383123651103598563536048332044782415996397578823287858229522616435799791409166719071326655454437918782522755958556295829232969038742680202414670988873197117006176576499457316936049552616123963536876994126548957466389447980595247472482290097542014083380494475521719242813815298938475184184018907639276728090013705401709741719126701066409598165292420322740399559520378598925997456973555443769445281131880464887222692605048251215503016396515514274105201629493545087398622737610997286886565202323322703369931977275226737319200109678041624777460766552467653666962628559095265072272843243019725552729585008004263487681317206696885242192574494892507745579444242151829510615463512878726762944545270472024202889836151805774738658496850697303999346735332564170780008473408204678805781647936916861750249814006454892081826861060660596430964362359852057718626215854374545395280329588807249509583348636268747296777054801121083871203007944146515933964124248670763973022821583823389823086128696644135746508243428403810763326936147053460117458261163639523280214057971270060288492025855417052621243965563080383650268693392622103404837404922492281181203101575374254396966247769367189572413730771057715723777552830131113465067166862440688734988079913092434312688807793909848419632162334823125658915586310007808807118598962237193932013684277430302570443186364167654332280935810100044294359863524902078337231633460926229282635847626688960602960501823502535980053777275640476630852328763249226965582060904059920932968754144625268929437803945231382704892987938962553014310521026162365104238579770133602427220953000043151050872933774469893434418519334900307776487343522199321739927926695753863197697989542969765995092343285834546396769692927970394817635008243277567117468507101222579973391623233774706679013455976893399551884083055755573717862435535296705305685559374303535660629609455241244533938398572739609033066676102972568745170423363856968898469635152043741037796571611238982069905867170219456794832704147927243945347936173413030917240334551102624818717324837484593029387826648906218696132768960277083025918000197561823107645083591993662906344823839420233620442979866923489642326926961232086975475005978728084455435595130233549625543672887940211249314822333470497558829457381551692203193162238857306767771330902541451355637536768341741322142289225357799634670446506770523302892197387868582547895577151521490528553791636352652145482905883743953627187704247116910292175379297567846210526179538599020772383635197166485703912578420359437866145888631214774377101038971985536718856562997263849238207767196256088859671548396928671020436733373924541124950940904290016246383459092661473733409887292793989083626629287675720940950499196819666346593133878218246284394472790330515726163493879384151199495781511004724904731730921012396975841222064541709847220768408391805441769743696744634347041647076172610689064708763378172801419775750749976666016463766550695308512778208864751508889140999716192983612235852714601253119915147048973303864326827031038038928801861794405850667547691374234967536937531405939622991395807475352565152360699714519585498503836266183156103376691780039919744439310267251264899374159556016837014246417104115595520155352734546019465336454999471423843397128299692506651707601585691146147848004093197480854537114840524550784333212213711890069157919672254300301375560560984236497616977974397882347207704509858167001920939593473137398117580908827754418252480660616156364281984892796200102337806889803279642851420765161457222084292944680279933934623286601119739863668239437464948707186156492210010248433658102079293055605906798830315673031973739869754916896555113787182952844340303411682695872253729102860713005171557514194432179107463444320064221877174591199604396250712364639631918185679663277707138950675006020803791856670318434029103417490767961291715240469859766363498465852768904796685111469755785195932203941992567082567975407631421065213279469418855292690283912806611205827180344260852583282943948301577948934573528556397328483330887842074555171986989231791882449021126870578463362778996522193912306931587731440968093983532411133580012849482335764421791934702789199390280800783922114563296667294003613704657341639603183674545969839412050915601618798450287343595119995469995663549670401645650794810490730702520324430863535306548517553397490538671263889255374972151904598858201067243315877896777774627948092934028654607057353357713586059444293155156756869822829968059531878690622008849169910816210841205942218951841284897455851586045398476075950280402147557054829304092895158289108677618517848319202884703169911317013164466301975492567178014528651120308499893234536169139044599839759690344086115635412149794241141617986293777898400302165276818185875145428409620302252589995834895449026248048971648549376537006365583528022483605244336530392781066315429774147088253931275137429296907328565332141147359028371395359525961852925075953326905546315378886934450909539618938114063654368940988173678377009318516301551258958916976317225547623753287480883308171438344879339764438162278843611068699449713970498941781592780255441675646827353543841524764538143769133127761532017734158570869964863505996939991578397844968841040128603608434830211356111364899662449693217506570323031620781182482751712887085460528054512019001981204510808821704299499503952116244199653466300896121603359839853382592787111943558726435492132450650507595498805915649082884780612695354552997342368134934027757301994901666413618310138468596638746258078676091921129563802225855592615768551892661595953522244156324168618370374800969157187489998376524031816567057151841401258040542285941197468798325641136285646793801285227507918906559233103915286334855060400154982627218328632358095351837596796635458350241438350274012158984459510158699457718030999699919914710633843176315589741827315589885771486925007728931028732350826390198210747171120054322318775809700824750204613724131409147961043370365322696240088288084702817697648838988140395169859404455832254860771997541949952147885100781357269725748612589781059574807773611515257074508979705012548355743900617017276000842133970432791749038755567052687359914575783826529494105855874840203535797425092930800284179256479061798892421643365022277534022882689111941435385263887714255159942126902150821481762850082140965351326218063833923025237828242265793854616000449819751441736430785349898245757765693092205478130065780890979748968769424128837647240959118304631640803667014674564435783878915398678577002791374024736194449902312822137149106595178535541433075940332606314284194776886152976576908496453173350661087671447891519822519617737030282778947608787607191406557525774311107086998187584249093842474410231749326315747951582156161781379867483061118348399450309378516482324241059400748244515257909210879810095055432364731344935942924106063680348002540884190347403234538519362157407493475789581138035937707040485464214023754694873398956429212342128882351245369281166899542964166589837125019191323542347708008257392549019358079569323725183874508076126370995108281651040132712722765622294508482207812890582654901631746538799503582404669434234648090855644741486647968872194462886129558176758743696843532822160239662452913274419919136042950292674063863458235121179532077830127516212664151142107191590922646598512509516747717797102191558329520245581903823901369518155312403936383758664120280797782180386965807917450263819594638562883269421001711354294941525064382490195664408660975048920271693727931076656386561818555321875045727090944555212492247253738408672040727653086872544944504705453718772001054833787301682226264956410585028313953844046104884957791055394046431038917821760504141036007578099121872883419312322065646572574919855386342610651950318640139966185552966658981300867382102775749968072344809990702698343960962747812083958601122407491388047186465425710402712419264769068243197919516943128299346339970323036909203416081177774844196591089953959192074522975808634351707603934122581075127267768250390938303490814054707814645138463810519427554253157798375123316025229785519275179813065717060339561450045990112258369399267604515909502323644606890875116120298437651967862429920851237602219725359860361941988903503917675253086561374659622922790165340586090426819460538361171945216289560780634618812179377663358443376563022846292503659294054136648581132790672743425661504236261666659091331999223365398730512806852277244247574304642542771214503706463045817051455574887020857344678956672905589468922776078994921134565945305888856214452768786558653588061202230229046404454286372616991224199270971769546412571953824037902672703896132213194873573433557422634361692340301275248775667196903832013231252019086863860307169765664923478951901258849781553914340045551878039107442189613562046396926161838097226404928929416676741493242138156097586307147112618199180510379762601114615251635063373875847048785497005159104000370008255336288917492325188484776323082163468445440607002674556330270285845052973732546414909370869876376059564708235981984315386238947117011021878162137565366942881404427152789403374442132328782823846658186824596232279422249412467861652605434375007659612875342389055019038068645129807751557767457131636476529041849840190530119865313169426481246060854439383209948820581129264571357517969888198786786859577977168730877165939713875180602909624017578533091151509143403351966150234390683294548072634523685398949230655805823009676896762216724367820318531713357156462294289980562728574435055001813031109442673530429356870914980395599402198610518820334108848606769216892162897819918802716642837101675538882225888148612891989914325666533999284057717058315585742348193161233868461673519990666409353271627640399693802962797250454777470762880820418913005765072572193246822179764229531631396972086740490430535337246834803307469968231836460776396035576828809369888656825725781826043450534863249295222730347050277170862067425798695952609656128346045265590910993783599301773521170425890007123582993350639195970625931582329536225204519846596850839433515267776151340239603212501039019077323522400316818726309064295363508551775952171941980811038667807097650601936234930592599815548605985386267201785456309429230102141174567417543937291142378572548956104156580146754529743512273308216700116312053257117119872180490199463569320385830673396012745207240903209946379828796076584644892032906525035553420251291375751670662512435976968561689510561471571861102232601561500994628012263245899751658219683642379239925497729740754611125582429102697039069573260423725259216400485617650604180506247818358662362168110949757808344601897282363418076846709544940359791189792028902697092120218583989933394806891549581583238697258196719268533417759634671988576935966300117005736308575993448788218973397524457660296483675982205510941741738409477894265522676901885085170097410983635947591369775245430543256626890418694749199144427589707426603199330105078973713333777951869881770985536907329134561492127482298150094527424682949630917344706422550520887253382669557188466500047738068439639633478220790432145081366560483140915588149328529510465313358449060759056165357199283884209024516329894535353674170463608146022080822039559848638800058251005626450211020023210945507178073754366648608712691450413721389685586717713550885211754965091605211946274903587923486876746227150963221828264474103746729823739543076480274351306500641120795574256456419022971570799111901846357601118622596510556485988298557865143340010463047960684282133010961962592992953190187977123032921265383875662867289449504307207602146630201735600393938724146580916335100339926535047210301627947872278957809941777398621306669812774224766892021691566917308896420842454306006536410789900657029392998796512952300718414121889352582361489690107654515968949732157767349373761864080740842860832628159810180499349153594769052562696432066072494367809784963094443368315806774858922422303672348615643122544246883113758782159217921340016153815653923525605264925328357706615107192695277769151525470494455595450961868584141315895201203598927517904290367467308187822547135562119790900797166548419227088017915430078049984466631425633270625411629284383464944790041721456971040207420181358461474821269668419878342382216828755976217870584862792767504364648979844001533529250037187005682595367468708324291155762495874449830145871368474720435875643073196566030639399586939066003513274313431386424303318555757728211846054932305935055575345395616443131047247880715727906410640185523235316836221700538483287286622898615761295613260387150040967798645671255962891361373192885921712586905125659548416791987487391900299194907257505921288005120403361841131288044374278498370585095139544052828661002235325243129818922284720823391024829815527037929265094051830505969110034210534800704049455990432297540353282269666690043820262222441082541735897301218958346664818443303507150155636179365218162619613095077337950658937387719679721272712681254972669398941040287770453381276480528389071402210088462126753936982114477018556102591202802908886314203835075179166170875190836520835425133342012665995245059456110488372692037191543481326960136930926898990776812034689538647577485633119551026501500937652604463185081957853649777976833652301727146980523184584832117158953875964655537248537008326158305629568900277955861624442663778125077747484213836660544429807228798378512926252476841001294364626280186153365879162444754154388264430086242586563738534425809996674569230895689186199436263001244084436358599644222591775632411026985198692250223139051362821968410520418374281583159088311674166927975121444678854928948596144752548202555290081557442048623859696946041129965157992432943203283813113758081820729308965926723513848718206006527833030056268360172565015754726378059961022241812426624699974707437350964035655703288784907754896773971967296599736491422460663647481526344106084316160902676971989029187825223682397166767227283506806656152309340251357997883876057256193447635179519862483298815900450530275749578413461216928230467820866480605699146314946754643168102621798790752647607380994376573724694057330515775992204228890912842779410295470666896854003645843891020064770228507312549836932588617585472732995165001159534228867912551560514026025894548766488684354633877930398474974679313522319292050415701518728358361111314364826410508718727620734115289783544149108729687549594138792545282190392975126622743625720513838464042159232373722142125425163901272176851952900460677222240230196540791690404075715830322219360367344535779215002442520290008312361868354466042028823814769548511795393775853941447858817006496481058487637345173675817923934784339508957120954999745993818262984372139993064697658317961065194885971339338580387453711955364325447907618922268739198580723103031828594376681213163023997258486794779909897730700302176079620200623027061267927885234723091251683669624629413121016443856099831560613928856358613002819661067333191002906435567732421365996141906070350759082015576897754636510801101011704022576958168228722167102045391939661712096239103723099078942585481561556176644270784473378158667084620281403628107981035491408589175855428917435670426320880550705065802585796518732169891213331754704215641708603618579062543803474606467337203216324305883809318485948311225749119774706742005064114530627474399420322853813200541312956762023899737587640931333501504067925355333381454987221526670724683970642545315209140071721237118782339682227816579056894571845224336755000121263063167943258124782453323800210359548880417544988208716634912274053487157961796349104062353789617041169496586676873821395051530549439902999563259619628749680087012832182335903156775516303816816366169337272812571119150382278094439430891886259402641317294744580356332681914847079439938514060191948772665202894263254779071048761267297425996339856954256364360405649932610106394050761220058534385181793716190991900163176455464807430049266290848817366155533553153398413142791077880033295536207428863292115867801274240526655300937560931860105923251935474524066003881481180734137182529442255484215208312634539358900590261428360591649163160207678837101122929724658188764298564059576705242704746025027636159744013157371717754302381202018706627060683724990350897749359764011955413981534957078107806945070751441335070468282482499752794979160226394854689835017600263203919096164588100211749005994747047384171160691168236875031697482880034925045660870055415810328245804540430826000748947518297364496263852234643236581092587532141651526563466051203012020759499966425553117155943715279402665853264138261182302343544022727326409293463631282419867273171056958505491761697599527181652362798597407692061774821245743766963847288405239497179195569069296882183693597978539873043123366939183156463961100086040364280764173051796700752901999468812631653969332689795123684956915921837593442587790598272293636408351255733852399275119459881051019530493663947576421994927362405088878209563427164436127334366980050463279613028158593852232841910121819172548817572750437194449832279816613348062378853970845303141229434640371807743269473919032152340254638296499214911460658785167381895578292432195990154963965862766235446322216881489348313873916172379597821633041214379300940232378199904849058028646792356446414127877580581304524973042381948739184836587040853296569114575284312482727303880050743776595359491050326900877464480395220769028907090202173619747720276327989985146465721849257527804967939267091164771128315149668740533523503358144201343296880277842727353105721069464430120166639201224240159043823201958644041377478444730485240702192772671095605005251836773226395717823280904260713886792723355245876562483114160508595120898571161224385330251536246948960820233920151178421078461522529293391998651290907226011245414020106025815434606465765047341770840717963343190182603924066689297888596434411579821910137165062002459834932408276558813909508666642068362913964393979348323693304502017344361898060022351627143676291384535736711541386619656667723133098911437885189657736608151785073072724818009339195736274160530641782019066598479593570174605354844676013050659182825578302705390102947760025140434192051619099615996488472240124156704721767465844823766036435572975321277876556580511297883920744970401130630301989062446429547955327705618330769791222017921831146368219829597498488461594406511862532792589507790190220401565598752568683053698575649602451824690984785683767424015188432955319691526696064849987023250436905436874923518606991216943694018654025341532747242654667768147532824771810987286064135176012486026038455387476926769321934370809993390391420999782685903232068772562084302804879022663022359417317563779651011164415564942507150884564155164683319920809831604326242054009968102417044467219359639662910294384701341402092036072802022563526041626227014514229516818839864929495874664533974302935852623556282240730803718221210860697895581269446888000342472566241489011252257082029366317355975071142900820788851498127239008685270767139458498680359672910359606219883813299106442889385868731235577945931448674495941318748166765759692351623699789679340854655248563235237080099610116837251491484996811380096072932930869424870273491001082891324185954997183238091892553682627136574694653475241736621721148510215061806435449200626409662817888761324890703852488480272983103829923554447702666425670493768566526361599394077324724182499928873282008950740664069742840656699691782106684379864285181743522617542066163051813580051322398873675459153482766286825657563080588561366600047387303387644485606518663984267863148073717466241473984301864412636319064653246592142640350398511743461519601282179555937117936827992658036535343907072352229036550431132772039709933085718031790580186751042692854921128847176519442122822323109359598429211904281147327452843868460851448249795764007087659636502303219701057741979400675773832484422238731082478226246196612410879748232992991050170939540107287249876502128582818659796311221594162929499690306866535970939240279897860227876150966714751760600151448530898817751733505705318134515078770969067219009412214646777658214513337841851087550178715028330660086203748308747019792303826357048142308481076489847699476626510177670988810747177365078909658733129442679783400304365087882042020036894040599974778747953872471265984928954626262633435477325277036527730332102059852957801650878833743976077251718406907035242807133250528976340440083567206694327516107396322317997787337983298919944884549043598514838985547381653937040176690187142064829888279568124181725191347433373149485529565873894710755009677300711899837973556437597402614069343773863932387605170738025246378512792297395134768958842206077845833791927177164339589393474261810095000487256819423352923627870100659498058041543744398590490709061925738672990740262822105039302000936864077941856677516189863395747108151017722262857684778571901424635633751312519534708740239424863979690353909999419609086278145518285038224764735539822737717120962037284171990437459681698700214199131553764304109560534807201780280147899092804929190651269813679003761459013139396601013066783090268945615417944545199775511471861420180395386845214400691926921399748817877391270918137320089758809544478178580662893474156983896501168363861926022744962406204278934004069196755681001861744713887400660844748331011338732684412491319356608101183836126731473827741625988738510166461343287022550400181893929416367389054619521343478368232333244063451037093060028524961037609944611287305463842769386929290861216135490388460951697299895614968471074676794535841366878925164823358705203114165312185573249901737660104375659465763046972068802258351220679185941846122452655898113632444568194235410442417467851419336329424346684147498086641237487820712993469002918958643775826520693515945451546428773963512676141350283516096497988545589253405279410477993859788515473677296400061093509611524101616244849046029077621109370182036944832082926295730277369523652120077199772331106399461750940346527252006417688246597293183194452037492695910088205911279539866213012589560938448951756203684868286907921112368092307259808282649773195729210770473982253975126981211230716769322845740997720456026436012277122325778037281244872072245188668008727679245901204257974125261353356070928782271274979355124996554890887673425778988997444558011203226716646284365682332048939545288747894737700691954692039357180801557803380876856577500296055063820714373023990889844323287195521554397950979795107501253847837244226362931859528221924096571609908848974727501381925350994853054466371375141903645900891595807479262463718957953978806205324024470547316110757706582822502623045138671957170843871400089223024375154411085162411681906112362767065181239932470864604078608479642766747003136143392408603906879014408464495450808200854238455005616263948491678099622509327916481759117663393180712628988686401272423107559086370219046102071174149362404610890020755889629010879386764527972128531713443610919245260516976275609733677603513332726833932855021955392946864070264686585562956299526532902283144158382099270302807856491882554978396263923785816011221337839001515918349625541776499968091425012818404549745773669102194255938448155124686836528040885265004235651884942100373316871547574865886289456751167702214429514438500305100739771072094752822560930181216220660259724504901459981916914959974806709311189910408088613707809726245048243545016153499424866747078235935009238090829381448201128268725380023023114780955845477714311523055097772903805591973314996341664874875945350505644290010567559904433120831641419039321958839286854532834917735580907269709675638985254897231424652538238582424825040633750403266508181268778426111182980795406329721553917867793186650565165160246191119137822225400360433624125735093899336238749728274418146255006447770161675297359071345662458557065984916588755282563884147585663667778999485814507351733460280590387044704810931508961385642353072571613960812661694987812670632431908622668715285874552560484693094867650551049701703863886198176425194058816795606766384176684956091920750480622005399966790553694175886555592189120660147847525039516603867935836614748824786686772068514700886550910035314322795926433781230986040335095118527251309756781965444897446660322428515089531044261912757468624561656021623820513273345684356737124321389185652081677171902977663635237134216727348587124620629503542136726912245751456707522612623698486416849149607947033619887794929701347053607006356280604188818009724925036576354174411832291338160021280333148107614070247943804750306988312458492115270504660361192690300444936864421205191107225681369930591871224392323042269925165241165756860779444849024258226525491193930681520639565463158831632468918134656671227689124324083916552902837415805735192824477336271813560114258656895851363392518622487877543950340802340643099275428111052899469513632591223797066384722005879959264280185411859633785973057691231153699415005532680081177160013691241110472196419747902538228848896731255166153457213617006143922865468126959377454559785403685908500397291591007192959346638191407776942784119853918897727053740667497905630267318013301735380065126026826165183725792200337567145488256593182091068944151557002500870146126095505530443649220072025472924252260617401728358987745930813777352460556205510899843693245417245995804324714471950410822647922320878583094392833761720647444126096874616600760018241326211653524581113140636472953702670473091400506725285695145142462278185986338969652013933071642514366363787741247203441299713876427509368180366363218549601353084581572880378656284217838238393949439782459024631458868464722381319226512237757758598811391791004762295904236450431399163339203467678174784260078142303740853467107834531018869264275723166460430409877235965938788840356384286795127392302621099818526812360548660647787266680098051586526318480762024303721590253703518011238048363784466986125761247268544198370569496791237617214719561818095016350779773780015150726899428928751725101917787930984659092124494002981269356386495797535287664911656598686182779882428381221369152129376942765717431533621142036110685929862315118772094592833895466272914797868646005699620267241198816774692211996904066161623763341468423058119607208391223843397686198806430468320668590798944424313253183086373246272732918675220212028144089734123393001603084527816352115922306754810487091410652950564579825051902742998138018252934866795416694202717654217152873696707644296259253031162268803420694164430436627504828445719901405754634184205043441562077112845332328622334153185451648886510665434794422826910809184635848962523165141289200309623678734404629857939557259272283337545751754977996685962517189489812713244539207330891814631719114764608327700994472466997195576095188281022651794389699222769741473513333206311474717849068705871934849079452824947291741031765514000775522325307878395818307131516422024158105882782100455085906339809643000517872153409957515691839844778827068719786229997731600122671361210262332788368097007407579662335277822277151590722730593974232193507327467498093569299206231283758566011931449602562463880346732364198664806897573675963307941644313941142367721634981073087881045397827817118914253239286590985676554481075554010791393534038670052397466045289171878087663621263222305507358867719825100444350318161620898824063672011495383864528509677146668119443248422578260182987840670551882400418751891309287937494441762797550180295486191174740325498226790102105719650803478487062880420624794689257936070956993284828873128903144329574759027524353512824283806875121071319201806710352509400221942289264378423835743635285143724392089881958058707941100106690636651930129354249806098653190929357013857507002314042139065609262788145440275556866230997261936836700872912399431485166923372148703455163075247268717753659006444042158778353716986425227487304121681667907463357707167410466994432505972894973804780828850430457242427414770666182836551759804601237869580307978808323414132990992156609192886499469856968983791511199829189151032530919125495193084178247190099019118741646278355382808910761690527668962293039819526933353161227973353173377372680962505205506644174861817236342083890591857476931188375864495847877352646901020199435938680758865657720040003806907612020726693087510208601232806363046681485106111161962892144071469225793509724979258225730337565013713008172598165046364729094656441293044380960994024686795769295313247833792670013084176067278354686703570075457341051096750040820423458910981432787163666468186224826572138582520835892913366883459850501297990750682203986585805263522069673262732082715199884743619996703804011223908904759925847817962109540376198498519433954063028220612403938045506382003873767755287624676051503799797069128979352248387812405826326550659199420324130898797289991293023043907535549317705361734817543666406281177854543037189369415086220761869694593758576732984676583676564909833316560202304069989313636270727854937311051425180034676398324585213492413394790624474783685765044950931556295584023862851358799624574582256857863977115275019316985867330772766928385915068031166317153745033000914503343577136537018054914691262345140676562254460101702124780228213372795226910276958237643087420968242220792654366394042991869678265252714865746701579660701309572487801190549033234914220951463908417719241718098664176264658029664941219450239739478956909602475242003249732136832323093743001940561213870741467139161656177018413396751478861127037557173424064484413906698461537244560587012560725817706674837228389834568706586838425992215783724951592043033748515372405579834268184508696876259017424277137059818755627620911814340764397456492698102361159476531653064785994390674767214477200516896883025520519372144733958369493369826879374005953305239313568452333722314580209587842856689867297039619615628050885246661372675955074180638672906722017502575391370033405182266095312095867472951668201006019384002520132403353802421870436715751029691517965306491078762329565537341991136872082109045384060603369302862651397946932201161428415139658875761878002015598503390995538781784786124209135082438170320289289179062699746786586408182087607510318758024894749995535009028173282461504016764283968269426228185144762319997624416164950153154254383177326053769473026569889779788825985613308115510123968312250871735589494876702781165074027162463690017979634877193632199084218515971566336679760834234969052086421102348019586918949883756257784914975133233135069172338495247341128057581121661283863480993473315697322013070076116001660908623155608157292658813805225029946338706423234905068772732648198183961120832703537331245339992262586501943460897800734224900476131113247995997245869618977091748943187842853442553700627553298962962644049179615688404892142916429459746537921089751352412327242367533478911520379287193660509841266843705945050212891044908629667019970717112855917308342173895360538448799426684846934209753930550466776098994561194694450351649308044790197700184669418714882402413307616021136067651849768707962797299347938468396018212163392287983268333483692717657068229435522893574802196347127458364960446102252567497611181443104973438254901296633931065631812426046150701287909875392815357417163201581311128038943141651012962876449809634948874218494814155773146175145899046628333373028131624790230856176808638830850718735590928776099886609558092734129342223983066636380022660122736399627812462196031929222524771216171070462187927219380297746855130001651712632364835123499124857772144302976914455962303469572259705594707448656683961817449652687080694073560125471461447873019319333644718261598973865078866429588655047725077313523913251077656962927437975800377084230080462834188483622397903539464107740325490002233096113434114192641187658929360717946041664708499152557527469294921397022200248746659642902856209001640688246910893637272482131577200631003684545478153259993836385269537984874818669022591229559152697989403777587022482014198998325899949640172123172692853037694035610936780914029429660716172600208232974559684850220272002777703610442092533218222750369520687836915134755652327813116140360568903237806227974555596569601925641464218161764714128709823112831816158299547308013307893103925273219998795177142167882785740999075193543426048871718996983691180724993087279863151292659520270396562652646123729777013263513326242093089603358429969581864725470991200602542202945592213373413618722038679028680870700862861053346423909488603296209465076499877121695429164248879144334536131017624329198622739100195933876537608284607280518439335057627651792897049797154421314814434461270073259387654733448310829699615708087935230985513126698905576445413157625569263407856027823216289150396027228431492049708258715473766097522320778163437235964672141878050277625568877732876382195118841522238975182482970478936251502813926609946807522028806270702419062159821622475717102738651467428100392124221332729043670490121097642741394518694390023359270375890546690994439968162731107801736629002565844877577525114853054609436821036945445984381389180487663729595053278831828341033886479788363803092761474716440624221047365665975808613137416306751644995995330844477189505886494589299122403152741667028687907472884689368543555890078248193081654690903547007741338369406668606443263260817245422709679489455833270234952530695520516155533462836791717723257640581849598069597934465451769149393806299208544063532833883746558186423497244888840323912167561052677102187136694513898438669985649659829419940683830408756661976581964400800980781199767523240826464387113916447975009095415513770275318406201633437951109898125725611937424365535851637599601283943043416605970809444773554535706738013250499862561412274650828795885308967828964509502109086466821509975112340398803310664508517210401733034850027171724200572537363009323321711174577754447760899689209725308187489112564933114817908043426543954246134258996315363893756030941992947466433055061343785984754419030383484292857171247025104509184910310178063019992500221045445490958652326169765397536417500005182414099852321872322883972667609714497313186334318790705053805838558874062672522479058457781730023522482239938000092181385391976300318589329924933346681349881009006221514394015858197107858386809071764535415161806158679324739485736012362525625981559322329667839837506051472113138116494260650261029204369093751503131098158619070564508602974598392435096718100459482951786977329716184907691267033331603197432919142722231507352639921173677161832857813729643646410372176610201687126757976371266429988464104486704292906164154289291684073862425159819895428545748590946179394362914383189238327521248930573295683668859488570937513436330356134605139010095420702274256387957564845895123151121314337716050209650687583974867776916949275801788496662993151833854920499187616244614252314476872403769236975119086269886105661946544979198965129097303953795409762200521185828960110751406131660464924299737597010767251253065812936398112630560155185492255852015454253992746703133549909124336658307896842080299983840644054868892982509439727977603965516187832588740042544438663962169901195186762597713472252941877482733116631447200541065929749344768734353023764768023470646563888050374553916450382601278484347295238130879679573936547835982529845520638880116910359071970173492329497012184116719865997691258408297845872552675998296895612174607727771781407068948617603805453609079550575006780919346887023495516563822142412702593145314416752740157463731927157646569041747601583986228859512193130582285215667663260360837979338037345008894263877208401069131889386483000924375658867957191950719135110024636515232910606502421102538705036341652628962422573801498193249922088145622017203162267760510416410956747316948987242005736785174062152684913904288162369698503024022734887076828550064056550004778852255553203549362355861846836280404035607572493473378630642078268415247845468263723770463730484694033648096782655827255206228402579673536682765966877212519422710105985417426131602495422420866726307283750387657293027104235908244316302848196862194919263780167805520842497103462691718097868290048951998756173151165177126152197400390568865901803478026075630915981484263153009769663522731988635427986388289208763422656136040588913131381883016454235446670780699847456307485261711812384058711440205222458196520596034108242613796282056904803360440574222741793256818483236015535972653494013900899701997349048450417888466219561491794498945906936320489560015951291410280171780516291011623353147339522059293993188941530202371575699348798412572813078579959717287529178909788108397701864846055378506509598994388505848364475687232887368383925037059715653931986196384904068562400944588675241080297904191333417744826596519553728086125484520715132897329618299046483399838072983653960301707928127419226800141530005221121621066504104588938378740723384663259054784997362849298000951169731480881781419543383123896779375831663579899310607805585256112657825802774022859781210000700838354722652475899685420092309334109294763632488090367451572016958853919900976738619972962461230309613797649104956167536755677681796171020446113722294622793931041424053919689250920194103378753698285355110134485176323862876294709360151720445202908678437044346341406831661668572724085883930173868099835242316374752840805814262015186426821247732448733842043010310687399479806127499489156303874555844097948477991323145633097762119657420191968980677530007564762716785311517570920576996207138460184935384822763008274784743847257963536692409902321157311172971786452456540014146252056311581976316528541191278716169746633170752982598901576580191550580580369954574898537430202951926997218211431361385906930944156682479998838858165446945542495896788027965606448968532192864626111650117501144079882941004280233665934137537342485559487955018251401753796503414494491466073612144668174984984246203152746854019508363484583643369800117087120634405218277075744255532001546794396723674612603413150742541155954392193355208855913243417926834240656625119834280458415749142657804832799284540658889458293213879413789933214280214269503928708990600380983611741257117234268853949750943363890216989569603917840525160851888264064674477199327779112485232167950469640110785193832453049870612642877189916788018986780896549082046031941718691317795048709508527018362564872526160991344670721273412185807546118647620051356020668307860488949481478963863068494166924648899266598614600597902557516685943131944659026521253490336721903795527257202195464502233824519837678272569217252098588893554647280349945746844028649441122888353893740320778909263425930154746884012531403589278547574482753178344749081198302737043428019335387182888734715316592703624131766459557520213935712702950600189857533082033673298533384817404167958521471666820969912842403410360255718695570031423768050004466677005927473071971509018946681187072037831303329274521460102026154297386341940865693890515030191116441938866974053155125627527250160379077996133229145118997793619738794651962286777392132142253180118932071550255382283853054633290498758747280475604321684987348033607291885912064265086325791006778799377358174145240498392553732356170182063590307437008116091597444485336652866676636485037282923375334185349813631347333368281061543036892314868660377729735467537301997273196918037999783302084667124394869300555957101363270090524675014337006953239879209640568548134326831101516853419879713561810072132225860442972360845600244021946436364188700305596322700174149998700253241431467038201563431266705225910720714237776236731749663811760374865351037284967662329253946113147721437735305706738915317644555157141888319092509922716732356566297765980014063043510150857002950507354045050150199509124067135860586776464765852648191424751275961870225486030222853648337396218802045834968124473893328874561066793834639737965648643055659145743357259237529266150975714419443327171272614372807794068029653120078063554531987341431935160363484539263839730917111605168212947023536213038054432977877386977705758408563318974044152564067356378785942792882451194168735365127589344886740383436399023026621257223667534374071584124804358625349576073795827756237026067824574586173377736408132036637582554627336575038034135851786756271513061345205906613012599279154807705735601363557855316430972241474955300162392915616665129522758075271086078116315979507068755510139701090310102853007103962798837476424292362534276693370999668312577367546225305910656148741838853548088054706365639472270931938061291090433379472854984088739489640360955711949791163324005692243721210671237283141733081978396875991646693765294274955666821102412745510192042449254041498039063706202865689244770292667840912479280614296574073607108620491422501572943895371043521577452257150678434964006199838939014673507070912360767137075434109045294346564380376600683518273131670463257022341391902110988115950674716852904009163980104813666972310118200911030134173345155517683087047614352317584379856870341901333571472833613129662261553761322990584838364290826783377589258523138374791735564024768162636375751368988725225579947447704767876701056396244211197181830898657071677833496018397601253546210602489605534728642835225032370807619006972821924089503501325276617243461480915122518256805569453861054723116832933724060882581258489318677504914036758811862700097473582051846705881565711097607721961988844905518774936873689047526109183706385351409394114326862380773050755561302357633507440849219830232374922640504646800637066937644475022862806679958134495120936470421900193594763433074218287232508280450171791969681255597225594934426158919398750522348704351430043688315842150255214332554601635657703113941580585818554194937214127286732434424102268174882383324016140124133432027759670653355770668199884846856280843959463238103401646346232380754404767394348246276558762770678175088439237319462995302184736897051903644946571502854163371196246237308608766699960292298918699678808834694844747421321970034817936195054390557916701389014111435061250662633950864938878326018250404136350634173002114834672860442594896852731524429818814011521687046421765485650319296246442453728233370126560726658175262397014148056109243291137201911379328386143770661761149542053784361549485068183250127719383593216833495435265111712735933837952412911764911118379694665625430139482943459779215557956181835287297043640682853438142104383496143637524729306462359090682927958608539226544768345431774073777040215364958904346442939922736334275853682208906644707239305037674398826926572072329731859991946909335774936472758007602942082668285660083761816059962735454760866668186874802844902671382618618803920407425899561244743585794350825922916767221689512870848277275977911354595147994299798131547349872664290419372876299252250686441159322095151319370358022230361876130974822241423091146404777476197054102033780519767328700073294495894680997243145075155947612769013085547516054358411954885232943211468644260698304387852388962043098355622076597726661435518953647001574093864577217615937680108699464556118542189785191479345841574001528340061029233716543980298558824175650737612950900738532916587513015743406583484695994447385241600215009936392564927225982350066130545064524608716741673575154316741842394445154435205389000893990981148357822727338511781626700762640400087562024660263064915241579293103329554994510783686734750344050610093924839282426367493763471175164394928671168032226498107083028118996993745598079051611782598528727524588657629847734506970421377816509631256763373695600130896996991554195581011028730177997757914007114117048871033016266716842893131762755183476882487745781797991944854907117368324888987679029791610293162708498803003727526980831771899223673195399494338318539110873738902607716359917390308953555263186094202259570384789724140934366648316312216691035817448424879593860433329979821734582541796255078590599959161658720907678002827467963630326899757277948503424379129059541764490050385459442278386892433050721013021016001522534025146840810808243468973696283651949399705673842015225529046253309868053192911970296032308449074487144879457551198084260612527013654734250194573924934019473500925322956657077054751044363816430123471196094705533379782780125187463682181153197845805457754844057270060759397756805655864596406458127424759105375481785814617305993307844705004575934998662763319360604576512853197936839233284878866773379330450634772470345250687555703842010724524799804456834418281998135140851299911420729577615510862275666485350623148416197856879232699778435809458217578118590824024887849667487743745222097881107066161625263919821643211593292587004170865275538729217744197086522372026940367370659262662412481919938032462629084727107712344973798380211234449775764158616770518810175881529393387971077475541376584551129460919427391733588133147991101071189564798396479115103018881707351832241956954216347000699732038767408757538085564163501314425498179348625887889213948020512058750399614898714783993104543596619499229817167360574205687755164009816788683301657753692517736989604518958189364636803877502614147717103510380429843890117801822471098813069615642315138441820318870093488365633042445811863383043861495022391502488531990433102367131457137357661675921279996015056204626455832155388599331380947926739855132926837214307193605900705088828409421734033605173465760908018112033358211746038474392946115623307293081167252415271867670908892411446705990024372808644453340329053399829272519707657591847707909427109699268752355027544832150686146197141937615304642050954337521217382113249192056660926553141557241440401385929429626474571546899401557812836022601231645112079874664110111000173499793109726609556348402155218840371855457320581400769399851706374648408266990255833621401594734920304251908251918546498249948831749271708157620598455884920022268685383000078082665815460202965366660196382097064092180560538775784020666438637652010591816771905830379082542948067324385548538387848954270183514583503803950176966557390979498624530662302305599634948891066422665821922021673641559417003091120722909382534493320019035302823288362974547758814126233382457101262347774923572549359025891421246584390520549499738262364698205812474019303753651399063270203696871098527656686534646303081742457113034158279979814540457891206955977729494490576563138281439785745646528086815743794432585285061082864310961576085857783610435788418787818524314501437584565831422578797205361647779304520185969737455248140436352878583630478783621228198461096433044563525071934300242013591155331182634763277575197209450312031801683640603157003935907264096781641800867816724525478968451938640862797467902068894720460521090781169178463081749726288342365324250310528585388046821687531709702600001712052491555523060559327864167352632609342967393333727546157263380941307983339726129871289052561191490750705433463855393542680025905604648799841985431134671827821070638336724019433381374702293446491826231987417812453621966517927451964395778870222401044995358051760807282008155395086874458783486175517444243414520296689410615961360773172905831413754140564524185182717520339141980937327948137842265629004394623149601433849170363106813366956210831211126450548949355878491362417878047201354761723594327930801016991910168380880109302401026270227279060757990158386177058360373253052071621459200098050192992182548382403844914305872434096880945905352829532942485827361374621959677192871978477990072318821176530025741202899325537254547129582311811459710216645341261127775366116935694149653102804959144473600964460265024188548686348981352692334714385563635996420052316162365507206261021288495620422390164113877559984675872978948350397303924234823707369081510119258127283330201508320812661011786222288331726352564922488534971120901556559750564530232025712540455145080026434132876775269799790795625472934806007359191814179976081725591628363657526694449417365282423279248601165953110435011043774410118663191691806899363608367436425247966186566025240231932510691138458000490232225875331902875001857430039096832362586921012691259983214289439562266605378931652701996020028443438792468837520502993674058334713638841281425902887678851188485675002287351835540081848609010400507975359076981987242247795238096435036555460571417122416402592459571341175573121656012989647184084064835311472033088154171124253273516104740033257164905123184095279055666989204234073166706399363701267648299738572627152262523128434088242603418310613415723937355299328808147160273371725707162476906200732659776501517965638977230305302791215704878619495300869728948948500159790831375979342260096330374198808194135914314370015847890028679286339822396685960830352394315998632003815517896081957368208808718817614544974614002876063016231207816678611015850584988999335092292215718705948660670034359162576886146476981027924432427731020717152636056492571393931400558982826408335087333500279460105098889702537988795738624649703258930794755994470466300603202007036913898081439801271938632973465205941939413723216512152556470280104528216316786086571496079322669299763899957537643499974980822709395629511752083370637371064787185515236513817882396344474845751448310660691898971360105663103091174052379867342461100971843512632154874030125780846365026200926548332199399927914382237918266196728822367882046742446122989733157666627111610792751567112608472966829209861261796756285225464034730939703582226694890330410763221230948502933481365881198721670406240384401676916360543233926213643074174811774121752061335130929386163696815773019983720743936684491279348366156242425576440911101571847748963196978190122221577445779296905865587236608796261959894106341646351263893281895942375132699490344923821681440374215862319316504294047052281041609178045724973646527047283050125560624166023328969855019724306527961867980453156278332467739161787505802600416168066755234153805487051287275876308890182546795660990732128201094044897563292222749535577646802254008354000211741997914167864519077745342873216003204482899364412642584725748173520113922309704249460468423235134520039915199873152345313880213850474463809107034622502412497771162675401993496980243395194954575846448153522984781935206691079651142827962192597639820689372243145924891740426053708534425805182189193860074314943996533327147044825475881733846322340401606689908744492833984044162139353524222256673683413365141630859305121925137898497944294188639425280154521512935396893021127103847943065491425158585258245144374309023715348493306835141512565648712141611989512943857376252513673258045950140181616807445507731494269215871505106354213051945613734066941453460898760598394065979024922702147856182079374516512206381664534919109826223999565816513952893425909940430134959987536871843979905359782257103384511051302051405345625258616345152620330533431394465896830549834269321035255931224857663910386899032659918298423941012536601149395396293870099607156547033969045358825629203696163909298683501281422909933159901798445952995507776882740551130877976413270047178175234625414171974769954911814402313042801789241472153899920584016881972489153952159921327899151474787789193147232930036780788483945899171428738592489324715817535981579604425198200564858050036761550795379201881392209528824366280500749497071833694438164567819658060753925694183345104931951796087715367519876448864881675901904446253924059750900007507476763659483224244898062202525247733840184809817134622495571638646548596005517215134491615397609495663158300802631047977085143123755271173897330410152638042411011418176862885803437723485777052800520877025538466778015030860173104929167926210857991835621493517972907642946448095699251656749396133209464359271202488147032718275617897442552561295159603532987897746340747232564594712630009389120026400104186542743921257986694762326049889494194308374067348728992590420283442439046542418491081287418925641232417758679322204423628528060396368095410119196267521788848034704486281121162904951095724056928381194299683250169268019225370130874154137756267969171657790412643134007654004894982937794687066040801853362907945002052275135028355648062727797014383578401977693035304107031267007089752588000459457113703009558442006076619993941910297486399304241197054596068620365851392287637204791032777341595858925653248783222406353533684814018213972491065739175159762406178263473643630967526067346489813370411740989540823661953310678980361593034956008272225981993437017908435190213795573329102905087420324339382145043302808807346112812647567489897895237377912103781702850158705444205956878649774207866315244643825967479458195241957557970652523941887169823653603506210923750960372707580678495865348558573779114592686280531960181451742119244401449543846480997114034758447903049888628669069292841178750625124805350777592543792766164604297272859290759397521500120505950651961789997836020810234567129865419562937063387330559800448445719204586356118374838433602462851063689814371764252848622161504732682923035718876660038924259002901070178310309858941451890479442517875462455557255822088103880534315070120525332863011936735224496971571673291071812847875920435804615683411461444788804564506179328881192403434652402170723110985283112751961095467571419054845713184072321250424250127994680138794697289648503835861225673660149027405140782174616966353660893660228034779105133360359104532765936062202042494597457712945247917815703188850883973965268143460949379132340798064157426092773038234078054811586188690297398535686160235208572125605366379370813036736007132000106069152166454167827002500676399541987693132605122634012519121067727502577668029586309994885698444571596903834421311896939988712542560932962475228875276053387037777134460130807356975866978546414602601120772872612535780641132121536028978188938579426167971057090506491465478636886131966632790037297347992033058368769280645388416837677360052624906917817825176375785403186157985890384371141901911089417970874460472375300917618607246493753765566784627330583154206822394420877663428628745115328402219736330854901589969151362948915068650570997932670553002284954075840945096603804613432433353839877328006000140589827843390566277601013204558412766574987552686009462450457702186867173089121904701961663900404080583211566868136226388827554320761045571002071956259436418056029393295512645127734554870237613833140859466631029970130472386460270429707890057610084120975200028581580903493137058474266090443602742453999358981363817456865457655083881935208765859122860765424038348911373237145817418748312974080369859786933809421589100919131545504146534587619307633116666325517108581782576252950763039812738061426749538009428087893066865011781159007717024489954512128516868320844972628807834442195279677737949687384390763065016296147830163869051010599316600352034554001360632985170759264379439367278170575451609010719558708858348759550158212779353738879280421206345337647569355148328969666217961850781749703297361110045858127040967214651546354584763897708565731684834799668663967307166972462238881619048177035974611516368439758491112340253941534842104392244554819668864891171604512228120105097556228232674100067105107536989965820069507829807710829530819888544446634657378637979128717809503416259117417491919518253776776228786609884733720696282176626910339722184111163720211216770682179077613125692609607974832100288522189577697004431607322013612405994314703546396808987652335647657086327632463058291696104628402184525393039493805658233051419265816270210670963752985741894053537881158037412906566155906155053829842252817229167004428795509938860080465784135652689852800657181399095480604366735138682143892308549037963791695252245333398437478102486996275244360466391612290301263018209856085889112176423545080197406084871884769431825726770998365467567967737941765947746342873487752750374066932110137779910254775689803443998184941135065915117357993284187552154803389066766514750114626530627850207893104674743462610281681196288585286058361672713346932115722061550148366204122157202310668210624317830270662819664953998121501824461522874902150328780691154224976624646247025058715263539464934500269681276804288851083834433580732642523163541468089207004920064484385585887261975886172578866518982330901469057186524235289415995428199309377012096146280706668431823441159550951515379670011510062078986617618528566877016521629796781927619062684147389555660603840017783826228057762747386962666652656572781639441155864245090001354137746057130283024465622524410679987201490295241649902385085127748928373751067184989765364784052327335104841191296074056349317259029836074175974148128296451988722681981063573181064930267501142909583021860184789544485154851672958135588212985880724158760723383079238931532914102614144331168364822840086984804016838737878763209445270534446368530571810589052547433857958300596281349782589757889086791766026191447323064426874264802373013715802644217107338467163037132025983059630587324822471666857134350123814561086184340808663773237468604343330968917610503030768914942701560665091697241311392467003107785581329097420510810307385187145744794053910031147438445569566273725947123591021889551147705162504283825845951198425772371348136546073880140973125368546232651232850761889716362020468924201149090717888001638629157694931195963251385462848954774816531641302170784909732010079137401126620138211129917836208217106255081737708188302374326284415401611056363372381420232324646405552563643559252410543532080069729835079275803687924965679961975156888042708845975601291747225165675700063624994253898854563525490285123528206212508226638219593393790940234384290593590018085504997678791158522733035948774223165517697143564973448569924762776530123562394343880139026483665174396092952985034727020864735452182347319267448660596059226338506047173978527066370742148262986490871706220808141862734824213580134394412696487417725410465683764857305699821086488111541960462788029808161367161691448645505866049019343403391347762445706572862213909982696877435990169712579814816600813513128797827268895441940015751732560998237297492628961286056001764804709879419736131913063695557838967500341262183022890963645178114353911566118284137336287838395579882876600052259412778132634786980993484949954873861581912617855096291628634297133780599242395118906267898111076834476816282556848762267898794794405819496272780751382100463212278090270878839040881371434980322993747505896731989776761668526009161265545001414749235778614029861931339292082561449117097403497346365680128728624583690388891302626070409935019774872586218127566860862371844945703221923993697268764748973228364945150397523038319463637346362845722156286400353081511644555955199777540942229522848981268256789741738677263213680118657660626163338586003774392472023898974242594245565828219025861875951775620511541798216309209875504868820456882350198303362910534096599409892649046951822851057298997553978386898384395502358078377812893720641613965517959290502444613251444848689680643267980772076567110057180646624444783187431191379633371407498458596337498715413688900959888528578807031577987920219513578079883375349909751092501064644935362133066686605482960536503065023710471548246667690298243045464575931084628083279113222686193374778720989129321857604689022065714306694681355813267802399607331318700766483549397139947961527382196430641490931609193384836574425440433503363595209134862136953725169564003513818429023176156422144119498655673940032251083279056276596412420621629045580842684512377941603385440862397434868546309685645744787390811486275222348499186398665513742397677376109589792054208267216334696947373500628112065449239673531481766305284860057642323821778720487443289278720741605718175103559244358861683734975474123506274158521433022755468946707076057838530341357943305062123045728363802947826283115712709621027319043464559639073413183459339469690703404502288954385236457141041598266342867716813891230004963250442366231938936711456451834124616598892347080483548205532354755522956981414153557475441047448436015830347271144576332210698061727307063374165137387354897354899030146977365135776014641071793994182431782333195325841485681629776991351883491723586251365218225239938711485142791376261451177811269522749176499477128116860557895493877652138902808671824835146531531410028848760538619026197215235188298496315957419796903565986531042843520371118097575069764149747370709237843449207401187036476667256995982614321476592131104965751086363032270459028362630731497887511265201325632294605235871280763928107172607096993070355144175381833950618660812872985398420201429599611945253648523272244582611292782166739301329115772290569386623380833234265449394598685224627324514508417514517249622911219045182587188720107411783043065808954691687296474286336146487549982848615587151627919859032061589568976156117084926303410595551536015275543885498735754143167005730512056408132296775636607449358871557831571528825979859130557917655453503289210935608668220219543646445734499454452130052572706070150493660370557634618162936767188854016033239769024178409884913442690932289429772577693976320894985186963838823614925120161065283582981162028417024818406473311322028894602431102726440264504552905101072758818791182289634546949314189528637567794142347018342543898869088969271061077297710482309387871403042846025960192402518944308681886480325197141708903487961568230986683865921217643230616418602649168446102037651598570456559911736863243466796973072499558805268474380884937031446901689927174459522789688776309686525320033169719520563672566499962712210545119314669007006579421504806630820296604928826275441649786724115015383782400496637751382566605812813644227337604269578853195800735777845731476708424626780894249340206420313663550408777160433698656276988430948284290810002141496670683802503320890367949532058228843816965558455309967702588289924226101621535469621708343625247265026700462330722891828541938761121858268847215829157414809249738555989194277143738529923670932603477463447630102078397530192753879567634259959468068877961750606756232688098382253241936006326484165123634398360117396728097435598497092691912795150903219015616345727179194769870726101696385226231643025030131020900758510289985975973201584479611367053967927942537625944009248621534407381992175547953977698905803105932757607404460445592615425696827794078853732457265511758883637676971602894390812421739403499181490503367823873214295533865680436944635591738829627734952725574642397611483615609285987442284633078077642846362708232871386111677865367897412756419845643459461659228544936089012010424446966313196548919653372615459702850923076639836308205684935049482688294823392759161944143060397193789928879797218415122714977114740833289448501605294027903876749165854481256136505281343999999417774722451511586038113103712919960556871243193514660265273065006861201625008893906162669493113984211082144459454176256688010993268970304952132528322255813791914670522277003103939656180752420870780011961346189707148687950034137828346493775845297117997992406070072949141309830045383846165822922154137235185332839873655294479553798092941481852082398663658243512908262084481264601185430009801577421666311482237885572058302664849565021034843770238526163881962976964669602058024369400674225993803035168802922116108392271940294837175812727872271368975404515701187058413850966479354847208980142365234393899248305519624594010690278197461098568675184692418704348098560024558358427714585264309076676453555845680811032460554142009693549561552749676441043822407853626201443374980608328013704986332269427286344005067650799075489709700428132423750777716574685165260226299394712965252341393209228291881583546599100241379687299880382400918313282248510383835892060089391364791148454553950061654102894723210287101250010852132155925709664209978713681230400409384136995767074995478497151866348916104503154709392527224688624712294383616006976087877200717899891555913548140981644251565338667805009477365642143867438589814861330421098967444877088367151786591588544213521019124192185506109366799788140108948511819474409218066546085850495341682046501036849082971058847483875864098148694177356286735990957811436042917224289612261044355114345117535802191675314585453536930251925847185323613146659255344745387809005229317733860831107847127421121166157192719725942298298070369690674731499125914921714253123871875899065664456576435826264837540087470054199741165008833128555742092940502586017412669463659467902396687908566319276681453727739537974655319130768021030394383320484699149411285742885650120069751048086967067831705125983643361963312873371057464423802719026016783511466922872418370635918634981290051974935701123134737109715925543483550091398624109753725822581941683193696595041065086176847151362744957080309755070106446137708374968564134551764073833083460895113689780765485126688893047609603635306255173425713995610899443954201710578734725303893309896067080144503530457160787909378030874213558513246028306945468842371966119256747829284117648271720391009947880961759300321821777272378446789165461065983927194646195848712822720027887002297018239580767908348866828972803605727316425435914054364782682720898288123775253591576955909986976323773124066968898816138897944152057058648251159589258035757405160878692349442213247769002570006567053760169337635345403530328151191435883542738035763123481059199154318438598598319015359565092007194064091867913859915892842079264390426941531701371297824990031442926340133030516500986599444378456053621099781633918112571741575761296050694839139416665349605738895482093884952805783963493945477685004775251821931520315203470027845541202263558579247289750229715115815688052934961152316240637206328714849727780373036119479768172440625695687297589953577271633762640382651105710338378651064680587371018780657797588182574388075172528199931459540553319505675276773871886898904174793331855684633786926816235538620311007624039316256965301957608276812169870975229381589930915245283505333761153151040773787353003127840358898138799712071133508978706361189945927768956202487080840422866894134044144277324721069656933191651467533662435230321161462571004145999981033534601505763600069710381372329550622769664272512180280363794963709560928762040630328389184151020182545782026207134363536053742865352297393070334840313747723683336868310293886619947028460577945720644302895003926396253371476077847732651495312385845786448163752234214144577261368853833339637920792479619826935012559451845580836290355244951616632970337249392724885115341280163860944066745400281410368259195906322370460742751823577745705293422955883792217006960788113155173548276578117506044189798859934857341742194963700660245144086590479344640085869091539651168940276165980843348128136146295761134544218250486562897945941679118059011380165451845018689798197964740316577828707925528962878662739651422741676030885650591763172302638156397932956703570578003092658732928834386885953531651487115336930703314352909696602862236818137490104212807013929628376772465057145497062104584083250035445692701117085618659702095983497776528523441714226949703606705018726228074729663699210705741308748917598833158282685823276557934103358379737851136736715133219121940124809568060172457696490522320121464002686481214108219038662619516478442594277853293387948691809806325573129483311644591752242215816825997328937266545148226630170224404998261520730268566713705589126390081901121754423330848359720691084478421897900821991956634823353184527017085303243496668235641132988945611075363533819845742733615567738369257779605309627665893550015933060329521764375077293775475572050865765613699369185045094062950002282212321808019540263933592563914437430265354036690133792295840204786991947655493917389985489188499909338529545415212653866446031953024204167213023587635421186352037898733359264649981957329699340928277162503837251833063742882907666122719869399362879710049023139508140230108216570722353928529623909258025426068830100524917348925480106845256874257246120072265932515430662958372982378780201327129559300168232085256793809211677706733965720904638193357705644864142208915463018107032161154928191889387366243574680579916828465277690526199392606047561432595695085037749514411230158923050758331642545075323592336111787519535819843137340713563571722137665252092972600089780718085360243719293821266762177842793439837920690995318052111555566034665782225890505857009638823787120573113191376886128851688370373402706188874605876448093810406266656114033915874028737517084925811929561195037839710234359195344778898373018570828609586351860531755184262799574491970940087062971582218799556958626442412692284844912637048448185487061821998793887777951183532020036624823010052576025478543643994443564135399294416733974652793922335637683183205020170978928317226112414669967150791706060035141111298795382354070883340833113173412364880912072165849825401781393173565504400144989070993717384960046328899548960974015438384752811530092697826464547178231185765995225098918730093853334402047585349136254508655368033504094848076434180108680012862456864063295760679522952982069778278504680133587287024777229427028680944474400366732848585980295847156446369398379932980321984373754122395689732466951891502096685312325455996516447000456301606157708440121545899034607709509101039247797586298676968531560649621327214273847294144630331212651788997643875279262896943860519993761375853560127239316637370516876885414104021644946924005391952204243019782682060972448913553440163421463235179863770602448787325582665752833576999356377174556657261150533138944782622744003868761449382031008423504414413141903489841118855415383197037525228350475998293655148741871044695169572777129635703720364761343902149595342879613361493246995894169608678449412721322765395135647205848878826249914854618243762036977627003161360495672133099666498184626032544191179085610429640923670204368746266876183103390870748630124882184014603359915266710813222096637227646634281130332898354836801541211198821231608461856889259766369586797528005785384349706660542104873341134371193041829613279029272341757830435708992247808685083974183324931771977783066795328650799934777524138271664504225376138929151613282232700231154507368206081810976207089361516946783712667234684659997436906248346148809871912513519494669043817992175545990183164774278020296054142870416640178734236678299651186659639731264112430423932562736192915062995548068565606036994563103779151404076418172275512886007600985147818472951278896316760489012720305469732752762164906837497606823383253650830658033629515183212070426244462058174988355425796225807741700498520460008756725397254434184848223056955346283824134698680111310127742499845313698908400440659532255749883582293747830585766551230515654139454500558550896711092163633958807691366470457813270288682409262843934197348248804522925632197455199951427922078444674190384529078729116660220047599862012773439927850952897598970685692022362204162559806230924826174503154663013574452491452684379853126330632545695524388347857082853632563926145030246894484149084919273570976718452135900603613672264508380962099200231650042871128190163208805390505449278474521972479530219397502902295857854505490629707770543141220248766485132160547468438179248728077614465553864415493597205639862757163910717686385318211583644366923565397271010140568332122614371589261359903941623636240785640142997049720827063498526761940233507298033365515214542059859890659376619045076771035600965016359911669100757823734566473685827073055506350495659151588231707858285656740796668010205484195398966173268291664629407859625011141602686754087536431378499718719933453603805515244268963385351671935328904580495255701934732442540311240263859213376958720980331570499696201033614881856344060062191449430503332716698592002703908302068758202922831683239004715369771229922142906415537767855391273833268437364128385461293778814896996082301551907494738001462823831246071959848249768740150192152059969161449372773611780955312345361136812202635494470473643404265045210268301547169680844593127525314364007548742740140650820474105147612794548353856645840845958763779015637603061175829127542725572871250279037750652475627246687988131778330362311288189003694140888402809174138456562456759449665975971778732620315596107383954102404265061042892234385096605081685273870850965933300053821350833491204137607677565128806966416643509490069050505487113951375274333186709561826715790241825612193092529216980792898171804498783071725309632389373622575681547846336186291424679976799304223111831072332061337781591965448413812052344551713587696488677977531357780261740700144149698525159603448137883660373421894293758254657580275621848882417147265788587537788794584362119750593540435769586227189513533695801100428323942056971278043554357624553744154683836535669155008775358604483633970757917339360020134503309939966702473077358239363455602340697027543621345440212641623248847056733684468153229880482825939124512677468911748356339592971306552837022797996351918319903960364571100341150026980584757307621707707466704473854312739330765917028930540437859286307558269552810575604564695720524522667351735078855773610681620973233790909174412691605036819990321671480275147406492091445916659090300222108460962859486192978984127460652555479566764596485006193332418343069593872240706241945268286607450231294940617041987875023631564046643247665041776563796800269537062557912820092605543846518122201593978706239352571386503969511790809575989670992035665936689506361936199599807692976396836273988713435662317011597505510696913824771762378742390091404162088543998093053311989689191357940422142491153952802979824134929866124968346139235619280259259337489086094051116127101679431647800187499618331820037396545579998323330415664100153962858090747662932663933797228292253800498060641300783476772662024185852550609086728074943285001192841214671040089123910859942604011245902463441445855687745171913442971205879791410061151420864829151521267463862134630788395103666178108826251425434597774258791589247134990978850569637394785067665754957566106161490698635804231151718469898684280244857913979097022104029051122149482485752504738747180896916548328389575620964089252643055639166042847633257908767810095025997485619739887148189471043567764451449262837372630732472860948562287280373716035794396949644971207149596939324497082410780002543620845119589546864030857611729336591396614881105321743352633062412339977987371321496013386013259902601984298544961264808282401534197838704134023583855371580774353189022531252778765273481045579668960432861235159696293829842866324728961403548967384315610738810622524809045541770107924804602078976117282097758592712939627627945301871690512526011525406273680090843631744939073522241605166545281695055057792962818442235836981017731102803475984017271918679671298878711264727560057627949562785514593917803278933903300587120928419072582241557464656475933152667958489429678603234076106437827541636017394439356773849614838164921708961943110119867028626157097373528710613413362863942634819361246542105706238793496874127476293802880105761029255611532231063683787273957947098878016834041493500091551794678955175762546673366722935669890176241619800488978213625305801655948405009815888694829572658669157575091154934804557389888140487366375949335643828697787425700690379822474579036283022112553287700860502343733671753287776488403854586873461392205285043043938586473239134714137776381720204256222934570580497645459335100712759393842204534245933588893277097316785407793203854359631321327952654682324844589100649023124472468534687358939919569822053414599872914165523228287300575721623164770830160867901899023813627381094146618663003792831618740054678558137803412576418232018906808646208161291661648944969966734100213030889238465669803936901854093401438365395247308636351923284857944429748098733459202665883921912442760880377348352450257676646720645019314502730240235376221059417756334880382031123945030902792342734917269935283387281329469929821341572150253274377193207691526004355464385823137885234160614256553872782564953391521563917941033293101797566066498666900836489494328856677108068324461581641044129688055713414188456919058495880682211647789488460772479388340117615954321835657563200893981538481712395871000799477660006931046215783164426069673992801603354797734645151172158327191978399898955122494377067912902193879151601379282334473689544094026206839829876126067587661562973008767310067354920551717510390173980164773910900348006495158174044214435309074458030439519814567728260814253459925634339546275857197827650839646238458063353932784653748765172712246526859811827127210175218112313393555445424837147982697386343520850033221599425085933451873634752302025824918336757292671011292852029527125043783048583875424547121451628490747208108559281072177884869027517217708902550703965027019459533252720680890784449953792622955604485933636009115237723266910385664174946148738811742180802290109522909152892198610618983568007437817969859323154370997862964560468196053081461286531852173184224313246122981617506811490777982109943868002485810666848202467872796865710766024897160612491693286959137672469393244590221697091089994913327495964303490310207709395133252329328587836691123441603237590344836249387078583739164241546976782041235096321018582523045029252252788602601966446548713122320075987103659154189373829521534259009256622753556142507765010337149263322628015193845810841401792356923066278551134348509819308945871130308740833624718897495114383306516902267788595737669173925446242110389887147369198189595995569673324914041542884231118207421320851475883417131264584616444466910637307398189643816348387915311360378026471114638509137049943104457582408963018578789324190040366672263421644683950903280808770842466052931006296075326429876077047688214280621633650348645084239505071311298917704709962619031421392961645649312881929588255186417183513547884974074674029941249793549093507107739355491686077666573728704356448527878923593703981467063855584650078881930701522271812527088790739555170018377129555119823642216700885993252223989896589730028918286060297626667171553146541778028820014201391426479561475733107605350518571430413693004157522231714296090395566703892947936402904421742227579321160503097442363563664787908883423000593473013670853083391126358593562385365609608874648488786614127833373723978236595680841323506513669541868274403997634244814334381919144028911093754135947378047788701199867126928565536685460967981151543367641091715433778148090156570781692283572301366443247085361564282242195221976948914253595141032146049784528707317746268858277691051852500817395978482445377083635529802850322488421932156926743919699244848220821636522461653322133837093912079562354552531801918965594956018196654888119830662607115647788514946279440938356876240650500626748476003166096531500933053008164782086361173455215319843828208923076162112665794319470923797783334695323284970162226818085489153337847932858183873034559758245673496647965900547527756595123684286775190787168983543665424075825922368267632003144791430368857852534040590346679586649044447351391856970532579577327256184400043767954031957228222809836882609496847444351543879583477714309189965080371111865928198079519312214017623468072442378769291483899255704483256902090331783356317873323688093991960031201551527238375349166662003538348357400617232830471249210137385884603234077091737426210030845457900286480495628723363519726934576819525113202154138926237206872360039908395384445918895148713297362946334985087203297009483992184483349695956217846334108065629606485372593170931796665107172766804781378068539384060738287785531584908877406809685832098257308669191591144068978035058918831746774936996404040779726592884056157142506838551555642941998454008850060009790096443378639523330323988269093026131008855570022825356594966986136886202826203686214032362379464136192106639951225482737213290065681051256362868907944785019897357886583312652228733120257964882671208355258447771432297354680309473963597774381439387988143919462732060303431868243092320320794900332369301368840584998782100909396847000905364178284744310267637157035860620021351979852277878182641424883607638729940909395076147222395297100330407384632681343161000528455310857342641288679707386346673655144892361432560798266661486452499493797976841428661959855329736917238019314768083317854788482810497430752826265629783403420133142663181846084545338302106484454765828748875316773893538863197222274789701733369201818265416273780368423080448178664470406689954957641800905415815273098614488182503186403665487002700060095005657952142734167307259582983861641180735183818198202941640867543474134764432281877068231041734055140102310455685655601583299456222704195747151121163831342030305344315622245149981390865925051407744774348514213688939232486404319544891807415920796370255162214945231522180278374783942919103018941618061909958012309794890304306172417635968130144562907554778520504427763459734720978579602500582712540417779771381212312771019692542236301984876797928201533500628281039954601645571421113348554606561326043749440181521110396604559434702441760187631611142526295709246640778598185043899960661534493174094664855045608961922128706767325781247641200004152795742121497526304233059352653075782351305568851119440902262531711700540507488202859204379541625798329494101296755319489975749832495034115934067608199775864654153397442143376318201683721179212222858117334781906476445025042601635698820434357134027613538029916538433401100178724501360535432687761437112092466321569157717635942125959908894035226484176295446304891649979487780293805028622692490400315887632136315298201489212857351289066645969436827346182277683318059542828248284745819968978186524040831038913449052870294955642582926454458446845777419236410367224433016400629659023923000040808226769825888674638683541080839802863858425523230779582494444779279323521855195088622054160108650577383593189779565119544308272568426695251825507291375463853751919024891320417443778673441311695764065934232720397252341393477998807743460071561231360742588470788099691080240631990652683203100958384905554786293405522812152279467999328576906474416987820295512350118447095616189077755556567281907307629739227293546475484826261516149398548894068265897820725933807925897611398281572247828140816087546070236235912441432524761488385091110372617759742561800260444157881861965810525374361650972202211913451713524855476122128188461353552290517840922946223299194666952688948811423229640892813690489870763910304588506609010797170171662514381489617698544274202906094480187152138238533136287606298829253747104974504037223090779704317706104940706226908238195547993240315460403974525640376165684266002391176847732526005391078018810221727204218754251817075739693062434163912962156774979860367830788413467905078847854110545238214321643236899482639722360637371835440411442361061755890485783664012852250466811188840563521110111577265609367536481103363753635034687668396757222784025056150974701117454428695103528570532354163240091798847313380862300048557337384807214381029145331679645548623896200620709871159318048343938724413085164231851123088643168552549546209368326786909105252012313243792049092425869443498141416098163422761449742038398643659597351560205403340576105992457831667236897573623984414622014114612571884121686567606001908098525916553338087122689625313905005956030348829305499665238855589245096187347138542817815235052706660653423082373621301703448033761675437817280767815357630488828186559464897894735126479919082696799480597872780011043718560809113788546021378274803756075414582134160181008530674797162357051413316281012408630488747607101658912569041185781330374206424434619407742264740866534021521350103538468021688041489658602195923320412270108837096462319210730208491226291233928773188724889181754243037326057587873074492908878653951118894711055942695188925257497306186693997428780884609313460769536014603926382553727098569109579213796649999426219730862662348996010851215959332445347951283363970806592702521200703591095376304119939184629695206854879352187198715788910634825358132333198503121904569097815697845045605960764136941129882015353763741908314748471892710834295751119708125235488746378748047857688490043703442424223717214830266448210706560134345540375678583698661776923805792823328035393480875183511185326148372687506181671612253473747569369002118640847572870205152202171789981446631990391731354560704904283764003989413207244969813146391797135418619588550484979032547041022872363422491191635013302122612819562402402469023869583232494724179164273686670999592783968719159573072356262818337925724425785012667116858548293632798908409022306242650024607798293709705870729448343899012111185532092716240778589139690327080744435993677125260888409296201364228386283277736308220416192777310796787200490170236606335127339737133765424041504424480564671552806332666262050201377684246741906378680619735689561760388659588248403391623290806278272150700569273279893361653275726079438030645122511637472176329741178668933944204808725166444600292463017407853581997018810356359556627172886634120137493192423833805314835381373766204462189203473333557500153246492175838620236013671988458918425952428364176376711648852640345556224024034824647168824046578137381703846998616393384560850956550811445391148923091080210492723844806377802753834006584947436568084873674841682969711393960293335327400566823044707021767223642085759003086316854851595389137686732467094294724787410384080171501929663954012924447903645682026346821130386553256881456106818562824457445017936664563955008594579953529160107197736865904877266524428805763608963737666219213232430532624898806702064690929765808096507541087090293303622284814146758130073133656042672371872195768346634773002898933036713839015575674116958040997051422874311804845973414010449139508399035388613955662805563780419288383835912992677192526572564882449227201098977292708158395450492301374865315966925297933957512389545240201546210326372166246714477530743427523083248889139877460141351145058828188236231460339309111482450439096260610388198986011975336782452305568523610493090132316849249819512247341977780580302774641953276691530478570746503026908996354763032886415242803405654546529554006655255274865198598203236438928733971366608571216626817871058159293537059005625731253723625222341351578128462706752719795576364193122014614989528081825347136708498231232193066465712578455126476530222900834600554100414321421603916982082010759372648056900380556322374488538805987349923605363507881961067769991610036473675284884058787244619295343767085498984608776194641019895977414105284026187361131117025704398465403352845504736378913139969825670892001172931077211973257387785453946316780972050328853754017304334570673167318833350294722034834189980740934352852203394524227540048456479665316257170619321354011317103651885562169301133576843391913485851085017952734729197566432550139181681096697335737438768055482493523216276998504581722426720681313131389424135549415797767713124282040010757713753599742827949231345518010811052906852156080902396972786358771512007508282703841295530051059933319162993514341302449614013818114955159230574838282017686188788766615953730826356471127162031345034473260248436840319092404606417533270737519323711258888244115049563242711031547317090649032210996160216144423964844391534589257234542364620329087259220502502945098211668759528645693148743688868457207192413335846073752866580106767834346053109771073479780550311999642173116840003694783550226923266333318150631247171667195303929294582039434063310488095823259219564869604984290468814041390836232412664463360866465888887086454990481579371490967025874374671267311912260882091005331931655322295057503068955138712938312506261332174542216656883632140218085735409862335649153577093194234999162770134443940142749526624584938373388586012366119405344326894926109363342435491864913028340852261464895648729471585983332125655303738477618082750686784861066336986479840803950109391490513571538727288550377602974660421265344753034520627300764109510946377722479109177943881613069249301767940355822158667818026018839465218413442719778066295272858708371839502037985825356773933464319949583004997126511318930063398445001348160384432961091746644991852712487132887670075619901029363965558309536805974361657100084481040753495566766238116636610509614256490095079336799192431679169701062922701255875273758795519295638558172923962975479325490641508331546681875158023739502195870414693435563999630927384752840935248014111059302635833130672448974545046450778147852341837294346043035290581654547740495140046059970156030220415211322260092330189476267762880753463405432506305417412232622698122720091981944678730854249654837190758289291533946632135997167240646293361200145220060092109382254851059215794024086826161462894077982524455810993487317184446710990093445069565159931769132285593756839018463813033416016878785130900437032417757265884624624537620297823063499446065904231132765686956991792194012705018499920087685970690958035480025771898636851899052237916300636182747709420012710214580324474942580156367336523539696562117361901971981857324120717568405295057507705834583834898601783741260079902088130163696908788979020470466519221931645393276912953515350764780079636455836910520298355852367116524015531654911325232366516158322474245118740470947315752031092511744765114196857714142367491486028090307759851359516565174856722336830273902590854820205737198162750693171523207265992620078348038295101806770287577479932985104739732202719331416883197636267872668969521773099218388313276198368976461509160849010180560843499524255570705446987621966800093032716925761886252386125016527125436321931705906654479097343414488087891909708862028630651612261936595454042824525346143222047001540816336787138851889890694860332686651905558984541947089171955067291919629391465052224466172972871562965992326755508542197183716578068964413747404093060752206154904315737305639804374392937186154785372648918635717836752262521428074258864761818194046688777059495948287911866317417800072200108448293368121107487626845262870023069525745629952237140303316671146007895448697640959997698486016237519222064047397878129270933231842689648362526589762582811034511627188955803764683051411625200876965747153755211720371049957336769194260318816737413469074220097232260016969252483970782077753250879225247988377587880862139437234231738687222197285859113402356711026000698837810698176467511312900925075524524660772870370045793082336878520169103832328870698959007239609864021313831121275379709600689435740301442482460385897555678655694433576612015260638547642654141110545473110259593261691108485631368431455129470529860948723520259868993242833966389350995372582798279975578838272618610697707089450998410071208094172674764209975408966150294535702161844796926947853529736874268323107444286939911640986235142819066770071785466637805420740156193512640000690043832083038981032401871248728006401718484641549358183124950936905613595150452846660118727173437150186864741678205620703353786134841636588942075062603389607280106253444454834140035465702137244773520689506417226045740574842383029647922416832638860335775069112333724016816821060570359634472093941066980333848814113883088805449664831990082005476418174246628368133609654536288179888940108971571346661977627427459871295339366513299992604489123401188648444190135751116772831063569007556652196111987840750577283494586412494214653791921054154420388170861055019266293904129130360552542460446889191113374993638655432587712716633361797324455135105857594287357518547268603025370105780220697401130018157362870140871732686945235991717978175501270777699833021149581845412368192872257392339802411060313307503633420038731864695446949482061308767688097088947528504794492115895971990175010778295594021332017333928328831863715474601219773256478611547871248261851893694100541686145810852545880923856678719736766454279724950947521492727619158812401071881783605199290938448317316486173677923464039335616297603482713056029849125160701503302736401358316304772214888263898188239783406856183681837108827435001042116192768031128281273479785022529630145750968411569758440311371817046670807668326330708232159129597600930938188770081322037766224698749058998723757626009514377486721680049850869780061252449937808421119200692478787271519315056711275931762698266276184799187288094339772346224896056266665229635258846518545783239069311745422937932880509705888648544373096950792192981690236843678172588469596298139947033566139526636016452274706272200732509321856274273078502526521197931259206461270710801320882650364018598523358693158624732017127680134867576708357218927384650945807065598848620453794575387405568789795014634437953877963949449743135115437378589964308019532621096818342487058250307189088256420742431911851120610040660414471530680584976450736872490784860561140675902625927100545828485261670893203206510607220775271820374978162011778271090255193391040362937049507507435166586476084336146474542992565080762972486155857267934466572120501667689900469006283512322250202112100382592124821957433070839135075849789726063517646271308608561439517056891886836198045473529139045515632862851219785477949873919567083697008902555872084285386043202355978984715189326603406301819929986453772738610345005541655515901034862866535520068378505664593625426224197289030460667637852945839145187786715969255389452956789147105393596824122452975477683692392321365351052225709909863291449797421799128745597146699406598719699679363308942554590519505371737791764570785943824217634270904879948269223988989140168455769632120257300251194148755834655360136156172055289933540503860777916236599040150842531974966844557042114924502015864193850351069755400632686400340833199149882589915798405202819669903482482258797437369372335534778076613114455773566068605051101629321185188421692271310421459729826149171078032329792685171213710712519541849213590369270297381627342040695985179591731721575896546061935760585887221142393006555947356377363598270328384223120992136658880255569618705635366839841314257396649827096763325061106752789946840659990697366825529154441071985279171531809554152454797581317358020289840064848532633007076602586674212254339773029093432207523402062000738732645506496770996332329779038584694938942070229247622292251592070994262175703590611438381859228896226921758586154439465470251970975372456806711077989673431812556090938495647242104439531514422919864183761909759347453826901521014032386266628144231303423828709818134501532827710981471133020866562881975548717003264082056688884054536036619378492130978041839648617803563435021119477403905560313031094666914961487747302152244907602069852877827308874757256498429615672677494998245359401524182552848181575514099768828395036526398280522914806605316566452513279667521993811371341152927173511994514513373250014807247123949344211701287706262663038152309337947965920987824589469101960976761586598416162342758988327592788089589255882976569015530309561756942531142563908489080485927855646096951002984661302275545565037006149657494895516076710265097467016338732763604602943730345167132771821305696529822075322571750243519646829522672688069094745294168477809040627328705605707903362226661333557657039956490676530853990908894222062662312897564413656333759814935153403785533071761195960758781088470937789277847906245475034651154971314093631441479292914941525636327307109954581723761859083041113674584220720239126408843835216020115440460158134259664943625082972869102080839262242638129379171678577562728251388666360496721128623439310235616734619700109802598517906072991867051791007354076439753380619827810845028007250676638050748237007305863888805086333619268923700704504132513162693952121389354487813871415513377442239238945968346025775668553882443923657515910539000632103856169188502256489683975249210562842466190694354518111499954113973430224878642205125603297317346583411859072480185284880579648815982526658029331787425859094013857423337937750015747157546051021379784433125273130847529393476534621456028317452742219213889241769146981182600460257863362880594962354588298923948786043725778159165528923767798031229631270759485106414630164980154164401626899000663525868129074002536534511739689658182967162582700907912447474544271855352399290418980498603602050754964417315447892056571611272320258514772682915704461586642160774311015145242221189369680176745211621000955220909397696880110824638696279446416185810511597980515449567792738642026632076543016491089241929944601692632941769882861002551087831299558104187782077423908534931717718151143251434728448624813814570981921824261504375059383531490103821180679892215120339543499750075172855029802498587684535049892762729288013177271781257427522880319144893217065912485623964984420687673132906634232641683414610824816342408249857548485572400137523254074893924618450489130319716564491666678544990228630880323640717017877166024136915919780620475268612960285982229629941272116701555940147838710187514138648361820185523107109654788953844362833241562550664910830267325493428277211703190056549269683250812468748602845041860224254872657470185041938738510301810587340168394843620075930230624395052114586770196836673563749402576117641886246041264152574599773574779815775856434536736284545710748025497809274786660767351071831979782942327897917365720890412212064651637908621128198232468786050120767608108379577858769900787344878967904131513173354715789587829936135162660524229687596036522094519697985126582158488625445645191253492100614333421822230247636422667710964663667462512543692289194304491681952347046133190057387290670565091667496544737441776475335232944775709446056651398376988857814294972983146976956778457331450729424628609233281719269978070809333382416201460219752675809176766816896351308359337521171578725645476992204839061490406814014315653738577696349773473786361084935044905032204937318139493629352543879897567706358013377325092304216187022843708938390667582748188615173276873521959840502949491660843384715872532160782227346283171642976841100879221330737752941269983246544296373520565413380991764870207156952507935480528473612294433000989678643632538677468904704141424843588067037474472359008402325984031926553217762618719447610758023830704374769691851496321501039486460427587962570203304854197867810885383510876837268903846854981328957301423119954597822943381328841495945199313528355079642396589051052992064989366760020207324467641643998625778235036956340014895453380033627471445880872281880028750975460844493334954719742825898971874059422270895919677699723631503623734243327149885636696655224675479841755777420253337453996264397770641927950825274384184362713651883007261236878975829403737838611139810847121256978039478518393600608869442153492912174308944977133262470175827175510127260066696085549382529051073217551195211139551016426025364004117786064222887783483055708007725562225415209601332755408746396469936462664870427507903727947269123342782053033716285610953023458334545234949682239040864838598772462398402919547250264228778710892823798376393370998064337819684528827023931273692305588245516801024552103112425194237354161406396033049621414388044750401316254105604420545196082656146588048700661052330198219568460579402808454316617370706375849433639166762255033149794049892051883577734855479429948862130372135763992419562114518077058562429419334984247125404147926595432117471991371678195799050892697493735182260108520280749045460845744416361844871987180475107298152025114387477583351597985134844171976315832538235744094922229973348487947847614043182571928546395064324170998202852395322741571156097053314876901713778886120591669210681121024877781975315500276408927450617941322334361350164819495860898099147138551817986520182134231086430404076705449661021853152148923470681162610727812963293046381727355414190751157343944724966367550942175576848182301742471237123264209679213631118054610659093172351989276794346901313342674883874401047395218046869706683307246104571284209253942991209918693326169004407201976262431833646792965970403306119585418665591090183998923122511000977365267590706175949876855795368770641516065717898289422403431836371289280965084794235374708720568003514370681764699637531040481627694740524410707143068405193717338286726669257968564803828934213981017043227916845404141569847830314926688655891607776035361238503802644496462150890039838111459631294712659230785521945294596061332244310490637079208189823743361195989135732647310598800982970416889954151482742877399623264046036814436126134350142792001134059781058414494354791976526284270005042145283661137394094718136637686618891492836235013201187564074398060852516673429097337770083087977141720104235871804793391628543733571369980448343343850321350390219105435867113612489536187512522193525958339378118714969206082501461351229143375178633711900825080862258795687675229849587065981649781955906581170025159613778233500721201235038352149529176065296497739551075910199014697480329794202826159146491377463008916921934670626365051083043129642955643974651527153644141419500242809288391664790173746416454699853466383831211685233473448400249833493466907915039210154070563482655591710801273559385797247753450657378546945285323714469354295639301854580895046199672736046854493490556396818688530913864319512433191273848664644362969913229019304558014073949375880844669592560260101239189138458575292073761362662870991011946259442466122967099762011463317915651251064620785056177029605142210445703959016801243483345003202945518162814329922977598050151089039022056710892016679608313270603016222352807376906579686486805771430108666817486472530072125335535849298477562558630665845292230312618607707811815822476658517353699768440284873909977704883268057850146931805414228230106621262638937158025191527974332979218602334826972640143953106878260866012321445712734236471322882330623978020484003650124139341932365398870350723507812375250929414173289133605993240538945783806662828494027837236880552105456793729179498068435651446051324450990879553986487900029298302159017475149621810289197277286351812823062311252973608625621948937339026802724371125002257555575534681056992240687359712865760530401000563523799982679149002831636367565685733608450791058677880520192183803943082004069277591070706130576072143212655021412140862282216957768009942714666693088040551634006390966210550644994399299254415039781881211401626976460809816029225472332414360184159977497730859236643081514875473722804878239215604874540981500636467937395532659364834367997054920130842093319564848809441373226000194215764012281953266722289490204910377915259092893267709116799147223599817557409136652598551941789820113539908008280086958801338543526112976686196773540517581866738650908046501081760583901091538199077427649983668998541983013948495490162015287639141417797439429656560347817531529674530131135752806063920888918610301239384541780914180698106992673435256652899571360983938066641556918243330459117666618806205184302963260392928059756063452284425702682109603223926592195887092482744964265737757273341862071438015675144782039603755994132221319283414516004024268655959871104683915944263145028320259283159242410348859313486570183058090954712461311501306039069580797131487004783577898147778472687160218645558317695031556079962579461236694003780705690846213362326866109876314154352908155668710228817474841244313517312841788258557641908426564797961472642360443738095991373985986957839302933179738604635956717814013398384586565823784660225203136128804282986883697892622102171831158999621443293158969834430102434275478602856022475354441954582225449564578194283596520613472874404386103857243591847752084036732840460851579904214084261374030765737881410005809435169120375677382541704831539987803212741447578900133664978222205037827926424847634675356031084666594238166209764494023385993040013721338134365871074954383040197080931571763056012954436582238123418650147749143912483807667414207932319423513562193361614814609393836042414859186663405147396841153343793769248309533404068897620616382744174346631598647505586578521699021268875595751473410638158507590055883230666703861575046493544475182191964964427082409666109472912827125770537742165567051457701725668112632492336036659994137523285245253834567423542545310199318475061490347386522622134966020458975069860691986314961957755956243289014801630266388796548996658692106708097324007065886756090945770283043518604349439840434204510969688469410746354809468764230148184367076461482290041818468696359490657187970910703940350842303104285687602013461240512419488278873988133471903831176317320817384209831898577510334386210075964959379835105459468643391424237781323415370013230708737408309269202322692062588465495903605120829801818509957495052350178997226274184220202273557054228420746012696536349566755249395627300126506884397142456666034688026644474762543605262743710193778253284623332870951304258448609002651111343235082363156380042188661351478432262539390626326391619261812453947315880938908928567016361680824185520540565215091622155278874790473997027803776793297437942640906964961196274292955819457997872627767628629620270007330380472306074294925576726062872917450606261937774492315157116839590879933394342072037147695584415092239678010937348611462854891870593217925350539754564976047168889217205068351680350023728720971916006686171880517660478454203783158594913298920612805178734843025037629012514039264898251464946858769566270199133644305951994619410218432542696095844137851585630103901094783288407234222877683963410533972715690239111659236412082145496702926078797901406758628252767374568309154218707655099610352020690538806285981662631952392606277247737473485125120430539012275196200856256591630527562542898590431292265213983922620824436877957980390181561465480929726684162742711226935235455813468310140586282367644290082277106847473143441701001423189925106713690582532699116237358970115626394950482732038808659896130204721929507981019192203744140861159916545936623670401255353720558109381612754397177585685071987240531486716332334300582552709570843575077443042752167763289682613242118145995025015577379722235703164955598142327604430473381279415222829087250274965238625186638979768508077945762351119065734777737827593156117309297926745925498888046374601082069172459595732811646244833354120263355576196318240170662739191174612863997351121464335727065909641311540211391401849275492042871918660330544328049929776316925469287651301967091216279991138820565165944522955604600039978058810608548481007177267482125777012693153348175390548591976770159608989015092687447779952832289460547712336539080708551200860372266674113796696204860572057523542157058326526090762968969591481761508703417294273315896780853435367171468171863727561839139673469666163613843256090510349262633390348353766571843097251160986157630039674916325769857561660171307398963894049289236900655238045422593686442408900168430504401876436963252367620308523054289425357801866692609320371304301244361897234247044269344450344413479124197689270607931773395304673500672255854718438303630621203465634025525666153024581584859321252963469949098488963083709638008342977334426102945534849410680158882040323839296962832832882614733746844237480724172948308642633602315508607795804964596982414845999107691428801025572595082128378507099746271978823036575770351933849509440236869968427372984032953621464832203270421269329288671583659059988305901584739715118327279482395368925937764783733729767759634197524848081363144838046070300313473305861715698755282656915053862691468168172812326667561078760898941584309114084511499450163624645476723806174526476759646256467311842087334749177379001971875292050018416997153532906915618165799478271542313885741289847942461255614293832680106540318240454916440800707372837012840113444031024612607244417015070921968691780492395496743516214489076992389446938843033166653383335736848733705783135822089471027203284905951371677021382437665316680370767116794597759107234171275556637479721984511606680255807255953442420140521114780709725558780385002238571095629553880195636744690826324580207164859559623095772528001800637482866162737505400612500309016841624647930142073389226475921148219022759474245112987972741780613182712386598995999733091954613775672766147475135939787485351130527695784445317312789562500173577008782461505962049184574775865402540524807980920848687110211647041823638681099887382854125617469206096010283104784435235932996855902457945233036844834253742915381619763805401158506479955575316313445285674995185799782805256903565269029151072676823514527383839441424640667714070728952272867680983515649280726334948002567840831474239191561947820775280184884907841207428688470516693463125832286821320808915484223998079318618351775497370861216115836813484688024917147036086358634034199292761452430402179666068604201605350346733545331836774735728616277967889142866085298573624499301863494407982101411574900508152645539419390961130553128252562829890854268706131250575665667027218107785093664547126343175333462699082615645073838567477148736917092177565801595243839829824588491163213886571086128125524028866171291731461544113452580947765698300914429797169769478621739701003548473693369135851072824731974328424120905418247715708230729506510906394881409973090111803218784204508065670762367197532043733130707465179596502932430937173609817574826920210170273771298249190540092986698547154345572607453802220801841572445776245976939783950547158065167449478510603126340368564362494090556362781341422312384047248366830339100557692398479034644213113028317251439096754866754147933666883330669131816349608502047961580081888924690567304278597015504693338789701894171242186113074702999238184728060675376075416017800933250511312380869531701941523752915471274207086352369915089559023590328190516000969092915303444654400900369800714496165918952058871304096253818770323620898043027029486483914807263172317876626879422185686276405391388813899075446491526559814840202791567327032151812525735847141929333023183031908485500869152872826894993795245331605477349241373463883680248211780251919497857518756861997076344706623041244822540436785304507660409022463202740883131410712090579073523535815929347617800606305432296098431307606367605493352474272746529770217952421373897162323436506621225980678885495710913558488996775642452940521424293943674773303505495642176624284423788034305345715419619392905782622913496723572755614178234059119071437261295493449049398632901548017862539418052140236872662245622420291576331494447451909747919972154193825988858778025143902872879297584584622500971078829316940282025145525249123086908855563481983533161994390893612936078229025967999050639653843220139868601064841239249743478111154597477439834213447288274080905070138638467113943587020491960105311919817279704305865736708649311786345439881426369029205488152215026489972598849803582468771383796148504798512963857414708455225560803519488105805158600871493891058068796504055649172819067793664819334487642380798766865582579786054095820240981894766156408993143997877277586178109884743814212392920369627132761116144418223915935061573843688529228487474869731347327597210054618215311396953535260128296300547541669402285994255056286884057977408307674975349466327230653410554514856945869798750923277872800844153514678693319832477067043455380637730433046664783177750809577016231613966977910576712478203305508560130746280869617771318847940782560481170439537875896557128450753834729622275316473979173171585799038833478686634081461406951307946624998287241898883407995584176160483582254031071100943974726495651525371049511683423650636020471265671526390033516318827583404612575886264099455222676096644975184563035658306001068628639659859397102737664594130989643779508264161692265323893762223450674944473042426262097027188789675818090043024682923167375709177019286202343298816357618572446422113773796327126274753686121936362049880434383136931349128075979440027280083632130758518142999843813738478549644888054426439455521720376370018431667225443176273600658522338208874111117246002481425787740596734676626689549039666225022049172139949044866627435994486955761906125137471202165437807682097322772995768109685484989291978477750220261599900477491862229778117650818059240764688672894761998656758041889181137126348949355640155026871269941833707010457471917104762142933656260916201482921353360746104593281205358431871152905083163324624000639952970065703898307588456103960883699175570182133938870912939204985053391320610697413176077991426441703178860689933477914064484343476075268540703469513648410203142381814267876171749381366067101994913981020077845964938695751564905012304076781012593668885914091536993735074475004915756262800389866117576540006317152779315829152099308491865849729505385492476548118725051926353968873054043137158878577642179951536579069481988671722058209300778791678327927203314766110928529123323211840765198831914902238771398871952123762633449551615426372823593323133132526222041499547798990936958226527949174114600261895372769820394940590662952611891835263191019281594116779692092609113245422379869560775808928221684138768920646667148123538359428987745895597544875260904333611410996073887607741274372114985808608620586033901005332455376443384881379843878617291756753450560041165477524473422495522261868582009696407199727782054421054371879215185049421673631045250130880662745571762469699732094699467400326495118096792257968328135931997827834198106184546894802458602417548323284152148640584204396222814256544137879841033945769330428468220484458714586340890575846011669772894991142481593906942726913332051979119601169719857599526434889589281947064675208427078674410847185860340559608359285802667253834626014442936777359822052891168025756799138736526542618227045825704801678949443734951264812346833443812724701523485488183131561552577844212403826288042189674921701709922133909977907941581298826482647908608384251197733133055371902686421200751956870816895077524838689901002133839914316216962685572394052095375808056425421823519491653784981953463572159515154636650656384427574004769066597137221327544652614936447740256546713546045029304354093757566864718217301183273559502352118088544740765462161399935001935341679869300769905436219150529020345474065988674012203851447576020857604472230083891010814209768821455666548537304533763993658181432009042530964238819020133190639046695814453034695879875830350028471034519208586465177309584846127155293465271293138623834563819594352962988966957616217383794789206138706725940253469311270694858118499763437120269538868278887532801873307562747889435127884176809824392370415893354082377013473418463707744568310966979965306602204654698680057019358244881970330399043124462120926706585080657134545461878906202910334501907159870773069433700302686311223419220629146809309003908452008698961618866750711009723253221736332026001814172966078777867948261302405367357052620438203704962103351870970574588352535986053493304450156684346538336678287909815713057299100176659963241526701128988830255645482344212767647651143770072069756243669407709470824407730298164634001044416248304324020860960854602301879286468583156044146956184702365468960278851612304885739306176261023405090885325549372716772592369253319167972327108202867230714048944204111113998234869975689543496309443152541444298840937609815821943047854063402089473979021581043414259152385731530789702304621681363595602926881376318563516501359416269664293281778710531195040664117602277527322787187828041308775440819154570188452708161850721037986674953997640000771140210891174938045888661989719606934490421000710111731460245550664052514723421690333641712903191281139361328571387540987398342675885049047122116698694084563927950015973853875451412741547354970244172317169752473079521711988458208293681430643215403778362687721531694507878614614577194120474058300750553172772997541294030265145600662075927713060060233138417017127687711150713331866115128071319609728801947073612235925987235872670562686627183927142074946729446557754433334546489019205506703038004565608394247727131284083760663151720482530134844399214672850645769617392643071044781919342726899599319246110843627518228460928794679665256330456856941806980839589831184942977249005665914373691348733059953261925861134905261859328510613066684428557183744798245951914396284910729598194610461754289825865903034963897296366488858267056200939395220205403169803659930936742504994653271857761293998443085625351318059462995806513664429026636542245326329034809476925116301093788272099130101810825999801622922301761806037765661820767409965645188247062740676900879972951602161173291064750941206944315137384926885301947998269412143274123592180254869239828098163427824421284047466956273914684581668596812903649531842067541292575167333652481301136290334498729910404053231155450753905743256039175812745973034516276857974789416161591638309015483575310714214116588286292530603217615327144642931167232658505740044513063395315232438121650726533805602161623868934569164902408252920174601379358105255879886253106477256595251086686360204157718208517307204998502653682367924775959802043911740485484396061513328216407145697983854103949943743686467988227551066624735876716411076602571962158211632304587432768425299449646668980337336966827578657356388688140962043805052450989422852808235678017816304022096057183347616324685414917660387645012862313147202551172943756715709604214342493165185910750796234423535418897862715268205773407127667845117835530117659624622250611213028400324827502407171422574725408908842209345620564310633015219625452146054815171379327603714874730772788398275229980021670589657708562521966950205128416798621067713690011738011443255668164319817652680546504794292000976992219303855297654640452374299416946144440061120648045147012190433614113517126536746830142339913348174609657994767559865994331293302143450400440581460641769832446624868841861101805344364798241844629845721838121878207169539825520823559615936841336491005212857961369591023621737258507777688989059134379416076032937518222801571186431543261049179059411310123836347251077051683133501543053782147953004719802780465094689394098782554069187725766326768684523812488077806608717145537138631572968272953934179352230659898671126324919857365328384387438826442210839494984520007899473806217329038102379245979801523620702515926484780228626777006984451362782898500556990274444739226432629800520639246582078868093690931647972809172555748258775621179308395153413016644334326610851645302424321562675898877402535214532235550372538649673456954773634526827755364086186143328278429571429865414698301639811746082656757731374527390923743614089361071319243008203338473999684203266189157454025559944560991975145338308281784204496903583357624610235397551006016307528782130887132263703093572372531164269614180856854040891578021376957333406677650061915259588883970093704556558817018941598516315829823720855232020742207013439693695726131955066134701492002610948345654374382717805580998192193448732004832871049851738448058869189920895561548508710416243032403755809931655019957952995147761884408201598700936469278466041638638904561467412610881109977488692628880511005653717687173698079240058735441863817908002492363339189201453014495925305861295794385866780693741092061337795759199950375781426279089714186364901305088118245601299975198284995208889940634406145939338813306213856118910963767229352110689226263884081139028182330377494357402953066303856723164754565755077474222265906291772288134224695511577985426502759399140979276253409154391991904321646761650478072173369420639089239627107613891758297748077921725978672854392422893692020031264531993587312974560350712643846050600215499235848360800238412162071128044305913357819848824512463491853185891390865301215472101191812847809747630353090782564436846980815519426096899473005061786037080832181925971780775294926506430020836762038881966260864737634448467045125716030598718435846040494018137842025162121475544912784959766371189532056251227538538987657819165144872498954224447459439478370282191483763688731037451903075828342985023648358090478191213633358159770054678910627337762600541379845782874777806138721947143789996071941936154532063732636476569282814925672504225146926727522276924429890413291570065325627340966557874290463436811558207981883400402127434707563403940630706383148109643225474644906941462197885920142327656934949099010309538557468408381293963319705516983307019196421613885699070155693780038722846185387166299840264000027202866861513947201653743927184755062195515314603868536087997128910236376321985397357103152858121018198489479727411514899166662525567282373681191411639234215553354708858297823666439283858103646026850836001402325166970731359987305533908661094912323193896286322681792374288241220461638767866661087854344184384386249119974959719198700477610598855131218788267624488261089755295033711182577729233543576864730862907628766450429439947474752824133657195066595646337464125409703796313121308922725837688749235353835040538760765585995745024031927059605575859129728267756627900714280512060864337193459909860137613554807656344074403832788946397759726426739425909299155327135076635165289791311540499390314038310803418574981903215970678012202540738412447226296676325459012130015195843551087553799637341173163491059570750514685144256085981822365403755509449964494672106659200594426251477848843378098922426388583680789631961311398542269600410664264264086829737265088053997533407499985869981878786709704632803780967407392774038027299390826457117520287059331029150558511021426498267623783948708118795998144558764863989395564518323869768637627073940720405096697459959671403789971160037645041873380403644268809813908073029288673332494288081654885953728278484164199789506800807225334752742855748211594419628810406093252900223268965134552663417196768503814038556845070849389656225879330219420053671256301657178628962712899956262848993964949138617624412566272175285508429042163357736171151485392597450197748840496153015366376371374273534655359591545685509338404677325400933541020386045051738466337063707630160021043316356614998600339756260486655507011202747240014777823025515896653157885631593936532660064250401772778983076018417780578486798580945874467410179504570293837500521350445860357961383606688812584408686649563389235930561940610966266691100676974075300897449698711763961591299956423078188057424868467840105806373992779052267981134698660062490587981707090341721440084214574847335385789435853513024367418387310764194637575544423106041603458665984458186314108332460615967996437375214079292583506016305630555062171471473623095844422171809503962977277243682874264397965023378506676105040679553001085730799457762825231418054240543567821148278928199543111529103197974713428691835124265621374317418411604180551204547984439317985118021597711154973603923857723688331801102156796083844221030239161089205471139375035765766728241768761719200429730142202263078788586107431207913989458728835128470435485986983013039311599839868048372084536296841707208054165695584895561697487086120238213974029176600120905257962979780589225332164356105197951646432522489356064075525802886600955735027103578447428822062254547622991034392754400491905572144242267206060004100817369214858140793310479088774631463992749173269153961016435723208888161540302445202631714521613573185491970990668845226657965194905675394864007241846458849679453951341361925679132002937286723234518789551816905292315545545056244547188269208367601305387494037637179342655624142341857002242130053835384885023231405008819696190935551500649724508286205472165190199952876241099895588898580521066669203734027645639735319771636931422574678725750420882542505519271454654379442414089459449062579222498555501624031190593057406031582425213680916958180845955106660635650539825145949817614444037745463377021381812537813528809619105228647890838872762098696523660348237370676353543222016054834084051653191336038503623711682827125747392052225632213437536332326976448415528543029226998725122848256340428967392146264312396031051487330233701924863156976358031838272823215677749819015980711584844318058266258954281939079813134330178578607659739643386854870956788897923338259365190792469843094747601906836984600402690805804067640201802580198487365722164699320150402291987522097239889547607416118055754805152210268233557185534374438639188546752498477538804510943980604213494769296111369813144094225854223426386680893130040893199270750381014584197394573245180446890440311352946886448971286610408332674243300160082739833725134011327574997600567260377754154369613419153755611366454991154062147486824130675645992657661274909435322378788410078980847070112008448029386133863587648644231620931978629948718318733769768991967277377697879915921942411848374324795370784081021767658318590286859112678376961487044040374437795638187446141199839331323138339976720025453096581428610693581229036427526638810403712183203645961419220604593934251330785207009629135067433066874256360530111596391394069524426713015847688706472641472666292048990587053428732300082693398375039254347351502345673328635741775218389907717235942182533851763320708644606137959683783073247292142272133091878924429951607538205976043818421759898904600801849843202774893027137798509301711879657894201559154387654887107433154830881616173447002133940817039430144305379854471046611449963026633898006888867372962073920446289884614539350719557394550907724890911652610511228205467819534189401839855856743906336606469203309371340794561474685674025192736606667561381884074142093572396154521829283162191057949495861052009099942179970110784384771237262150243638074562791725132997671559689362993258210049619449311730827565119533220132028626709395164191752055442562645273623966327110653636560212743850273184058534934955396312844480625892142550820420307189325447443409117277637011300852070735624459608434824928213904209417351370092848134552700276404297799542841514372394727798437337260788853006876958702566728515705321117488212298461605801210327049786593267981416199817719102099955588332403681569231318392036447961571077679973925118759567601404019977673506783764919335673485364232614391029332111474502754066193744133859482895093501342654038771238682811148355445393949904592123699091925633084947085060098739163268646828954425800690007658748595619539798577017449484531491496529916066109248703221572962891975984348760318275367501839190772715198067178983988099516268803624151871644275632042028340045455504170660911413089674009403940458641134121861577918920165529891671913224358164566728600624327386033122785422519371595623555977652628243358029675587847835208856380099334065307022463518865303203584135139005984097291406201549633207205745456313472808730827046433215998695497104663903359749905178410646396651712105676690563069291084718151549762838126323250130302028429128216213043045155759915522265473719586956265505374107414623361250154066120993124128050939761442888085696197149795385310196820969139300055228143365907363062677343395971893108874661801051860792513219705324406494296255939524701465282283226173380634804139106345363202847497990765989728499552594256846812430442828569466966432302538187333515575703659624060160154681255876060341322822419253645196982919058232660811606753049111375557544416580860671512814476361798124663435934014413022497766799343512733274560617798351899652936122806748262191173193736471191399625152179901310800217492704122027391875151354859806842468049348370602785825947526872433025191969635165910783975869659957975970817194941822628292858080319234836979293721531219720764883857346356714392185172625065807380403200005129924921524073135881192807526094546820734838985248345794376521812595448877611472458406212480131752282186463466562131825095860614264339798668461981849960121568454582801922984378863806886303758523201729342696662484382621598452201810214860058135834287552449797426845151400326209397392136348187457169665376854547475996442270588961572409862024099511448073983256595066011343599384776223815782282050858506936062091746675223766009165810624484102882512286566604210763054044549825637226379959169390177044458948771559695077358812560387823634930366310730746044660205413593943936774740758668945579873214336466106602432586177695965162639487259318582649895832207447102044681025059161907135079725455920639151675769512360203459435406339650718161247438777466594669420913852524657082445241929961321521115651221210685717078138831371945206997280004568859398493968955719760655431380095551948566348894256877870866913856288601775045011478153637479286835790322819191664314156981051590529915978443916748225045289989959813559553479264678536168888399024011320991374951069380390581066362263259701217593321882928479827900392075337096085633609303347164720219728206453926779041608143132862357285555234252111055374545283642811908612172970055815373389478798314981405543659958632588780435319561253118542363135946822354733126682029407486070282348930844395882895414705569286816955689655771603970941831886763392771215383249538023995840902665543701399107885280686129682900785713460570047596164005426084897050087277299909958495077290862982243410066256996290282590751881987151283016176158662886399028800997916580759942534867731559066346355106206601370842197874322045503310837522826531826131358855468741098564922956522318742406413324815972575690552561621652191280803247005884910153810763203837451844335891876474936771398683224868168684078555085738938315377867086886341687669072574757776724088404559727367469053807069292102506107905025705733050839547575108117737235130320600849545961963832989461863541719133323383615909310751163929506610683158093032316495266602156824034800350599315382695974716580014902360116068650069416529945179497185584567438937388559090726854353056340025840883264868689343445664603224071717942431409766514700522968905890881928723775950883158536468088590196927795605084277133028875724966699076236664759216528910166630894089990620090595059270768198522950094897817223536165791549097701872213205722218402358845694317558461199082742845779285674186286848769382956039024211315678566499202602338771798150136925697856402888277190353002693315402032535429618201562075232631106451641893357815790064595025107548245226676590035292894649133390223428554522087247279082281579779681822142141152938663563995106826689441434034015513746205454309344752985448061393005459673889883324363331556994702518634601109956127017793118639450337144889684944586583051120107094428474372118593365297151701590679876579913560504086710408660982366230922581533970426041688251611525274661283341026091078595412718762094187260101225328711282833693058712678051869855938992762603612782076954654057378133156956301258141560932805238292787437898010075355837675646624165603663425572779519397902648005509199329720828536799033703145129646751528687553423279099869132028456861838303295579819444326453254331602671912174668470552049219522700562283816662769848923915967833199686732849052693773219902416384467932725957874001860887363789785303444847121325455579562491379063099695470032202737792741591418176472718731544751312264567110179233800935295400999430155183827409392750206914805426220174684016732424343760286217439870610292427629796164011902182305543315268215425762841773962984412249437863052660141180422471992630233177045122932364680443054926567323086815113167683481541387238107427285693026743339297583309470983885195763439684836894305366194105949417927623323463754970599166885012959684669154209426325916470511759968993548111360813934248125039309593109259326749032830905238590579457558622469528700427800240558579744408013173352585956666381922555301859995845097787638104389060474021156844044455864296572569997008562362895314243126033185270772681609174015788139543334819134504248492212625004615002540618667567620080181230464514342174589162794129780879186349692440559811071293870223439036242468567813251002538437540369250237315468336201094034755758876560813222155260795138621892854475687935551456298786158623197481902382314135588081033284339565674369340236194576439066271424421309673530124404507168751130213640640391708183639863349258249971801474535804671368650897570317345868271814072544278930655081571672841296077151891726363105673259110463554748326810484072621360371653626897204302524492258980571840652291052824369788104694931173664106328565155255086928244023956690071277801942778289068380354717138092571638595299412161936502310481956336691123971471012169654083286849869232230149420788601881196014121926694810633297538923663653751318108727144495665466126109601852493498922961577208682749169161199674019288650857934407234803031608347548668314117547721751440548332271342515957973999345958129913834576837753189610630180567459526193691334524290180429023346654082898289302440541455939449515436584065677486055416652995777905067840804845743600931493834518678364003791272511306332418448833785783994140400448108797612041615886494427618953912640386872227448944555896281954923265837203029746408152849949047751396819816676762216566150972257313329235200294769893567893233205944663591951076340429154919178820152252462873875939306493219124103133762567592524556371275294046824248038872612321343196930280619168406378598068947544048016488086137454477358234077397852601677207581142684354756366009627553418122662301373124962954583536067541515267916106267247341013804369697496123075925732459464659572860196355720159280159631642286358559531079290989625557217608332605285283304361183681256170584131297172427859924344489308967099959172178847516019161406561775300491461504901197932752499027640303568378454053179543161464272533713967746004406868126963142646288185775628299026112334593168362085391889869891459679674718791461590233593965759459063161174996485833571764097677835968472648434815126778469171866755608707683727485333886971950531872661786283539064818149163756292989375294973340940278235858694501791579693059025670627590336373730223040218347761431237737491911879443872411571997933379395645101084247078910519526042317916740727768809635216815023792202209853755984635346156617096509256643652476812860826511569864254375778585462362533837816373177567967269674563085233578085195408684806137588917788964701751259163678123489767178173573115267051743403643091619438738178774055014087535526484136714795944414585622241515529976118233665351070980619076586778986939378349770298696753694584281829016502339052165579296232982425550906531169580776323925753763024078554101095123932081641027052446160543572703128369200752283041910802473787341918211290725062768814178422407020471430063428159583710449875191949673361258159401308297000675473034796913384691174427220059404299798972095771327514100038346612188324029887619374727590132796235614683158520010539234205690166788050810092918071527119234460626762767320725774195737998741557116130501011506787037944309762031318542472499709477565197937513739657326565508070189891545076504039565979792236463156241823317775518509153904502829332291345064024959975507610627187547062778666192955326687029376258874853763321440932081237075265284551418831952162899493164353089403167831526971816426969868234929057851696584980095318239135808826735049150455744099410881048948901592364871148252959297467541787586489575603732198613640334261983472671761591631168962676885331402922084889220687893927430258454992488813820075426287284485970960054503462707890676140367142424632036206342147177727027479625400563918889907305534859355484462714296604985702322354068761556595748415940753816161986461576888878986123649497207624911765295552823949283582328317352290007020387514666974996511589938962075320693563334780717984412926315649459974668886106062440871870919609902248308547881347827789460735649085969378599816258864430553925880316163325134705351289609135281848622493059974823389464895803457562426086705822896222650648998105424411610199598885455376211800631383123409628210117636127551194679875861140867149800148977190254139792834806004262898948421137507607124297934800958004098928536884616955249222920588172555519681126097591542961867536509376084105904616532080419240750725091154546157541807288825465613057656966883558523376607404537136085371213500432290089484898595224364843322947105660668980278572506925383831999865853921104221346313032618014455694699177206841408561721058216349762372921724571210882785833413557522086579802511667818882916309169211778005926066360684019068697969255694665856205852916703263360578013882214250101311234058511124589752537137976540727092975100753487998289775514873625498921135476583078910676684565277829106431248954598068156741970506894329994089545821282102580748402707537642009288724743354233932377335031138431995335250261951002068991285181114842840020121501444584005756053503724518457476074044943568404749699257988087746752561454003339968752181463622835658630342336762036239334784336586527165714411828797142957698885928140102679481388570211283516179633728272209059504793178865744831457837120244057642860815612003966739799928350142086266507793583135716124742665106076202180720567772082424375677310221187544666349225094939578354182781618170602635859968379894411576467827249184100251518376053912592418732535587652175271533792687407832879511690607741249083734791327743653771958633140972552881060353350573441372102233387564525565436459409314197307054862872163952290167188247101126683930266206124228742595369878729880242935789015681696336993373773547541801052001612788001005228642877681690193306839738484477041133842128761932417745873973387107045348543249874379781028229064737973677106609584066562430176505828251964580926118587490176972557772738391624700812328980274187380772678966938132639562992054504346086825427481570168898167355154200098593855825052176980090298356534246779145508580975111601341238360863503577991440358491594029667549897245882267188949621238299966852660212803819002653345876464902864910777556472037815445768221299016308646732848489082381924004362565288841293552196042401988322873534195589205397157091772828990964986463859910834541397092386178748410050699107837684804150097098611085266926595856142811628392741331771744250294590688376510817470169323843789742446468474095766952729388551178905638101742231382429023710906389498563479792396461195288932949846156029380783622612100265785027971160620764581026758273218189292851382294345637534413349798497080544557112456651888559460183057087627918806716963023688771499752810724647700220331198595620567525007616706064379427908497548986483723280974347789026157815228863660891248564719406840502775074725280269379585687873570029945369823912308773832617115645972201147701620113121803574823046613686312936604186414939069578776537914111821272134709461657740654994850881171803125505508997735802763795007943632453393118892295031256027938735054429306909489837444051171470849326009439660667200577908164386259368496222693965037853849962739384210066758554282777379515203286437647464521517516002680455538728320418370021581750533623081343670277384122922947400889976092398019007179050307290995801279844343098266137725140918844840944699166100027733759152245367538331051379542238328295065877514900051342009449247060598539496771499767179183280393772605095156869420422293432897808828280165889930298598043358621221508795485228821292038930547174833379841668830265678317153048144141978621371220971208068796700568762800494420723218490082673829336639446020112922104993737087628272797356021291802372914219307607746471935190135775953643962012595124207301181923700404655177812626318184695366885742852607587951845754434656730286900829169259417077729677695122252624297689668414174250889964496297348303310883901547154945271213015436804305706158731484448964044691591162110609427525412432081402824834777109887689900203328547889372591888739223506179135662399173657247969023225407457672709085723843177706740432069034748922195966905632841261280010455201290796609483443956937170546070449592914099089834735666811205575573974455963596148431450738654012434997480495259711611451003853843194026343110606778212958118153373601832117694630440294814454003221300330443531141745788545771070693744356606184183748038137056068297792197866524355532533774331492233507146984096784294632981357652655297447906879971921460571976505986847400874720190733354454756913335367843690233941794819276395605195540343624404768209803544343361636146075151314083219291480440854998714052924583555378548435705356858627124379989994310439465433823111133295684244140994725286709368195130114431028803348096020995168853265325812672396304158894140477796279175564542659718860173914924528536851350776168889455529413215536600122512668011032352626908261783819156444326749056349813412362904023829616923589725140082344118547045748357820510449023964013760513200181741879743739486242397889174980916594611996678287690958428226999793222941674709607507292193732753535337388955624605599857311685084720910128200790954795369181133645244340874830278474871159216674509713691062219914974648714926814463527020264428999111845808366350932326150397003752930378121754387358516124645872378874799527206742485807507329059951286966168946803500718017648585750918622271926939535029829243824610293616041080642891167177872100691135204756316597837138983479022570292236356829214933081805750792651314660032073675306787036313526927290257776251907471823715776485839474853812947265405663721030148003606564780745860050942079833993963810183512355424630681677132184036225554718520474217153403332196587430455835524138732200207514190143961990839359254592262913792167886167118002590062505442652458114249656143546792225299604075924444909433646507146510295050206509158130548650995966417133300912770461545260925999667511692836310946249384850984942006560629894162384933630135405429192013845390062375908652922328652313352658344557804283427127118784560865268940919489090760931653794990040345201101124141112338068202113205948506255951635080796473708096227454101069049876894409229259334587593228646864268659685872940608444811727243227544311177506453454756857506954842964943633431072945327174582139154743636013519164360870485275465819653839963908202189543870381360563058546607517172352955290207396355634253629766492803881278605435870349816765059752406290535924850463978557271977503034010549495080757188231393307657927132251780364343919135165186023195004856288074122872938904712085272122086918274424456551285146413842275047443318146712364089050401929812208019352445642621543816817370446482570078938734821641237921613859175874239461491571252982922286649910757193386669444608147469993707092876718313455330212144537435247381476166402334248179855834406509081170086731782348315302921874617149695859957769517071219518506255259403225336838711414797036541154379757331801169978492812155577979270855348983579612104303660042750464089520911935936716082024808981110089879906997138560674047063124320487185243160151291507802469254624653717673685471869525464999857150794972577240586369450968172155342632651547183200217283403806526576157513476111812628294506298767441616081331444594149590241601852160955069272753707696234286392050575201238677166145843356475137013984054484453615460666893084375993129478219898578019208292130736075430403672429525454954793407636410090622073405286194175302213016010809096197788608957782633702033412159825914325713756497508790247854497573546034196757637752874632001724838893099368254506537352212624634889044618093908675537849568897329714614225511436049628832556923931170501699792038615544218375498866976023508108646921247694050364415396442309757651224150075296045832087619001498575375379502746992022093927463389487992456374039097450991631373720068949037678969700858315246337686681621134790366803465477922324758336194074895120413214737062781633954465356137415829973237255232151033982167035060248224718192400804998530408132008672638666187367214287685727388366916329445829827792836613391959931957354377591106328502088640472703142299087822402520858979862257337438520448750957910849306543142796465658192864172073206505610180888950335705135112614831111503023860265415460406346684118867633701283697320152857445550560536456194195203833256766666448703246691471218197181593711301962527020508006561632873185575923723193376818851740900795115847488459254693401982259572042052394330603273493179328966002662709408738188211487253036973712344993266107734593144485864812480419036922672519387925880460560427884631693126795686213811043822987679695252011907694482798693240693084043488768995684736905790902507975837724385923729328421581769761639133575536478032148594781354727632043945720669476518592530797668713279410626619467772457916895890680874203123502786595128068985308218988252747717199419509858356441468334704249655770638232210058818197436143576642681069233865300412021449834887805831773644230281690446806587404608412382011297100107674187795668875068378858438024564886742750085729439059695279975125781265401852278473383115923857534780138065246627151613308145034247722145687998976806277156994690495836092607276459113278547055417540443373619851375168452362993074378144611075720788796620617627668419472651238678575455453181136180529552717780593624548477631557773493349471220762077320712732777774123156713926154208048128242287141851987754684282439576258448588882431508750314577990883207655324834306426750159209411633194365472599116598671767282875105370478641378117878382416564560733523695888181812551458494338238371332653100260046362580971193170930483495111514907176805933168175944745372267574648776215321490736865841722888410597441159546886231911371791581297501764141032623889250685765740343146727048902517915444901396361971454456006729475658525351180110171596845964479822409255663091069393857312849391642308528184593887889953992880163958545451373498996330616670138803509279126498583098466132797358653657445635140206250505897705032041009727500604111446241433683044135881926036209464897733819311447053039142260250111366844410322353605452148075765209622237376045854795462031655054346697130232295342428688392125473280902722011465643201139456556261376399497505382820282662708148936989960156268643614442339841689096247897700139194747500575420840626182645168845826475808880197354307607329412592005213849424093261040378041528251003418099664718629535996136989381801806873673962214953265286801891762699509936413851807884746098299473244533716558933905238996811930021468720195913617648713403625620644052472344436047271925347760508599265090647789196572230054925276841423539273080233077450505381964904242341802366656500512947227691252468907424956565318887541404097424735553279873074430247630647811543768402609104279723137925669192703582034523260105657229574551513660697365562403241026722861091159195265246377748646861273744692806025917941747488134434424822278706108876507005079619225518234392846524712272552046652834578109347477549795438479489147592202401632304131822049458080782231925875624738677801590802238641829678038407889304691032839230608069752447024460443311334117272233851224409620405956824756117935205462055996021218100233604025721027044778128666732335693976985435243444801901206829427747273963107526042943682640072171612106247606655815732306453166168913044158126855718013908859602632945969440919544066067138015264238201241118145625529349487791118990148172044634451878456358642948467666235997966284160300291433841247666530856785760564431660348291526096078818130713362527396903413272611574916614495867267115744162683118750938495343686166329991977263191018059062120614476728782098905187971375321183041251440245639848480365456997955906505147741413554123230055527835973657832510570481862963224780664427996847035366149407150497825392324893564810736721918890672566689762650363562341993076581823739072925247208170399771120751160991957503409219460242683711544299216794877890965161390459351584192834449593850565943813380121552298511866431824627475307027125700429796000019914384374391671406250472312259325229194951886594681531240843658137632107934714632001522304773671440676347404500565338058378673245100580466686341487671230367531214263615763693418788811160910139093275177020489193155819770953052912050297534771826230491522368506655005312222835334019360858939792613623417695245803755785914405186741786815342771181786236373051294498766132361575045294204703218881766596674348866883942884881195525008184575232032101469763221875672140760660822984321492233255813483711578650092098601838823377664466605641587990167807067874818121304924629973721223814985837291016056513329991356618163270466937768416682942267788357851840238261548418099717629798976539476552271679092598625284565051226005920566426622042443699719474901356097399263613159997628932040928421006413384881333498299931936147233911435807747090147627647229601128197212142482147963878591045907714524032304171057234858822270269071179995122416626815098384750678931504746015200515509446612119229321853614068178420401746574265748004514073310645943773126150221593757409234735846971523699725866824214899589731767802142974700762718830643306232355151814819090503566272079893623717209794508338938737485707990476290228426114145342823957147208469498745423901569361824911618274728809744952215023069954135779450366505225599614794500891788024933136082129457590955761001547421311081864436725874313166714483047213583346344774506988099830636152744212372741163369129667006497163945274053973262986270648722106424982346735475918126535480847859182418433316992880844790161387361795786135731889576661401451160126162317074870210755641678368872290689397406883689662392865726760903819746358855831308730287097565478518567238757589545053746051449101190761740757660949102260537644643935051526172069645288391278324628451584242692840008264781148882847005158480327877561145036519240922033986901630514815376733308059493765963004784728142267986928831602471318950990263301788432526023827231708923325133063340784789968908679265968351233289243012412950456691994221391779587140027418615880150007189281303979374502731854476382918271442094895997341575482798832908179340008308132632080326332128421281905933541968932092607597001542304085478523446724731863539421773478265357139546630539480047835427949467832260846334640185822325047933311891331377703930872306664088337229223953234768584359875459026460248787280145699026220482893126586153932046585434593522727961680463777141818936219536945784783456438343643741026422316731270445004185950944794632964196099532069299684329221756090692459698765168006094090062283475336564639120339062623367762651935826268694993680520093839421103920021187166376579168315269432346075082177048597224989933296691362937790448259796151082698145665970728182896550522608008133074146383550767092874007687303965667978666588385650696130071546695921586001946775649431264890583242848655186627588073380612966658041406117761877947335120482039907213058088601472445000423440216825284856387011058449774553592369460238988182500372025868658778307885196184497394042449626433578280201719172003649020922664518429325291931508666094366775927865166405193216929909911423330684906621017335177479719367236728133168289579203588455356188052521087052115950217338131910849411696058257532182211491901635461954614511844519597758802373006800480819997088332040939802940125720599545383596383675581259037032603748053359794791752036869860846127407245966444017172844949305464623676963316454974613763969484804416440991579940148301202179841077455323480063773770188233177094887549140596126361211493350047932248750860297560235159376763669893363182174758218934367507891932049033840281176580320199842774340757858653550074789330128816656818200549094742734930649485775007223089956665564775116861602377169502970342088696350912840981102722206932671285121720263395900569306725277961622640136587721841118904040382891753606139025670523638558899509264438223351317137015818171391382094043581488227382823645297156468298008820250932621150954023474500267280119742982527506939820880295423307072215910460411967848040125626049028590656306991753314113122583141058484003592299087959403954440849264453375953698702049403805081792824431298828955211854313097343075941540226451783199457915242761109442474874555250839021803366982682865382668264910863448724980232346981356744959732431746759361977979704664773851720287483868224551549321147909232815322037468592028580613179508386124693195423723897218241264581256202950347297485240544351747803561749592812677140652123616916563872453299207137628562898610149383527477151916222899395606746921795551658041125153648938338501672069516822287392797127939624508851900609463579467066602970834495989715817348564909418450956801478666913230978945434054672705624000771974758240125320317568206743999928735201874004284446589210093630231922505037301115663366158532726739724690886016238983164709094210160112453306614703146659526363179341767321627153020402871926539569875311215621247842238537933974238399881529148737276481052451017055750664255621611442010533336905197882743955012827853698820399626095745909880999730117425651122766811588738137749166162555070024784236246374220916299155635145798712709484748137389280734222698602415699382896364196012282590195095852998867905025977771367102748975083861198837420107519616685424460347607464010101296528178516432185029074766245115749734910190068124271601277884740821946954014133881725589035819740762864321764912496526955065912742407900921110611278194894118541112043236042376935951056385616505463510029862957526935178617122517015592918797008387190622326937634895781872835369913828573395762006597343208443604284078134244202590590249640722267665864077722740621980519323055584096500397750020355674923167379349173442760399526668455228011665234303754176114210152076992984240414398225460021535538108017720968749892930155498330215707728098722779139607294858615404067918681631637577848833032126075775591747424207696977453046418154060851785519800472684385016359431500206816821223448916135897802339043131181629827084008054988316983576460936128421104923755746125612138841935273001417604443247498298095980040275318597042986791709048457666228731726304476535722264889604288384465191341159211054248244023786781995163825639297349381582009659110357656190223627523392880832569900737307964908653874317326810935934901425760599825301556482548916703725441974620442646295075432509363669217258829152367046353503563207408310686173395434922712121552933099992109448260824457886272276930118094511236329856534377255116411568089016546898709818958940210057656161907721087286441248890644974941663167689263267058692326374150892861269465521623060141251165369735613752078173946679738839370625220209512742248792978311605663554658169054747032836246481427873882525025719396172007106673113919637094164402077848767013254273470132711261491531523446316153220520583775703421065690054059874235170703103121354493545944187293509633370247653049504006056860626900197018053047868976070150817732829990509948251694002526476758055476986292058190294401648150144802667193546904535932414399606057941348684349947418645561828869617708008486920649564639095265809044520871528551245327859836337971747126647199035536627311046027546046638849958668239682034512163189707012803500942477681887717450115394842473982051405503057363138561012152133066758003932924534708262944891772188480264991527962274331819792589560156674415855998352760756544699745741960870205506879769559123091960599936891733305026392196579669504033158384168215545926705427986335288895885191792981543231881984822985889829212509598608822414650208236148072534584462640318865652491935142485491185580237413989158207376855004919962518149571385396152094979479466858259942390137336251291417026246823253185738055063568496800656681211786505410346180803914276347759300390801218127585172159715029894856327153970682924749922736745702924963376665922712658752778734276641779095761135030509583987922548894640670511571354951259332531815424437727053190673430182450279764445271798344249219997013413688924267571065506345790877244673191092223214901694954708819479815718988596279774482498735690900219658945532653041017564560750199279275686422869881850329644348955785505258325158757226341122873751639291800514905218376310016503931728638042359413351637678434350579063531563822236625591789141588768664767519935262730247925569160129656094654388478948528921232386567315182967982061874836700515477826368349481835303516714488680757490490963541151977327964406924320726730162417214525334952785047253887214029861777350333268141961312462149935717767151619805725183953414877156223199845668650485157125290059881873439396920933662611431727545574480613702575446428900719901690187867785395813966097403610354979068966709277957488701123000536250988075336615485586055581036981119875952989345577169288714825609497604565142415554551170924900184543462406840573724088289800950964671409217003027313331973886299338354681392342567635985529372767625423839394591786534817913353781966179566616226692864230288659635044863315275768829656383044689727471770726682313232265868373472183201673495137880504414915583382216376728323582790073088276238132343019094612678938293692102486012901495966741158443730239114020174334344041177396938936009654325570470681790041295152549637603628370652637581845137701658719094925417535055575067608518658368567352193209300311667762310015915617370707438526301180147489195602133730450304743126172462881340003857993210891492815815691650464021892809698690166727714647922968426800682884191420344524562366891242666457262369484030677319760051241923666212298310634445742803138240589594665448078141461050111253441617182135718012491373128517983180763859871983376841919896261150755639310485667018602343269940035193302661920503120525050812291749053514839216194918254815931181748611901422875401938644748660695385506504050158641969476224982786702764188068914112372118822736999063204743071422635465282950148322405474046203495525409207730082141084932586704207502463563701453571735112372533506266919539720699477887511259573235995180216547203840460784092849959974226240269396257290612030846379462627469080786971334501358117374454936791069058413383154479322951776068469999323558716917103246952550972795915198271052571422561841124921848254986199018222511903079327244920850746197897152777955387504388946225075007430661631116492876038154566162482095339737679668114515243614995637590198496083303276554457830531223697677279924860988380976713351564920732054593524723649068891834068787049333978268181578087588395462728830885391401028307080254939827718852382682079175895115035454803163199639346662070750069859039558121469572331291229849825145982680123010114293078536240624347995708305034421127666351242758994325635040135855549991751557215570284786646637577902171156289648204059777152931125255605577116407876168109741981541050774430803122284576619566754039794463744761982384401342586352986548990521322761506455283428218185924762518415653678866070978118343220285171575434802075554389887820825788957803957328288071224754164848732567089919882999100119097650869292814994397458421854634312995641070121788060119990411538038213090597681871721078302173340002240450566094821342527589698976498205565194070246663818015825856680937288093629808892907486825684759812750487751452360880062827982907254567476740062104887629142183191830046992824737988372125911887459308396176965037249063303768971259244236947979946888655347005427490923611301259522535594743459387904285103603081041125196905682508948020026511982866422537933662814730528367888951072551291664269522145194155864192744925978086776856297796845651136887624174797195521909242609051924067721171533993926768013557025051374628235940387148302776052559565967839296686611187717976876458769283159310091404853581231812259808732742727715455927554471861738786585635802483569783913858243405606976593009848206608510059388099661995305328624235114117515180418740610472116764854331318837237239473801475986787283155018803095641228215124827275300171637681480424573207457742426402796712142992298429978795546854999079832232592006535204222319110365264166596533201444152397996960094847207558414339530464022627343780832953613448531807353142535932245383789540440335857937241899630989797784295210101816757182200045667771343364110438703203212963483677511518781978777716764982640116507963632270843592221352684721808204500709015478056465252353083373071764212191284682829418848863666661426886326879417730716886201013010047410034904193534974009407066779544971944423066041569640662223079637968118224216620594968881477672178522870030619457976010270414173651383623796867733829720148358586460055367700020511509718248311791671729188475936321062255367133750722055143370842017389265851309989247698857653694713255025254976948861580093760839420795260911975666871997567386228489243465440951177357333434346328134469203066524352845099141784397470078528243979504794999549778709802878373933517698150347710183466839856577618676867660687464425770024586181136567101649887212973788673477282331559128527425357276883390762131125450497937055160779620487042206948686216840367923007550232065626973337412584696117225762796688162219654575703788933436087247287392422917705352795382239912820858940272268701173215962586845586921510412025479204195178804927240541079930288416014689355771617382987743493516264342785167978403799153553759316519584975838687319596103095799005345837949403133856020814635560309834143414711357578185505562798658667358348081236042060120238120733839420275924616259714983958553435703378552791494325559961539481561963947716872521746167432084135940137840535077469306009219210506228110021080145139288708412440618091081980523091268786576819559772240238790070862377072749200198580383899680750769283088484799896429246836489805187368995680691133467009882063352274228002393133243121059002224463859883758650777193352692773934469026269535595158316068045484619678526999175937359553118928623689788994969790987202708582674938005085943822325552028569503414982747503026181927748167238424424729366652533035019375806742099405100133233498581998426228819322282820296804478044775798475053917146895984470901805590259309084571744363446491603813564206412943653307166622326829207071245324223286477462754051657420507634525766280962259523773121104255080464832229676398081144656629216789895097783594896603574995986012947764899319892172119225547639153192260397356814294085074993318044664947853946381274436098886440525674908200544997734711707666209703161860209963513763060350976646799003364204924647579945284568946295696296518847661013851423866045771967891253960435486941082947681521472133472345558280690911381806803275579613805363117910787041815314681570595284213745702463036617140833450219703812422183213562369717153322768692169848780177514120396108761435152140251008851839680101987967843099367594941586444768199764977066407772258399419306452750099054804730982079586964017145925463177806510788137398836695976322000508328584350357416291674912886719850166378435366139653781558462991985240900856028744546269603825947835886486040271910908411277396486453339458109776720817547010144542593552776423084852107050762409937459737955750988323246871564170968331560344932990232104710522474505691610445804893352447531560270527669376690680987478729359036369331303360478205741250689296698885655212759444584919137565071292629584857452141413340159585190567851625170360770195204829830363784180313753200066367729036895834567579226360145032509588065643486213731325209060043246834424964277205427270337526804543513030457235017834121476593802151869519719779490964491885470372099967853014359208745525550782539690707325948557883730362819197505557781724057810876787117227690214344447728160717047481611288202301527105027928711296863181969358846412905475070840078403828824813127610659956362554826897238446610686907531261670063998626241861258210646706493343845786420141825360818761074239697894734190413242116107045530964095635591650317272336949323383253873064193087044825575838749466100217049470824538558402443821428436609313398028578127906353899314712323988827042404227155823651292585458774688728745491600804399542969473638174778884544280810561109868166365149610727826210691198121273006715524758278403216273872495750736136699799606481095591757351384436379518902102774709670438115048645122381427095015872252141804452779151806746722935010343039926635117893452277220990256738409433156993076021181797411144452372771544831456203704501164369000472435763686834001038314071280280059548433276081199972743936123075425616054525818023704648867594117434735335630899828219690272972321975089485426672535611321762288066793804463251195373115516843606247143110422437557768242590067452081853971665179802140469204588618662879617461290115689725121664874909671872139996514344456328949513178581110726977476008151774511679423924175764310378302084696101565094776706377352191572604098926722540631046093659591339553502583684071729123382041307485719071934439838173126205781483710888098797924911674572956144345389480228163447318437314160640474594418267128797872721169383186644999980042130487918614084080289692885978304579843035091493468885273941196157855422471632974339426580570518982936147293014851060237104817297892403779852849910433427961349902919992279506272204416611112643424595892323801332933182001234848455476145214315129246251462391741103187420522075084200260863502945214914244842881437510817669726562554252855133596112932404757529139097764679527013376140396761903503155369072501571349873770811677414504040708208900648262361271474758535138181767285665322330508894999886254214281204885496694423571832845467381672826965854663037362617882694334195456543187506601446015498320643456868548788629646741087648480882708987759729632812567732349114046395515003995870453913956458988255924620025749620198432023411949190033612438448782246983721629345601459845979082005448479636995015679978966988577520551567598975973852423355860687269571396348337724907880322055431024414311025789075907496958702074629846121534431090763062337585309523678509174507340246150694099240393916883772423373831598478683776907722942507985882494713543002729788138678950211322963284118155183897357772129314720375404762382315054558313486054400649211214476993644361582654415980568712047278439760286103398899239988994918334194266624088398133894715451116922044816881568327312882943831225615548085020630119608393173415952355881609332256191019060312473351619433061030589609297329618860025807961069588902489621489319451711554039832192182246490147745136136921718680971713610982678417359634312956878429864084852592876784127875090063329355274974363650548671688516793805674033657557823532550017848283042708900331025983353608747022338524246849456566768386688376498778377372555555422721485618457344881922424628354256153293547869057383386914784189398549822844859821573475215244151120500709488965168785740850140168344389687705919296587101484077673366214089208484910569823617319540307288797831221305407434946020588132379061205985833353025472535824246172298341305672511688706025919319064818694945817947582961131777301424409058554467545585994179741376928476597273190478541849226162048322931253237970838677721306148703530340201391231119372529132178881657787008796734554392367142250890253374029892591711044200876982482695864589794679428196225062550322560038806167177934806918595337827550101494804667882612621281578434457845330674496376380953144575134748774424220402216890530185956312340342734070618971002995323886303038059959079633953228495591474626442861696677519620907710445757754147478128169944724713588852706689858523288647745849608274993258115967433309956588003782247543591073573047041555037396487941095725895781958065161831759205984759077642335819503352354608840171731473138982660789972263810015752336046204025521530102979531923588867266643223967539460561649929000961804508778713493424445953649599695914035686518956350062328334205541580320696896490574958249552815429576842035228581186793264329651158974423952264639154181135461065537533331141859313303718822484092167818336044998340312093705657223652465542327225257910502541739874493856007371324814215850802464342931731569963409556964548029743763177529387314124351153172618658757606337007400439980364353523726036530737115346822329035233096818682802267637874808297163164066648253190076406184830886433145464192744263854371884022652002507891497528953207093402070676538765450835721891598095591934069660825229043072442012593211036353560610706793207043550984007780882819240904061017669388805520672553314587497779503404934089559177316525378000659402574982625967537765170719678649902383626721171496644161414624872645991399779645368217225289363384135552091943890123521526766375845351935634651572503339918548468251661784453265959605655411357948027622659692213850248274701266960375273927263275248048990526239940351178870503882500830888033167251737073103876725789851991710215543727967304653421149672777435691221591040944989131198558482134541077562788734319417169130189044910622947661411661351892537752032964725283300878024297566384574997597315904684222377843572101988538483217828513387076004945117612820785217148143053457023107055671484769310547937131557891980249058208761103353863497045262170690417781276366605543568853700264268634232076863992320825652731189184865358789457596258947176784445667941048700004825011186933671964650581804271438345432362419769544994561798200150661871906704152399451837480919693950852943131174327204543113701272598917601754688810646948844493259206310202649683417954538405323162869775567162676925127510153524220802967470873850801790663038786358593558591855434913442274300333525549516377114034706062429639420621749240609195266098569870228336162992308199853418265795558504833687500322021773795177578517841937088818347968866277265544360082974553514292547808965808371650404573141577760475112373679966886304853996087911738723912799564383375133220522341211402307851169146229239784119620423809566488141204305895883368548264098293666136037095008625768314033820468303189418207307894811617696042327876534027328039021935919697897755296471020043448276238777292465690549892473899217244463056615570817585402232221402283573628922202346266077152673044973233916800659670653765503195605061328410372706343211897213770120485037206981868106668225240132353080217833810266897896767763673784439418864426173556597929144313684269817701199587246500743080148253665380173123328352635086430621139906555755659950536684266405561917587956464108226123237221895197337309986510753370167150095475303906019153537722253238522809641464653218548606538232285869931487937463951925162353767730972749709159359533160404709475193075298238160217665637736355218779244221779461272372689580334899041038883062788965882513292000426248784854755704291579502524385458705746113380316335294945928457541853802621495579684175861309562036935731946822917957161480991378332803411355528407279207272023060110664776086239836543114602872820210806406678039162952310277554149021062421170188811974094077072224040094385379184586140633089061792095161594516341777726546366676601839513285378149169517589294934622798037670124210492153648704117716502761560819612283722135898516544407046623266910112900268277701838196847022957830184816540493304754229903768562552788019203774193192044326717824122629454488956475638286537731451082503719519431617210699149891811881611694120007720964114602615954772801385915693926125696912209478914758800637624944517308680127095970985884292324077943961335608745388309638157954507873792851794929968831683531331401147369511253304006207584808996447662795178384686634822044963267833931991824500630985594787699673572195048703227870288300300025950207651938441171581405604650943380896065263267827669849656075200584098830752870287911078684500521485805718423041856428641357153960421542607422192819669161579175785984890574958243329387123442948370285387841142319734572971414611498174153934286971703981718795975804252871927265240448449882313407637716179619453042504997639544823744754592999418814679499176449468987859631764937617648977752548470779970334750282740026387068812109025857904862741917755593519901413208557994060414776047114983492682131319610966818748352610077668988765018078040551175088997465278896110323160225821726978388365983265087727970684934757435281528514519799517575298171804244468665505176790460999578701734068782387326430723291976084667216642508827838516007099339732855196832518835746281873355148011553644517447134322418952457637398358350616138201733391141237428630853244105160340551898016542024322250101632135543347816447362777193724134073588820917459999493387711475435801500032126004717206993008330184241031616988773068131907447011060650417077006879250532852752788593532636695831569675018432916010523294005427182567326500567962522522225278858667239105259222655130174904541444545486878566502852501591774964621272612229315212649293806310676968698973076418700831872946764118877517354062835875356480684270827750550051040910430048783268921858359647714688802371898646766804753136817756060795789379403698168053367838221711426155436703589539348037634745152575922684630092585525907687788239596779372543159032020068973444731870356073706515732595859205707778875631514835558255681887963488057402594725512083028442227826073384320048872728451372157077865518413025287587842625444984619136981040429145038923316579634775833595134391599784809575663164486609429836777662860285222300000267890399324692061062754446782520946552546731709470756701446973596890390285966226533969230698071735435621625196172485174328735130088829751075380700871770778476553339033002848915061456381163731350052601465875133602024406784601894138367114778189317265060725118591974567496994439253227568444541675609566539424849064318096940958822221705689394340730316029332911617878408447029288713999851220213297337988217103515837744604420590018908023078051370856781375418607504704453284659889854179188080592485121771962237082065406916886924810953347098081780285329560634498010414948218840448235244435077016164408730387342134923771166449318083584142664225892256492970074801901400853323453164269178044670047975361390365242321762210316306019438685450898218620704507873909766907143831630262455101776375485457590749225226209084744403419412355439536692878633216247596332306595411101110497770684810452075280259317144780968007917268435117661155726733748130875878152785755675000817922769943082399026689817990753992046888808313113408316256982172161592621237169007164622745487280100905103170618424862264287624827064531400580816646047344376232038104058267686249209403846053518878699069162056774068496310750094312467591684648286657035693960892073531053166220962725592839900452999462517358428312955577393542550532788844394149897373407997489035688297104210961646888683214693525573667566975908098931543027181666531450372340515206712803814692798506953386298913230396319106482216418526950758725970364989998813741203830569446789836454771099950082863766781877303620454440706944783591368733001238971045395222261064247570487141331864770758254091554203919198136861938593337660478853942709010223668552947631136155097520225137112660205583902205252374522848252504564025542143360592936269942839621604977337930417859666828910741609980437388660251140862189525864447119673605934071825213898272673216145017519230536269129083656300067934539433314709391804265406225347111620675891745638962203216737564363592842027689581037296285179004842216360520530676570317318893773905383665729193987720732503165345500319938114799791709863449593757772410934722804475978909748001705149159651079247565069826795050292757423521546263621514221928699471256679222921233707623796829623832255550692565011403200717272613440372321148253434198556757167894195171735493750288558631783450514185017397695464133133022612921670947439495756293422455108315029006328925583328697215764953010303908503897037448055813357281622345205760094609538513175506469800748331652699672691129039216518489652008834740991537710950047634439181764813805023354053938777217118671290304801634973078230641657106510718110482657731917905777846355454611397869160510339218005493141725520535532854563833602480082463905194876407053665069607598484358106754319925211168562221549667533266695363889530579362755523257910409224936508181811647230694934246093585859802640156068417101346789647390344813599967311950096508146808178201489028816852669682467861386131271750732986843297442886747955431564209036374323278741038168566070698060320414474621570496749743299921212960521519878087796137950545397888372735894941678829195503170308874309559620967114046271036643547047954665992412351016088875521991155713263446434001375767122656783965287081873144443083706334069799266653152308145834560791104703526395396588984764918218444347275766787144796578097693903324720350440196388162650838185143671339769953512674114687269486908088060789333838188866854555916288787762428174621611986442826266504324700537487159983805402369287851270664233425333557725014693906217360780119190113612733568941557962556430552028664666923306738916832148375525729754260758627133075255653048973131713663175121320739791514740204308913919353495760547046756236823380511351121071135290354914631232081651401832630682435231026518211767055218575395717151348456187284284638454222847622523043981653434839109847042557986067121250238376784804745033718698699627575426067445197410217264195441822598565949371722080023714136511422597302784172464822129762709872495864131064219459043641169677369407111331135658161948730765870842522674146164705489754565889475420228857570093827912345595403196024830702117955712578066531421778917826653903056641479240758037011572632502155297223546362569263900214767906826313728767433662476157369069599649281621229898132361215133763212703359477445424604654139061833446929726528803931767033540201044402865637784921157149004791297847364540970066348376346215100723303464098948114350002855938283188832711886356384053559444371409316469122902967590902993640504230488910570189370429078635265160278848204281146945601185842665347179787119683044633308379978701150287821958351792926756656554529893195218996289765620428301618508267749218366472957589727034516734327735634558156747332808062433464248542238173974741502427031739191029846067073227999210016371806328330856431560535767527127619635982567685731360191394038041458639710833364733622416016123992789567043142010953609476346939863987812354143079200668404231725481962615102198802428081012774593757097001326766897104463483215856742213475965394053242588382895707791814907365565505380312257460626240569060787240050034425793383117241772527840106984865284559798133064951484324548354845682202620251068623198044739051783751076155359719014478790434150657005023997822583503480405928922308347652081423061482019433416612841130928522468173039929747248509854242246552823539181192879562942713682428391757232777537879510091998549214095413807788988984963212519931903284309853496906870559762539544306240541676294889687242763857656943945472964899268603232790340233212028566774197125365486770730558248082975074977427817743178828822607654472455552060380348566791790067332813036242471691229546192130718534285140145255500531606888868768279769660528721952837945692418312493766585445360226184527702007310011395689831781327730478190745221556784382741757130651530188074434194497164089361274585114772713286214883664638412268854485557192711496735353371672258791303749799832384121051049210336504124112606803424757708703213378918441377805424761755751499638669906704842696712999443584205889004325292173144707886946368448284561975810822917151834809675761678757048032837046752186862469529540229727496374669244836051126119514640235333322980801347809020839715246128669452617726457634018736003601753950749099504747090577158399718478773638496746145458467326707422661539115889500137273214937876172363150656861983226273399383227339974169801132146088624843462395013259675144100489797515432530818149774033805919290214751730751345474702128539261673126136175280837586361541893139140465925668955320655597384658664708079866824980837425189710161752219620514789368728398939404808320068074030276529796228960511674237684751274374375796047372566106877764953447734445429009524696819661242823313957681914274476745942808903881731794420670462058631648358115864897909007236074298784791381311072233792193343324710095462567398344322074962451429588518368142282920877456811253562742117856767381869458594355881788602790496301809766294879953467435804196574906796623726083361531225089749315516902855792941362432822249335573699264260573774416354578551161634441357584328226322007572491718347409082612033265850543692120478900830012545207234681541107716436783655626523830603921119045591478318182153771107266830459901352764627408178700141786355202821050425843088384923333458442542301531212442205166170228862420089795877289729728343854501916383989680116666766324157064483960741513484916227640324558095562976411631676832047253552827324129560850772646817388152098845792085936515470545349327214764173596256331809225267500676909501404846695759863669965566041984305508984623965825159304850229199960484064332244882497174745176144534428226959240400679797535110437015908441266076461967198670216196857359700021742004081114111854735352566300683732846422692733759711375979535813179855204599892977027502615274146086056405060333117049265808239083224641343007283557248139923384809815758368985055125565972297548238855188196347128406971948008850889870395744617815079656287847077772829147104619072960000204481897203384528476646985102941385429996036244133971678727240910270689035982934001122150007988379157894234169978543010702805564084419377720586890970144771558322276751739136885875345460467502188879825405163781186711261540091155734056509039235381172817157455913541849634997806610732998595610691420492301938107391839382912421032607157005126969097424168318493322651280515997885585597240076368147945006500290715635140162940636234395027895785280490045428585723983656446533315700545006886692130460570763997838593912997625686733227390810490706970195977615047864042336805025326601338961599145364893823679669767777753907851684824854673635525411874661702085728558510633109042147839859005593046700851015169123889198799509706647799132001322642274297530841972368055005371168604436639323555516191421648935288200664947313194175676922435995671280976540040038974565794175101716573004475299549916584386456792080479775369947164933411200521717448421201204812195971127055086797978775352591771893001436896384791612701893305260979923282694662781592883483709676344435408017012846933664566962815523347305568432724552064556279543637132445401479803451414680488804777476262993205174434832317501050464004505278388892413578521850852993974866792318970783446911468403615541581455357297690857965305402555367879029407737100272079356767280655253599718188880072778625237577280485335417471065883554200955684646537562611651866260716939911938444967917569156188994220465615594809723370976315254279104124717157999890115146975897647277695840864931711507867531516552020294764277445952018767877408842806419793965726892734451692693180123989651132013677678151932731346984391134500685930165023686632344361966652830589441898365668280393296723493121615193590883152022856268501718911539943668494675451524054570094255892740093229738998411533776357389715186807882834837731512542516847843358242347862295835459219649454559615616469393811953255843320283979340719870292527278717890474094638749349275499226623632194939425898731092543337092195234572160611331235129502008425091951755895193559157495693930245068013541810715411317564291458668436668649244727670868956127264331624130028216616116608448818738695085591630959056717898662147107355232716404489675627573833218065073089193914178921036552420937947110255566073592718587646538195617259289046775178466809387499958896323596296990960673710346373172133138383172881755777418319057866682684975702634073234361510560584002731503161113850176320788232183063280804191086991340403140295113369987321267331564532632771640262192993770037105645509060316634752473463712747649758231766475648308379562462947598203582088269077064245708703863836002515506273842184546903333240284030325928268572059871698838711309476566901751732277596854727873174554348573764108803345763882470443248028339419905983836954650877568345274971981900712468405823307711737135082700551158788366699876017849766054283924116857729934165173034124779862221543254961255807935504334580572545554787719352064217755594669857503894959861628913925367258073969921398822247302296960098207698025802811781364432191607995405033533139162886474781824987300829909578691257665516527836477771635798252034800978964126151219178498123655442385159964007605102103100741166254188352554375748223139818619318320798951875867361417243244210073112647756475435670320987293946987517012686251162714483371764863048954896524357737026379411487011796054913868033031579205619134775816158342662007835774884087559679149880229598993216482256540985551432726080025785279118383236572853619131854278740825240966595449291076205333686674961349320227872781628117983672386867815856172470776599879090279863791494930947252180616343298775229228922250907718898738984316692189696124482134700972555004080592567416065938149182121267372661735194788443836721192349500957813127822907843994652930283971573725312124808392359639655770764021254847691500183217183106513263583360875936967313948145660743411249197909376880469048208023846396816384107947280857976814700887857706516986923328371576638061068846773665627306142875458315297823630111587558178312992724435006664710524709343291328316869377744919526072448242242198327199022549725989914473379172538157712726476488257021829189721580938564935000822124877341555076801526238991940736535802443475029065924251350356221251052620819662307394671786633889690501582436442371354983194067319159060969542565396605803544910523381848237951776304954955295341597754305575725161495653271314361054391601413554258172068459919932794681965762083184549233447230807387927517641284910139156743274075145901817690409635918876691670712264407967203104053835107000235006460099397707960904885149089264709708540609985889622798981757762733444714382402206124724101269190102014786496645819246516937298086374060619334704005507470378327828900500975598902112135618941808895423176246883247244772403849007766505576354966742259252647147547583676698297624467428739216893612262671057559442772832730938925884548247864468677351747049641740911984222412468353389995823747066779256132250690253679073325272825201014754775521229787172364019434788759757859833365321878368993034029752428198782350260159393424392035613718263231636047876773063690080658754248843699827486896785901003244949868878072921066468332857389698301785442357343350861990130142713273907182291155097575879638866505149051377249796635823736482414094700372321699698016096114681178563821365971345611667219317666926126011067321891037316422998491794450976327134691181673072277192658902127157765543678165498275053107703959696839197434545945532969764983445419314114891278375302873590722899425238763746600408980706789362315172242594535194326577310655156128207325352566641563467152965164787896579878882719402247717791481925661471831326045461572212649319386216095884693378646684143941044532980111886231258882295589413528319402888944858723479368449950942394343565716119537631889957468055461517084286586494816378431686168076670866882505037633962365468321987470778840156699415994992638347696718566151512728909823836830216425468410717681789091545092247378805855305901536470330602489068236134625054340293575872604447384471288462815398603325954905331320697746587679188830004139027806476722663172533427250343686673645958299204899564059895231299833465921422072642333134950293967899765909841166503529398098578960291000177311479893125049879985080453269004948802444050330369248958742919452398308996584687683838424646889124791578023221777250216362388932342136680964078231855316620519326763106147854846193958810418365318877055193465713588215028936647445703183283542615719499725595824674992669348365345096722726367768315201301949671488704693600570267874230666817846313395982238411996422873545737667588284214732588871034240323621913958947695977717811726555658276378457728438506937710042383422027423433047034261563191885969315006841100593173221040869526927780100561726372699507559257851754191185931168379518042231024188925608471759586468229341437173234136417642626327747233353102147621421390961231799669274795117763388906893401859221950115359285582029899362256935567122804662812509999064492817072633606334013680721893796388848350176849267438604522827840940266582695711850428706923404349932163546806941086181569747968600958176548704739781851558940898789519801328418954477473329908733692698851366864683803643879560970059482654765368009410561599526499657066246932174831026641760512651474268994588954830725522156022663419380359810666666247122521375040470078899666986559882008223254182507662885279023921383867076765878352552310800500938616946284015319583004091800710886166264432471340423209488356427001822783033610189087174951726290481511904935758231628171052365047266241609293526902504901145399191032418021962259022519327273884553624967313218434038585970898273387088134725607319404114334677330972605467365775974252619059763228649598891210616866758262504314372110716614960293185490248739049353330530388657114869202386626230948859607926664041026026775755708610680940991091514582266213219636258018812343038436165145782967292090568301474832491167519262217348207510588048756029709141826486817520297277033358661416264037316615016964067055228748360346853719302592069761562844658523514464309499980999701138024968442473614524159625031690612261443745883224990462263418796693691926094124109407068895380001442982176048860225789658104098150086214877225346150800841457285005395117560153484818321974720972448016289455322307249674224352544560764837800019937738995733040307261156165961666103848609769488045635763147443324696187031337828191703886706792384507305254741987779486610574635431516177797949985351503936931190562734343074580487450353045697286568122114534056430856833622152904269358916156183030696905289722789660663254220936661649026105618083398904093183905698477231748067689797200128695159695219970307228379779440910587331453397533331880222741005425111676231200422264063793227541044536061916909957554825036727532190799958829534171108391385767599484467127268356069084799536057299315664374645799586147824392635845076175961887172772645587778923707633904685706063701348378269295014268823607978592508233759277143404806655286752567627008293811070536667406442307190890222337285666746897093381059983497038555119249221596743420440768044303466479234810367475349436989658948546772099618107450005524623480112286535130467737014785083686845896960294894302386263194336544444710076307160359685733362149680231904179776334081766957972802172403702766343612315770748602321132785288359266541617864736098703908098725921687553855211475174662991355752764280006234983557869298158159005815431578487044418497922477548098326406683207825013953294343873925112449044248728109581366450895379898552816449976021543477723742558027732133488928442782813313192544203167783542470365732124228116885817839217681556962013349603014416313695373286620000853820026578307958915183170000012176461230461128318226910232542411266538071363111880825817938529569174643713708423337358511755041654084115225669451674695216498433095654803452993613356319744841246846394268694494047978153990258200671310613375190299037466498102628033425079359706021757978640078543499369425230011074430531028723874049514108562028255695838621207674234387261834615647577746153203525777334631942764790259223993502563290668096272612898370763692826869580032880884490184715224049945608347660210048818352003624031512388405889016289135301030896868455100279544105683802256162874186438371943682458881735516723801403724668646977631072781007489049835748927297269287205005314360263280441874730141954862240445035881891787428559113971762990770019679900183588401033648315648872749989728750223567733010924651605083527076771716965561556971933839407110405335740483318221630830818231066253969478438718856703100583283143362237439648023333951402010916377639766619172813900362881679811172513854634713237970951104530854464512725214292663260000204513959370600655922893031041219616964649035703690818872372708919542475486264837620484941606996937804776916230065944489402320075491475032640338320510496695065317512077624358516720090047251406689265614865565686232746910140918722479826849809562922301043594896497272175031397712961979528212997813919465564672349716250254353364889039609629888418386963101000812099768004091793182440739636038075303937916192032593651613068630099194501615738146733435704821515741952473367336159989731522508804747833250495812909973180722016662347081064592531984993329674225775986652433108872083696875976319851599139624649137931778471387026614053898724086448135959746281313969794369545899769187479784052223579332912759193925523772038993580175281238709060754232767126307910771032280729884926861168707580020524155335547937797549789862201663902385643635644374075534435587327027492407914840494945440967174688233694694676889912969058727069769154499359411196876427143894327620669751031186543416987996578598835787941663093748398398227693731449679034216714718937756596779630819018809300247875826824867387091747900416399948004821661345129874948777989043523750173024610088957681816889368970430282580236224264186374733510257813162779747268841384343412106790310456204778871706751638533276657321733777520516388317092549596957527313228624702230230634215796534493547124900906757276134873951420072601401730073648578699480666657777729087041709717862521582967945633374680986288255404989473014993755549760314592585120116695185550895214761513832130613163722401925225553923451567526970528158220465751108162445572497027410721033020022992132841468524487771707526188069078490527861827614519523836629986659984566210048926991699147891024986342277317893342298919338990496843567195602470618182702965206411690932854044533457199178706933631625781076629225791368596182595232428356763360114180252801524031813272504451035726533081252426891792609434600898209868882186812292091913270208567675802409042936012541968559839925946327848220589789786770468680655529002124954472163839554219214651895924130715044837986185722706179707803960082679334541551326574589591678798979517117685951660812121963184121023246662467117331448257570393344757612643717842462395768771205680914336366892079249272032387174711434124403736645827172172249736053860356173853636778742461144028582721731695128492027349463504554349182398344339215390796996658494949093989877454690860930356160665207530472347611611010174058780444925465349426330067110743825618046540071038056333107186945530007044245820180716021929452529927606306051503432209212753961846236422660262346902676478123433143877647356848935446112747984570357465046598112673131427902301246932396361561112795253225621829178120503851796634026918745525589902137352643330793099478336983025510453573623847062134943156816998138509931776602294476412165431415484588821441122953675405498022104889665322026387770964775036906408964836556612040398342483210187881345128290815811337560710034820769343543138155608761908091853040560312339087069659911313754798137636254399124619771959534183394279130166465790352181445855816073376126155067460130006396688370684899987903999624627299999232993937378262486051459801509350033763354524321475208768003575450759519107954548759306403230011333411577560512465145590833022622974670714879580918506634132671920562840138861559442882217152475388792650431633088727461869987753150498544189701345611579619351036737025524797107487376337596126852672595860806772733178417823448200831223325488327620126036214391027167346562981671212743492079915974601480350296857669551990246752335396423014326148799501003212995673650741130432517688916921851262736373239375248585874697249488086925092181540293547623851583584829271670057014466713417334351896865236413525192276415308157034472480242855836977109029440573650872178843889881162187619847788659242708318125696678135142375737814284051680500221692833667056279720686774225979279296082641022494949945914246563674847960946891653038961227076914407694583577752187665416264291524601104385721427185999502310873094297991033693606464784503421162462862934202877778710527269820415540208831722193576972406002799697808284027521847147339723440537613960756425488608589116182002158215344345326698686851854085711876044819635723082430866419847790716960970195955279759888865956729261787020430455787167250038126261809838483941287256029162916520116139490538127775799547582492520303577940918782917160147681040012810063696563383464962422643174915314568171938071602390016028000283329295231850778778316264462381460348559796603153923805508374240575333088062601468120776692161173479640127900448829246133748339948485634142003626476142710007793933079011028116031026861117817717612839631374203817622757496696376644226854451847728227977555848984636765982263698500409882548081378899649351963883682301556436580926566668346364111559554488776491685421042949347424816512707082871834702476005563061771873336751173388380160361361919501663397366228999432377987613698703235942932211464432997551590891022260080221204508171209496634681161990268143850680044177236493648839547361674402772680563761072023790874234009354562792403910915699584942866689132928316482057531621146830854089199976494475115711872457496869936680119935677873131122684921651032235065039999719923799922465482265038029617790999968001713062205876588225540886473443021467293317479470074729432928388074827992160744972759181924429966155934320462678428308624713056464631904759272068242733050279232523732897546505670013913615004879366897214373977249044167030692051790509328489025694878554258238272764383188824966974348873584341787681795256685104143425986639724082527651741225585832857916501129327881029425369595108328699059406539730639185341016660638040130547410886963937816966516099849697230273393565916865267340211062272234208673013870227369049810384496219504327142892924376073698044634604822138808834408811167358133399834511190356672884960922489983259529386596901194894529760724107644948418231329862746098405293838286825392418995775896694167473212601674997577363780845507235930009278146155215890462516385639247977121269680559141415440609909632305300985844093612466290760864471895542693994391775211757482334577414906088526909511463869312594347059836063324751552487744897888343944202555791186339299063143125972150208940708765921119852587529517715922049458170352985272991442250013821019925320843160799206301066352187311482965506474462236873530275872016028645485816147775930988070384116058441086338150083541777609473544358309701343274447225580853753060642834862473297574702733585755377615867641236692761768228790468998172199191503209414546771087198752866844028375577033766724200167160291136350094412916114849156852108146266188565562677334989343645172684633339517888509463230372872384734662762399467034032304165276871587673871943059049171247715247563784484201781874942763653698660454320532960506240582882331633493322494661452057143808810982619910420906767627838249505207593695193099602269986686171727776588494225976042063799185352444618404839430000029235226105863042458367643388729628861319392922384113016390639881517720600516795154250257859224405691256678847797731014531623992415709675959459481009789257418217556670205304755163591664594705584341534307363969117323888452496210051748344181205724451944851751896133974459963193421925912066927620246827437727658047529329483041631413583110296098120339986586419238194846896853367647174655748225301252289350854063727666474338749904018353965061991795769095256183610261900076232140674474051997706696596665046598867273100924221355575883096918592946505894407869267008964572095113524491158446334790859792045684322995958440533915174666087881745282636023433151409670062326843451732930966885463031480361115830074121095413101501067825705248699829483814086836984025874700726147268668120089295256649105411446559083128179404987402954823438141378645467224636580223723090528636860687377206046602976496202415336609467136693003855558978596509529500779824353277994763730102470802090199508266110681603719321840879961168730093472093718797396488410087825724081279331608672562634635388000810139595330976792352835399960427605038682464431905185609073262270947308573602205260617035130160874016876427777525304466141908019871909324212096122148643873409377342852129695730115744906941809148686884460647821218008562097893357731412956672277243815921580898837969526788236044794227091419830985636627075283613913715715508308391942473530736527765960024562875716522807084047675534794009593663630746925961698558372905187058084265310767164636159373273776252545108987906002335640305570930708339871176692489499466533105638158680661950199781600900645256368347687999536525888605746517625021554247919367757235044743378661355699129072370968180358691618005615341431720063178253663295820625428148089808586038984867954887561294721476731559741005489901144884787089509724613478825587835407673963907191296715114871351184398747256926315086244826326133093500521485845059683702959621438644903174844889821108974967268582603244293708247959977755012462703093261975432583023159850665494467879578768966023483518013640196024194342865626163797780696540310654783409415209164537741987742207558529378484859258838737267632269081822542890478501229202119122502243224552087035428609808463077151604677679011912330387387494463490290002957797501851272928520557676284071552508062659746049050312403685733780306300610641045128434670041613841390775321116459102753746388117945617867828579793979060683369652120135437849103616415825648484167413802239959023675637933334101600318201019439090348642194221577902865335834877929696749284819885694825893826500653519359791638451447489525857066819087867213355355067434869147804573308187742485580260059810724873681737832248490940050384450569645531217166342487826664496357256091462069981732016669144905607853566100432034779851672627074391712245969280372184883252507712361423461066880485721809473554665624467042678637739454767734393863826800172770179343525897227133411606232824229770917124493748950920426074353867040037638888106639139177551968303166212512715158229138661887462793895563137345592575420018119961463753072073020188314171189467641235770409527552586218997930332462279286245263279369983943779548699139870498908847626035155165755002456435894496146917865551072866788695708915906851911012558505418730674939524770478533100973742130484104711024317676431481881650339616729320347030074922158956208037554288173263742177554444445344070799199786851360437859302318243838991723781435371415761796173009584470720415071349799314361156345055008325766527016108140021193790705321546077578665077294289460872676110224598039109996846296747884898203648816115445691904591758987764717174910878502890347918836433184572736193883366411973550820785770894951103929892454525724698485946676970504630255496422064896843959940187574865909618410226277312575281185817053488838639125315370910511417818157037676190411056721923324399500672299558448624140364677092567271255497292900856523966812756057853245893538567232519901568091999295889570584490259951078962097480146908991879760639905813276016850445426985058470660653368432690999979250307161830206828217934404501301865466520581131358276760891220153657791021900101174160311072950841389123883753134684302358554305478852369222541371117347376119941242693788989824560224332807576587809791601747901138026467618503958286087401712349199816344491943933473071032148343931364556934177003862572512456261154238838443843514557529964422459945225081388879749461847521629147864754345371728183994512301951635866970123568095966295384316604309668996701702281037792744772900978008128653417463856015936581783449905198761944409577192253878799684629009126527727342946623282527054391830668529225410909689224247282010525659851025435752721485319657402862304440314256933282983330579350182205722788163907080137829668176144400257688459461948397268718625470244482974929505023853660886119268055322947605864917901329109618165583052562816612270737066356318137528110405418488508728420075812056277419540711985865531005483236213321132481000367760964901681511369805375194816156075039414556030374598402430156385406090012789473989942374676917278915526475548356340578415720465744283551925551814608898923404255084685800664966085807725300966421203353125091953064113891937324568703835506114319459787659765669125267954585906589748246522249396962855725842457160981595910447346041696872994517599508201787875825871473470223948774886030909774952464958529285782477840872361257172570657521479375485675352597813509049673363281677809890401136575060794240445380004208309056669226246480148227898386289921725875112627890245911119986410488155407366619392536982986496288588167577100156395633835644735379840322154743569181973474022116290474168864431909484540875185891943481283258360649856480410130938507735082534562672479095202107400183724137881013135586716191982704464194686417859958621624381385265241665688478549350496904330173929801680193658743636741512801947904460832892630590600928022041186375659127129569339351251233137802500333730544937424162496809001720082185020178596159228208664167144596564543508363960718635423282483959267123825913435747264166520492750240631902553655744580076437116123360875896870841437338735761698417131576502990163690316332493762012952738327132615964627858170521448938848493440991962523829286376540110076451578613636848095258979206467089900211057603628603086990590656285468294585462217329769624186001243849549724325412901665531538723456428528625443796372591088859125957939464168373703068382939915817313237130684665540746624252585004562395807961995339654282666119001016214326112601232216603351937703667366782005669387339147314314811254599517777324058889565260425199915663600417728851605352421581405396352580807139521491373241063024743666880432075197553017458648223032302192885747335664272620035083944192675116255590491481965762785158039870783163167853614602999929997589471444394398224992848233580956089494871095256796796279975740772336643690064570168811046391690670548064008274146826267918204321421094571050587745230668074621855570895985806813955528495407228496974321416134300833388894601143717997748292335855240594859707306705238303801345463119732802661782787585940434848929232404207730323676022687416389233664105276047699657079024186549364741842349506785186741832682770910311163561036314415761090094019076114870958509698940686591058482999482117589644284466489999226481465433107338407001233483772760147771616039828338555909175105077174021324578779071797364723339408460416012722499122623840443513684267873883955747960592404541546109039922030778516558350144501994844352432885018736265335594449329671483408110223101199728041233157376837199958450342054647442410495719805310092227943394513371761738486634327838130743456176204425040336979394856198546555234922551862096151743088302804182513924057931764289679836247712485130483765600685353048631411037416245593775719367422426738151221650180999187645240858013231326993298101856268334015441524007939463132994980430810519804591301606351368299171204980754803546222965558500423851437916445895184430582277281035790080355587895988628435759487543174029777966610680592772056209670556905590333644705442627129829790686275692498125618421846034981086550547538644244535972646331648420253846286406980294955117717136122958650389884068218426323819974271633387901575527252938787565792781477815543375205977806609896161056723523788355621210526157917744001402342510298024440617684499273771781686286879297824803919064883107213290358848382305330941250962866952401176926654851982274717202311171802022394013348778513591825928503696546717987453209492596819346001367664307752821222378500361040421559735876625946539558672956106868195541677123495129600806303814783075250003072706005761314128642071137294073577853988183352915487028061256695046684435756563761673759901848533243911122970907893865814201081961741597623823218653775119656921340863899935232792529427102701347325773483168244214528623650788288457782017633604560861888649920697344588361578347914572005233803831236484989271678086317320032228561817036604694161720673021451806477556514739125191620842965413288424799858769961104099244899045618735914924010259024655359795915035742516951635843100594248118601053068669006587366702159024188678350441667910066922893080632801011319561394102299669723040570831740391775575504640745342400977053432807735877615985012556460745479262426595093075649672147501788404710275646823223149781468139958435088832581461947791389271609818860772504018646619007280403607007277959744700940439838258595135167234092800212780641203199122215139648659935916984149937013162405951169626216544593063664197442521489629737811470419860079247078922499098920466339549524097332633909602838658789355484359779488980843096510356408716268703462069025604054824556700431028066076512184484987265386018558469735760644619116632241044210157436917139220945142565233121138237286732116121877956347146705528425626221898432898455206217795084581722099252914859917082222149436449544660038571995584049990613914088443805954782127589677640737205709720224747999085973871515802215003752874974277299412968644874560652329158102195573963160922002826947355644820369991738544085067039092609636292756999359436346115863321353173428258482681711231800623140790686046964439694812196317155618080749145953452910595195670507111065968331805128241737620640364644926611638209740591387298850116865989146734616318900823737780022329879194531021651590501785326751152190844224505176248103425821565337510617890999397945637206317610519662839733817659539454490268341113192955402502552893294394158543393796682593570884067892411170398475751180119657924326509201665567098057967897819475905394402410091102786050003379432220599258863534900876025290466695627241583487981128475979822190671527239603392046804684082543838964215534653027620334427850647284575728017937753500390519008791759939329721938420644660188685469230544306726559845432256229293615877273721102476781645811572216758723767364421482355251650270619894442417469696753832929699235909193850513660665575931409690427722484777924867181239850836555053533618004070332441177382542887406902585485334975241892302022970828205291261923183230061511278759189173554769313160023832584744791795295238596161855281231930528765785619278447734506540932473739925931134446689829937798328232651722885478080161855929524466109025960971342535903845999569646810472517149587884636776434596645710138344451798192724278968533516122225989341977760795795535948635608574925048840012832103060588372478184812296277825029765930270181282871852290821534798607828326892412920886084884875259456618741344369545098674077193292722558925042553465095095689049511947710529128340248419191947963330193694303781351493409114093200005259987417634556660056731260134136706198330542133832791056000872635209788335821077140515350832727514013802624770803423941302150870892537425691021669595183558586957039398379337049459846969743972244745953258078429246875940811976993148347024339636251417636844509647757938191436058907643654960839184368813971619707761060933484594754796927013876240709677867452347455154634416458961014974225531649170641015430247977714887258585462580658452420702392975669684100636767399056828793990000418464150964996860483055296856299321668656892182007820491193447423080121782577274875518504368816492998207990625163436057440366930000620935173935538135716720503845107279562712961908720419281046672830884043490768288907888983137125777816623806170339780158613866428604888588766264041281421357520525759321694590044592392097059827709125169953276143473866865887521498368605781773656234344075408644450735982189864086605681856543395153838748235325382718842335010317180627798920011018066765970974908773783980322193548965150092892833865071846077728394933097410448161007440876128497038024696294396967821237710551707315787707202948594247797447520188937881481368284219437238218402182802709561672960188428983910856515429165499432082905258966668760241363406411793062178818658535312156825468876845650133484878431296108134631479512515992667460819641684492380081978818588656835560918840321544550717346529130350034565380176337717339719358460967768955908154664898650415611654479894256221029131589914656391124986054506703499967629963909025789028757545051675728449162301111477209253128248979394638121290881810640010360901880470416170425870099854487884225277385211540009029390821154817318251707654890039555512972643068370875043022561645567416734081130090207973279585684835482014075925101366735184503564301745094120746700370279993056977830641053336411190738650057988705377075318287030536425639017901909030175715885078926513424315106538229587283126116611490488852186086802598953375925515855061399575375256357716440441584767079511481931796390721326314195790986257246870718667740710992040022049495247132523030416881711190068769523866276868978543678802693769108706672795357410357320025143662202848658813700987509874224290777215229211675698775443578398093919443893498613858885826581035562601019076499585778318145394921943242276465372169241911728556493329187406752159438113984653293335759691160745016235354670755340738360609035479447752261800388037360262486257676515303052167904213308352211216888158277982471948191144299073336369081663584795338224456215172789334573486192197524173074263793391438016537557793308903264301259387017420386895916235454856941758993428821612759768344551411308324921226798110590208787886377552150303329278695024105625842501732923077653288774011192721346970365128101985210896738271450887316640075540709523611800227260759037680096211666803858506665704037447541532876393599188265542365009365258460914521379142022562642947110512106099579540252081902116808095492488315871857396401790456693077244452528377665665735228443745582345562162205988349391557851288514069846826471504933464062750248322624883858369098189899477715745715911023017373431610027612352344177430979404764219763422216626862422230964470910006648402610914214947006735542259079612143524758946862303305574675160938298140184400720046937687892847801648922233077440328424925173493186605899689492407045967520405738102431708283398187309660071453315361060153487307080048196020386311003068934491819377854671880533053227506188865278322216310826192028795731171936713825229991344650841723251785870714063263741625387805196031837184115362020063577293313721773674921195797542784479133076213022273410555487661418014043250846220702991682155351050001967494651248997968620994241777215335812390154397094631697564869732125990211703863023092773531881676698035767615053943698304638970884146385194069979432486626379041696459836599352279429555494592367920323166271420614260461615801070162824486250221802439905465073475488288971254498886696965729278313647917493247104467843436561594800707197712545084056203003196175455752814065884952455645923260276084267267843762690805112022998477234218486617160837587973304929109788809538603185071485938454667028759285785562204102234609069561558014924768089773802325214644133177832368280325782780789031869323819944351746859302135845105722680108287351473436355487967134417776375865680933918215239848334066805980457601243102245935452862337623650490656271845322628513425656133542996371660501603500615647661591033915329599593547783595087066126986651886890987895429257241189857024452190188012651760880475796180620918077544737091842015861490539177988690253666870676756934041134974823981805207059080860386104803664415710149658591426334192473558361631571585116605247068318300921702375037312958695553475417021385027154413810902008184475276130656146651634126707818162052767295091710234132037142559952142861801196197709034913722736450047394237082577822696913345097883924361550138611181940222321666274991539587520970197383321698283532318718901295554634751819488646706240306886531462538915880962537020523304066051572530883015004416648895772031867487200993741686140866261724016976397576927757034405408639186228759899632429060998061210508316302580103829725702486248951907053309023920199209139418004715408474503595998642113872142647809093811092349192334048350108913566203200152659375088565015566522962236237018620828817934401854118273884112531201771616868554704691710643348544048269873569608961374572194286047278536443806730295499333692001511703190978538537982727902912073948659409354033655336298289126834796342353636129928263751230154445941842656155357459969243893428806688242325170030206697988373316714633913775318194549661502895715319442697844312966295653393501640921445223635786831786774759084203774825855137123852057372466433750235465476850105413539733705034487744568668442354578265405695023177519825479164564290493866265761027661488129911560969242858162684508155260779146008192014826611976309125857205525682166956179667502950316396257076135949149539424677099909131499681004174494665037844769629682352478162784323946060530233969912524034680999938031475277036260443734020024504501176273508034529213874393768712774247314544313917247834809040359483421502240147157530270241119909906263070764781217268182480120678988638973609618591102896889429632455684415891737303603799590233331523692434640394415677759204422404366836789382186026334907537425887228572959349753482889482539492258863803575105989346631454641734851316485811611345539092417196313066352485487844221848060478243466951173868511096021856634943051842525938647414574510167686565530491366296209856669509626155247714225116228431426234429004640963950831659963909610914823944963075555078873815203772475345232586416290475251630112982666492613677223773690574492476962015295463817991327350819066664952999809385971945374715474759610670287799089789330108785987425248419492138514458806317390473279484950534385400918649686069253923678546057400264771556479685349035739499640264782109698681275804003457339363726810875813612448771744378319766999966440378815185298473504916459256427158150130020474625683518286690263725995846320443093745601341147369727610337234387567957414076837324305801997429263529773920068600469113695496798930261817480414566295260711353559234354221053691413114863725419326031390328262327985985366024811579233387980043163161270477456006771835199907380355223555898820185311987503442934323602053225288220459969799035977920904738015379030503367189299911231844872508461472254619970534873797985760518153721622080971113007772214324739555946687799245848941750460092243679896015384055635969954683126405749581150530077446791962604784816859243998582230328788260619263754154132079915526509250421141138716137129503036102595899935470292090866136642103003370859738695522298575096280195611816232761110739455446319097712982722650354290672364794854954313325877780757725273995867027119907853033900130541032081527833512081421946380902665001757611349933087531066153782320326335080029913366170238562411350382961414995491916155985507238360163247886093196416504160407827530942178354158623748362203435396106010807152351956436724264198108622403843678229215264823152940776843168733368401702779064347596055804642048364901265973243695017804930592622716464028554505627169848741922306060143390448869612538590733961658942432950608574067739149316062422235166812607092685929272143801394359908700007863092585725761427303969915783424601430634532288115239994167035149756326380527605864394230116630222504853865085355819775564451567431615748685721697139232457059255429762795859496834973474797794962935257019785518021921694573134393844996177622774887747111844911079298881698030460017239982533540954634286655948349769622685382232976464302653596410436808496187509887231340266481433066751546129720213642730604819012841232702787672581848061418567491648880342662653805610971267347742163490794387716125063430651882229731250458431191406940051534540911063158284765998053759813118141927844832908638026007117323139944921996847034604505425022157686446601264898464804339133540925894370639307525296147665255914557661791813874111478108205985595611029299281747475296042650733140122420767328349329158690730109790156266430271818600680783747193477591975348388718665194713189427223593001892269881475684877151905695485471232995794936351652694709491628214805746263060244539293311762654879271759483961795228529666092503932908954473516761259161245789000730128565785264397043105730235183427626185208639588841992487675206189188780191848060979263891979441411038076946521113576890081312673255047341274019361247766335635286625542949755162926648287075648831443933278471700553298068276925390908235731492958570672396022654660090604884135554875747989149189615898919120896468433299953036498785884807035869145233696666517588526379569011002788869397459417534080637088501667000496950981943197190830037783075616686361007668333786894782135453175716001927960067910285246922343147860887296829011324403485021458255452104992802307585641719346686605769808080270289919321115963688361853397975397701385224187516520300421817594430795707171704107088112920995431442945269607735636190779720517448067120968442627932388767985559432306952436040611447399061530045335839125055946122486485854021823429794929596262595203331707979069998121192601419992257768853462486506038739759468920193517282684250324930175315058067830075087633180652281479737001689480726165045678302199564658228641785048826629477424772218307141967662281514973384421798183787891216369349486731456192244384709631616222147766564295227093253581012698751020931446225275237949231803358181977912196518619098344531559045029955621701279086970407678970892986723956217904516355725254408272169447472428910815878345709621470100436499327273089702471466304304734599082075498189994336979601688127497258016042562457858439944096036146338432321287290792503016337324389376709411619271898857053360850096695332187349202634963628980109722861208137265398419715693409738465171957204716285782997188577876145191733385786517094037385598770657837789985615878019627562636141687845288981340381256481987351066853689613133077725221340138342999058939024797008975590675184237751155916019381844332729438480315957957078461457904514369640227050158003668067999763913138908199320542668038044865637713903686087043757383135509245907365210703833955143046975575081309115020693054163701375074241724373221292473788615250878655830218708756193294149439723391634260269037043446859753933315723168857308699718186566962587736099604951357690584598213701186932572672304002781344042937614767370017911723497043068949042228624400338683504020574548155275234591807130922438393795785722139880667840400705372253767365035990167331178780389604733924518581058127082246597288882752104107952167761748700268325923276924645722364097322141883818383954388107586148094284035924064394077009575673737108822574384551132303145085192946288337067465616168780213752637440571316200147432374806855359133550026772660433612391610858046586601903107160085474092707959992974354715021074125501630089827468781594591780398081271800949012993859814445710038234227074986948927319423273056958994733726905505729422876888662329176800195627750169249271239587283765167163162743614602398247392146027348136204065530049833592977483926032899656633842639525770897082527380987958150553052421105056483258755031600039422663256893069836083407426061468499578633110442411953219581620283932644384244612059012853138376996959050395729196466105838502502087838744691352001310171558108784940676312131366453197074161829053569010211618166166885605521774088363443166624688922751727237838070747971057791356746681469332145990197022019406390551831704009070365436300764583876823166708100508864810254624611084399178075771422103016831214230974005596537389834385293583297122427971588819423231193534157330894687078107732882227820576893538407410388784701682972595636716976063263994796494079887279916550674616740334012968586089112870058638656982567128875313416701201074684894703507753964080374612772466824666440334284575227876813328498325950210007157308502774103757021875370580981870437378408350898862162143754997851213507382901701097963855326707728790998564637539360974445344388588165086971814382562766726566587555858000308644236116089238325744015996821564452158569100616210288499952725094704691610242393655599927755520866654507665272811757135024569900355576260845462708877922877400660461641120884521731793857877684602700602680954543068381563448671436106843720823575604584166935535996083996899244386139473019099191281119065434425585057324879035873950367690977670295856702580165330273812934815828458682922103476112319624281438941879527471352578486497944128963236113041317854752374755877783770219642982707942343362209822076011927546198325307016093432576553187771273116537918979877164041964903309014531146894336287925469753955687830331422571718071142824017391461967858802911645552753171252072343191629141996273216246465956169015948459102596570092818213695080904180704159700496220492951780418178975020062698886120716169070941053929115209789754661883439939954103472372223987834210074580560222577509389469010959309588403623353369850486532633973650963356230391674747964693113205477338694206955318721540532645490187064172548202699355458993602412683089861610897494823648208278256484638824332535442757180871165418158475819960363183420432953786975475638224003829730042219395569500163007560519409337381829022949485658990237235204707489103959267414168325185669619213857688763662585947549420511445615904552034591368941487300197642505601831651522197507810428276520995693379184540887710530415602471865642679779708091101152988531246699810780065671346666833410859381275231618285531889295610735962196956205158073053126546342122608717164734177868169877560167276552114551534861423589078315421737400057253854511499012123988073317170878470770751732197344896775391823211437429553610506972939496202902442333325139479584906072100673714327260235174502791459710151446828317426950529486120009132766302977884713034752108606643315424017313038073313814881705099907293019161186976398078142960662073990498597886309225786038678480706226140178232727705300714546210892039530500229103074227716613512203571983207745437690415770482831415714829217889868181950711170690460498440761893571581745690207418670739370162595447067445334456383651579931551157776751119989135468848721588043227848759311807460836869540551178107164426070561573992624974116629311508211803790995034906240989666053441289938890288726965932287094240285339896538306820897721121080999742303713621808501535276605401541204301210672469518941008757249416650601872670887272729812464681676036990310352267522254383266881820490235594411046802230569368643649118890332481926509613372560870311800890335487950265836875561937479637506487443457932020507185658988783508306812347400019986049014895893292947444497978633459289542685772329393423329849792357964139087747023263948165930697464489040432615415352819176391487308821024968358978251043962722105845310763933994491529864206340983366832407471655491468299939054615875376004975319692420054456032995391461060791799478985954642972624114748998220423860254565522626408055141084971891868621667223811254164996472292478728065130108953305350681614997095047355853216756938718751514295400028746661784312615983384591506881517698371618919836622741565230904949236595663857611613544289011608683245106841624252928707719755312097968542536024294976887637750776087833317095692016198936130845331539490705519633629248305806414060094930448708694776091789611084111467197867776644441365413286236438314845843394120741807290942179853442173111661537203007332158490431587759875187986577200086756013582646919427709098689509148923063221635361970307649804620661252612037427322628382968443559141766516070079589127459877171900191030200543925907717572599766448671164551525375815409849328045242955445774827107352095829809480882771470751379129542839389644931941354802876551150271280700624435431645939021491452192751389806768246416260095323882503555008864316616458912033909465117194354440029838590155294944941725659194208319655732340655710408310613610418082451509371270872342338827543804002972602541172594579456490027617347023430052792257904890695099154032952961396886124954489273867179569004499422261130669931441621743454124205944254892658678243049448571981360546343653973853782865600119521192026226017705352110154217964024300698443664884154821793352618967151472692525924830853047456005999969905709691501651938727238799035002634970299416701180461031504045218484756127979216996677416047671410763413190197462096269476003310946021778218009097677475512973702034382521439870488089194221506107998928239380887919128242304863218783708040073523618316799049831477318952177090810583939699822567667938007763441441879966251530372853197968300612825267153775878976397136952655687339282133589653829875380860807358669851375655194901147029404007910906435717127384339899781540150390938654835625325600643897727207138753318630350704874291449824866963090199812875296762387436227751652737487911984491560112617221941343395520057107331642836510204944588276446078175595451811901358190118670760280097274040821903242301935278924836515712647147738196763027659376787136086668113110646169146553729873677624646849511848471005932428942029679925142807886698916713023142140936552363363044427408498019475663293290142810398466886529552380283610509564857392425666718577910888786097442545724075644712716712670149291753233953898216917636455380889597805017240084707344616742393683543361706971521691109346257496100940215294124475325801736702286438050602403517718231656278850203660154702089727633786140595628972859377813742587993919311870397400346774113053625927476772222284320401029974353011589789762191339279064899574815781670989345683729021985655523214410920059043935056532797336006679390529090357037935514336656661985481055116270195607496759905717779757441750282079285710061436119825780542581177331952700610248175928643137796220034939288901304136287013351979800686824321049415850103097622285764656945514712051111805865930516295663933030866664405653369566421847514207986719684794171385141178609247618337906632201321861995713245193105747760825396374690446098213741610847572604874590174692060315435157210029110690207743506106849660168563196323778630610661025244689690694372313786197470188676583122452905945117775786972484220548199208949955849740436951680229686678928288183586748239344521038339926237704579140109069317776002896868217734278683941837878877396222273236520039531757803576375004417510841178450072121197940759538648443842780275319079964476946239855470794234942165827197882740521540606498282107752457922674310929833927541415553165960265203206242488480067923197579393392343292372375933360679735587137435914668691076652128698876793891687041314850300558310517063045283569683189548942156071608856751694465946482701734297709934689480051451933063534692664029167518951761134488906514272023469681836915403984424532392526140685320182825368757307837056626054945058834977693182809588387777985205422045780189143340208311172350721341401186748148471714085620092592982199729776103404604773587431535347710930218908615127156006357738146182773990985591054788325759076841727604097092073388935682319698341626745309713513764889446376127216975188391909154737306443576538146530027279851604096998221845949151987946048971990804022519684497620185380469450061978237947424632292571189297124453617240819918692357000980712886804165121338125166187043973878675142312116087755285936938300905087148891501207774438515686354325012868846186216715370118652214852663524809950488781712766870146437674175083343835525421858871883961395717699759441243459650455319376951552682357315708254993317211882893583561979575652117173643054074244942553100480100905199003436048679506302859187107707407069850432473563562406018098641772719278657717384996053480277765730614860929175338249993488724068551215188352143009622504981243992180380344382711793870126138608364613070178532679226007080097248407446635683349626655990483858139670054223516673125332811591190887807256849154964898070457257517472248255006726615344377876016519085885034217872978280728205028151140006686777016861917186807095299494226747647271419419388732295380702883441032529961682230387176411932382262851325251721260784703208759368876222281179455782115945229009291543169886111238392225484668933470195230491661841805423957949762794657967091003102775554296544634669556218208973015566615739179120099960666332730366588206947495569777208514026350856663544318908352491020336882096737162672449154283971900307552420043718258474673843715598644085223703751731746203608251131470656349733446559374116556974589501203084629982546451323713906435151619779111297696608684648967124832385164858390697771778728622194155570789784880830462800461839281440150926905839236147651109213200865952382010983570843561373281034906258604784475233289347050718230920468151512653739858194793575505674599198681705827155766130445267612430656420884276866756669893685756566705549245565266171270034777509745429791902121764194487702956603223824394921705015113846980066067479293316087013726258067470439365869239230733672091377254774666762084455089560462758085195399505803373184532570568531909633725773257648682508605826584265745138440408534691169894270342514835840826619293119625089833973563664722555221914512949904337460198446836760721003065698684694271356572920517309053134815226781695738775316919752243791917395977687588942741659659224567994487127218913206660676768594862580911324971875944175364526077719786458681155373740378820866942369745086305419982882218140253072198258418196882930621687691489760691901294096107304981664677713694427805254864972033628663451260004595578964585569587914570433150473960270679626503859560627060419687772960222479105210484702208542534136880224553981449193571322612144366428123390683405903380435964794600640289714916902669470158628087504491705922315521720034099371906582635993312784073923292603851423278965585007046914876560526883589171987099957487254817902503002876713341367416253505989328966244155666291128720910702925793536536642906004077479384386736309386378950470841236126359384268969497524202365656094128303904343803679606206678222416499470902100118395867061881328520957446637335288266293675221685964482239578669489494891356182076390886935116271052334397566899390915448263119850469401199931213763245399875907153105305301424280479155269994232650432742885006678044495942437472180708745730968306957135509056193300272560329108191103519047163372861465657141807350301735870724065603856525016698460048018927140263859107702458760526132098673752116618896248908711358884454807132772068166066962414942177604794740156574433193921980544981506720753066086581918724592208935664552117223038153952598276711616103707896415099000955665241556543019189911957206708305345562354791852645715352605025311761229690603316719045485081635331706806604089513112246523232994992457048756502506326815651005785261169942299948442875770240639675074488781481209125814662367272322762697011595270506659294422071157417240137211857924519800575891437921848962441976374091578265146121219764640945347237570283874569645167411953631637373323468696722242449814973890424946266809068473333937518963091906926961272497233851332301509145324889748115012394341594349211762653084228348148722064301347901497902677699232036419625291864371485003808526807603403467475632117091624624054761900903489038207216352134083565171146747094863509627843819514499044053399075798193378613415425544933558437807528145723336658678816028997284432013949219677480272674086779302144899837064271847305089536185040729938652072690252985293955728977842893336565471406945914855339850939815986631653958255521511936461765544152811745116787148118422656865404877243166157625608830743847652404466866224736239297162986686199178222263853516461855960947875308198835613265651835328376819240213315667673012222524958463297010817070063110662548574339453904631107609374173036502428774153888286353777090516774533511548765375336022656194936505963241716114490443872414954550592129353268930630185976996944166223442894941038927329647610233731334037469648570251739921637186736783949758295933855064245608300077536064096091176231802950266236773254276929159018897549422187483078430800033711839635541131716225375952612967246844441187818373249825254688773002935258386900987202121504118016430643686177471301085507689958468622144458974441270225481236570594207067817648345512781775624302513643876568308280135001895051813586612440397950978809260980449808085357959820165887542408583636931362420338314026245766266920474860324076757249300299637929242643284612478872750662046038202967750931397673893502872934106045217029776314739721035743937102444346871810288585732271581848241535566851783556385942000666997111405602932651531061071857680522394860080971109549837181835592313443825475924397839141088542843951110786304668388847757673703805665287123249546756204847226733764050052018646153310889543669513441296753117229285656053226600126035803804768430671689496014507916182355768328420506407175110341757170927409798851258909989051993702781234249140503709446246729241000996405674860751649699974055815583442449954616883442888880061369963478622324759284548497347919912792456364122381614840185443575154721104316760819233921331745124932830181450644089317256312134216722641896961983179828994297181457478365001739035849815727148328925552879284926858477284808929712049891910619681872841680655352095113131963184518296877666760985058186575694163346194127582385496248511480462541967949802867314703001855314015367946189211911666346094046725825076474276553378330543545678473326440101728815818397997341178388947417182324046724616440812691774647896395983527219509459192179030286497495203246693902202178862881230580406524754906257019972349559717390849275487550009450464134531926597981988040856748839052840247217497158603748247188477643534258530396125346391416146068075771956817551951819975428289171023906722636622582069094264076457638186096164957750575824461038942078275309446222748987535442610355827445514448845733013065847554564508681590000316793676846935848651059222549807585275543939642854837613600345641061921300887820092150319579139243289156754515862802897598687761729372506015199752934171127810314590327587822741089365237439830939458687775502809036840720106343581485413780114414314048048225691251432213419744679036710710015229767348719121430585829923222126882697994454689684421174436614327193628561473308011804516239019707135771591027905983941683302089147262746859692292562467151617477756651803818410999399899927726240785305171182497741103564306435429682879044255924445397989513892398740939376491173878927099469183704741519086106878037999829966971438755880865035853839533941662005714227464329674988266933740796588042395869758482576458556131110547759351429759041326012515192290331830310047386559537687681775919775156703197311413236531344262626228158792800852066284514590372548359094982925179406337443826473772477173626108925353246215798397441736388119171133198438490301224434127853212450983916665857113235124256510201954027740283521906783874419719210260453864419859761536930701091270032887891468946604820373777196408468363772568143247939392703042519594246694294236082881792530973997811284228741289705386948335036003864237616713578446895870626724044940421820745826185730664903857773972875077412960684122066079183273240829386218606848072591804622545311727902901608365939230982529530501580312288499697366450535331949959833245934771986310230718398704324208260262564394958273505857967550563541486170434595699356283400245344871236239841412509663182638228019746699506013303035517372834640154336180694280450861598528354542953604275639637373415770306989969597489011203513217282297046447308731951836916024479856914558899350987831200311975209907067276186011349501897777246284933891126973900489091975369628763184890632357183592183379148363427988055907222319687042723510629466552582915946138644118358686823242761521132974724590574800967282357769975187313430733778318711809433702657543679034969110545535573157660625789926635104463249420167761176226030953957225702335208777521318140092197634205906068679725232386462542083857135077198750979188804311158117797034139889629660862837452986565552020902722098394127813987108062847368352694400152404537147218247589594845758752395067534889513478258236705148914925316928607470016300749548700971511730921462743424222625138136321881861097360697180320879421820280034412403544494780756035061600415088262196507230968603833600795304320920942535595836050566160287859275073355182287445715684638930484450986350707486092030861011497405348222673368579742942539286293285456953318427922489068933921212945961049038222564958293197585793598607205061983759904752670216560483857901742252843977653614992857568134822595743410388305564589703021479895579477544515545469162471787259389674187249068071648543192463943187665940760655345660064367093396881751344372514716380338914637167720161590831517525502384028516022265435526025150580542821188326391605015888016454669579470515952951358568584072612310745638383541582149257967337656421012695088846761841900520134400610029904569060913114510041002634930323231862910409505235749127923185583265333828979979049200598810211016637680518945114331406855852750490031787180795963353136176635175284451285364620080332016082992429278206662619154572543502826769290142033856365007614655853634193932304425705068135283370234637884478052138876536175203696755689951372647631656699374411859573836100170467044530736711904393065113315432390980108682934264251066428193205871287275845977062408439672120979671567470871650980493889955567444403794255076410683438764939890940459762520166403466425531698485977180247759457278566758258093917180999971386846710142764792136232053364215004831894137998924545993259308109019967836935369099699856572494696519007825717883950733048431212589324974183675513264923069391613046819073491330093811917546855177741120923784746625077340523089937150850775751187027170667544619297087249635091250111951109754547354104451417115292072678474257170247931284470567888851220265006580643540586060417640559813312218114466298751324004543753498551093500276531852719527850265681567932148007979266707144238208262532250605871410657644055034712917635677597827670676560306298732114534445775200187628277417916029853787073437176441390255616545875819294620542018121323247697407767273401150449613399578093109222312885213177410163072142200912086998821125093533733129661003543566304395524085085856844017994528086586707113823644087976064489899842132098828313289423913840305312372626964792371003203657411033419394175561797473244760107303223311972097579989287068693239211336691012685804996317271239382585463966448046672012444629120890865600077032451461975938560605298269379709844479465519167069486176140074166017461980641486328153043123926909599579799855792147951934405163991631030825423520387173832853171146262521897801037613054817050302687795315797537235149854643035448953994452232309998492742475552397566700545882690956953129154513005770413260148236799668361474997934581299306618888913625565098507259721015742478006629854564522741481726317946134205632586392714451693530516741771630704659231536053417289789802662500732774505749592428087368835010073830248301850412050693548313297622724638591064918466616696950147202995924424125354754376642361737578992855719553837947181952947983373610225725193335663456603892584463207794443131777511897489455433233545323362275177852370101042226034765932623383714043042128467144867462395992321549855495263318335786482516174137438180621011157651226606572595485881303066293232676032280413704568390730543558455286150105656461637085688093985603481454856058753826404317577665834837314567412118394604765976542422131076176989582667927057154936533795425493158195550372395858704784314446181852444256158714193997498633120427903150464019948842647488337092999765136087707139641994449856317907236287161004735404021814118136769657423960411799903829918275331590791729785933397886733072772559651813840949688686962955782579251010454629681661424626625327350586883598615741690279957758541153784804313749367285462151020491192772772549540174288056708256719971947861332921490994543448887577773428578892005798781196834744402680167556463908200099913304733559291879926889933739819756257603819534874758990935761995470872413933495843108268639405951996553172770511571700450939367464625677535689192378151995099989501983856133698850433117276355394735670606682997546972574527732241171547563096670526806233243008752227151476974166186552201394293857708620360138613992517500865916646705027004609284825237621016979380474066208033771553825276334734056882249458169593126818369004927016736114012334619186571334510098504975367724385159907558482910656247088286684031657263659095072613056178798972428651054793580861650808784117393326522603675046203469640637714478863133190399097867855283254716272845055365484715901752260035887775702089518953110336689770948782848231158374961759635312904907436985160475431082807978912398306759151970407435358573682682210602018939044615125914767679100204948029231025516314274494354682594132488652643801589571279012944357206879197735983884394261460921959688005068316937016968273894132412306389355180546606305462351044000495417404499980429318044140880899853133767125828868718117195661075220353014556681016417835864984603706693065842634846513487543799191546026151816223305607591084763849580460482181865681129757479075652128055630280366935663184497268460434052358852293006971386964721584160705388950863604151160593884743650350572411854038461888743846961571944339950464801665853331942953661792014871424268900519620348242095143118272641968249616989932615495702456442894118638392798138129734736426323121643373311403834122294501655007671554779323250288120663045766577792923315469448779308797942944156231290120707819586726071314087225399229301073517836309657446899349440601014149775819858213438005023084885542652201847449816752214246217266665629443947419151556030511880222334133150147900841398009064731503357788346115985072444305069808391335420219958303303648845714114792746646192559136244453019734627575833901884763954489200029485164791188402795912654805371284178690247709163211000639050936895017468844417431040877564141565610247479070962941591660166812285597610506334977891194892566637840072556867744972938620403387917150084337879052397105061383078760413896979552291966166013576163769057946470799809157896365433155044285239370571912752380558967123387009966776966484992548309591089245678258400137036288173131004020906101563727426558852984237671273399018193641105603304919133732390970958512886983952127986870645408563164843478299556690641582399821196731599375027684075769174369185817198642249182897913184011022068861512062429213876522289341616201503665788453338333366166316413088034282990797827169551144320858071834836344587796053040034979894023359369714185851152945761303500269904070784394652404418702826982903247062989739389415421338448396401153687740811772403953773905224828545616633804353565285149273494183975942007321448860094653755309437605600993870013796312500757888640274161297191406401802222983903470761968251433410182671297679862405281440665875475605800620316266577648650223088680340472467425815709349696954168331832652963621815694154199738347602932286548837433137035315089992567972600636041262582914815278911280881073300990285066815042637080603782510834910828014650396962929201986508532608499766267107055311351029891657758422072987689583772950973426521070866506389637067765666388731189194876593286431868787983955119017439337294562489965017973267129492230739594540288425268624693238526041572636943856909273473609196114589371527477112531042840112418791406646270393000603723310401599369907470310879730176757347581900207564575919859408922018771825236663311171569415888124174872704745964445932073506294236848680529142543410086935503663195094739899142173943021015605346705191462246549897990521429175273000607910379571314242430423895996500326731336743655062908635547452458047662289136631562108763985157321090879192872867535533266221860468882495444229086745020303994139924027609523079158017648058844431813750048148788017575226904316062972882353109025020816220784584020859747297823197691575535581791744912880239104555262942673677989324939370864981601837017012280450098129081008699519931251742175881461083855230721870965826018292360900437863599329339087138733003107015861886867348675292677645191437718437150368119650719643476056185370285022110894589170359489970904485507757957264103587622800252474825533674061769320295736366976313946977301379395544000238584637630245390130416834944860495424645146910190812986266162981642071058396193950428347025333886218934039299709472440324745593320298869110168841083579551965738902936208530969085041358164113919978078540740302063530769490977851002103669115238853686589803715238737545814852640990743374803690312796910358703506250127735058777562067597710781401462609319580960920754547828960883006385934141191576914986401759245238300504964278590527597845520952490493692342752908586886718544069296592714413813716838418145419179052824378018192311936439796295778006142657931871955079594075831336369813036844119454439346595135535476220416478739677984991871309662016815585723678615709567762845806318730754612483902237669335699073894975343125478171248281710332362367025005247658988138213646253970369683177169125166437831086674516601800753174590620808731098591040236182490407981578281945800156854292004785871648404821134136370456475655949333020286673074786173977191906556525308870411885472860131112137622348151450260504266884488124044745884835413238917956714765935055418799951376736005505489320486532409672133791984814971156221979545514846705987787978090274221602577944429757161992173509787356934531023473536426860755299996797412448610814601458634357114527853363011502563356038479025646439608624817106313183549046332863402587192952655650490676327359029176079748506969411358594262608943533270791114154655970413149315506482558496328895925319033207753163381139397962721656259425922142948465877021320169606624234676077911808216035728892637079940199699826896216133573916757696062588572971123671871025565587459487905670363772550129888356897661921598503314232682809362562389156066549889511368543027879817236437579674755955274951785161281762466684437001184540934939733392376869968606071620197012397340124413330648730836206146368749272944269187457972762431597221260080207090089032558708788473507502965714666697779789326083464934000322048566221862814913272808766725447967758379102286973167801682766331891311640840403070473348974237731338986611998352538219694940918343219393520348915024564845350726106891540419086924123318837551020573871864004800519013931914664085364188391436094652496008083251618683069832826915260363082112988496340193425827406694489413464533514714826812207984538325720752107540130650359243055985532945412011610514494719189297554690968296352516703257118023614330674569339796776571590990900403867557892082551504008598492861460570124232475714087497057419765680513671672305284447956043439028651849198096205289595264585423638314598611084308011294617173764348574877167297229082281910277653375551630941938321031589946759887779970593789301247615379060855681463337488558676064675196510080913656918907232232784101382838281524520593224276742314096830357761630323180714394025851352921922136356927561313430768285197156141894072787525439703793940797617911900295281710067655986978677808951621834312654926638738557679318843418941862544758768164161859429268190303680239885992443612275402266321242755652281096064904129664834096046015557975521961268106442446952481837008046830434499940809855612259123977802086097398564736564124814673757018482279045353659825448053546418652135963321683987829114655008676278970720655120985828249117666330929165626677918605042050725055308195722093101038162307105098044601924593312383312341286938115499001904224909346012251150272563571279295987173061981741982343867114683912979363781279908516629269014527368397827511256216662941464106813465521396859974187743105595404092793023333588316622532481235117225164539572452578680521953528573490384456145948050109246591046716061809465630438713492346085092176607634621655359368899832781313784120800436325664456408371127073545762468304151144736600590391761928394011626860283357299735418215144603113171781584971152100665350789933550648932969310116243076130861337002679396712365390383422216247916742703004860555078818224887686654046630687889920927727400817460006411977328934970056261288539673540369009127103956880363795516028195250716122347262756259470132447866071189670904057280588222216409722593351047512639568635007375953235264380874149858445913801924643212177963942341604733612069770776505936855447868245066279565116530436955303128745701901996739783735227259623016250342079614142305794709108431017589979430908807754078046034804514106772516300522513898674380022758813426461864617360492230241083743324845700304686533245897635896294946006962019609929314223505246035137319988196479954590623269363639726911442042201978768589922935454004328103195195549864543537611051172955547579715876209205449520579574228723289894630455797242386668007937749209282862044563816568423593154001815075364467051128987710966565714012259417156166330833035471563165219958481483012287698485170148598391569812069168025722888350508724423168001152067527483616103678659079502579558388500526481897462745940792496725619499121679264008237700998033117229282722929943889778038982557701901519358312705717682389116877237810677379961139527951922723105804039853193914675380585812130068832015005506227562017378777558947042792315309116530815568309114626784115747109545955580646904759552108604414259381766710075442123946142845573731332247599454826641727838174810802479158560572435523764768729123474751570614373781639155419654982809799854056871967873688419080232789177524159987554913409932173721426409208400634407257186854551662939052605930081540395291613271820812603475269045492020067640137260511759629190885655011756706376324143564132420228227165815472337347063502846097423875386384349536359345022726853947576612189038198280007355963036989575726681387175586929238255792108579416977245496815325315676374053427740287824158549175772063919060454836616819349970130251165100570569369360755267482509210762521759907230949646331946828455826716653070066193256831129568851476407470123750788433853610992536105476001176108187022608850109393312418607898724396903401038123547482585976763309322050159820978487169023665666042166411665629143748248427781223934918356864997759801097280968021249702948543503199622680666793863920581281093112288232971474808850842260036643575974216214092398514512036259022670667236638844011016375091800637062167148741760237234294461366318708918378636473376795563253343365469489934984897868052775780028955241121826407967986546278642355170230901434957412270069516431561010900908227559346286182876634687044508231923649499323141473762077271578184990688132934953472897900301629959843060935702052571398930024919224980716086423646705813161942397738963628994596359636860862404280291073423340325887152862324137889114160622159226552440666764020104200417952013467167038962058170972548993311568917460852076713434332852934408701844871463243329030006604983256757619954833061073827320682546064743899549732677085065373764251476060719903352690437148092356158783603015449961967459224755581546864515086390812921032012948810994096488609006880952558149799657692187746192812054313973337560589690451613708379696541407324103153166505240721053846474563777129981474782286171747759958493800378710063710771873335731209663319597540919164162932942417665149849625966131457236881246727438950336791591797435612739372586856973737772320336636185776954318625733752819287547035464693476599263462095372590873581040915244249446897847342161329744214385124738115136788493782731753472927224085663835798847094932681719325964852176906517661187861795879458435112717633292133051676068857561433609408902542104573843406940042103330057298123203292053638092771347099570166574802274825724649224306683004132086465453330121872520440564240026318029936568754281736614056613008911141155550064249371839340974640638305820268951079977463411402395262962661224890378902326902751127567254301091891435975563009805644750636064045153607098937974585711795733200732051438928750785458704908874503410869069748621226714732164345952347702950748439658196483390826335858542542799943650664231044252415462980625984114791959855052794350449898768500995833906820470260338264720578626452918423996882831991594807714487005398812477944613767428098446337327320158528475464399643983211331291369253322997239695891881552759508583664817757413272830929644607150330264680516210343716175697004729520677958491116108457341733396352543869597551091334494234992687288832695010021246472799533947391808124211863576061449403387359502223860223442606820568186581955873360258007888845685720454174374354697657426563109099047961527880225656508873487847238326692558342860139364349115264773597481548180276334506054440691776903987571223658990186256491944388957260761405881240739864519678015147155220779288905806171281560542483976859385645436753198880203482031544124160923194010328610346545602615545479475782637942590572824833309090421925449678308063451330917474335836762816168573268529761040346440757492922746875944685117908528529203713088695548531847224042086246292872059355327576336830090850222453908475767127857444820620286658515356760975378740408087880774976086732565303793856357657850484533118270024790753382151013832594954970699316592919751899359389684339287971653542385803915647901214272254921461964028858364549403537062173581263820959509582413459749473480439276111871375458903593802520807532487720805460213682396487917873113891896076703844900204946231056015309345745616260953206448846425415490479669003325144917340477918021313701957424678047836347094975132257125720808112919548608543394176669997085752498235443760605065917690200096208531971585350091072943438935083513785576381540668518137195452081219380101182352597653625561661587775558139004970834050193541504283761902767686556758596957923386512177314126838383038885058197591854403712251357517362505956363446037405673692860402730386302593193655054438623109184420072401208020529440547045246615810907613278931533367955899427300468305540955198949319733468295611149829604799477849368039585206986802670215725635854404369930777544932667980827969805744096256217302747380043877415488465616216587219528831320433623449881267344105316370667108522093517852525236739991020654949038627672655168378576939164646817421475091838962899916081111425466931348342241611794702993452271410298745568627758183157358281490535944435583411312936654390296249386406500641653999314292929861201702832399955643160642652472918638560526762367316320966888074260984096585951924818890020934798239143931766247787497725378173848513589558243960094504153458630614281475434236749384443612528461407695313447258520447848570201346453545760993104449824760450153218196758491098077049274798170848169251199260561680802208648722384670556663657225208043505613042717920497290991129988891531959087703838617149468677647378334737648566714498234529330589632809013659880476681369134246786805726400920265357286274878109866567557696916584749037632946031044426086303254915204244671614956473712118724707127947092386897265503588362005290685158901273325152370302728537874742864128230904806740417994274440757856779021799203701529206452296092766637796267932350493410079215259834024416700079509343554632226114139536918054768843974099054247263811641039327276748774632077217832889614150813324885641612154850860884632919129122060874149705859514883276336865136319302409637504376846665816762327521354507128347682628595802929904085564472086480760878556455133993969048688493844678456907392789946636328806372014188217637966989408018485592541027698976821570945083941293450467322153871435613444676877145005316662452069684710223399728562217815784722853105273237846549838722211202659673191249867531243117290687615544772131056784986595518917971652496425570771872556875830856570034164421872101205502110279206433226241972646868913481892067711783702016405283713573734107268912249983576913264852822264350967926361886760190561573828467204551176821372563375144133526206505535977847447468784219584033576925135601518039421282372334320399924525781999884247209032410676307208681024754292792502959129927224935678846864437250379104704930145532655442582667910287484059171835789721271053174553571943588299679247481482930498728168229064001811766612423263230315981899989130726810641216098772186213188954905914478909455940534276958347326175229247407948340981457906407615116727146271982699838458951528314773327266327294993471249995230084659441977145627449345615885578530050754026801942689054974630594698936800144120425263976155967825240031791760980606170627186589640179514012322078349799299828141341403215827948822745516809311622972479698692699881133764861215957400229589881329773349728072021086515695477319602747118465394030183997498079004366974941018449103458166321115308879784616526683054455544411521294858948092582961525026061509590299827337738638808552870997426304691507135391123330595970053402986624353943160788102985991521669102895845022602361446422626565019963362490190828254831398146491096344064985213930781423934008160616279528942168084517424922826448974299744791422204925484346704346357223781045896091222601188988314075030558605318918272911997599244727004445953874910192245484643787029047490562033651783956490706521826029779928766680206663365839178004496202038776104098352138128823462629490002544378260947108532372575242139153385289871663516760374263350982333993318621151562612212178420789999592662578428938876380011314242807708705332975011644853343897841284392488722143943219682536654911801965766193692438462034848808055490889934342535845640528588197810946718107655577617206215962571449438531808320930472632218514628767292683538831646228296280438961692742271256921890136848300367921570720591793385065927437166536691551007071767815000774023297992339484776908214403858413095780159964630185382323363477960834514506724079368963042002203776593153353494164676317155139252346798966126903400977983787163421262516548476076476460379650759531844692326008554700447807829919902502496223991387739724782379707565687204189446142102692811091421086404873145250847393306429744824341992343957823191413085359782112135836021339089082694756480379462754471803719162035753877420045259664389537839275910294999360147960948218173213391688317753329352403157764213233327756861066771996898219035757915328297325791557599770475610509185386888562927199493703432551612637893232524275192034217986588025933404725802640654387682199659586010015072685912916880944859440038731643462322909213508435433995947502134866582779648990629354720580353446335735076683601724727066726869498848340306498318368205291685095675382066545040389518555342518022234738181891424541568573413381193559245319378782061942169136019006441187068356945538467082130257432303349598316858217203677560703141950857643762153045108922530990552838813303268758400365916800689032929215064827986167215851643081557752523685783401499346672539940984609830337624073937390083891656285926097282770040108865601376827606052713911447713694272431353512534094221137406191697474823768140395964412731707095634091070944317746697606009819511311315937081096745991360156574101093387008608770751631133219925101838551406857509464369536257461031447167448426656292208818409908718241104160975445028183549823171947611932485082635442499648173634645434964017198528940698412901755752470272841967206834793101398940444582522054537288443796269874201071331152193867983195065055100543335360417507809642555346328722090330059917834748945955693732878420347822185829885013865007436368997330084640713120546840423490901844454602585139878105515590882611307880466327693045640015631537941894558546583553983632261842859946893827293720258564866954480968203174288520497957977327269917451882706626220793919352782302814759288675051220880724483856972003058172682639197318094336065462240895063733076413598681819580937394861621598959226139049323452857793689285995183111870114474717498303801815037683689324915625765566764874678708477011733845220956020612477522769929462135151271056363884176932687342656907432420021671151410308112371365999451532540317978699825343698587815993175953701309700300692588859196347326046007985241907279176727809551773226333674961946672177885785623929648802829194598973821666237379850138339438273535257079897811871637998258637446552629771388265746076517545579014252842087778145908355310663018869004923438765187453377865683227282056068116357201095501205138663256594774503304801494301726272930138159933570527156775806370540675265183811392798196756259722320696814212650226634349599711549722656257873844886284676459156013712189965804236700164212650791726458554886137776005947782226444327261767245603836252668257145356090024761224923311245287803362020873300104666489809862627523591031473751459228867861835357692263062612242291445002248361988132258004736625433986680456348301261647555671481494887265234760494182670151673461148067624181295894019499787632806491933462439673496165825986424313558536615187382550168379981848178019860131286363089365397794230006421491595390240932353571447958642085293091909470283445815168082240554135742613606512506971198375467527194149505797456540936993559692544815118805546361107431210952866900569921404662352756522797592282188053975151470517836490546998821216107662734882367851700684478494236057786681589928852521586813596165032608003317508814761469868792084652848162047213558222602636048926528614680726709051226939418615576685632466359019672256600252833369022594896939026118469137282789189517080143500381705473506632696005848912607585131531202217701009494859005083801318184893332336682587846689742428560658522766998746078592913592320947199540720894387687844710283723731590873007822088891653419972300367592683256712095190677372107249239381144711452166177371235538249499653146598431656560160222925943908007892235059695276053912528037803853295356681160997990048365171138105676811993751450450742581283164903523290195000520677889001592575924996128702478461507535928533901753138731605337914337513939740659445843051365238293479252708121922246404022095001530125884655773709248215434877942206516297349959139469331385411782678618764752067033125773435504069746376411180331581325839329747118960050134906207617055026565946343001686865369451373373867855628074399247822274909593912450575152648250391658507923965021812708384218313282069053418748920168010309534697443748476424886624265978923753315779877454395565558032947540789903829057654554185869238375731239685554668071397723791400344576919210912412274710192139727650791273699582424357204970271722221563009646984844153341693797956923041486666013922580237120851044881934022291813363738391050718523199059852630217668426348767251098987892675765564878536834286063644718021500033922408053722185339075060023303851046244719812516736734981336755441525730502706745449432381761344188769029351254412937759249190784344222636390729856496527608450590727970880111870362456727436128913481431167758066575532756079134627607071760823964415260913146681779480890080034518438789673703402582991388579253502620938053162143963539161600345236189023784046721550850788599661076935999393899851767980330324303454123751927272322363177242788662710035322520887018287051822744122556011660552484291618504775849708013960068664109305955618122025239910674968242899562702229680607033580386545334466209751750537156337769649805311448353929416404221853970633503661758489363574230925727615146455590646353443269535911776715241191200311723615268475732812383250504770344435333930187090511143125192137632663214324010056848801092091330617075851597348096907126377125866907478420399213446051291598276575074859880347568444441538729763083096156216658206402299531107964120865188125804309221669522222863295040287279460651243060736157943968599569690930080388818473801027972506732671112471404613592058649288890655407988266679262294879669443319325036959561334450043213104567237970690186447988051708258733377446099534475631265756763670344920934444967368932361032556933498639160683133843467159425467535086156240864003377305221766326840185537068687335929666707102859259105342275734096845054945178020335870024785761206280964614171268789996318284712473614628916209020223369805112285743276489901780418740355873616592659337924434748050543051866658745722052793292065728605565850084132260938761498775447425166445413266583812833497895388633941195098103713596725112681675724771178875279132079031429888039317350351621530639744106979891883738898441275245901759953708554481338899887477667667862679767332716976966651872820617164595738317816292467237352702062377185812453390211013928122845445665933067872021104197749711895541550229636413741884693110605420284025981517655741010126843593547763384461183123928226638309434737225989950421212492053351323902471248825183092809410346839464597144528008771144808068325845748937246983304564762294194886103053994280889355844312198470343733347226848397762055416167255775681476070829660118865995936155418211402761402384652614114861371373647816020348213340460465776328180269259704723948281057211119641232044633140398452272107743443351800507748524317654585344611895222742110387145296145187430132854592317519114950373888742560898476141081959575328792268708556570339679639005747481538068978541517561334402375847792321769751929155034467232997074092888404177766853005757391762867443758212094714484158281271422868675297264107052938002370603071851680198299566026174512312172804788365675199105152984897054572864238161060247957457706298319012909090820302464098986082883271890325029433948339773168151881353097563452637497385194371283048687773737098033468771642593208521467129404921889046030056357604484794298426872264658215775636689841781572581301852513539654213557158319429901154033131252572729592922002247629803836142007933685348790030372918296242815756048990092272531958405363138822800292390369980417169128801385646916979811514246704067401101255517309597536737731133102386028185385296953118365956573984246447243356448885856423096278965984654641445881463524915664696917056008299210053043624873230056929078067726466146235045102447492048806866791902238049794661237843569362823892640168319998542183838495394707255744710367904787322086314055759234474273439161804475724626960823545210101024779365242962249796680449700528797601046657770271888767187001555061161496258266009970915692323279975254317456997924163852025921872778738287143555591128215878280274915558507482231744225640135439026901457878989226267162039769010216678231253601212848901897507068051818276718804680254465687339109634942448083825840990330342141200181285367064417817734940759902495803113178527177018592901057239525844549055027861351222087433473634975238466266757350725856866880002111118928036598848350142775063732702449129800908347794480300504140199156917386809184156985344157623550412062350584738100156876510443414904960979970593895207369839606089475285392530710364459250510320922041487638672050474965941341617232360812461480096777488748659309357819179624982072722974840632409282321813194546056458494573654966040172400887837390529697322301057769210579050761674447943165534951986048147580821347855443159749518555379487939729779381604342604888247910122351996843980058711561378876629271168641842626105717859107779493140995519814510909887066733659815304952851104589576697182050512634521351961054173230441516845015900756421412461681911114815119579749988506332320592889929752449428542990031996684366069450876477530363405554049079449877461343384184159705350331336095540737524387655399112548662147234788459544564007488646565283664397853990695882686985336566308048128840159809315218488484177973435170708038609072694862940138062175704691665098345456820894606558644415808225999444977605209206660596415585756245446767713085174247272466205097438028887987068834706647852845851828482184317182433669763402527499953609928234614485309895677565840822113694781795742885491657097967250853040983985475469452138518318045708602432529919437203903840803272387977398533772492469281487842405015188277275347049637238688929920697351443860163242731906956768533970512340679081352564487177040943494329244318361211930894312732404964846858389885662190386757456774012101942216090568277173540195679004302140447517991370479484960509445495014394101065308421454793506792295405888148138924439923053538757840572997582628643709430195418683317178863575299848141269770723600672335223368086778758400415187666630484222722582172178426975355212355257148160758830965331783005501891064225502323330347207687152640724054338629776619097666922297035094743270560417274120859924371374067313533429888027558633122617553852810435578353381711595060520439813298008700611660318173991048319590659891770119583894667087440002306751814475777075315940578322760784488517281214375410742887975467537233107519965650486920960109025365244848190606677497848533465179575236829534283134104182391366196147779177811747995653953716190302382335511705557707939878427718195045804096169794263878638782226078210324367726599529698655276791168284953039962541515532953784295032492916015053185528647791795759676961679995098650124504563374597177641800466335529354669350268957971313750121360102061166916688788367542253255240600031155239939134955359016261040018740541471101261774208353775545400422781721172507037285162832886267173707258880116520441782954196243942956997208385746829138419279582220108619030256241288876937201858815841392667526995761905751275248407179405149228501228627873456195947903591148657325150858173283737887236364865407825363305654277694525019043114034599541809077233039733172485819431283192463351603461685500042026291078598134089379430451674273404321888345010885297144620351561151824673428887112043141439256502515827774864245265520839839792869459103202020958209030435627973803061947044314258391119217877174375740868440333220005150723583518866586433701150256810677470947534256170416333313833800522071666992585908752480359550961056718713624373025145968477228242644910498797358789122412716183401844565404547626220355348686424235271875671015226095472544921825647792885545838985136926622669238733548819628102545595347854461491512270788963451183725383956249950227689804585947945938676140929939540625662234174041366125690908085510312648990813035147264346763287280254442041919637458681365189495091335323504834687081782346847778256970231877706653949031986721213096875080517314783188246150110676196597338876538917277890478381517396985867132212462257848755109497076456356061258905766505330904092208612961744129516829649734324238882747553969334850467294828854978017655757318369497028569433776324100718219708659265744967849265751002609229700178581181786580423418611973111862549601616300412748603343838075902432949500548915344910876191337201116699836535245083861183047509461648623592931495462286280200725525401094206514037712701052610360575193345922369660698752394266024100982512106862615095029837599626560235008279053864226314082240466130613880795621334205576853157531456694964799970286920281589652624365068974895085500293059265320640644578803907693934389284574704580700074633631694675949491080838391587972028490097472188645174616718807022315226017368575548079502167436248266608718840602675220968811486081880167373083169279611233160475049373260581336525220040981319860957164109407223137720017002864386148089353984025908117013977790259650160715687177508951153142808417937497465951962220408152668774348528930713431881799909232140263931729948957672634100369604287211131957460437151909119809828477050293320110605606240592115159860409212071396310130306374940159882670726933659831447266973235699797055715871739935075360899256477457000647731684436256236683521453891234841700394330185685500260530206950271501597973489277518530740618461491940979094822362520296840412553094795138899947634508559571714590146096777785097147245615794505173783300678092939176991392829762788965852267171799076140705765851288076324345831202287287097056670096088398311177897658774736748178839445969161661729433342119646196315291452298966202006804165010121018843593631684426490101764558960876440145979787126871032732026438398832766642524381355062590871480302507953083471526791656003059992387027051630442130205217714986168381396142107717281081289576998196999033236282066832623376295471617153999921386309402028361306722959851662175745145569316696685931503635774502458751110793777351152321636070259150985764940244151980346099910084624958261125875463098690604983601021927420628181059597578791899080754127323562064065610409497364183756684890881986469825681702619512248389111614011888356237189158094889743648105614080297197127717886847936110872594131487738797477170365382275586914980662353737879289251067249993889930610476582326658872413423525795277941130894401011747264357014006313458762863433210249846504457644007654811111900553676288011037830551710679118202583458508195940723433232302522021506274477815253932021760776342293998621463546359410925502366023511315477862064109963934507511620638132047365085131816327470941893802587266299400255731415850122206042683833799283406632606300408506417483111729582146605292635842777487950635848781322263897817541125081174985149678515082576294868143712827361507910940323705367932646881368107428971890895564924895995510624474728155130473797919109296109496515794201809026076889213247088168182303404660647987328051781304879519310572845932885331657153639719819343275386747853031028654567879685904629223329805317619671905240713820855566250957359075922121385579457106924592347498361014253198847298628615862540214625725788977974951649596471484082648183055746810663830848537552485358360362784130235076344588684972341850999431981022088476370073495028092157985210646559203540238289312527759467651957519844420573025342523670813002871228660851911119020974925075922012176912820449063203465004800375669194548677807762493948123062749629269759171493328743779607722347884440002956180126647700675447389599869612700780291434456341997253878322917529660867860976386920973137470027531342415573539838330629457064579708725287188088483201690960425612900550992716049295374781966109667718561105348786149163601840434011785479224293981827459808331519567273735048868654290586488190964596690927037860988317217009026157533809230206452197625546864966818605152436063015882551882852752299863615728979487145812616253270427591607733422113488435902590436785060889053428997836503465724313000653731214589858058641684325765742291219047269341800031542233786307875091823516907216390128416271318593935696946657456840850192980185471270029624494691770100962620086564906711082666079121723256497507559061009794142611726326615246479791919002150897096389009211563375188766339382035382803995627133016366732100997474350040310050016023966328782554388525370819571481198253532359007925407270640277180323730212714672039301409302861860121811783542713534850089837056810832720190328671205383348972994204408687579921505159217222889559026120061136873973715010978035689683905556150673515291934738850477238082160318748429459630964253861522103071864543724083004075643813140162698535017039516696151164399189479839539915229173774097893658216819493979542789377633593962495437029286296865074376662095854888061955522030258383328774067577659877042225303836435008513050956585954249672227884984781706218405768521902956918184203847104619659104536702170782549973011261870974393458495346998690476365975859110932380130730022014720016995071293547107725891040976915068986605910714408315532416549052797177053181493981859703696062590533249656815799152852521431933879885526828586469567974621724822369814787714213068436370674664803093743679944290797396640447261944898832489631057639604706425410356827759925389831632965921701438192911085791134792935865857262678892329282203758355538419308099018468543645572395718361237490185170086097559942482618993589274907692700320244196741220603084056574809671990255358923518129296239689831993211610514611611217165334687857272411909580549925128403625181077849518065574046214356530993245817900985401860214636393456385360105624533953588865945943751127834404464970767653369547402724787480239235856351912943147376907841968640903240763320185769101951570446885507017229308037918493041748765157323979821860196155555054309236754635225506246823346187599893807010208877949775104079514278717097250458884662313641134524143414194499067842351958941416536326945445138438716861632060034153918977889910509700999356653850570068763786871425960143761329163770611648992715472085055284237039560339786482191431235271066714754713323149083287290144948540708254300642335509565827982935344266342819266817921457723838343746330743269760570849090190230172377947984756677660587476348559048352353043494885672299598087504722355320059741487244542621473109498481407154901154899948573057590406909791363321162468507259342843683233171589118927967001361484684581280083080059834614247394156005492731142934944670735972927358371392099869089514869645667096855506049415249900630374599404834522212690744058149752607415039012541330824005257230992580900264477214809408609473675124840187387648565533961653617500001249696038379720105548790093498239942720292145921835094767268337910335233337379511416796039481627930544675847423142754393971591287883293509226049797729485534454959001578696308518777299591160376482861961015813754910388684289661873301908594920392462426014976393391439788896439831122319533909160795849716799462407891689247688777551870835172358946220678840177049555163846068387324423670893317980686213956105968537808282220948030796005041995612099366613759296240126437083782788487218518653715871881654880803998612965398500614275904415602919287355038268502562452308073509349907957941698777899613244779584205882338048671438241535142503892036094895921926860171391014250514053699760485774049828713204769855531631723514182371655531355290991384977413659540449433162110286594738515462128819210331267735860487330652317608485169735817189907182418628457017117576480847260014211612941339164807030565545069000866528205724017202832896210048846188578358990381127365698214161095420890030426952909887210691815447302781329721359219097236962763593934242644126444768418131255693352244289071892582143955850724697811209941575331060504217936454610992240867098808304868288263818126984530529565201973188603193955067183488627257677489146084390124378980406193920543290675392949677906635372220291470739368990306142542295045639994304351991608872932737861979656249364678408901858596370904556502286523230470399408630763791268962098292700081534790428816839828647716136180109890302579734558758499386042637675632101270766975441804527707685016170115003187261905984485087834848588847657997081163081990707178797863972679218501350602902495349957631485036660235757143708003799055735530164166979251622688896379999273328065075242859428013546781104737140521948102383974925464969296452886874687839008000078532554051526823372161769274698864720447173152803372253868425632627775301378283822872911461359877259624390325796140135706269150189407852088992633066615422715637846499098288891040174056414442911926849019919829629761765050528209990297137361422790181336998168087601958596944954419093654844247672114378704518799464146658758774568027766069366954403899663814930099834706190723055224173944932920373410225172821706792043103442377091333363877589765689101654076495492714707305354055183020978485425364463216638845991760731614178340631413670549999088960581061471857955620926425456691983653400235546972905598563584892917990399020855930794536127812419012381675564224709622290983989177274661480934685104277961108259265701375465005530984927073679538038437959311664421683847827711128241266937096214112287993719148012471510280544991686293883528448104336985077114377576084402221200511648917317759238759418197184716527882534920694253389548439230828950703905878040251992450059689047338121063339985269750495825885550984538728045924243098240171007325495535525289747201053925470647886482843873069532050576191252183236461516324315579965044067774886605223030056490045509039574493633890689273704215004933971032203022252786846506594878617786474963860192616724734125809638942170550646096696943455484707311687663581585945683457035828733059516320313376815602924098419976260390889447966579115481764458140009333725620586794483027808750691679023794820677845768235159221718339686947617924717833427845274696039191953655065349567082417073522701816507630280087093697083137184505235832791113583615598865819667750214849230616061981102671515335983218424098093472769119410885639085599407861384418713757336602145754847358808601850328694611733370551830072017953904060917940837433654877386580984709466040785120429986556722460520949348196669731617785602359145851115218325021318116500052472172018359059591143776582785050096971887368772690725762261063480939335537692752644331622087127266289621716550078234775414241192560151684565971821182369086251236680201688948333382836266100231208811847424292394633742077210876413327108908698979905000188907066755695226375546731138104965621549255085347850749203286380347040379517669404092392305828732498545279105687181200454089840757608132746021739917863015450887539217639280329427979168575190495079226012294983604165512448429676811203590454617568036448398095873512198955246063512499776861830022333661690840821623869568592186172880422901354653898835436415662156456249083084694077934370056303656695678202865825433500958344769232293977979479428222666239309954899337039418123677544258037411144456997642339886093399288416071190900609958567647189255241785005356296593262474038015508480250347329308388039866387859157744799958208909553273344507352743363531553573421876434992482654634973286211617696878275422175574270524018203173855462068209846995294734921247766143952542855397388187638540270641791153870511322084523689005166133158284221205408373881431922036073188758180705052551748081445304113708425054512229926196651715963080890414783489202046259670978869592579100506347359350220473956696446482761830731171045781175975277889694301352202516303034027794177020583295304508219932872076705005836919408760692118073882757882507727344449611860601844807774529152457890876816649367834001905936477749931199297452636028333181214025096151270984921305696943247151297193131899690390781635458959115820850180502996765610597323358721906933666329423226328100920647695361580547078523375338902533530667317891651503754121654517410246488552202789378028356464272886554113988609976622600027402978475402825066428003443513811454581951123432309725732808531983888364894251956016316152743354424977201442445765916644110477765965376976683750856370610627865397890641440847107374066472886712357304765504718304455596447700772890622233139121932056533655226943338823128310881405451660196123910696667981881124348889469874460676829249045650075620194855293945669446630000434729732777184608987148538421664502603249537616397761631348213735371631869770835124286115971170734262974891587498714413100952587565498605201190593090227056555375876223482888717045545929295917916984509233760243570075498432802675929804370162438701160683989204003623463674687809056564555782972584747130366656406271317573631792000938969452575515155532714300836748981034688877075718251026550613906497893621913036258241117788862018803272082049126182524939684465499051671870998500500542384840453073362207346876286361073539674776207235734270096176775415636271562751