PREME/G/MU341041
02002599601998351290335321092224667071867398717205849707377829286052315730288673819965644496477604683147935752035467074492501721025179607688436685679320999031449607868319462339933670928771538840397658461469919559935393197834799574975779695932875893066492527609896859031957445275677752350187474217112271616042049298390861465138688270322129056588284900936174612847190477001168687345210614756028681261060039393163193701063475284717314105759089291283650466885084951882434280486858532014307400465631434062505017780080987562766132891612965704971965709857651337022949082373783254520453318403968956860254960613001016787787132386063876079336723737357703768531112671092060841425429987790381777694198626728744362800058264584969692349918038302277539417468029973827528126795465964734505712338553223061781324678666303197776253314431919932538041215374377890942736672808966302194462519878697609284698272433384584922741321077105152385096794020203968607807445115701951917134677345644207766619755231360383080228255524860318799767417341121733837130945646142664274754308504182344387312291315046199482573808601544145930431539164466005478513959243761503947179772896428200713546627797267587609326454483035127564489531398879266930046265114079443176326584595814314850208596605038643352957543013236368405977124155625750737417651679841106252429615103580869562257573424694279476700239770562750990860568951329388363844867500772379172913844262135624375299624256447937084773640927339808420035334541181082296077065195039714113230795726030239295263988411806742642273283871082465502618369964106474012105984383512401833405315948889319894732674904022684187282494990304008003169783057358428793530131897935794387151719371118257052804466879183056430310461587648763692548185668563052170326138109082473231194275303063260114040777846008546272738655410946177946335200583953769164580221387215235525880394846409301375162465728211885239345232970778966648123499450639107799808710862682723190096457121937597777285093529222918223275762900398131859495546990543703043358000502858333911566447833318008953968427401598976544438848826715897586347124694375884337952435963386306291554140134623138121604325658749042907574851523804018777188293093304374812219771791615800351406198066058775114912630933615361960746479260541824100886919837463559332974586671295991486720355979508672607315528058222191397602234289960576286030463804412512896805204096930672955406246826749540248648156644986169409889853771893901640181355013790242958087703296383722572772596542543182159318126718930179279546491864366429611513271663489336276984792239171309478607411050439523002636172855976953478501770201290574286088807276282194928771991272040769265867750142208791490780401427837701472156021565879645025816826824452975216202217934931184843010825379301986858227952454162047957883631917169029488571770707208796714139714398292596732008416620079915200744308073785651976315105950333879363553670196864027943549458805819376215076153342466128875959912847443957931922566481641569534758963071837250997549962708833943253553081733284201222969294624949618479891259683869744932429809980136685961227507665009972420202863751091423539722543305666966357143850633996628105527200172953675477180703185721599221242833213575210836501713426656354936388886310341488924137469146167141169948293250256282603812201960322626191033077826990329431192757892904242048039154617921832621460281851875400471717203685235332762552401653120046343717940778651137441800294784809856872941036603190465521435879267472059659484957472993136584497998301638679351429491498155600555352980994951410127578079105724382937896849347266099319708865746044873536360043934734431735273917639391181140639561013011583844172391255032211099638538649279617345601546636109053334620344048308430518137898319408679310027119662334140762417021247248370737508586243817564649432640966394283561068067602223365219387467320156196244666030152164479274253582595479617109735430674311384597583240348864618185041554159082890421486890974603280416619743892843764239682881196452265777967220524929896124913465117124728886836546961053089708413600791797486796608950225097324705397985913076905446670476667018829626455766193173310886382774960618984718962053435150928724066862687102104937616169061637389337947327377765245491166215532812804050003995701956650583496628018548144136653783561418732222596637179502009036489872799077062737538742311573770412455645113755895246808557868264245163556968307806172032747751271064011368511796972185117028357118393814681223890932322555536585954786514163796723704873535069819050647588895486862042653329563878609256997296424098451163539376074854858451487156616838617115635037455081212495854033118011789802736978138952104142443895201322365804135570216568541658848588725443008746276718920643793220536597696493913683805730314780830198053525795741978723255101214079367255133541302941933068247825978504693792028768104453922284344960347492457792654785488412914198874966165261437674114431865028751120158685391936290569089726691130457429210520702469008153775870691959681916263613109385765897440507126174098275847743051902104614852718936414072618061681562799227831618958200321969308552932778030617072269273391971925160704268321050374691807853673978305874200888085443171839951724094648759205912150867966136075653333453480239995988420657416915529291202260764250905028134664487159603484050104260454395785067595200938329178572225747865610618441596692261119611278236809670184954497013844640666774818043139507669341989047241777726652922268315204391502054225626494127051422252698525012298344906549752135736488503460789355185845429005065982665885408150629085778072996752397460179701694160075702844527377206402317136722296932193647242202624446484562836685241832695891456619931313659712530311033319700113420660603922799009382992578850700589951379633467812984650980344635393881372841113479899621681091980811585165476256661992355627448327356620701345330960101962073464777784659926975089513844000010233001792457924121338360934445483587553655046941369259305416030376146867089558134590643257375258386228518195960531141600426121659650689552282183447970535640534083841625103791013333997011993853243096217584474048427845718836745836989451424478023588235715332319956986428624399315527479963735341085214737006723989914404444988717810204598938477354868092540422782350733880446992561216175652519527932025181466529989411314547317908464382830353227974343852791080415213303440959148085088764188047318704774450507608257425308318533557116010956852269630821382924350233202574763913500854314524766766217936392319758891735753184432046442897317757439649656748643344147554888212279411087155155051307866781228563412977809602226770093075058668457300562500207728501541208899216801887944595282172351735634680319707265758738145709654951672446867285722251563143604427430961263261726060247378793125983274643598862021477909263789329438676422229373518064292759916878650403392176729173498191039852839077715047927178989774646430642786951978221910200959910360515711522918196705936263221951028986197179832200645570725340067937364664337525301850031019490365993899358297627180223858195025615640731295656641347910574748318839124499487718374452325475254549396773691730712520788693823061794003965061475472004917945769160217358907900836259149152609438725138207762546782201512456269609534729488277264863950186220206117143814801264065781942293598536043567898119489527367464412198222499262529274936977846575046177392109253284190542528305020258059560365082756305278121615173209685297533931644001196230052146265978373408764191676264280060550926619797206505421547062649889443352991535348535717170702890860744695460148467366783162520251257052751132557077104010183911929674608689330375898870814412634663183186795921543412327143934008236435949989552850914110657236154391334750141995296626777460972591694301272055190986636945075824193231167875502727208902559431974989128954397766661808854469085979782459605264406398034617244505948360050287076979324172441146432234438082388297052150192257064251893149095384946569035939725041998934324165470379236587973095063253109621083014851675792578240608531882050352697730979962440260104719221829345037022807505095934086219029159440287956505659255367124534270950935181103514940324914358506216538692679236339707137847001475245416053635884527551472535652594888787187187271298415539385344889908935641345967168315482259829614678345909478889769057778926417702083848250357685654951231840333050167443619868243968535896563381682991359826065758264966971022702067356387477577620002925752211105717279451709852080243381998076536079062943050097285382926195213623395530225444652262861986042923807433988476047073415197978697540814804770196381492753684814662415001061119270285040043497338845087922993064161566443545698606222897833403214646228927725299426764604326701635255099284918802858029685188189460250039368880921851920052359943381687666206598947938812538648738979724813646985324158954601797873782544601262408333023300238231809151625261897576132014164958684695266526858040464258829276144386748620474355656176418194774362874736551011351832408999015951149615260262396346413902773440765297519099016010979761283278305375717929902694615075821143917998969020296517884162783840454505118833661225306015883950556437951208246085030285416284596658728369304319919809765618902401259944648382839532836559686795498606222378557819249097191067993312928402811592511402736376565343649368162168336326025576550586131060026241794980848482729759580915824764976038238620074691988539567372023580447480980142814054019680354032649340946173315670406706009602751497351890486242022469748479008051858908498286721970661541994964719259192648600440803518909527376012930643931065138943656645382193793092949649549753816805211768006913000783976991389265635693734366749188851732585357453532339181562681514028535219845381934069450957831114193947565239507280857295103574994807812684192246782824953835787215854366361085004401944120203466624189807724546366710734757971262041176591308781122585086984469472948622199747717578799343242214978547463578598382757238081688086509632555454596220560137759807987265992320338349672898272770177724414620872452426997785365366753266576153440623027495097339411732143992320259196166802253129998553814629550205713257733672363882373357572399118939647936762525510047799245949921021627095692692735760805155943158690213097965878807214948880056024698180814678917638157693212963936905723514995768416768412762786860140257388570120015941345442539240033964577096148958865004605320586330908657698891450887928408205927966596547290351419597841488525562034969328225564666673979253586446821354174314283503880038021226430058174980509742566969554171826950078409089248553106127007294841550175654643140760061552098575577567667009083057248249556098504588207919970117866330267365554791049090603726029251046376122810141680663888523542763311473232167550659787641292177441402575276293626217568390364305916497579153032486520847378045545102881086646663771853769519976853620213997325781468018873571820695403886700700884482121326056788107834807603610137777900883398068070248298651395065968980479015505503614181246781234403884296444603533724498845737174293564859870014246089107106297922812463217443838571861974849740167572153168417402966719371478197866969164822531433015895108898700022577506968281143301624396101238971649265287588595235173625629651414524336990534769073632099587983406326848034221409150682004840127527316416623677626525680697790910294420012980920260524593986947908772350005781576872330654970904867333394500207076959196110246147982421632802310913363419949952900247623522632793306904884522085676588431700354394089774110765383740066147826019142826945723654884065063118644779362514427041771549037540000955970726632399128991048936908007450693111829885688692189959443832401828553348547966950924001417139951798110265120677578578501484774078172885455709546356748481239634671020389310115294241554449486581631803770233451332123029053669705927405357628165246244105299383266762060322087259635547681046922975343065457829327948649016531872940252358866628576714588177133281663203947877519709371738665505263655222388841909551948899184589841148154099958121439453054980674034098130914593117831809178702814614470731765620877490480227732025907241561037781679313061980105413489225388236678058300848358508748566680372944375544309536457385355326366991064681948072640356647687847564621565560033765379297777973396961457714006482062093424263193899651648103530847131734146168631848288362037392568330336837968443049366461944418068256839764336569298049695650722047815976233563845888302642180708351504499850474003979038455388424574368319165652765042925224732081646549895011273423695023050503311790100704229612786530355344618804459078742973377393912760056645339008706958662587850283479099586548381007387585958810047726270391525598102264129665862103117968064698869153574337951621343405607140833249383483840468049211322331809588421592769575071604719060196078720841397374086111500318359037656787485507239422963867824553044678289511902358127832464635178878038820554745363325043318985006305871545954405599957830497427667082803410770046405508317106863612711106783503657715801536827927211990709037191712085865798472984056468127113980158022772030579156145098289946866027233829538604989483669164608820058958977226280112564032636897100611092852253706274205283019513497862369328656973062258945382477263516489402230710389201258319081877776399110006800665234977637253443343511488272868854158585261222893969170754833400658337203535460732661795161202756413213940965764519426268572657675483293137591683197943700242720777867590633529250955159803601305126221461030328690172933144973947265234966863860395349621584128268040318504688995340448502885568135897950341354801231711819547789602996155958662165577248710742752281351174701838645379647626265516839297293998769752134934109095643463391179521904653978030898487436029850227538555686189820660617108357847554919358139444864433818988368934935398261370104969365481069599034008730162895621735368344492724841898421385444878946382537905089562901068358548126237705776936478334158385915694846712964402121713047309323445844898766123095809687650312229999679294228020901723433381990303784117521485234103949242493882800088072068018445716354024226597997943226769471073771598383099615403050695897603913428065181118654259362448195418235838878103641808898301063630063336296120971835156862633877857705984458236558030737002221226075464329866149751388120449775504413245778928982958804738336858328513887897105196641095094902898304450951024218610559482619685956151501529822731311610510772495704097763520230941612835148699241398473159217186647638747352597581411781342380198268848934711081610234049703284739646309765670681873457357258701431917273316430408564170289762028415378460378177527391807885206618475943261362723180708405105312732808433505777858558488095970249760807170883066671914898103093502353553118730122911288558469371890644126766957018752929504784807617621859726801903291961204117343362726623087971800610165326079919247729719773041504655168844192401278233114169642348313900803534544240643953585344988147945389827863283744956983412152157336377258968185099014041459532225925990500165615394515502365279619932193953775699392268993219035820402544693369106157798386047175380255800247394799127410653773756662516720490470891719317481060505740239409319407645543593239077484989596654544948162992208056861829191840845549880606433724676884570234229996009656614926438658969598160580226102017923383797364555717931185182265129008837186928279964899068483886856456619909302718753568975070399144092425549400471809740887168483625044259025308036178806914012887402110718320837642681128304620154767978838528299010943430005289451081223076078939597952447802960136904165968798953568407915803709454591799485235331547059502310996784274568913777139884983023803845176883657323482952326297226568429379880525871172506152265025191228232854419762904159714580695945467080253674531185962734046668688680056231252879078725111692089328447605405851781437252085448422107974164722730191459201536505796639807892925798290024952995805095666355969783593654857797905489604449525554785570684278205130220156205081334499128318985097280417771435964131283331257367423307003099285165362244849560446275937509012163950455413108006540223608791166712036384775916439249251664441692352602840798997537338328027406367609611229796088108600452808575731109391017355440580089530353203295252946261363432131608445431528364281691145676289652457576778938646513979279844006694337775743383297269486368500425028523665155131611239625564946640779863394980509844361909606256544075908102600932875528284836722609161392122722417161051950240031056934843544882112678140511767539136616041259720947035432400805912290281590421994967186577738164751169426264606450084119940045894648329576513741814298356872590214705414694263946929641326425821953272904177508423611014306160570349717835804799696111923506037973154218725430171685138091287857934108236537943225691336920539569148258193874426426453158637488731454429449686435400568294016139831062170535173884990665413596159857127817531346675254893071740624396479649099823769293002650165037416666336478094973450337685276847868508396246175826743458630451365298212665392064428449811285583865307420734912544362577455200226332453374274320019504751358532418311428097576835757139435186962027112327733052469771866144073971075014054966476915423989886016742062550522410552097128030421151228536602378721272712766533951916345533223013187026400811295931433946533457791062936952133058180848981032504248946126938687371512926770714991195557314625500377668717745611922374910174124369960922463740362864127836299854178688415771707147317517615447302327429010361510832538101206299600164981251419258840991451996494519439712933965406793565943282427187953085584660437516818174712442757299638772913286025724457337825078248051113688268487479604885287704939350474093219082053232399253476081048138473187079598919795377877776144360532064387709569960956749551314091618948753371788706609432443951094165704822510665149332384660432662889578191892517106457718921584448261266751422933761949465047028734808365670435700625249164584407090014751001244354432089746598766247810090397931592328379325087718674545004107598588196633007895439220851525627752097272278757362767780597104633790496114343776480989658507440659442637796621640084181312394737395287244237621098161255577030295046654343354776334280407017598721097064349049262369313653300852400634346884956272618248680038653574303246531065498570664451056326772418980250668521606047366798538443089103981404092586300939761244486571452605961176030189007475879365300814273950298677524520997916703713659748561504860766781170419033786913971160722041787553473193368526365748523809525696791511174168642053102160998877687552104188196224826096419544473593465857654089702431228687510298193076788020194894544707636923608776248720260847008692113527272312428255068236150512926221390204388494624953891211755228591535773912687902355292148941860307550406869385416787459352260574258451072503394369330944445667766006435321105276567959686522495633004263309420353119291199500968144798150228150971974541033482545861024167589527823694494440779481343720539619810141836349235569909203268352060468864000477193786040863029700279260459690117857926870032666329594807342808046753914787774730782250890534254258800459376507760692373265899305107411128730742058593998648510004199513231858751766969883649709764099081092814888425499122175457775509520599392259321841408376144085449778372349776323636415705669646241758044548729612183036867652376543987665190301034230608537644133529707218879466232223781796293234858350370863122862897607041643062220584271790969250187333415752134949739444772181653918043510551369805702915603114258315534994089735220160156667399808664436325555420367544556208509016663825165067447496379703682471429015207128136241596356020435374251416910665675110194698874583993448400475798593936654948943712802466311198429054260125490036857823670862006033328402568391468291093428455048011482932195661065396047600636848103236648373062226055992935203813576151870626985009790250346939401679747163653623028371763456711703050592798077492209903106110034406817843111858853696593858488523225044606057115558106174995500695908555787946045383733872135784007656941249148843047814339844083577655927906960295471060826265656792927535835812810705861338987505588761590943567132583192513328005772747909294578264789299896931407112726129385815191794424778377242999976232487399728894909206049167979568981582906373842589606693239700032200000774994238881593648665324633483756998030595846901864255900252802105990201321966214843692384293845862267540238373592827641345694042216361314788255392752889376636548253729175971938908629063873061390507206627611050325986008419247056486993462503085128344640002098146962891009803627882088530429854764420520868977214423089727319843738988354269011622156511039724412649545076298279009737226997710408147798980067646342728177143152984080508324537645601352905279680200053019652023173509395556749881809546801338138717578257281946642366642083257212856146347733349378782172330024520616532124156730335692209474156161570288697188326792061662935473590788161784210146398781609099604848059550883797984897394100069965784614496215074742835593317327348724001620091702092456166603877100396858216176202902567827167720038429850352450098979373293455932849451650113991435459159436652565393427377758393089553796855635402294819101493742535939675783519857787876056928197771257432245822749246583083740475092082612704726126604405835618137824978312553165676303544763093085987990235063075824505845333764556434189013751239028156491716607669866439272057442477861712042710251216704020899440048461522228264026562139851992835209935480759668564178518569455749540544741271238826770980215753936209431450151232256557314153928940281587166495016000940505579611472572420468144334295747311984823433340136187403020683912752484695591780420241715772646326603871452765670915505132589821985123025361501954805019654427475281568951654879046869925075523772858932629605892266896400402608277295598500798681662075908510437294895068600493239332130278252166733999312601890261946136507428106483639879854142691054171904967071825245608770055286708616985200145000254292704208797324060385997911938152456286753850862703648015842220168327767086607100443417150243926222601518294493796903740445466638090385688646918938815424704931635791229552589072309793299907112819242879867493989551204843002526736361235118314648978717580174381516624022899069666023122299266146030468982150385485857860947854491951432810400020197140177942314313600036730650898618742429656743312549768760780455259655524969424444042989934382472800918813394146634750305382508305670598806293989982612574468948217788249507435240014356928198965792664750982689804337228091450465871986665102881506111254321967154449965206960675139116216911861358339916893108003161602201973100482390109217061445166169811337235435607600054661237619197625109769135614010028484500299450952776761517171799398687611048921512846964785605814044589977307952660961588074864873623717241131990169229159025972132441897947398783152863914727513888094996645826534536777757501187503037995162570986247257933582012741341977115847960526892036844818483524712973524527245010599436738890714752320948667755988417188559193315126207328376186707899598937991751140194024241396517413828532901581407629635638153324521815438121097877996689609280118717398228278327299003226369087634265364037583014087816675187281942053977028872878445232457606089058711437898017476421324465624857323037123431130564363197396216576898762900819428358021671186736851544130267079016671300304257821587851864519422667925671014383445328065045220551053511665830047243995251558383469464583344565697329948446840563071703647484330266555097904568307382508613026371129682279772025767848808928544210882174701170198990339627099705136747573240969370066226274874315950687717003053538366217442875547465825172783218945728332676486412942346746751010653300716324963191172588800886527580809302901992510480109200976595295699408670894683512652311810025491802982712326544089630823322810674973598824989708810857664980875243734375700606392707371071746027748123549603551102669267068347450895607884906592075029180016791340837799580040917278013756184039962787332061601950357003313254599208449176306961007434364345186719777202024791338453986906256137430326695039651895164201914045474896530535326045283321716442292261916587030440352074021667682232328370493832977530437154931030419281482951033627811300782677876996275931994654581333397761639312624130162916503076858511559368116407570511034991788444317286753581270737058867563423934304570104941726576350954591181562790276564073058780375427408519872481040196122610200177093271225326872483849798202245822167769353119774948562872735650617600897726378673723247548677557590996595679258934539810884701362825116058763993352740728966021798928043662174038752725158226743226839545285233969248215689944040488986282028422522486300758274281042238251802789553000750234151565635600232077312733019051211972572696305274966987979878562838411335246668857315523740191203767908433040689519652755159867801168849988298360802992353044661179795523992074961169176605654987834384943984677261234491025617261720524784328190490609991034478935987760450085019649242065041580217141363824383037223220614116992021588297446905230366663390755453206411025232456337224032816181052064048652002769409501603934329565742229015261737729524305566080617969331116588996976453355142921177718237780464364894210636741668418740706605702359474419968296163727331440831776477041264610022589399733218957058757231523818323286673842392225019911640529930990316934629195703357786969696166043209985904720172357217878770813079275077491339740496954261817313786528154362755036046956912956229786333583484698354078198452040729722793407193836702702893617269661305968120856608301692524688708565148163564982198099174899687683620774802164390518375208536802846649432692903617736108785463538010975839340423707981065769684382623977262534651696715077145637664081246573198227448390938593092493019979896132333466059771449499347524290858715204969832941879479813269069719579556569899333738038689365616912768544319691248862294325516143065526510234429154625691543231350048215179535144484182032978390722717878525800207076980304358500620674341809175917475396956757934809178263868142940398900684002791357835214772174219867693936002509241437335704086874886512482920272681658420913341385962091034813004913852579296038148905425039667475928268225579560640675178512741772346968240095957472031795815276550696884705504247750946470768653525035530988489003519080529797049044778102240572852743863116333730440746701990568639070229138415106772898882511768350557652809641664603613012565275245799703096242476211463763050988928417802265914044078261088640459260864916650058308056947344310163572829377995914832476376405414984184190316825922320434530088898419568472189920558920799482089472071925640622472698494350926161767112661063346929779273169384714337454995472207565928655620197520650805105384708507577038567966351329671879661470381684366437402051224276258351415045843553341672011154007980001963129158966657898602587974215119750820767137765578939318478759163394017311225444718383015134845303829812048652899916863822831211930381824842101367745193790548654178794845326526391618441421339545309095351331829735771003713582336004580291927990370758896924042411475023926073665456782029371606055837358529853312592494078686140309503162570947650887836698651090237331736059044116737233918755201353782763432238540722468057704096797263487539364657208947897660740367883551049329750029901234340001006638673251532841239571943312825665379696575299220651512302531798698901146131093056460902443346304257069288337701433241639237432527440685630584842568128918242319820693119952163134225540882210317805034705279701293561939355094936290078992699884829957832445607432016394314167596821162214539720322604977460320052250094180137959133299510339731867474337653514413386014703850101480606174155507604687555441252922284517007097867015063332754148836643899566955128159355548287730953041096658454314689741602076172151321169096600876610133667255670543166040647463356086261072647348120030448862066266394712411478085151083724625591691349944064120558529999654169421858600998661028135940313759255992554347440908470620077309607145890368618433593525641450432671986420401848182571036113407007894759642493889219327403674009583990777376917154155504871281324429171328240653827447706339770590462751229826050187766098607891828901053497581250047900526024282119254107638467467717431368425944779735955353948216840122033585569746850007631048971781217782345879273801359923277501611649095125470116124718834169793813957541347989181590820259273864047801696258597723697915051678296771237270702071324376225434486272793867438054769078221570353863757981423684381670315562691439899619027526472659434914249321016000276929873687045162228217559887731010225792353702675005822939093130947487340402378509986756569669150768462089783883401355829147701120854434015346881034767245546928214355627868946002879528444887703306418699684553843357698536417876375231974072048716260885390315974799121623465837973069283319081848505949906671157521163025493233993572591807440497486382114142862638779618077486080714013837857564427350788991090827262844654080800603020168290441056206466698390302726685258887282136740252296822078139109295029901669724184524278573043456325758191208841951435078036169152540157811933409075709223590433573657191408882499492574514381430926389203732282603230089397814648939627292818418275106031300738607043966883897860999088943622708527131692783359368136628769079758671287207499473997348359567116969159613793390565353210821450590072171504544572192491286335351964859502432533471715067421370462343667909124518873139116702617422033236347468031919563155823681589788598876919578560410288061578618368408424533379228978008515944468488552421439139438474506593095904656114664401615831546957199110063231495852473488012406475942605966565177283477223631784002202717148585964647656702635615460858504659635050171593994937037539192507674574079235227640915757657106487329546841912678844039585675156908498895888605773557861246338795253452972187834846584083047935651505092791170561008576292770314046372140159017468425882862581860928158170622893922822561789332117526073415617051397612816242957592567251356916976244201987180209861026636315090282743938188440735589156372439380626813093786242450741465884884167449978836372873362637856259097832677470189392329550429617697713010094690284184757051532719041722957884606882901257933084455660112011319955908605708380258192834408392725693498673041903839124690296214852995798853215485526549900174239956760715807217491450248138355727413144802827268299807641199597557068715575534770646506420879133779436361056632831578739267636388528872029976566133890514903509934974796514053801377224418792924471188387543621043335331364033144118403345668144264114144559440263784237126489858867376562513497511787565313453403930754057079539403277878149063939204876772894720146618069982377353309586273606899574934732428323741461862960186887639591469234302142042352720817468053290619175361686635044619372334533250479638393839678430429560510692470179945977961174210585357247868306341561337019310631707431139416334085402649206370558419682166432901392719503435257143297166343826320043689336463942520622402339418463749180627517642819413506341057895792235991106281014765794501803918663188239977306189328619296372066725708796359448643859803605877755632134545629547380674514616606396361400793251910951668723194512226459275745132148803362088395462809304825996219759093420440919129612662082535589281477497552053739630494632761541350452320839454202956534903505342964875555774419291803197391011291083661762561926898462306955022616501129229588174522349566828752612670018204255146120758013495053592508859159374823094421746730680842025661346713562892868944762226870645841688006597454163241272712831872310839412488661955395829822124820564297160480462974125648472981069132190887054520930954183284957375823527799326620893935427598090066414124956703621463041692970685443167247069365734579555604834152896264215271780161482453572063577565659660076877152013602579040758348976229928858735872280103322124818461699063513762104153883432965415304368882226982877267677888225641772664237589407734332335208124385340991181291801881342372189138073885482148210267139312027189680371596165223855172547582729969509161064079096114802574328766879532088865577689658235097317148780508657291854289976242195825030379113735342748920773412227228410287021340351790743360634821733307589511603040734436182515662201615381475032342297019657554580493797211073862295607910926350345293477278287839277209413031007294812477619856190353473837688923371250368967446493129283102403752147678339500026723008276894742904689813044437999255836078921543884510452620330034493651210205751968294784967488518887750585663975365765541127852038549935160403261867098403979126375156263928250310952962656024213561014457323403884876568422482971114042171966558029304919831350584839701595373357392960201161356819329177828459153127453126249405965701276278278645509848675192105326235289428550337096659599480237697597857962522029613057309932351424025617854323583533052121603529316456773361129137019450039636499208349970032189324532941820993829517659027718790224166041365981499032544008065539493568005433351982595978242991743542428277263840601978237501409040084301378937908398826975642037615050932755723261574160576676777046675246807272477361177836502649221859374216591273231064264627130449455760588661812782925048056089566667937588183282732460918667187397051483302506020846483319944415686543465819131933951117753442443275222331457361407870390492813516388102571827185990978343987998962884926293869381006608298479871619792590255413570818605207438314109410627539914248761573707340719260074025598507378003593974959675861832061142596384224078804890368775084938807568877748074917936775683387899429908975424210238772647160672808472204380203338150165086315643162215552271241970529323118429684987224787829781923866434634862132921267957557634670544083231668684429793762869971021646313429917846825506923051988616512339134417156865308585675915638012320478143009224668203663329590226098019774747572252844052608420243629070866485755001359308809645916394677796675634574750256223818826270776763306042250703645352269899277886165545288898179903717737326370971578277085364624100338686440216410268959315203106803496978474669685569446970761248719590049849835165317692377037582546604599208519010662133107983099484999029764551238996072117538624970389468808599710622737594681229291072706301374573920855132904859683660717610237819005507048974796091740183079287091404519834808253267222602625639908356573583980694061267409543141637964579939099567482269503762054530098459412961011397333995780451933233839302988224809230003163743424267293685243481414893669240162590471107640908029363750499772231390511934477674450188620338159206470060431110419928189962890531151085193958725507549123434823042717090273230416997350534439220966257744178521295946276871971812941874792709094777198378101216328200677815213330989563584729600809220701912446228429992773855918007918855828310777055587530784023121358257438622304971771818478771792044972628735992178765616686639495871105851630997921858192964884477413144152033376012000478537975322189381669874355889971070506132459565268979819994595562768517145028426075781748189767273630634782670357303205390113539176931965625403123200781905510907701022845547817292264820682773440439238637977770253589676810326118773409982037425886134562777267103413685125086299269429426711950992577386650232992834004708848327299908693354619832239231080444371798000179896157958154656102245739710196134919834403457072330811561424525461086374473950768989297327878797977020290888426427482547737714147881996771771816195608426218472185610212897677012984280636537736131035814579297626372906794987368823989193512265153733396524591253868701281504423323679115047989279467434233700126291527568088647325916172303983444374456169507080277798629781438872067282577079352759810724465851950179269799527282329547495693114481025594379412093266888777872362472575533555519690267342888643686785568679876179394187975976177008269121270371411844973353408695765860284979713202413365765276380892025461117020627812376996614069573857084567115719947720909483012035711898446206589801950099327780585957325593777463601148691904752645506172943696841969292917361510674070006264886909607073914946007696285425429054383342972427211507337098048586236017272165770664688899628123664724572384407259014345042577389632794763325378768373946991582872021910689758462197921611967245064900772011990685614586048913894839147032320176408964062023708651863714089234804179485180228529599767286019795542377428341652664392793144280616018358959168961528810659689429648582048780149538460954180752001432556215278933934236093889004246802766748790020199299904381108257639208747373051511067727185066989153433384980194429864958601369913467259179063749444638597134817011625874657741398158698080993320376959627008541527602876440999824303659692930265690466347543059145236329266569556060900133073177167913777646889535464945348051104849373008904048444140309377062977450985596079949164029564371847837215370461025669752238277105714109052163948482304685507805425333945324421508223381885482334803168569898130400603645324782018529052324127314999130237807384292624748980073215510700860612616083157451458758257613527632589172288184414852956258901225120439938703336891278744632930752532490963623695008971409957878110147036993021455750083363021722811758920120161974554822472890531010462706866102896933333313864518543122253259672764569307368705570342939488866284557752768503185026378117552712333146194015834783070745273492785323785224005246272200877682791207282732770294905181025953216016923735807791774759643487826669426598113221580086405985338055671719778924024394959099942038168881061470260707542718754786308287866658821542681699498680141717295335015685252004944931502543531533886800629179116633902561335125918742252339547105842091719897117458985669460162233043331816797409667041332365870082981506611164606776893584217931550649413547735850327751306198509259313662483960289694929459420362509619887493520464388304155244021729258567466916321190518206778155344818193879823870560182727566842104048073152047354105028033304412129731406101134442150393314991964990173038753312024083027113311515393567256435586566799212733841104915139722414551619651822112926941080257031374382798654101019586350977729871194786911478233212136941213710487372141528500492199867877652168018187263089379765421297440098349084393766821589282683068337013532880738791602364021643815611857962653092548807623913562321335532348846982210961275262658444493526918580892237267539786531774816049207204023571273683772857389948243748425747861531624269644285768696933700627425164174457652611886859714702612000249892996672582895770108801206610338472423763487876361020541800619647511347025880929514938918739602315398666758148479054295266870289771200920816953820790071708616804134738986902899861386487712847594977404144261142440171107720728004289548187461277597346416516787750294070216189785817921783262940190582093665433464219524137919196776244637468391874506952783835593383135824795744557924041365951887745510367390243305585062628544532478808339978925886043588279808251030261114804253145809997160666439319818500897651951365630221362318760265262399042895418514248227925186464377617906824678022234255623036720758591068946774535633250878421510787899010304940817308743572255954822600441514731917962977385410375360660086303761185742775195515436280357096847822542651837176769764577106367839194958074204676044206807048310367613907763599883968476726664271741958295655271198274372673162388353896922068370595915521426108814770702869286145734649770048897389884962553946145668129300843766510049014027032514303109030465839908848608969265753832571371120116399780674675156313245119050620010809603137958082155156526214935592253270143613700285977381502873196789768370985296757286823310613568537688603639118825371311007865161029111437405722362533553380384119688665321760473118908117964417702914284196786260766017339384131160449118495004182209145873504791923895556034649382442995359494767993911060382666833323715615316447289672504375433279581928795805757062982191372157302852020651485453420703862621727085990854281637162835995223344095071139692010465459967789796802209113065038822022957696725783908731624028819774695081916236739061859453154739141845194647901113414380095217048709895321342731207907899019409069490648114306790008124875960244082028360476998925134228087731845347593929724447305520741592606899952168886161355547461576387563709054305047150392716250956440099717373457876119542682887375304909240321637194071245350496448673368392518361499638602352589949060523981032897571393835314399973077904837909742364874227538984280810676034970081300406472378348247796083015477454367747520206053697667961169102804067599406061254557245328229129904121823495463376852931461997499832800341681059199945680695992137639553278949722136873046900303766802895384951698959566070353746488067776999365641478585339831834134771556098416803233664260458241027746971011782548515898343206120827888441256511899192948292130291075134795942942806046882648130241306148832719117574367341976616146969676755616126473700997235973239355457245731045879392031434787142401733629069372591140763741264948194149707498752244434136536576721434324446937077391395300909151807218371072904247604846186732071913759831575065443650630804632461437304322171004532202347356530679661235090470291406472557035740191096882673399271022939700992401354666779614648450177272258277008197648220683187719652532429790705155511900437246329958086405632379523699163883649383880440745415376567067196149268172472654303781008700908121868457387023177990482278380408039727521568976926878349948943430506530277315152940657952621497757944111993134433355874165849540627059723922727883587652764880979293321758223685252598497174797103173921405721247715256268825806161148068422125575370607773194975271078732459263884200711871086669025905499323821257487333930813007332480286032230460603269767113304470247668444818347524264461999164173016330258615766299489444443207918069488938157848209296248175968767203011813678692049480807052046711131052568628760880120523289416264043570648690642403651642237897396843901495614685868883050331778007398329558027199129000001080104846380852938113508951468955786954538869356137081786988834289536773774829449289870805206627488832439881269897384560645732707290558633827390946290507528313093500521274853289896338098396445608673792491665476261375374155823358239460436921951535823078959835809368191902336995656301722892996489107413714447397673589696416791943729569602245193054559517618940640600308873215657659747762391179614080983806302005010310814412571320132809451114420421862597027799078487459410941097194475612115240759699600121397431659040141766879015532800063100870064455388846817123700633117562618401516029003117178794777034804850692032077195152191685140050642267484398939456441816060978737039381792496298491028410056910181748499933175064087725431897839889649946536778507588171769160963835647884437588830844618067288688911588279472045628601407441485837319684642289628639578924685294869768004811109379534679244332711592867355640991705862865950289465835227021737319279299795349499643371760323034937962145647001919920527304938156483270581166238039748797980701278009295239287359865195641350484521308723042634161150350633363585407329643770735033030340124036837824402566837959423010273701959782262539885120177469798344728676819012048079402774144059978683784758485881756749198015053283483855864613825866167763551009602672907771226179330920964400185791346659072568971807644629457967133544535311641657459791129190737173083027111011298447313501151996686056410536509332905755743558403424540598379835248519030215189169490746896757943364887604877741575608401232507276267820748125834311988563753287682096805825285995505606570881124883268877237432852270672649580831507075786498633366986505105897714273343804756226720659291962375925818759129836514884683883833171512895118053077356694448982506351575110547924181720345196255524920666978223575908280277947160898901836959021087666321045145018414487967466973277780494349172250178159200304482931412538147424832145894857470013223644360789387116039256397023784059147301792221474255666208287681660978347614349969064551278596091669500267080602778794744781572477392815489750721348929341358688278014612196250045590433617748692071506879468461484814197082182073918478880960855547549188435508772166436036568957683016177246834276607840527506881481945563087704408004044994866705114707365431518628406080873051373510141558607649465836155427005445918001687695990773903909155056274589556779984332025250530122772428848708295595889962085139359159286231565273632658866138595620938122628190288104593999808054801822461182848487954398743017163297508618083894357098294780226562965150558005325500586706582681700234132532150199688254448659176310018625600999489465291593827538773264226015889845424402850554956681830833357565690333815472107672827842790971665085980185728860795945619986584000155541458947997115904328995037151610895688955272498758663267404019271946367800156698827256103391059049813031406128241688329897218088564418742202331478371348421969498529821653268593694768936892521533198205270779149643012088449211417578291653444384790987182564727362950610759031707150840148014006250607257794050322821831538846178623340665292879620596521881207371724326755255766576841356573248256423824960811227613782484781480581920312884378076249175521524483083118570466000637344936903796031980163306101509046424324131348381055178606536156709255999250604692111344424759945748124328577988084804579761680753927432728547951014838961311213809145245872441494919879562281224318038945964194701845317372521072140882351720825088467289322287794723213640196352346057900919406141198706108037995068049870278231186969769755259827945244939855586780678700352962193681754870028765520195966689919062693252277771759383450120661192659005634618542926955465285763641973461851664732816496567807669524204522463737716412630989717375132581141072287550285403634089106028405885026716083002268856873616191005150736080740487624707892602797516684221514363586303037576937829624111006067700346923913804731809017136019109445009020837327590393406173610083814108939917012801753434884695657753702066342550294451063709325800246353723899478388897410429342870956005340930876350493323716412613018804752872513455389564604089831768071982480513894633217549319716197970760929106635214724741288527888983229488424346603757880995764362113447172357663756775880430183954182507308548503533334244075567245588793830453109275319054576368037049965567392125489824120825969125435605407964894162209737203701573615454063750719243051183775599280021088370803692359588922464628361472915542615012473982182374112930877023616135305916561137952021929708552278484142988191933107182145376524802736496412571269578188541698910123742768481323223801203473009414146461116228293335505627750314110792500001448343744884840514284296563322159950945681798143813186828608616140600989311057357293176587678657034260404286316401701633927958918150346215285179300150383211967555660510336446626075657683091585022182336672917160796401654362524812473646249884220988020399259500370235809211778820983453122407490014590059801073786635235681175789932800345506740227893775871331547773882720160690638036739395216902059472688154001618955333143827715228867323005208747262014973940370601480290745848369919778363245258524380115237905148703223351430939142662087355896100810763248496397496665303070999624038772549720829995892217772349116625690148856430097484039406781612052195365473658075845214350519532390109438100986782032665290051582208544458056949532793787290927292385869063592744649249169880123090107941333024249502735903100713822670895310045397150381410992251763493608467543055742309583547969488449609540255994554889625298280146921458616568296934361860519917234794123680957090981555154592611835349056135706443854098210088705971123222783030876617983412536785738119842951573360790389873476610068081495749837901221261803938518698783544809558527339874788397228786583414554363548303977590536391351951097353843447152212157190036933086390436816233548644102159413583306241803612375594071454778377354549733687425440415638105484902651087961768032350407905453787314329784890431812451796642117571054160044615772083149685962936795055601755425948269895868001818667062570286199715328899246361630023552819287294619507603090708041041936669007151357565612253480763567523143420949219277946314254729790521827019375966695285912126847877437921615719915010975637003667610802403971987043762556458195465931477753237712421877320472497482121461071992419441212923698574827631650521511712949998480107517276016259335652813966201279792031984476830995032508238963080224039711813443653546791866826803753237962043787865229376657201320701955694941619610770832459073862578134038507459781128387272924319446030898219166731175902314590860197016019272462297128715140575628495899298649586793858450117804117272630102925083495933618866575681124099865334119412243657673199185623729366524232696846608048649951614015466906234012245724868700710264172912291950947898073770861855902853567164401329234769822545927786632544843150929595442120221444631057402248911483831140683009077668679514385848857337326745744899570954054343875697974086008517337269254772905489878621217901754934659173742726881908848502520784695384343921582012481041429884779683739508233421236044124385309445703405497803747234268097731324209556520937844187425197494114513332861098052872895850673049200196954781049520959609906830529795896764360398670233548085873437036571061126795082054170330478327615191854198166645295013542654107831636615344186385612463706435329982501790942769754524849572018011361806670806753912147055655620889660217829698279411993680581094759197430193324220295456771480338769568495545761972099669813948023883202783291821418901588887579172049200815793715154148195913951600673472966404803152746958960222946175026925051239043364095484931087617398532095607688010809584118552750912861760175892926971391714872972790875452641235965039912275513072080324039654993489635342550834616190624088463324398476660225059658751580930968428598656262949305609979279821625359882983871984861631294687258494666700066397955911694301726441944864539019118732368811104516395200244099411035797586742197955934134389106296722704655576778024307775388487574878276362766788183938871792919863094797592044702878851047784766323953831723157998885786650629194382332254564534197153349013232391412881730726359550386059107721767924706461848559014159684950119680293522844147435439966563440598092822750723900271231216286251511832703079244651256173145898029902089596167338495977743960763930927414438446184281636255381085607081867272096352328902452383389814092988664718365298375697638177930134107967256589121628266157170288122308631964281289438227529812823914159463501760519319009864779477820944053073521379423928088071459393699509297167116377788336657482621234286956183112855015294479690409664324152551337981320504889445557476830515104671935370152948221891480354656649904928952964439604242730004913185291010728766505704537859605835958958987181510139691650501029342367194728326031123710499387406736785068024380046930915202800310630319878971095338232039446856898525837474346281990730339658813240117125664910813909709804128260607107102505424908708915143027193058617149492101616942209277146609671795523188041728504978153019860633878193161845372693479772113870848550247671224882877236659897330807650762014368070620361360616839386621636167841394094662968993558579345456454138730462540033882554523645988870561068443886239732463641768630806619638983375693574885875098653619678156107672894143062047652079449727321347656742576229066140297659294492224920111804747467966940330111015311736799755037555201240559142847966960469201506458005777636457915063950204163252226396518636169728213377502272233433077780557419532692230573995955164966224440451343984915602601799474532009237713091453479929052734519870816183556814156667679926019891632869416242424328168630845936100995770238987324077434981751362256869201638791508323023105417595455580805351939129362752069373844970952441084443007255096631590667140235958740976691858775699369358802380744740810744599229326473357478885033029390585010655378133370532780959677368675232233698571652496099275024302468887088498937815527008750787267249084865210801457381956805434321119445015125621122944436687543735402670071652263518462239237757637888188255265417383430773068309314953100425483057099515076452107922717115732183361707007269364033079243562438418265103765662263032953818100288586351301670616322158990318780546257878371497091753689378118673237934621934774212544371352735692566427786022989398176067483617943206138760996932761171703256931169199457814956118624862807769032020431248751409028894348543037422461289397881695766639340000587128564972983278086738075653844820471175714124820681902175182878372315864220264381807622134369161497848389749363077499772330132544865050285612704300479891581400976613418536617544659514931126775943771545542973760031230097776714532005520183173298350603670864635541552505215307727846242422201036479971130626198443061418618066399544320018318717211199032202145406109985562189408837602422474719817033558022697829822229354679640596593872122065990168039241571358859380516745159353449335488046957117934306429989780584563422959607437831903442531602326503672425014220698229522777603203821832366378980341545530842948777693152636069758190403889084425826580697015086668692924972241938392779553062769619166399041646549714507979760667710925571410287511771406293991964871324486091645376259897863024283246015478015968604534686078886870280735797786360404908807539410709486890464435909242346466850102727202058139500585681300563612849755685629073023120230134064412778365752596966990074127412404922223206473132403231780828708196921424986198668184334661630879002172168951794499549311555144903265436589085248992296655677062372787231651360078600176805225933645754022400733806198829170836448575243452473422652933778455750590495841511333601230543741839145821631268632871843108504302740296334204803986907141991287721532720474088182644938353858313358904169430955000711928409782264331204512505344454641687089499198530487973001872362083362106604208460820546913378343981852913678003123452914604646228689804645463517746626904091597855254769427955287357296181987175934877632655742610053151898710743811307058744671659841418259928741778039789538711880647990054759578804996634512035455968170272660958485215408797715527144511349568862591422019248383671734537124590966979821602720350928755271634374723151656778983456684390511235874731689994482510064265833253234781673655472717895191704595634048809909319945011798692124672469450395045660393078553070030111643653344721053804922175238975238884873945229521166773472059560331728501972042985747489881336038966051943061927581851630844118032757257067632848357724178775644613424522372885537767161512940731649428292379432843086362100408038065091298956979411692812427015686600946108028670990568035533812739805460189494519100087242927598604577568140582702793575529806480209080559130548303582400499294933962702410900556171022806098500517137959383438580056368174239501833145564139543667601935008992761766358358192670831187565447015367712734912972925128486043660869322812275236268632086175705744933459614580325483251427619098883952291920431946128187852884819486704770042260004775417953248879593950066841358459967522428198144198770691399427281028637132256918549612742389007345932052737249594170494267380861892424938468469768801797362576907829359797416539228805232704090701770940663808782757593155448582448685270347007402923310457315800616768336409835407318700816936006061968389796277610923184978091215843984086959363013065354489126646382074380962120967618616918385293039428605637647932978907250503424943492762356972550408921018462554943644672657059208136762489528220561782423032964936143375292388564979741447920647452775993394475872286878915175110666159103886022121632710938161230355085264021260853425278675523620640557796026873510011914095685190597042689569339939560620321473665422892378629980874973233756213267640006414178291903520838763597537941020558114501227524229677411720922729922466951049437137353213226696592388389170596391141137424269462269035392578830832741530253539895359170789166869095491000250060003758047168327324998677095887448714006497457312222704840311992207357583604971019547375154023769876281692723319856525039497945148378591363112480957749926624217596737094066452655070304107613694934598495547971535569407375371575338623197699281270425511772601561685038252710785476641733901357932698661249058153159283780546074613555757069455863376615457676884755425793965279583107536946282926733841548569083433597685418739828863441527961813867357991956525787337961090404929435897629469908068590257409054540439188654994934412306471507778887010755606332108854639092611612676656988043330484517115350341011611324926360632189188327631876082471856452222484352021579276709646187816842550133619001548113603458945328411564220793622671551968627365382616390653320674987980116374314448033231048382965649726976960375456454172561121207988508351606710006006873180812938999182011123028773157107089797490617203047786839262688450663400906379327412444147340516595053391557442421733623167351731718450284311162935364482753079169745333733050914932024450228386987542096902571013794488152093095184775036646108416280522441034670687665026687352075384788614857637672527183435011622639391199160676678886678455050085710543055258913525277675320348718793724662683937102797401274087304000801017278653563312996238666680871574838538010361027699225832271097327751707258361350580730112916079168986660202841853590918895185775628298923391519731148379874234482766356352520391716791138337414635197795844302420884995055458659753220180554347251877026397848212071166223252413939705906407335835523236002320634501111956857909582653428263832313479568012328321203390072312309662753317049836243244467904242519618393502659145884839285619149608143598888060714938090784665392939466088891106068764259039366616000439339106066502772181066970458826272507612333991770948707797678523979594282215296782001957022039242834229685898543882838626682475961612700479841429562144799157310407837326810523080204234180527015625419361003302159781753258868260789452486508872345193420183393343019750654129149060740696787516043595668015824295080926185654317606801343467316473994786485890281136836437950826424336341686562627702914506874098496899698561527175626857825269646685186450387305153475025495246831153721059789432064419816234654888987550132687020985000162447157950618641440723938693671104370002655745458299416270675421537142223133850749821834118319531082487218297137516608886093799653150282743524620351449412482312706273635701880839806837642697986557653664401462364606955100565329372122080339594176302936067252710702264703406982376172615409214044812432546536785347447454536752125615498975008129047537671911273427104108776455799265191269980152541074933950188257848469677789435901247237806118158350015292805483662173436786048824793581665271719056838941581816556553346146171167926760999282016916957328704059846692395382662044078590890853071002932141701733167232106373151812059203726362881185518392055481405827492683945106310185492989670264761106427906625728755672441685287848557621361199519208774676141527057255146368870647637738695662427011239515473039731621506723021446639022550238564719067573405018309693971143591659527326026187096872314029999405978327274948561472832759577718574835786622519390640126554570885593980954030760727682121314773907982020158920704096462669857515514970984592592377644178234471375942048704816006539186634737034891737077440301514934819227259987572517095588613475105936464511265026502791204087290740426834238394221013809838697621264866578281481377408376387312722783173577476994387263234304907341115559653897505569666895615362646826404517984971040552329960220702538419634377982369576203962133332425512168200815013160122396205154678248773679195148520158859896730238566133385680064565280344514070145657612913971462163326481005641799462382525702086186856395540652835980744551209002716826827640583147528813957789216453421087703573255894055467806622459963323443966816865113386727044930703607337812456610765816464953567115643445814182184882151026007986912732178543804370226298195465669472454673998400807563494923944071602797399794346369429638777409842386326128765049810225852528555852079768799663873219500697694178988575375184581829311051115749153204508056595547785495630835828828964953721313386309943356624984978346871581943916297697827556981279477840771457576712575717181012242255017217541320173330266004935847480182087688942563230872655795005378078175848461325323866035661232654590226765452968973094756213355729463490517525763272626582767672422289215123829933036792778427158806208648399616852162042347099626498870725053167902969962930971723459612340931038172873009410772427851411364147212378291088552466634059739188838091096166778412401472065929862486343045207205925216097028640664669478895623309989219237121147074475592818011441433804545029359764289169534598020674768112013160116692962822213098021417932208731688658697644151571093250977595546724732404116143721404106203816973069196522570457469639966406297320047100830118161662129830507833412778038707090233370102710091406770489529623432934654822373368665107348478733772053339841383992456373675142885076463659765372795072665896664262885532462320547407013865853793904539163351457207967027996350149516485005942966688371658644694062448499292021011485946650638682264479611888698379498077012925394977023648778744450905220297988228591236969913505684832690858150164367876982724516680201290061444144998896009160138776430163554403519191061909253565852492957657592908506842329049314054637234355811631031418503483493972695274210621491694435884276332708788460821760424716702219197608019971832727959951745902341080301877708942015292103897827934432238439704546783399211843168661530867261035028339455652947135578846073360530915417757066445833938643988341144397282356157963021777739390760438132694021724646220288515160815432004299877253127337637553972461163856879434962131214631261165630072823801247624198831582415755464371407149984238774062216550938833557498728605484738030797783554820311426807326716113215281772050865549578361973230212143117186366379877944115321907672466845379438378470956149500381158159402090301914828479237172143295480498645865636834850263952414955780610115185516122088093172826735008148399164011675541001005613362450074083601831767530631865731242456022279698331539498275989777148032386698796013964307173491239944226272453810255138182846334598957347661341157469001559786226888323619960301312560960221880132358200015716822967879336077940669204434934976958747661853097504883961105020433160546696351331811646922569465220566410648673094456941153781176789189893194887728892118655083161312611119884484412152203979921129129864697332358408465862004319960498888495882608573487127274596761133418833716261585765653950335045765144108495139769432862486887024134106228508461083787070189030340731544865857539750631231382924697385338927774511272054445157477291443065828863106041118728044823354751671632944477945624122635720510394606773016164095823699587708042659380159523944682895364174975467620013131661335128710998075835750099119394178485401932563334570900367989649398864017623307978035222701130044881310388335070740887124039839860756228446928104163286840051279097008450257898483354597465932144128174913652900825358552588105031170153969649826738681873965623142848184514103577420016578579155636096523691810691141818198212843865673072699605652164098113430526449061505100983774638024221523283134773753859183243894398678895205859465779717321275688911408603181659447606095277961641151202583295749216782642980608244350141037862611242632387217728703438605022751654921839263064823529629759571510499649721923409487670722042104239422592124299768499127044064971320372466400186989623238137462987901284652921326982083001267313701166000201088960188629673457710483274735992168715929567832465325412098918821164714218075088841889308327129330544312231922925463135968233472717119608041794637875728671733084523261948811694193380019990283468463597703799083779782783629962928858536203642380213991926328127693162477463022715088059603297427023722921761356273685637111134377477921242935815416160942929652631530771954772118618544628915992593360374171424445523447044386241159587104454140416421607395000660338486086637337453421222975747065932315012326868307229352361603886061513852409838131812514625783736254952295027031556307763901867163886150743994719268666415751622722349592270144153232605975402144785297730271248314859583943694139792696785637677441080405228362296242923763857386845885312336531017934456577431112071340249605135533094471268287345378517666303009131415498964200955089387481864384110609023692963339889443250629419528990390435332379236386887602479143266043377271028248622166858745150526952314868085584946729961139815156834165010328075306085654821429143265578655634520744295747397209779282206248658711849759705976534932236464943215994202215921249225930580246148569945512626505325091435069345690290865356292951148431172871718022609242822368330331012618819007424164383102128921662206715635481593928322200374030363222056581857144081099296930818870002255879864964236872143482976779319380743422993300875983405634225070667804046239668241702145093752695242602748609934192869621063092635139901605650646831420559594652293577416888408710158725532183722968713624967052096542376476067733487854880893509817410792816610179169494745610958248811928530567325066153114723832053569382919860867616533264575575898041750340289394775215720687311954933711773745936918269714333009499195676664719252641758878586293820987133206130038159866624295378643818177919964506370448155409233780403082854613768566941649007475070895310556309368177719218697877547527252691995365057961117263644955283659605027280857054793441210209184002501879328507524781022092145602415840989394012578929837898648308056197842739849157523773528751562917128745571064658538235997765486543640556811095459533637345177679796127454045473864518385350622177351402525555190935139872916616737351346361920082776120762550914483452506068886408557995180425371222692318832645379591639405001545904410774684536575229175375276476918160827150488624813259959626270928781451005484510744277548847573033040106105773910193085270263632583321875202193539007668671580154371008390814325846910248617971998743155267384477459888435082907000570408044676809914232634903725205454581644673889279539478240215204143291412895279391087339252956864900178486627612065066697364694466044386718936111845709214703695718815904144326514421100308024381050248181795339551399411527891988898116594134541202074608098395186342568947722071481734154095953536910896480533989352085906610834339046971763905662564787250728013531951058211049243490609469478775779733545430272396700240531899894764749558793817198685745820515682482030345029420078747103619670138646809299227242367116019600593581342417298293935027675589732998539766122483807739238200515332428830707297852898689393624298847419801913133404858548688759137379971378132366662819509808102863765595243158862310680353274357928280254719855755035419001852000231389286925079222060776359399929884152137728173093132343436087983758399849224745982721310365194230518397604649715351515927294610684003384233516481285717213547691126124312108457172108585171404231593743769666351179689940240251982728162230448572444796346074665433316126842364819519386097455909645897872544190310406323229050234847141723321921291973926227290144203373869509400603717731322797403154568204931033057016547856751612907433729953359496487056058786473453173497738411702054286721233278471794601003498656842904152624222482695638462660976907382119027282323626886021003727482213867341319417095639383271067872485981272076870839601383146642618234491024261768366732782756653555444310933798093784642459417542607764504691865768394829299445068860889331793864677532912479965898652456376966075827778517924336544810661072985109341105767547693134995853111475418053113352721453360719502220408815969684826725797145374785777080536462542834151357921709662697219772283852074663740481051035628840098036019392466143966307148148662620261550472804400858352976446888070125799813205856553643114786894428202741949816338973903387152784584897101511552878388867346655099319676577855451825527330264258183931221391165422161651841781785145407028397897945818972604910794431702682935398275323288395926525392573540272929119141626709288821315359727429592184918116250536203652205100872409027717835922024324072577207076527615908639074376528582875180813458220419794023419631844103441266835186688438070849989888250125818393938465418141544448856242649164011700225462109592670751246429428971226677680887314086487362956916795986687746428370128572067664786612241611916721424110896970792321901627019972372205115911598402204912300811711672243560434446356221870986658076122537833292365958950643486191500616104366480870566121910298299061910040880336574387176820904607232854911153002742697684312484407338300576100273772488863938672656546219371211394425924965118383488669258307673582022214972990792998220167438176548224714473617470132330985101668083342522115888805108169756296244311961474977439175937897192042277983398530379622742920827709200963295347890040410525046997032286465425919663758714654650134241924531566809614935884313406238112990612759238798265535861958211326829305667127380843042476620201201673689723529707259816161604677778067958642548287819788270255016715605065731045011524656313275754331886940268204230420164374534886986358518636987361594440286819582617211968708322479809710013788823573566907400489012919071423675292613004149879523292098557463493650480988908447196161760716488048026538007122022455046265252338537533565136631667852838845009069749967777968097354578642212266835845896455106605535207554090490905374144779150145672517231077925065512364719367998177447934315144583225747135065608273742552513131711309504400166977386090980433244771587188247579857021051679870117056574786993522156355087585436018958880005457794417303720474460378167818959326868444832545013594015403722059871034255617359242684082365159586264901986828326043204802254870631046392088993337685903617781113122517134714080086460594092600913946758251127947782941204740679155325026943291764330544803172924780827609758206740939819819570773548369277468601146991044047742469365369014791951968634867160563286621034112905493632331044666859002818873343883468138780062512261702751834275543554529769420663026543527016449684654330180525022889133798112429261322519645817688349391070368068592258644242169077986977606378589748099081582951207784200041980087917353232472368546022142388974372482329215383805246319869460541373822110795052010332101306356884932518935163767045335009791023583445245786049048482439746139308157433408231016500815797341866582973502123960029954377486555421990161391652253579153006241470545489440962694706173986613574530070852331233385218231918037334823082916849529082434439131172462368877439680120866252074080816214512588008444915998348035883262256766017498290968099991848403086407683288564220245707014597134147891131953208747481947509812580978367502786926598887619578245947914502236047960895525719952811780115398664275877861179188750060343455684156347318446050070896191877015940845331574030866831206435029435387702483052259953793855030969463692453987809981523622157257324049824244024061202352313125177533458859567657438118777218680927563509666277279965948607106312928615577520350797588087281382204393532306855846625061686092040336877814103066894273051692459304803440905125119866108421193697615378767194283055651431982506180291637021302886963285003935509481795270684388167412169373584432351998219396464203511103367391257089374656800626627897301261036193796478073533837970069001470350390985957002720012519548591022224002514368899119581836084842448784694721834163119254089203329693931882599960352722894465179562029570938451819970572563105263919062917653046212044582098045401119586437851567863954484878712423370249050653831768026476577820832637919755331919158348681619126147609503483101097429425459256698603662950435696386976091463226432344762764679185480182222399396352402490886045881886545753287966746548086556876233343840893745004514429024254379085946896922174520771523877455284638755272405705220079547682778204195225136940416887943064346060737096756259288683866782062883718836174224531794640829608083971476388555548689184978751992895458133374795658843438385779391619654135254355147445439769201918391772818132278291453621303819477489826931110158011041439940188843398482141778456117443080536737909761202515944383617165239205253313081473664465516939384006376290106934652971405399279502223393336179069982495228693749595489758166891048271521388728115781820766046263700911929457593879657497060593999669937739742707730937386988569565979321364187907386305497229695209755169728049650326429757643260992046621875164799940805344533547774347582356292723861271568279865297329520166406930488940586800849109844703754026855526011247391992643529066159789325974330125022516002277035789666210498330208691002302063874948501293000884950601775918141064186279392195353814660928952213109923376223841166828299889452844808782614995393942549616006791455490899546311802542860325671313347764760823610798317951806681519425876406682180890952074973591747164497259883053362767952564500369466276328403995181824361909018483263955723583065060358209668810924440128505689971605275856910705256894100608569294807730591602800054479484717592314430233771039740306806597388470954237814237066047291117811084031183092317018451230058924350471152166687441752462683786305206694469694246780411505956064372951180293029782213603742763036352440395224515305995981749460091744968105157483520640821556411202749809525887348696438253016378551411088699903284080787760278590813332996562608216206852373974117749616716763778065523999791540666135681178549676107447282602912025733075429118131951000474739337038131762264361342331470264897364461641707893915199069774473030305635797535730344554342811348877961047371755648771771649629136774573306923371381568399594289188537316146434691694293682420103870041649317514895719932874935193951633651111956902630860813713674113468930726510046013491785602918736943992799402549450817580456267570289157239243937975926029300926033363771221431064788998713883428116598610296895637009633489216705396125876582305845164526391230165359151837411073015030575613278804686906412904745698368110257140738565043289515090944304712265296750401302606247263875466706607953113883417056498858941319063183322857928744501153453956589226543527559859955670857513729734616921979149685870941219951892962742446378105827133604173965928613230939268425510500474572305389435051957302360097749938009729355627052216930186693901969171349024359417978565465872675268249321261663779050517442300696303639572545711575451289061696899693235186351136859286958850688034442033525828600095497143376374977285940910046739353453429641086079782385630210751768820832670735346391333384457068146714701986675314919856276481239162426152794188818410384542942730591917845600530203487152594260450637469164192725980687625391472302137361188168054216292430556435868126831162988810820233234353179324835452716036574749154584524318418846411627131669664746461452965628424702247602339455314287794330347829442395151631931075531365692460930560390680726495279878109185539205243714910574907457368215456968552321044574769837210543919946254954205052049497475347904163612939063044439482261985066919631638974222970385291654991624581628928024506843109222855499396658997428734508310241063249409726321856944292312964389913732008213651288228763010287646494328446835657027806844700990432191892435994172721938929007592634699177949705619286617949880203955694684453156867261184270273301043088315726671085086703396648829081597660988344995874779601223592626404870449011772575422642569566349130849000182945738711162725174290088743340319732660579939669638614236800288973310731761628184127581671206856181740689501002191379604956500855337748871683622316958994651371740362257332206259944225081940964250729207649154049088650288494710853990555771897984591005036477634710202197404243387343312698613450305554156178957364194969394682323484126520422217984377582163806744870714322547812108788483268943721397678498038389767892920892128831257573803424918016702918518541398826280988301122052932268428428793371125324682434271825311759004464099937752394616424198908031513406758258617349342853436631644777692655293304721386537676211684520917162394731199849905726511254745582628907025400711214827227324031500114449291816614818568708595351478238443077386736352329097190522732115854026136411721069302627655613718909289070479596739634104182466621642484891687983402492579683631132729760554954551003030019346556943475003912645498807969197118511649354628489738406057166927503962652517422780553257672594376496675103442389658009745478784530215604261603079832029611622852460200903259888867050875036679400381708406659855083553903058187971295995621927762076065551721468780783754277470875092420376281911484082319564658272584406029069762168231013800256448285731784323598989982956661652051110794454593446263987115516934239071760789629467802529537797935723956316801455463797324024219698107141862081542626060821407183054746559733013955399511867663742083358933029294320746857807954899142062915783079601032007974436709873746276639286279167951356643553375286747549651786240426430068875784687399015958481426934774673252308039212452874989949272626452015745439475255419813076450701677103404992212752911459320651052958490297731413849466558625081634934771213381846008538234420802621565777647889436794099808271135180737904408597728508895065576197040784530088604888481925260759778948124131295150545105712804093128713110696446364364839850080066903513732955016586406566005809904565227968955756298538879986080001886165593189641555521226392773602421042505950395176215381688789711800954235759536338042592229308554205382486150634987876079852557682376764154143029652957255540856604035741628243440464029973778685261150174762305805780610391634280269567665965594358249483424640934289878597951170931326418459976016094033205131852961864990066507444867087343002772652693357065635487713051032840430918373400191826812795683609643865467727443230679715030813779577454480646565143383765231044507202429367862172513974176380323025247121363619500333248756012954453873420608949729768543063428062689912111244070310790677289727218775430636294570902366182805557521386154363482347146206445839752639774486950363442812311614473247000437246528445361131737087042978015529051787774515146307781236578487477160818130796141968572136055745714137197778350404590744544518442584285487982502295712685536307512896728444906114855006852212551540131245463539879159340760265797552669937911789385826333215406603294857403096216630113770645303567308205843034044516480556545073634235471645280566394566169098095199613222423592868551779601189071379849553620329273895078012500581796529994042197691606753817956443661428924993953717176213373803578933796435920808182469054681438751850749300671158434925976099651191548384379176432355718959672052007829416286846859162895521684484107412711568200170151973089781316212548870274830470001927241935501783076610835699047820679091668903892015620315057889595099246368518314178409851870382584910193178208251986616872497159194819626642599186406740838844731898179444183430963954143462183156456681836875606822394003334026939863001857408344497741561939782954379870952209545528388657842011326950393760169900242852761320882198339203763082766347842592965346138399369872337951916237396611658299397234320202997216059537448302137250682577145135844599212706568052186928732892458651227533411770081333840396342012339227882440811481982034593918519579582973507829839805794955167111560042274789502420736018072253692637774193136487510202020421747509807908337749783234256441800602133944495424253517337882896045987044003806866809903543461362436186922941226265389939667167289749526461830767650471982534197911527889979954724857393621847702400429047831027392557089016206072547885716829851927619941092329267974288492524119981498456554277658375542818028872867888111622297011996081790025252855560089389471228647266857748904287385428298586439718341242293663992930217356959996921810690622131828245419402500673527270819268494408889547288865158222025053160776097443263663287092867010520233573004834620336103705417705479401748053561634851039401640129237749115317904664511046174992584712236520406937450343935017518441081342902592926544413050822405595911155223512014577304326235050383356795882488692711129359335756194241160055873253035318346068110660115429027539241159992271087144555877492299613163719709979264366879410636619976070232941872312093113411300297161077039574393884154701384091649620063787419403900126451713512948927111963928858887299538315346939521691038161127783685483228514615062239490444291712673139173110326020414956904077594609294296254295100340951667116619636117601002873069643323207045103853714945714323282205748008039703545136655280257912363334567100321946593064116700706730420576760457634009623272264767233046242974825687287856200105750800656495799815314172830908797912709351720102274948954426016083183530892681899850012721174627105150397222124783297947704571649334860519332196656553994755481931639471703622408723271309415820528082166221671824474822368943688475126038040668983021873344976839987560316879338923551540285389395304362225465311468299427690895756079391860527908231188045999981315926074978426088199348134536557671183480218488460567760793256105954464075210389084382113491378878389134091743815361566807996193548800174764280639475505202053398256890620988144319113559266081346644907957071098194479596147094843438459348861175245372373664256370026617960382261281348121119283342925837121952555554127773718668617175366170119860560409947517871834319707452972364163699887299568895261663706174940366599011420731254415851953497138372909672231542038234426615881178000488947343246145683524123854795986885941444031403650704225993351656905009110170100137980218103867295549768147730897144471971994414793675549945586546783850905125863835416457411629794105620858337590017888461035227475395040607066253501315360879521480619995108714291303569221077670036481595895699818167672368243839454501366826972384728213618121114418450744759333069438347034828899965121799491527914891610777526817349326255277298640317200703787234652974488332512457151753751310285931795924782901261829858329254425919354845869378030036937623173138562963645838108494069262860347325549953249153333150486799986387386329575510631900293251246814072662126641831191992760877032541706762544775744311802563992532116694747894781118606311973711003659573189992814246724902389339319935978727846237109143880519193464273211114585136072014172527595406952731882127020622902176639912625912332363303257070094750537918478750897688846106010883735968976181133622908631133932997225017454943417082553820081426041922282606707350727251188801634834828430227821080100593960417109030377650046630897353721677680876908064631465649867944317403080819370937258230249203822735428334432843610712274379143591528952896820813351127219057048241826941421000770148710876766691416337273733660583386051042804923401791255442387763437646383026624928081102142301598460474821575083293387914582720305255870276084652652836351692090819085447302651955556811359590245166802976435551445249428830801989402251351886799116825668943753905806559492975191316163751540714089122922747542595859392040856694191956544852772714844406353085129926443093016214078342248514176853556228313806534513925081064014004363367925743175296764246602032645112795749583480987823764003805787795601398500952192197471988860566133584498519894773598769714083835404967710183898031527383725379265038619320226164845279594624603718118457140341402296944478088408430794664849909148549847368352411688768175576743405037606204309941825345364148009985630227144710931864648164394102125204778195644333143043136889555828068908103422813345233070552586280885216434114170031059346820076873981228919074233868887033373218930002941482684446683812330084651629884840704407900170310044930259691524980816063332390567422785349941957329026838496197892255222293146948576619026646675153470909686685611574112273625941864230673156326379157031057109153765847993791373200376856152317749040153821381397005307359151057600062775770499419340754690633904336219411292623339451597809793482071956859179915827266368331173275994107563526989697369504674876530386085996263949837717639830485777152692133583614791654927832314245879694832104374963700351643876248979752082199002113769984281128720223556623227383865724746508367469500716404023904152075779367101393184962544280596416075713096656537629397114124329267148254673067586584004165291762676196785246841340350607124871501296353174532404703293312393905377880562449921193155858418238994556536903918132554097717872087384099196747794510319463195296407012012634888426684095314179131855689212251279966433153199278424084647867936394743565033839545690824669540442126522852626975440807995162071286730772701021999896019645286120178030350518179820424164278071008578626635715735643642061224980015671905696627975840101652157988515980882649461429304867934517212159509666578881768637842973507241955145420616455338956085880409059416107510717921654967184043714042249228650109713091778973091691421067592109893170995678939163254639155881231764031686786561163493542306435889651100908610070476487263865171908064876059851471932382125940384954997485941988585474896530582558251232629978776917859244880530239416807223091888823528328396249064288317627832046695902406226056849087462119798765539895697321778555882323032857439879939691303712668540541900188725513740100816962171482744579785658455523736877303074119756829718991427121053529000746037865487990485544413174500053378900635116328244306770103074529852098888125558154136888091275429711831819501031900960826624820034832074524126702633172386351432855572243248014382342332905479398515674777245180999937396242775261843024274414250015325760609629613901812750587671050142270158716007432798370764542078932797617538995867410579544312518154844190913835611238528268896765066778742571357388466353975956240545713769704227445520725198703928478160889509301667082213010049762886786254448621223359640412088515764084389141254985134289807740308227025482613907336960843461447241856217394299828140786948180894831274945725680128902734009651928110884045542031835049628261126996772304086782064017375201680835625364884542725059677943923809481947434169881627418860553242986866201956188606536360009641204647571836287573840038054323124007795076418916231029843210485431534225957545022641033958122314724105790933243198300036372965752261048952150517948690221200219162979485981952321506071876846213702515138222105574062421698057359304682383653640588881460999528280570275723089523522371646785475097543361417322485300540177364142829483711353471737689697352329001211672406028259507861161913141423835359872280038890721240939394469438784553860573731883703357707407699195683652920976366441065546311650289367278833394176728998895714639243419137015372648725547386754120616894996331475336610181278770191284130592864551464288826332912233050599713044281353187744838184425321543580225714451397751542645787504261953428306280698101603904486683000355760623004629317613644573041558001031734831071700841894756097903789109304842435212467809017844997818593892795940406885137892379009680252082565702701491209298648048360231649325583145219204598246676419984288881412925568505832166920521111473921604881382623728210268491098263630699216561919649761604407244454194513709279606430600382634850632183800577771102606288243992756670678344072062301762261247456030316880682271181884636245268482152602148782906356564211037436591912910499114156136385635739568297224849957552112849515712383517528709507837585209136187677009660584787770301691985868495688447419783254260048887619066220689588724247082131494205462770256200347722378651287866353097661911893955617311190981206450679851652923735510371029066751604596626373379470708067842922170936194913695569616210888211662946587281915357927533918751576584291636485498520025634015104887540599611481138430399790375476239707613529213500981201827187234211972327940345192405628176255084493072982121697405332036321507417206012803870640396724759366036442175813258643065998660861927349155133672444795540188179152786499691288749148593239375390090375207121802085145391796755604330434568958395120631777452267010013953120867105686985552016699278686091246615441422820462966164474748306075104606945476041926736127077086337072612174982633497907235043220744248885500524070477242546641872584337150359746345007461708539154435762488651688136229615989904252586368102743381888121066967881983218702953876474158815831536097894173536669031420756290172532617080149139155761871077866215136723975242438888877131838487070377664897460388069175392412842951026398721882226489256197183540880113301691266434610837233173209301999304523546308145929437455242914037567552512330017515907423161659472485336027070127114149942438048637123079787067470206995290728606756812001046150490021084268943963750285466041623441444195883203214197909768973393928802333334699887956594066128939224531941293586709991263686748347163238847183032637852348074137635696071405992790466942655721761823298632829297430256683437350489228881707245019796308392761839079958555613377233268419192625094963431489368011763374090925258526151030370491606399257893642600480585102943578340839235973147347057215465602491302973067413097977133097087731354380152611848705381631195910894447348603636649047575135374307399187113935711715098425646960570058007969763657092583900685710086636856341085126716357977138135199831436143498176633518564417186550146362780063050447243774803769955725788048764618527659186937168194445795625210366370855209447202350537117564032197860127429952300169365739060012949935316055104150196724018863755462813970168070800881775594626858959866704095550556798882874177190032057679672893857621258559557606578046973254942845017208086707406871228690684944869714278724650818556820231691023151618641290057369864115094995115158207006578936885310769383774387675338710440460637376838877186253169592762800581268328856343704298150595713292436919923791210618848172859851620482744054780704013426548833622626176540516078405643946358148371942338025712074882023458918187354741759345532088952496084578226964113495215324775981957284199912513393382358482557008646662415721869393707671656926772897886171555320953900702028542829895913868611517047428793273617487605569412984478288477319280504335231022481735869159770233573841885870642863743289568596751053825640771913818679978200158892909483089805925854620769596407584213492778589625106020231890835198091027649096696102259012631149278653725937005735718153598937483319859653557786201215904492326335697247738110846999347066951496598819343286993533478461669908390469761835643809316252202531544566301479988374875546292811607011400214026537194438813323672374100328839183056421603473051484314482750700384184486809279161923864124412749557058121195455975626098359044673905944966965939108706633447338963315973489512630530710269795897462042706832497336007532861194717126105531608227197627980958519463138256192517125934866257736870007126615501931114541786451102994726470864917609291297558845974960650273056991609826145917497127223860147434261944965892968016262475004190252048867029401977180545237663084027138957060082559495249471147860078351056724934748368275815887610500862557212819612120578088874006814276036949226826967521728181489301583947694981671220609228559371381931643919661476432103883221168869534078161606756209492980939397362420310471461424427362025222815586262176729218713655655118623111813941487043626450900655411614855254160637186265722951531749559863193155165757491131274973624309917945751729011951741325737298486118089316129020193002500093823646455094932420778249591577321351315177760092333496109274744428034778824269198344744353001920867908034450050658828186332021129272040268072169750583604078212739073768048344672006864030320847385430476868119484374832248047246614893921705553855433943985717266027933902889528025166973047451196431887016648630801889606727294544389137669767292643927043338435775117297321188035504931559914506036129435456162037158936331088968889609978110087670818981244295923848177694815675742011500421226735460376061922509820016837794042032681712406261563175715754272997158975002468425759496742881100969250754922984298171985017825002578334988371574170715019988749908381063089456996208539533383921671824036688068444540619667866415046230677653841086853021658295756580938734922838515441482354167237030325917435551016874633660402986971696779404791440614590797175765328300084325521460826871071090099338250651301388756336138079053169989482967945619191704978894235625632553739279032360748779943099611159239172031078232756888823124719044216371503968625979435692918292631326843185981383090480956377692857491374630622291517617928878916038056169750852001706586434491988248807881734628151817543279780076985621500260217882471228104523680756511315765676766536101540092511134931100905226531854241185606388224612427253948075771527340107287986852890745913220462052094886735754209937628100319894864049752284828295549260885510259395344931686309018443136510466485015198365207709698631587086041984230738247153544246604017307059858396536850745561501876092162763026025270950488193266354960692503997568663928623901527960222017260600415134889372552179081766384857960939856037871097994533550778975813747926077723369173315707437279154581133649500623834256824814937685138081721389192032526522975234790720413058222233941513705475988857988211189230183941571684729624272928697774151892191735639696798396834017435661537785565510398627193670009556359707695916391015466859853136032726175417618659744600546135520888835292270609082970321337869421390731470166025623733489498491623044752990149113514980666465718027266275359225867084119658475155176730144663747343467738407310233078474117199934112613948556062352555261932406181206866171766486937996605610309463053792343706376228149078816871807113391480974400526178533119386497789196510606346863795498649840564956839573981398186606999248499155862267494010175842477866516521494182701947440366990656435751408887137515768781436926625746946557018747890850340759378889138785767751647997248555766665003888385920269452189584008874522355313328304801496428424043902260177258772747776602861163118711375576189289316584491497111349733606375208232419766876928906149164174730416685272499423486959983966587354722715011719286159876409863183016748480681117143286179951150354253082161018146929169221646294008771816747094943862492638441467715775131471531815930959471742543815770403729470807106465825530097379387715071943381399658117704248229076637665255749572112806109290181747819674705642763013443701964969956925776463868661531661817478623594836738329071000639029486801809967063083540417011565692042510478930769136444966155934626930091368762805111758391672359272707165046952375251899361871922014326905283791634411703780766844072350351009504215606685102186510194624306121873019336022713180947167712684431943302489920933890633916853623168970253149250136993586878849725129262233235272030679238350912687116742882324352991804062238635133949729831013330961728907439240105051897293244170011514979928971039151001720098235325464905471045485178017190963666269214215325829202621667744815333625256398149732688331486170169156498044637673782366595566396038464144784772928913274569038443722042691278974985052125403038540480540532312591804586746750421738703688804829412538847114616827409911435568253811542168124963939578359863216019784087600825063594322374757107880606124754775437478712154534446149523754362868705121835043175284903461792195608411572348162709582262528639822965210927691896404159738080319958620467196726385339015986689452452991721950082258235015105724293629676371960221943960483941542859619755827407720219204010927441547068520035639107021654500231264621628793729538953112064636408525065332708168331954812533979082027070429764676241963244129285038807194605575803754866440558567968108086439661807895591016678200245879763390369218246981064617777736225847120775857400993708397024640938835461570020361474778233970556793934568874184850470682974322140925445009547139024862253467205573444181996802873248122089466159594685987157668149371632899873931068625670225188133033442957012674122540511897180120692121949728341898122523941538519347197913091546523414348181734157773790506500968525083389186315617955634756584425330754697999840467562160261027790513063639965456326364391428903713202848982110103685341921691689933017807786439113076639254514482336981825616771507317398537030878451160120231979912854297600193016861377199748019898931613125052920840824126337471866316936155718839080709930160758523413009554366154299898949688033944922033827752219987795689442964399095176766415614499544174997877873956498094097788025320129671546385865736638179814405967347804048830257021627377826964530911038773375291651378326999431293472449472998082974024169641841316098035554476876945167095607401550947063962562721594571842010250659417916149011346852722766137272895526623739916939692626545217910569107592916269795387329489778670639607123477373555036968276076795110669207117521795777535599946549563023841179418970691200001260390471035220685257934004723166887573085432177126471305817459980588464001348226634925040214879299233073961084886473190074007816906753123037858649357549389220679711294906959542318788424375080068586148001366502183261179113741124943830153128752179064863249872773681664376299870901773246695001360339614238452669992653751888743876712870990636277392763883385643014752488885189036535626527712581814591702099680854385763481571212100804993048211824531564388697872209573039864068478445718940156369297206589923846592778492785717591560749298938245724132969595264911967159569084601747591008326936572123124415443136527680183946874564043996956457574123234319756984078153873507512376233036879332776814248422359818632618336825405072514258895438731860822267730847213374705069178682726150991215502767279650107681564246176288091310677407653393184592286394001061675596447128720639514417673478490353707909096499945122181468411428223407901093292633671939385850478647079942808380521419559398225632038922192882173911919894039468598692507468609877120381553867206315959934284008220751794487521805112602622850722295294584131764519463464199110199638035651456786293667361228994717648809833247000196769060605615018062178219781378031821048325700089095598363300038907121918577394387210042180970945188952550190075124755415498411624422344680008143834273460313742945213744304515896051672613434121163006869588440797719304429279447233257056086076606827577981363687888690649231430625982202216167588864374295428742592575289725362642564793291479115429806982337200150861887337738582593741615532919811714122130889168999209606899599347022410987164596888658881165834289636401369522491576852477767449389251459162670406552871061404073277507091986212632129702927156807572831981922362123334699735670389521606212609896468892097068074765086988266457574556278966247866660297241783585908560557625223527731130907359596280855618118451749631040549706628598321080854341968744585353468184604096868858435605321358401149856057966307589232911419027262040069733367811052154808364972733808911126570483380842847381991646066431064371372719964984293400786170621380742556700589448048260857472728437100136793209132027321654710375876624634531505699551589989903874399321009752656061594014630799741562636540170141126172250624092892374015150698371619898756645237100892443294930944300571611535405842064499926238313226341805806681554380146338520179383235086800002344926309412369320296106700954765506314339422896056426165281115216193027616998504282843878830820836058740904353223867918785461907034665031379739182600184730117661123165883494090248174322547186426112895319351244750065095479938608330974229683519842516142207325249079649520439956556682277301170724049018782920401164770988521476358821954157901453316477371644634336437083940185859530341022405307591439151941203537407710580661724131255588209523067720845491265541407427889037862230325434720288234849550230856430741747082406783277242973440568691242825711651870401806574733362129540876624086297066173933848323827013159873265079100702708558123070899167564091338190798230738476281249170945254838711417320018421471092866135712860962121355299525118590155158143630659742399005156319509105218816060288800818460700705335011892923970333684512175208285394703221728356876398866687190419285303549648116362187462541998750800951923348839893654838111082924173000267969644534665303984125728717958428257598263156060045769626297454158608951339221053865616301004552424475444268343669747102727911952759719256559126454745514705797334967643782179569606172773179347521846526894614436993752720456384219908119865689320792544905035938411960421804610458945981785726609790551930969644132645780389294350558106478767216007088736384467173656147073166880194051832658846062551871584936492821866002807413285795238375190495871341970173386407595142314356245593303888608191397405460372738187574143031452321955086193102770788758203383605056089779621649042154811145776755349855401637609869233992051777576224229133652468891017132406981627664901191061681447441401070930420950202798248238102321823202865572668522168056638556574978572312535076031837111234784316156136448225046999966785029070522123926542689307993080950150714953884569749857332646123503373335372163603505864104464667533028398028071954619609444096627811007395073172060037621040075160147282426630282926758430797717832260869832485043934078711371555211859146708849636572936194278667398824323497828763399086746139662060863641112078566627534469275855745430625815554228029481028123263808312546840498845750860642172224896414763303182283772090663005867963479365418756595678958370462912608118567701746584180589473337608416896703618254445100362647131073926455550268035363433749713428841366415434197079262826281270645762022845738911600854633021973827507772431834235773343323157430230652941333741611296741337333773233178623012149612120492548970736574560060455311829911437113163147047356809042882718341404291554736170480211253767604730661179511919044341430887786566951117660856713358729380507619608175536978972980023883557108854372627864208966133796017675505624226806722816352074308709521416450042437149397933017155355830889011697812852808665828728909399878721088305488430865253440687540475041962934928851595543334500305494425248503605516989605878688356166775770944806776793703124123513053826324052887359344430349511536164782652980355914778955935191553023007076159228504008685826072859786569956436409533263748997154441451496854445180167222722246470755614816551571680981900021586579326751128213207757385044856739548444212984205457091474579225201587551600885536452660249764456832129021030669790882983895558792595332387718477505250447767894077740222655762057764386277279343594062040418578147550071417876039564287474773765517378328155709234810833464399895721040829925874172001356807874122346749574524284996501897526222735454821762153193379581264946513281601937073937433456627278840185178719893215284411960449578892796826730368361546226988570611285929977123997803201421374827711175270619287292643690277467835484435438595742279654094163675445348897108033225267977981042500913079635030749218576307234203231854981936149167645151404652828949243081383434321768170377508902007652617267401773026048828798847809059942449177263177967666123028688097016387834662647231888371045018331669744118932057808351992454191830833259490736235504840543937606354693363744350857496273953997984942592464701264032745549954727584574706177133250943190105575920136404631656285286245613418288986804803247666009091401628760715313032227599033562530408442436677479866064273066498048653184764453162708981987820504476802971276631841389983784222475626854356209233307155612560211684280222195733206473852833512290606572083364805384008262830358820011350423926271225323068061609379598439621084540185558034840778275487825712504267040468472070095799416230302706915718870342823939794610667953331980204479915794703045057006595907681561361445776739984677267327039489760968607086740940406582879608183503114239726899144918958306685596347089799730006385027049557785431694531427871139416193080387796446580414800430254267483995419968566855890996020638751068216383646567993288715313021027930295827459284958541770336039540818902002708680729270127205395190329069991808307331654245206621272075851577684378150753415830947613087000543345619690091451889343369945237076399690106931229545389951626490997966095960533017405745870120722342884864426406041573355389420881235866077261232617977964600620820011300135521407817372516263098667503819837742806563848052972183808827394564898787154322239103460979681399230325275662734053133672950936508057676514202697600974566240806611126046466455163979779767729516345804199697138809946694890662494245400905397352101993206135390683868340482982695186803458289412734895560230810485592950149469219313245939740267296096148295303220661936532054281484964341087173718993891899924736348656367658576866331095615511632944027170353455937880220391441160496553446110966384231293696574872824021483329520599122260473716725280951910221611653539010478336412323431406152766914943740868918112596051661032755270761674652077099896956777722897210932006047680667303095543811890375327849898362767364565055539723891309309992011199766351469237859060623924137565700705211958838103812313454627083844832149785734355133610075120389758773843430419046796826100309004220863983882315586024927657622098474118265902074077652637200120991344719216199783003241325668338540616283891115013033119290895123222678037136902775902943435985194995549298528131142199026357958972288570269532409272389122189184900736120248199188650823056997950948689195022949241979757878752930253631932944436776271956796797546064549596230980771246349117828543276119783054573256668347415449917402073533460147484169671240016821963172753655219055174079964033319772811210596869057516231367326288235157683979550866879886839235764342646419745961349428716579787518342481855562349821900143596643332624318672730694298440570822222643790750710610986430539733696131074392224805994011672670181606447744386387884969235252822999994107712139608042572979484050798313342712605299750042294493433162809473453697764694616156989669497015106941838942323890901993210087115845409511470624132022647881984760716584989921695202751971855648323533955323654120390356825785267042498951975310077891611226178709616367651225259839877248954862753352564519825973716428842528453008125728168002711115636592935315105362418435515166275430598279400755445466081073977663148604413962705243615920215255218950185574198213675419163271864737282726775672943533698427873640530950355482670932131151307244115392939925695001582933638879684618824725380646405319149881954966742188965205666533502876411433382492614905677715707881612660141428787208445118881132449819829483734553146073079420272047415132633173432582623027823871079583902174887370774859822516013492275059802943004514494040095406626087796862563817111300747937912797123797544058345948011230826625441640340799370747638882775822552645372907776664689793948494783277946431198976336375662444462634836157222130266346270698621446081475103783930145313991570718815759858233543853978188629288350012317387334419373176536128781124546139467416671718067768284541678743045885978608199832415151743240001100082482772499308291798635645259060185366816774548777587159808774911823520914005638954750933343116125209722264812664961690876081025099463842693961985820381701167363442260044430695035348012223540993762524281093407805668097884046554856196778148197643541001424439914281014723150704543744998810730782296540726326657851920919084530709526357024890130427287946296418428652908343238644958520338841109011291940060489675850195952222780728385532789936104013665011965507453825594669039960830170532667470642872957690922996773096316235450278574027134657671656041363505836687062201359665256183845172231898762753690102942109003583445119301336860131617930652187108144749591772529957132374501027969451991481098378398259790415242749662812347968258500903839608814560437333134987230546101887778843547104231322297083099188717296104095528334158640635734909639178601941565452543626664351810270022961674788001268241664076199488749823645408379520233050206704303604844512502371467380914794689285234061433077555105730852277768126085254629160833781835761897185630043711395814654292364557184207537507067951573587658636128626128941234537730837163756692405110583511768695293101918722316566907550088046186933511646612010972994649009852927060855135046444122906532674038527407448823903138967196455513563566710935315176228044026038872483453465084018606192708316033327408680829447617825954594486417682299823075078809340813609748011832714145327653526466519071222999140805913046460594976787493188577112247910273899604317978538908471398453349802385579920668646707364871291554493996859697057551499401782454114963415943898398295513238947755237127787234485579291670656243957150043835328573908169119292283691291981453038936097947375508046293163117861102555395581473558503664730956455040708233184764968998742984122736809958997872771121280608787884569979864629968586876576843886322693458736397662752989747953279617408113595035101462178764279803543360072936237179075847410435874278711193357347357224921019877071438242062347654693403032531933076178748517870678356613991140458026619329735303082579160663584988969193225483815406375444794431587412457811214526728387646604496291220945360261692138928812670129746082793271319741176203189703140253610368390007824016338311425336000292692688940608217539030124575493052554590635531829668872317164275246626860793890086872090405503832784545224281166966993970826732250871301565509729278252224143258127637271062755555166350975921672684962982651143061248532797007078471336567378364135499690531100407895790496115635889066607568004296452720869342221800520782895266594395712491704470765531847836372765305072076288933495689700969828668167452936045944184244872539453640035948967191568974491399103770899224671042892928972838057257389354878405855907459136803720023159028587707433956082348849963416500651515134974356952190190093592338638969121540778225406552008360516011776159891158164575026873953332539754294118684661735023545762955172364665034487026904606350821039252157691311237859017206579530110659219073881706324410435911970186809738983414152270317024274423093452412346400017772979679656979774172383413515981136681054494031515800765421790128155816053232133374526831246988879694866279671350424951884664512559226858615962431611404684189700734298152481967738431517223406101830104633513648258607699143801688158348186344998410657969676826485019114561108589732501860601050005663054096816995263161711422948118474534078487967553116522484815618731882459807094823209137514946796500628686263377711231014340089872158211654545645443065492836176537862420758396410465347464267343027321478742976627452793885931839894800001969965652345150797533823796068430355360745577443104940012656000867807347303636988906212576567599531755761212815253008536463392714408990817483329724918757529030513832011558518176327506801547123119405997348805319541920790184890606073990833134425994179980958244802343558330845020706916626323022219841613455177385142227227574906048356831455505463863680397209973660796061732378287699259243589005340273985809930926372045785040883146888632011375696002841801929905621122082017008209154433181131444278666572059665586188186331420004802830348791441237441117173586525876419356088540985856251272552337133447008501905665618848911125136073680688407825060780554011133831217808312353942969299898200939425715220045928903908570468628515381660490825486878912459969361374156603356386607752457280613754618664891853196461487677212906884225350377495134321920382770088426861230662366231965576307039071637400277265261814811189408535406217936234273346823262619918843314096969671616472853968677056979393317613653491575947996042631909301713862628965681302986882655135910137820803347121012388894550459131338460374945897317984817679012773789639855258767535844569600783367147572868876815489865924850944094535822299538744303307192775924654885034647100021775089398279673536053987373680334576575944425609000106326648082714829213711524840678363328949502622947035527623334688472139891446909469481157836740813151826959374114099804899522508741900192991751202679694421699883733284994780686230249533050205864047569229571499617347743157855896078675143279280534881033343708333674158471591508262412804677005077261055780929937669188733581371855939087545516727804517873575664823758124351314957014189057835121756467297254536107192489821009665075231098235836630291891545305056584223000063728177280358250058110916415703875814672906463710968434357323544524133021424238334242291041718709312127556548556851010661325023055016270574857905884201540460806800416002011647681409916930826912509625672503044956716044767074773258016668574888341214281337975609745735737944969916809893652862732381733107358109542941021800140038329444283911960134829587991567866010705474202683666029079490224951822293791762282007614310146558713199720122161455591744040881048908189641808784282070491158355570898015617257039211089413900853289083448090465970069782347730930965619187817058098243670358322221381304213734579183960582424796716937379887168122640845013549170367858393734730427529140236893292110012809931692874811617518216948770935964477963385310586615791241558744351414731569851032972593709605228889642483612916986643897685038839860380372989085163876378871773991748936743476224131570920121562438137424830055344065706413340003049421092372231340063049486492994870443787113274665809401385363269303791969893354047789857578445858899247026030630239470606817821935089926600203406022391631664827825822460870110675127355077155575941782298091405654070947731651388747176395111499129620679942596429002662669680628780699725427124474234909720473021266917722514338265537580005131482947437636179678078544389550370193484963735508756345588720096488960992362390624128542504650010469114717860181474912192077439548036374872951814904696437270268186994305742307274411464761737840962317108324756796507253919421084114662686184001543888908881303292306624338109587082504298516313267643446725350641880705118660265922017402753248767456203282013921592886634993540669198567507276666047359541969779003083139317647853827424741827469332843582021871606793539568489140182877318031989550556175935726683045017769920339663057450814333706498184450861547308822234989791725959422004539638210502312105044180975746887828465459464089206126237270811779943643004093027297666380323580675242975725199246258523213485702620108417285911289562399327213744157011938743280999037560434623744916477637273463788968189488606708751576416055654890360477669403153285791621914947792699442618552734854913272438996745612598532511053954536732023208041767524533552289662181080122837397913692681517634436199531272488686796822993102687869156565088039957672342514811669947249408131125395033319420609153171557425840986115390811164116927795990496367494172713815358122350509646106958140588247219834149394213442001265200785647393955256125328534842397342212787729395683131240786679282917905005503878149765032839556775561407193833921056330197702605718261798105019037181333685075448980769331805213304070055220123767205904577824208739634253879201041629326607468268857483782901812154784074911169310575976544968532718263684800123310436170880674203547334737687970287752165127043217990656853725575102241476804342290115491455707754181467651285307233634076750228207608228655283453188140358761206010303587910100860361728694827826117664077747084083467368709724305138561127263644191190032540612761298835474334422596797343254842238694058170224468306236236338641888438255626529955178034731148344670589226439173133030086345555247826511125341615814498422835187361975972748797368169781841477130121391443793602836145774016222035690629212421342649728055631991187994351091795705676315540927084782185160378155028836528507385260164134610138225885873850773951431578626536738724666169222659819103758369226922834163130606505442149556540730755990367024275217450337541394054380236933895655185776545403775258198013138317051632734710605884880601541993985162776962475150394256870970212799480031757782434769623359060849818623725534142653055267915407009639641591726539843809603225533288402868812493647668274468920541079472665486382090686558036982833500807015046844352784957885448831759730282801773600496182934457483875942577591063225188333487897098475538300236664197313173271603958581235098274059010275123236034350548286387565373463653263674767821802105419425256434671038555789439408322462668083882394006322378886575816711476162884620672326776152868874067350303463606768524924946403687455288681686042200381429013260759003839228148164831013314135529430727137469394717371318580358345135077493238947713012494692272881177471435041183874770982048735284563238751020621644615917496301413945358691895920440405404627709574193535175600826198301102643286896386468154232323865323229403690979816728550137432400348101071568496435804754289206668319118306143338513349905515820186811175070723296191047400123010430918882534032212684801371158140719469863701740638171742766207091576027931726256058717158938161997308904787320155288589339106141865036382661379626503985184287597135743556524173636401796516318033836581168352865949979953514611406185671105352152947393775842926252830924636579589340234761577073568078701686858656088237503374208607545106784444818060506418025045151236809291587525622898969028403146536855005235014807196819058652848754163076702285735083531916822760461868711451072651916790554196266985118273887302371249597516951554362596238199478947456467611784970708614434086131010935381175736641025194865438074651470524615188791814095770807443629353752480244030850438085414427484200259803687920559513343270601186484786855778613283819454690292461354719330911032751892391610545306103723557598251154131897430786179681375497712461678615998293035123912651777989877129266571020672869106857407806430318918568217702007689087713074248238750626556396546018831103967517505150432086187753281937324766078284326158291276986465036887144911765060265720610766966640105647574791928710470518943488205833435363719010025639214123983041190268642378586126125812554401097527311404506022330883366239716499938941058458860164981895795239057196672216741810935850436994755221468225567279957450496082327042853949482581272771467393395737970109253004895622152819360708153304424751701202697807258989897630504372850774061297500882718346120600795876997006565615445517911107270396241023132436596727959925484552632391072581355530185610855571416661277788961994259667664789960607309544502056289123163973139498431326371406860224992707665943099387657929549568381119024442958144414107050793038931686917669337986338577690568425752551686855518065895787241076922093988883983632166019063373896127606249347757528260576468141307762163509697187717808786833497254130050471795534012991652979819223641392586979851722423017548080136793720107523772609492847774085725651386579836720405963692088535507533681613613191153872532981767849859487266283032907433403949311977639718339881374232593788595932485254956438193889079929594220582209968652972823348650488071009575412201542594782934985054367365971243036393277425788518768500296795452203922607334084573383818420503002257845211731317328054848902058080304603782256267587718271249953394965317875615460807215803579537195026429931120055926614134355064290249092090771374065222532977950014388359569828259537452943043495715633072303393902794504781669461922932234025206689507243765240808647280953700095926640385566063435735554094677062372710143003322282171112829753425205089194842367006787082894369962560580692813210530804426304162044945766235374113819146536640435033740047228422320176449306364225840882074005678103216965132963786983131469305876649020336117825301739686524526563718483873821976870860301217074936334011299284882795631884995396944088140134964138390728137519957565114973129279720882793831344939592730856531192935226668618499127887161957435162247731863693503073397083262069271748328672009978653691154323732405214258717341403697959191563605136929595199932687987196851694863993499135258321365187478108286131271520584546681480191626326844505975265880834318439473551436734933521425749822041310645107096145166028526025583135764718121636188197619154720670725854455910051233760484885482517943359223443710405532254160643174816492292272438937751929901973722461219081083993015261276568311949696277445368277222798538182792170470362142493967781164943432089619647096926559041047644055415251297641645653127394607671466113304091029312184983788104916595098370957524681322993629553401936801530023043448663394064634963948907445910322767249333026448236595138831699211772563721914842082219952984236050806472484631332518503674641576739504792242099145450031884659005617363742638005815671766794131538960405894842797213015289655899281013294424568994707129601654369416144055539337374173757165118818652096781506898096340702271841107125271037156026290934085469096418054219660158942993609496012058652083098385601783045049816162673259270254780739640093575460271741967250542144944820868682918014770349988233617488105509779538732057850991210597489024674905752165453188012971695330440335611515014720917679748288279712395769690649835276412449282145423439333597900219555181423761462296418902956170533215659329693284754490548018147557705957721204625701961489379192573051480991268261060825980910656484347427468100997690430351620425800909849123983603903739605360777485744208582989322908179684760408043863275574012017036239831116456959484624132145636180048552892408525771979529159759383610028612158084148349856171039874755457625825444464068621228244803054022400642349699039142760594731019192964318258000541629604637881196262216563548415708878401129353592163038389953072395470632698039054816459585438194890540646393482400012983979822571513762890284040671782531193660248231295096050727095299324615228374834086708876854591119418527795627659404044225024996120625736556920778310845179095710937681968382440856653103253530939752483341972182565036113445471309874403595433891236458340875780126274960312639334389410145164018401144447286459358140794844395932633452205500566496875226275241404732648767965414263550175061744480259606531149214313898745006183822512921972119926934448287158265238361713386853487180537401843918235748154928881235319668614166026476646752349211719703653098900574150105133066714796357785568133117799938381009182388026796826134360722513614099778816576811626944209193364414938561374151480450687922233773504339702318907853229447944211538544693103994846289534465765239586331926921783180856635795074500168950458234032711424418154249500005977588643019752149589550286819366951782708908206195311562877514227221193693280234071270161897798554194799984057611733883290109811672348981616920736135996864601757978895017459217377795833534844241904559744951430950207326247981718042853521974024532937665858527306650665089213663009828323834173124673880742696538527747190223579543035094025664411590975866057729187934929345875068609024944221082028664325609045339148371004389189433434806635797974363652902575987283553276461906775334014434548030485612127877371214221057854418808962817052876692194660411846230269920737771580497351205986986236594801339204983721401982902957895061078627817905910231969761709139541841145029590206741385634921265561022593689992323130012145182271262813909758468084981167472963883687542733034727181790655326420664328905595594114872640517342819607898116606858889893570482898544409500930538235426691454221936408602896312458652909529561628109380200373220478547375141488036225655515592128520622050921420518596748209796070427634369693638677518775593178876723139751417204884248353507670869362088061750830074004756279692567933460281501989313270047817782601366669358664814309037436255477369686640537854066556017383586254250400618638098256584413367836599820168033558570123952263891597394505419744161847819226860983549893870562133780523780607643744916753492334037346088213702156258580739050335019441657246488860857971520539172149456977878406290275510639238878787465151446383849816928951598073754182500681185217984702329346376665347633660753478276830220718384246107572898447562402725164389937391231129295125037444780905737633915844291096087625676927940790002171067479890042215707111219245122420390021840884337549545299498649592986278626184603698719822183230267603242450719665686871486716017162444854890780910291221500503836141283667755770226827454319434264978979772798806009831031683330092391527293664128016089624278718677490901415628342508677990104443578045641337657785315129576565774910734618438300811484114057725833205323434372218841990291749541736145628456092011218910251263570679659227605649376057708507985460494539055722427193595831663000302581801711565243843915292203451586907664557950088514965279559422451747145132957984473953920670689823097578079265756982952487282795991223650696922199432783269373495777555791344478442848662596937833459832606858282286568072312851326931155078641928964555047151150370204740284709273829616410587467549056074253919070771937587369624875396765813744172831531991852572204145706892130992699770434272032832021232334787629195872986527279746391176154930919037029383485176266389380620096226344018889373462712785869603083606515813206426441168989513937729962308990153518822925327825604520100612883455852522253776108326431709427774683379609686546721378256411024120966748417325428430090385325506166856260759977281729224933653836758675612119873758963385007662707115169488386402213343642427803595895342223705485974128913759323568790290986291482991236352282413988418854518134678327557863003118635466042237854722117392428790109327050123057667276914495526453140784649839712654379281696801286350093219335674996052762970351363734439879447725502667101189467046767765705263536701367241997600547681499592340620210506709401143582288757000750143421086887804831790221599488437429460820869600355741086193713511631872008083079758335035321938162641281372049991781429416629396083217443104577899900540592455639358025309588617896815183259897656753624914621643650457449353896831914552891599335527160916204095244656262563608960491290177288711770874088006853588232280568475496305165008870584264810750499841587607707939449945289084121857324951013598697925708839403604809982765091097285970303929020582439170691051792771852306768930559579607343923096368027943534296065473211226466047711216367955925105008772585384480181078722745149551719527568599382637474218951914052301009786641055591212643156494625019319174870582517887947134879748536138165918606677589365306278406824649375792802253899460730007614731753382932487790847879018037855607670340317047619994378475182435486921807515053485545007740214129455814584341383955593271318920859785598541131894361519777022780998513423342767293638194163726131336569642177448481078272674175260916733289348320927124382571638374693932568587156438705607931403724898383247908738713844397709893569001887523512838454181789097463950631026960529847120236768113409095420504603405934947339766518697539377003484643708238984727448746068071314243221361779626014321872378954314161615695313424381080377183192157675907788593724137888894584537590525827985630361367093380976688611117675734756239965976975590007006637990124994564998193912104106078669435001486410536364590946056337937308003880803728184717278238002594930026042816818912274501833161081533226998774955276015001047115528500740834631939874692496490862917199880385368698957721625946505614502647771794928099500708660383171209229883592727453543598198725044571009880950368676656647619789782249671252085987061524021957544426700604302956513480853624815008496911596204218787287819047210453708311853112203556727685087085237637522037279473751119359476297312464914628853109897045133163099421734222725647820722066429359982323322892174909667979560479109068783517240718035280550204252157342221026165397209328160024904197411951089096926017923810287864203653689171813421077970622937374810972729544255442426535805256971577338106992169200562833904471464922832976045571042137810900606359642368947350532814547270016286725481248118799083541375624392331649260970265926008351878760649166357255625551096399922993479355063498911371305035723589567574570117213476948876851903794931850087375703466134556439618343358324042753452222213781684687160172088753943163015035775691646952409710039280111042641506378636177842661972018095895782771728491759261547695798414134006246199026262492470961468078310425523832112957440853576295458279060350144203613221986228660307309230842163900101137185420575156628815565302892785524484369980987689449958863929919992019717329683146064069415312348731681973653312134365859493890894187399937657843578527049882157630092634416634380952100334066641665793017768988662616004035504543528533543644887150614785119885421645323244068453007508221689085123420142478924348339843330456283365264564324992309378307558564194107476841564544094568779577177172889734440001554937574067127919408026860014466756273644241816775968800237281501318875838690305213084502637864569267588989544403487746011376572869884664098159364724151434546151731785987784529455904828969012928782307526090922858875959276407006349503089087417419202087511850665747784896477060215801768165125299621503079475607871451594459841787426544881362182575997550578749381124401405036409621903126625383942738490864731571280120382886994536666043468319276555130499548701810271740919907423252858365296447217466351683390902506057502159932518141584408906328806934135259085081119053373998491268416938360663473272058743771512243723145870427025302448394690690336376500549205546307288493262115750111282985508739398102070334591510653070486701367136559434487649793386260377133132102615060642839994849730635975529945993072722866704312208600067985361695664282176049871153498843334010207069605506290033436697749378325844266104653575959353665868014245690490954160495445130027777926119637930079293472566400441904404584940734255854051342539026508076705520097056914213461959832380746085462138973800441927179544687622740482497031474311717402161976130075397594008355444478810042937637769425166873734453637826650557209562497802921020733423574957469427638119160332985391421469249518262375466366086799078758086487744572921691116744529670218741774319624782574014548508860471874572557268994476775943618412561665955204082874490210644193238763806002935803791207235244682606746661405866100554575462989059751744355902893376315056078645392006954089418723773000745356691539787630969428366042189661737400829917504212389738118461091423924400429209276035429857626770322118772989823365346565251843279666861266565089800379970762081956034034066450888573666339224768393070175661319816974565963866453311227829280938787454279626622618828103735533089425211081547520903885578119922672476523685613883216508183010852378136154431292261486035266193276263665232189853410302549912204575829175625238892130973474324209732478402981625316341223976094414199942549826549028302727493165588344957100980577902309553584603402710943323421065526169806479649489992689256048513185070626523696908562642488460053976832515423702928713172370070901311194885614277817869538187946587060077520233418476011893256348700358970536512459713937592847293419411006888897710158059002060382359411673964599807031244768702540223002222123521395345900275270587319243298334959696692112437750827302357743220569804705114502377919270301073739952632060441112308871693371143212041507603746281128264102086358230530946762909492636159070962479410266722539323021225594103177593142432189386943221039901186479923042567097295586752057720436530928089653254347918829865791202741371941199257479959585317700730438337206937946024975958311004466180590205943507263830655542758386310376519569886048102539869690867399507260878150202327440057005633783585016649980715874828094038950817497577071302186562506669346669917795945902164412731968003358948350293876396868517908965637536895105995834112179754243805544428814751098291310216450348435569958020484582005741082284643172673593394195956748844215960335455847754142479191978693571187021537304734252720827782253603654272951463938700919154373405580727282644329044159995604066796234492629230184579953656730572074804274929292438398110182970370230662363472482177039347583472332445490006961170596163631476853455251331207672263911740487107151769533752467745490442569079757397893631122658984992179490532784626903011084723527164173898668550559781378495314291990557163210048762618052605211758138658622334278506475046054980030127930345594860912952018982903531201896222661514177336915641463946433295792258734539030429238457077214914659678410008334879035226639082337416118162728810986990920537605763601709709016415726765333379603857590491576420731435394519950790798465141159168814741020868130609136583144841080354365669619974612049492380611158210188424210772043301883653898565381887458252191256444317748072568449625960024176514050187855702511136892045438463833308249372157706819931324814344067734051482224225788598761439259788496896841065138305674536247457807579526617163466533701054120446312894463637984990949876927973603836050256391940814000800397274839517849936846584089321630316886043717897858039329458578934889648846566182022805043359069225727746409511905664596402296246090839920097122009757400905557051402914721360283804674793744151275548456709456867901730923250216386422203297228015675485935011191767858228316145399109410571270698854120885185588810952258208718174435039140506912728885782677687510921015096655062657372060733693885561994041798763286014085963259872434504302774692587561222010531921192584157135849999703014131407621477946355397769244266309692863885161175848694510213320082198791282565025605385378031911035414481454322713002947743204680584506599839133641902166797409999264902280603796397400031854723151406885688425829873210057858872856424016135716772912565182327121342293501140921203544453000358774347269787185673111417196767789250423321271886604301665481325567154220256468244719169546617777460085070291809360052633412399040071309098228871530115834781453058088679877085209963036082543536165676727412067541860352174028265441521131213073057352144583929333778538814476668983098340507051781387300849578270726303744069145779974293755982913626790237515548332217774780684465093807309332498850579944205454737041840927893656452916617824593226880975511584739525877371446627760352763449053484331604572729628609536001462336997487703576686270815096341762900592727954582872395138982960064093841202555278587687835102659283147267357769584516088255105693554635188029289826901073790826502927192224590676847995293940406004113016197900562831967325351582959430440923333696122858336973399202907589409787991677847072040442532084510144823559103767843344997866635746556325218918055768483402867698841075895977455959210307695620558584574048434134969469870951783070709806938954115572241578859918572011383360840864068440229544679120592643377872858898229903809524199015807015518620231189522325710977212344605968628559921684052566847732814792374475367026499829489629581074828947288062561177299402743092556389732978161442499333779249119412494774755455614913548594220056905224441985942910678137064387070321954988099785012564811220910178622664167770277488750932647404634479881441634743259231920412220524895782078887920096850805819097090170242787884492526858928944857040169830177182450294617992435931905238770294312578284997493811963750323224217653220052036025349657334881519966226731572617516915969484880803014131376574807139258032743641845796683080681645178632647242032532400283137120243529707888036820695295808293072397787319842704646501829335385370039186481336554295930946770709322962188281574016260559433859453630038420477208300292014736904711265930451471027336830920206225630518323953186426762087517973852573303470261646735122644709425581063588180936092279239001344963743695787507135059627799345457067943575194845970484262729587263337107396338859635982839567274126685022733602345918098188349043177578793727654349930403168682875616871282237014320306528446533737663228697292551956091993877908553964625772555325783691787848597394634672075940887996095343767352937207188534139399860674871073188196693589068036879361609241861277897037248078648576502291974234606406302311087846572000709828796469193310662266855019652773773400124538706209952072194288492011290063524738336759265904094732954440335396020702300009917734062018960862101754318989019091262357218413670295330440812092060023900117285429828665247144697185572854784328363406021779517845550336182711190144218376306065711117187288449895306238672818788255009975622979399310393497018186917954898856652662857112653231652719050819698629760906902549431380995994699959817383355420290122002523122375536116567779216908296367461866481795042963572236596816943643625675248085077022107414104918487307857069644672138545932554038542721930015338581305546027733396427777173913046276407187768992735296372521850192060181981605180868634019991176975123745764393507371419541619668143457260421507899484574036291352285255308136494876353017881733323858999180863790993166533310537260643348611955882028908888902112880413685146301670456063734457660743540529085554766295121944137167106691441106444230790764920206032770365032729141688969809235093592160738075645109187272072255598136860638388544699532166793353600018676526675356393092518292656454917006682106655181436390834515910006005995757249716446997437186791097549432202613335826129023393213316147721112033482580986052517261097187570161587906959692356757111806449587642838704278250753551889804290474536088863377469433396414310570885783810858643204156257151458124684840698855355306839228919841765243273670645609041118286074909420165409963490646825672903750885322770382000925482179246209432365407833162730301372223118550077462245307167957594919786279478651431778718457955440102627729897145409316937811769020913993821087333215935943079461662694366987058698520865437763726407412983195458461881407166301006782342215849756332249002675566308976555806905543341617214917789811124161180669135041894449016518320138948984503443594611678511594328416729073379011632645079063556704677300532722700706515740023878098969303280988430837660293581673212986980403952543665562242269551043596038792006211412928455704649556348675436654737934917415445433638510216794383088975866425112634521446780881507636986052291649427268942000299661260685456390546586715154586486492832129765641162077745251293327032335729787867382727129174920190962096377325693917767468821674184189246624715201155952055736460308975249146317629658213065249526429951065881771987410990173114116023728006743390709500175623658291747769005986470084527432015298126420156189369386813234813573117930415513631622180457072172667431948283537650086545110919787794761919378473559347037506606170449917139475946860603440366971756084697204344177584620708985475146314464878801788483481534108817368363604319750707387297872185075378186844044207560178268694787356445352181867124829989268774865773060966431771688436854455763498371525766845835347666478357132154781804659306087726502401575110295786254730396179311372241696422516810274160688559319595898707614551957287901392212552521196858776231908630584396188830506221190501247364930286574776084635425546341021835847196122759275696215132143350693164905168681469365734281712763718755353777245302400727258227969020193291878684723513990868832478315442813515134287829359546230958170074168425802112589228587454880892526591571005720106295247187580770089705860896783901952484608334500477388103196938490418488384868067056614258897075750675393598775581695150149879711004584773505236852604752040170833403641557513594689921872969987731124893453405116344712021027991420634144992822680051042056237859361738770781968065834141516018026508664337454893707000429042701638929854572145665472116333772578809749165678438269357406081290632663951436380500967605376482715282505986456023680012368967605841379858253372869137491248528752757150164224322063547286511776422966492713659372182605679057194152148381121357379069328386527706330879940473657046111113339428853673975975069818229269718352801179021386513186838271683524176100793035002570510889794609122473779981924034260013648690450669244996048392341905670514883656867798016075049101825709746689117240219063867316223693745919296583053021616801748111455424166967610847751428844327092341793166371564711207980769629119373994688137745421270946192090154600951948244119828692338031162789346299333758786560317866428975358521627358838325527795741752432626751433493312774417786137782147303489333145441381574293103816835951369579834369792755489273154615140539521862996150280110856947483760001618442128412995855120831299472251047040229425937814789531011497367981410864642715434980168842120680222348561090699139175341672694219181853645866755271643852243389958078104002709692775477240026720671414745594301348299527375942827961494402349014294908162025323291513252831979417681271680548326492824074359029865297623183319276433371085153136802484801809128880947231268456250461595119448703919809091462920289079747379470922599063357196551398061169794084993061789934136647210570109141803785761272964149319577354521444754744849667796519241104244416663629089850113551493360236447961431278843307737120886641414780819242624413379621857817999390571966514240876404161671578127391924144116148238675597577728435243411677964386638540658698584672636819565588294707987099702339634916977527705646834984811050932266682446416804838356237039245369142473540394883815477578496186833080101193594548523866179251816709251295952551265062613303788320335097572192897823035712789941811527227773778488010505379725022982562922224891335828258501178831455660603706402785610515662728133040160705735396033591512478152822496382072220539982105363425712381725535696154668241908625496134785051678968959710631690131821750109008022953905857489968247845452890235259917279633057476053698581229327571572468524161898035696371176861221555618545973206211556651206485164459775193725149611187876300090093763296318889460540224408249425937006844609851789994530306657606101051545886116264460097115688971763375595017327391756325762189513924460005433708020063221471322105256162426145141255776194196372613437013217339451489946072747880684402806787435832933432702443936357540470801383479072264564254257909776918071115426514203127089652484995511995485961928242347889586040646621253769973388112187703846608052582453725666901549196733130989306520186686490942700435978158071270858869882955230986844803549463023075323426768970349608903730317210571525888915385992323378260060362875442720477145365729995719269863468192016433590278887863537642498903331982423236040587521414363731898066918630298254807636789126063087705703084131113954763287130972046927288591275610396269189776072453777749223927819007197153753683662430035843205074739655087270661892930568765981596087035665827702798703054336224686001376194176070798083824065547533895918072147324413905675852795473306391401698932300755214384131164052371346880562235455603319353716361209772053762962334271678473637260250593984950618175469914399607451624573664244248957366238988922678109431360961578719448657050595887582882230470222821949583349352416348883923899531479744776314833588260841497737147813373576606673822151668959793160113501226328087354665825629736551622375871050683973659135904368709465367955466761146354680143044554762831091372796567051904673876526961859441448564472422894388524333920703513919555416366743097766838784103542040450648730363752262927465517806768677231911157660190742691051444919521778903842748938824781500255889502221726062032147481149027454213160021497088453281437079558727783611137757393568264938928142620700189206156065848934379501176930590195804088808689334242507178504671848945214283919554311453263541839900787772966420907175801037079564066795082166000975362001891503937454424906926119081449994318401450177073281808718314444546954938239931069801284929079930016047948550372619456905194611501941705829864710142345000125043775930291034072024953952552841918570152699814028909483028700779909910932237205271566592806576526130136853700445201559692392299052001913845465501533469073071450416015991814535259723832167156827665054640311504825780445445443893183462985118914907409152405431836276524674139599418606512519800991399523197341354450211020492641764029858566018086853191416234597682646635447469406950534807019791491012563120891325385415917823192691660122625216807748325986402672910904617983858893376878044510218837200209132850381999326968934135703063328662121713987939446608951563542781287984729838478953698766298714015083381920059331660017063708729994864661115334876250393123697389901664848696315371615910095564430560863306687635678414877403078129600555468022410533700875295792557479288867915622677197130427047486967586258917408132721068985995653582236783205502343346391291703406885679619644534619584490038037356390336438563328560743375398304481079949740169165929830039476948942297402122831501362801579437763467090821646082840163834724525334154526401552014422540433647103798592818583632666266952750961257077124477378252610831541904480811966323498108378374781455193462728079915729174323734230319916934907173819960405891386820205691096414972221180844126488304100240668217425782512051088588711190569582362066415070061548937345904926470243772233532564615025797435065701496524717190676514495839798142040743488566559442662071930260547858176776560940747603787290303203200100013774079961926852146957181946241461938376961603923571813155740824342616808917378791306346030249504995384293342192200648491674845204154671261602167478164415673952593049593715714989489119078122861543268627054174508098050225762129452334758047045280082658698183134865528570240670670731107754726900357792713870809883933037404044518782286536988746318910785432238506231525391524162018542034299710132674687575704942947790144147407800276653159696386307206163568013149432854810821069864480631958140703701524210155247107938570981678259286244608795364530766855453495455038100114449669862035131717146873705293711136286608701220512327491859442544229035446495534342914259667325327581753652655710785202719098451652237735290212304015342718370936326749179357231738617185355283292620404562044367877478336149868996178037962139111090869369950977552951006710485655106093579760952344753314114500163941694233558548851068276831916187288380407228839339256902790475992864900411889330591914231014398188971629282610283544853374882443421154393807978366867842984343643863523240383167690601997612942520903479822789139738253184477738043679925757060983402109271293090710787910661681793194602167139769901732454005561724575676348725170206655315366826805507680974112742937519013610481711304097840938367219458840096789268173159786520320052989494262286218328863720591090699487188891595275065543501045091003349993954735827071072591540973311276954401262973224096238858740123423868117824768398028413926677428995546914766511729440253539398148478129811914999441525052354802681610619572282194118925684011468786374577129848373548781006025204612192961619154919689869718818329625510119346531324752476632727161464790984127596075997781969538430335370152139162479825182593106708520054657814397496781171806580307945177749471754202639705179545214379760645388475271380846278950536866785165657874919899055526920906867931701628970248249793323440374490035691563470949453953289007504572285060153403442647359225391944895271975545883103038915986575753038951567798632270045573942128638416015997825719152317663876546469459590085218197804961403451762750057215084129259842022192154102083042810585713134052591277292135185211812391604958776348809964907485569032738234539184508750822582343302045034075765907062190963352526458023272749451181798342719822201067487047182677644104702894705376583355341128867572276620308919042088220948376384547929993684003162270092597526790161562177956318991786502086569299370002461583288341215829202157559397711881318855234308950686354941889402885092237946016624181969729993698062172329445249070742143692556220949956099683743596504567659064313922435859212056960523550040214679325738330681450793896661024450370028784475615144692251051875077596797232359856648740312338686631334398868266238030795494348613451086645491148316792338009745714295468490264665587226826612281551958319994588295602597627152273768903755057104580519817112472231006651965075818914526291673675904931539474205557921204583383917684175138267212408496797314434274396426260773796781484470262199283982230125065216602389016682037904466467729382952746081355413830264325825685891206672247402627578771869213434425513614557781764102805225910927080007434255155905995975464889617125052526275979200902116968106971335392912352301732609556458020659406268257605681734303497085837814658227159060990820438666454666854992955051888159557736424509441419327280970142893307152148627083536319110634461313535742963050916067785281604092437699063211605463791943796405394723412730756060833054384593843463914313120249474890062760360572676061981476546612474834961856053120866734133053378047882402130883615676145792447311779789039488803113982439170017905833736723255902640267940271987344714816860025856252571210078790060508348831782754027390896749238304226808830108448653708937687645538143849471092156462573255887467299481210178043445416804183525574456047265203818847014223243411963528227996842848259844982309145613495551749660534640055675147441689528372369535214904473339663963538006046936209902979677910862926586799494581013883611442036809001227092135259681073700779914455815062037259271238415607057153215398870726103684481709100037285945791774487790010388141932681429552783881966445519836004090544018432717201958233504101663853538738136345002947102467718107235152984662821922772418912497558464514986378115985634951126206311651540005062588488135780375450278063803823411831995671659301503918926658664850725702765686153814617993558513797702066816923348213985853069363085548000663775783007885924846758332437667081234339517847013778324894680878308551474365413054707615325940757198090115506885193698540842044685429232970622599476766246071960456326620392583205190948786602376316351085752076209956549210037343154638374807261641319241533301437051445373862728145244390314679343877331451148487475017152715208399032961076432864570824067669663027260540580443522380121371861163301709725895702737940005131459929289982205011680616298237540707358772934622603921687254543577017530863568724595042206307014087055125987873984231077022279962780480684764324240726219277160470605271626364950717216086855501056586558812624283770562482425820187617129205415046358435067940868587665945961929295678213424908703371321344447010534415560247709135944426376982275879014998059898544603364027887681729132371951583199430812260462178452456382215544679247005045002226098274972540447363524624382468519029869715826920640104333675580496026271720084440484154262435658974049449351856431005619517550045231602120171556824416135033690560694711893295240048739867047603985793173345451313891792277640583239964121305912736035401009450524081933682269561736568029550033026213223800065614619499657528636273188648319177712210980078735788167241287892731755746541984916593073729699516837734012564819993317911151493556421460436783297254630046497261381258954058563030574658650763442076071941007666069611760409807932931586164552509221037919589088113081354614499658734519634091903205056805619446184564727990142967873976807476152272158849364889453058537495520835996013063473817840091060454131646435839264732960942265652161187434621507041440433349626223533383752493260852191941492354367211812895592273513693478483425904722804748936898863349307842983702019643974226953998819589550588553792914497762739430220217983768878352705372357423106475783443287116481254778455689947673201430769392569674580722464852462757674365572995682464262027560124263734894704512257616291883390760601658375686379697173305252564166811484284271129370649609562292284041065401830320887344916477912671557230313062703266617836990427242485847161906018490839955787205298095217638715783309946591918236273343369432170130590819888526803982961599135758493050105590582080784380514888916773038907461255046059221985212940435699929104088846145830815901060964828757527985083265120827355193020614920799649452115647903513288754894197279523830065389760152193797007868438422186624774166929140385801870131049246077259177487901226460105790939124217805913821011539316034907499375274049169831685982683459093762433261720606306808679696657401303254272017132174804287602968975586266738543149604889893730886690792170445227286273987601661350012317947774582951518190842284965106994201970352532177123883777474389066285864475815901780618819639399476275380955508858528840627599582753164678252797734738527865486063701531741581842979755332957989495613805795663181872289485061466943807078871154947522123144585517336175646859715949031641722445962278923660013917962529840047736482479383468889031096951110367800636911694372480469013276723616128291188450923401426858082247259321376065505301312297867380919316723313224284994569553952745749458259473007321600241537381962956159345479212376224134963628301749214360849020833768643995051595082184089108733434538797923542354514979733341890391188170120265015461216542494037545261541319472057920439179636294374596116750998310962694091806280463350550613392876215844761529936782766956879930502885946671089797870970194650318525694633483594626189241942848172409733856687477347016051040631961341680902695771029848125904841054063202936931051353026048029759876832342155613732870518131534860179724192282618398273506470623598123840795547696399458561296265104583992861425563915079417669793039671490835349821055438137487685133179715793633219494012908092001756916064661985517373262857554079536024213766261719633154265215378563527122441737652946809067325253648098530346040948288889234390093347914552243418057132991604626315332546872724953057726826674474373412273209873526313620763249207589737149535943340470163829342184210990442395822696122714303420973170029295276417811742496152319099704998968620157150889786560878177345590344037989071257840851701456656559457945149864193036512758894229512423972774035108953574485071714991224498541083308392697078745032576685552000511047585125896063581773868776540922046519857864120489265956562252016698321404201854613690060419226966036677447326421907098466003614105908815959815119500707142403837161641344979419337899440437764266628411369611114576553259802934176912569851407100651611974972510733556833338131484328197499318002204146419296982582866932782137226664043297571404085503019196660513076979937638869649543887304303242439326384630051076121514045068262913005707129238714559322519022531929486774496336516456622005246071365299214075542352732816780550999884550805211818627030198118272246720087631249221195268448508148053861313088924543938058548856867163611698469858928578468553672588124790571034675117680323110744570478151696576216049366607446385346224035048535944119322960293568539691450214231791243058024943678756391856211518696266950206862180476390140756957245875633498415487099051723001255183044054112575627150841264955946717728990611357313757448603240674411361753298232026376464677992537524623704717859959373126477203577240916568404685581136233901480823951917147382918883278933308500445770035939417667224052455073639984993397666049887082427457437424121971750135221970813262661828970123604724779968573649603995415980466947094711329208847312544173683434355027515866372740601582774301938189609264495954910777811278604344668072053277014220501168700799225220194304858551162618476794947769800485541822263800360081454113099980494641360925260432803859789224894022072959356547258569885189952007010478166281533460365700839161441639695572114599509147764904858906153672442840160367291747284824880369127564212474559714211325740006294389144254497202039267242977516303175553204704963749410875719091142569134945754220058341854164754232646919653976904998891214110084161093243607494857017171521771393684678281059818176607673967990557644518698786215787258675789125135241517167119996474324662947465016327525089555027926902962989000920440176777889075218707067827185501003239114483276042923847940227223441660065387974529337962289938769900373758416937731192061789903080043575007527241312178123267967799490217418898214479817132332157796480228838956322578459366604714632133189038772913546631893117956370991876871932231909919534082819954145155723209328270009270728800218777749378445163848238661597847037262712622480673328215268855643167901448733865826922081730917194825395616021421383340006717856796787633812929828380283128828992410941861561650172587918797264008709168747593290170895674582571087316028089263752947214482006310800957233794690884440732855637757206500530810700918849345458147114428986466875453290076844247813954388763902941999312526938880936974612486360258754483770554719589740909271314063640153160395557855867504888750544412312218467931017994210141081021521570969280007666189414795272606077715831053593522339981979576699572562412027348686371082274043993438153370143382313904318545649270721325444760233396771010244756877773519458675207859217397957613123322735081307363032856230094696253935116263573659464079131278719014299579297224284811924551550257475742963626987063059857850594746232282831879232814091879439324620733676064971877931521265974073953202762934064196876884388029253488106458741547698805319875698622265379329016129265944687009147555885911082859415047707839599807135081979998512618017709042809095272113901146953626092964204717698861013486957100577157016746149543718884858502412197208381450434757572102924946535909779678740452501832687786692729442799055776629857940266918116575578326260574294417709630071874716190362256411194901787732154656814649241011352009898399601897167347917369462331444422060851472011835723141489124604439354799889491298540015690575607847081312728941457384242360629329109434759863372137264450543621145672356327536636031863933051295224590754758492449870371521874326991716699955915190485427127509158538075544674828581616239640982332599069564554327407264697838454194012358114354229955038793070476712332152468757390093684189105256505897836315225589219333189021484395472856673875452024834725164996970120025035430948198070637267889624254285974164041607762444043197822903851454024631156364115699672592909841849290764634760065271866263988113371043645929103237042162446875245693522315910182040455506667091294631520060693212400994630486356891658700705560571097358793481743530462311716252951386767458081365416257031196726030657549735667875296243314644210645491681337780892808958913262052228301764579464343337198567871596375593054828585995218276121002012347195917609229957120607517651927365693481485158506376100261411723246680942693192850494702159661759392642907116691243299534148490851765250144280244147855827444692043742143849800490790983578189478254330227240262251418026443777955935468717065560800980260924613773371797186911733157563342792089164968510656979736237289958280146201480222099701453065191012445556297046084529688942722888035295420515436196634786588105772564299994243533101279154275306400185480388364345551892646333156410152471375529676596892363523120847387221227247569799938572988847701649076742157906069141342110448374947020978611705169936712902750695635047091169672487298348824087356171574407858095765849236656367407322550197920473550554308890357424990428358821977717106455298558088133001753254382239636227775486605816839937972340479127438735128236273859404724899437628573180298107945825955307735696731708680657552594578533510259621867786079470528926929411586472910847096970629329620871311803904864484410886118048963825082453582495793267682335864182298855820778522064467809378749860362111121529845810901249892004434264385418704413833575271964645214824281285796206113707456413264557168130770707117206233027519908949095483107315130743294142504258951981803309291250752119575990144025404966357504100073314300364201577412927951873073065872571717731787540752346153076080329721609882905882252686111724472984525056605168657638832481407964893305141367338104185238485539883845259326169330341720974690914613672091783240164212934804882870778547348701416699539989724938317270238182314417124159401989281292102393249466662710548533049234131506872557818586629928396578599876997024708727899322135464459619238882361038655231993627870852724186683893789455698382599177917638270789012030610374769461226601356573972670589022722524351741737910710681840232632999510371919329609661609531246483279256029187071760465179528841728239986997636305705974894385015709984819707658969688577828317270867499927613159616358098470411745969948987871753902412187868349684723703211404085788610899316119267563834628780530935099339781323609949072833911532408505814275527220913999737535989215652693087382725647345123285932922135639266061048823388533672855250098357637078698021720162323380680384187923006650567496263713190318800642616290889884733779450182376693996811584550289860033548984181969063856881860919450375259239850152704963518891543437482551225584719314841362486517524317258804046337517472177477707319497115835054047541040031045249686385133858304444535110831554086938389526799835305947333717161334561948030989861764729028639496589266940105249766323182259133526800341290692663220612806201809481892480252277837940031005832694702927815707311711310233755336246316191938945607835424480395010788930103156054544244524275083336455532565103782314451586874633698657596037656307619362854033775181357295080177943546171066803501591601331224662502685528889766107702119071581325808376237133980404605335720933715753153266784399986077483266400664398626847856138798495282404696157173298005895146775179960734448619623009437041757164857419614759956898834204913658452223706166273812994273909718084502334108787047497445873799552367898280799269522681760655228483867849126048308724186674172512094574109253553486971906765917933540496628206768342294381963783516686175426880227970238895218430609429550481466393066973902505893730186461994070584408550349131788415639713705088618864898153038852031724138465907653494323246853653443625017238128678888715733245321753722716869334153477112925730598044789804820120750144149641328849064836592727117924398896175929395926647048647869088260911015485254764956795869423458960890469844942837253610683243506136033977161156614595739458734827871475231216675495819840857705267016648565129715631502871643323844248713986098360348589445598628717432480458967579633728037620811191897409360710485243590876669204378928678177600976223986798508045860249707857276417642706517581653803277281318725142627171192327056122207200074102890078944756127551685830828331048688813329109384264653045253235906567975727735503799537854870012887186457930279299059348914534104632182336716864212008383919252459338500319294495593131640191133296649428224383484524756032304695989157334099072852509767438499084501326432183499974707643009610312198845918949537460377938570064041154939521258948047096154651675398120169568778141076377578790530035861613376371340784114319000265048225288763221859164842042321013860580968877467025308385290967426651028959029524624119528856745735902208630205871995780853035837737981304654521980389394284786904563895799052360338325578243367442389600200258966972549485704061039920262651503126308746524598827815740757291397625419369957304793821411367561075957328536164567156064615940487588174866783622195808519710175122829985737827418090902452744476855411393179207205724523915540411993124680568653114597565507340558543620604433818816493331381668057432432345963485156220654957373765196998440100981400745684158996124415238529427362403598871654236917033544190628166798738095087389775887704159543070597344161981538962243712429887409170623653791979953831821818286465252092472779728218982452978072684942008569052653970213298752996612535089443204752217577473815025507442234788147325005021305999224348796400605770114320055623073538190434425801352396204948069741667276875325496363548361548093420054599511482366556771729151867237737776858024922687405101105205792800879493273117824222452066521418589885155019184998593849218882540679849206285530396367666260765197133676080429214213081088653285477009773497131482952425362207602794288236405373768218818077316345249528645642559242737224569843024028592427753494725173745948214214191901394903163897277568651940824121939837622322330363776244995085196279839422282792832667902765227105644368554928006975826650573161702893414542935951441666454829619774796332572809971152249021506427472101269158471841615738430205740801666595955789914820635258765939822826595885779046730236563372053969244090734692783596591939367101898788640704167483342750476600722211265831201617122009169527164779330507462214765885897097602215124429485526901870664472724547915537740695647836663829896924932059367779702218981578426805221107568188324984380562567056360290238315261670883424140096862188368168641331444127387983908315530689375836284472301926827119403825926470127468450624984965865844121252333980234693725598341706451367877409994628785686227176901446273115020611688806178411925572012828612214160124925939752684281774960355952825662596112820616038563119688901864417382391488625251231219392818549589055150128642896366051995544400437477985873609846079832037068825925462511269226633980394227769501964133150551054100535580786354740186225105132511754290328000943075815279929872511873389284474909409921220960944727873004398952136448428952970473423205827101494213842327130300163612568325775712113336720238617749675228775920851967721414679568476436721979494471058779101459489035038404827607800684715855255026125002433530669025783798215934993498856157984652612588161276129888901147897764342456314191286298487647995820030369501192783765387447961412143855399262704883259599313801098579294504857046355166700046770603860048368953936225732568324352422787162094943301294652168277938622480328562889379464777965498655406142902061300080749821911411153375307739299342104923830861360510303771419379897279912582782204676243155537128372892919370100580912960465582350170685404449643635109568100854507886013521633119422546673883115914540121237373505771438973890750510305411734003341263661153082525065321253519508608748004347942025604894398705582047803883972192749519521446652123237778602224784994057912472942948219836518239598954462270710701454344812344520222076629337745500855087835496614286531663447002872305508072733767774001757802109270771345052696086268263607630387333426778780953070417300632890007378340665055241704983578291994428257057571618233370212316819668249871270648383504608515589778310481565552818942898860504714108011004681434266086800413544105389669381664575288960762840573582921411739716488219570233831516696498169012822626198912006346386270883967840960708967380314839353132516524034056551407292186415008661027310067714773712860221245823407489350842954432828963067091796651487949169684995874983849205797509718864362768685878321153537137455390740622804406716896333797415634810727176655614481613945678675537892667015850088894203068825373058953940070877357588934890644270115691807118384733021655426174054827096270945119894538135816273931622012004243812745745894586484162391413690705538575128728506188972437572221565763703764482401292889174008638378869999576280512112739085881327874941442898628807798133234023960279769417828650876308905283294267836100131550234034960278858269294039328503929663173191164332369045580673961114429036384241794736700804533683818686386775322267251188783181179320160338841641210026498863664726630868186464497640524098310695485179478825064113594384983319504920647297835445385712764748859025351774188169256610973230391135875704328641428579962260711823920909127546272135565697383397894667500627120797922093537700470463163827129644249984816472606095028649329575796352674153244916605681188968369490149053434931855441410845082929031327980203945161888138052376906434067133263609370060954539224728946009055203374802406169489795815216470559684151305883040659107395061903562638929766015812677944845453566555150876236242607103768648248763009140276269151949609246920743365772514573090605962876392413889707257374824733023729531814224376164724395383490169774170326684779897826534598815147784020580639968565422230250648347819434039478067160919602568492701180694358482639278131845929019766522416369298848467063313554775247311923857116659210063083153497980291389502067785647723251090545046242270842824177227980797987509891886003922538955963185884316795191435481171328538468716228135988531960126045631503463299336054135820187670936089255941438297849152319302664056853909160763216707382528651621930223968073731095147601686178313150308773553284343318323745967915245135387132887015460278157740772759587095640027290289172622574592059621916031757616676968071049857729661968394056797531456092583382662686800362769492424121009820987464472608054449611516495687645344542995521461779125643339758726133078713624141864289255463200299289576897532481047302772722565866870015705276323535380955426004532308222479904136548098719642749368406828736732875696416245616143942221873176597566188191906077732965340455903522734416657383912273449682927609864825617918231011266483016995397603857593024805542167336523937976520812418415694188062761231198169926070327522893202715861580201606532119480919437723251084495486117405753271288314655633467326764048746502206482795151447984294383359751935754557920086720260851123036538185390202029898608171476690454098013920231409770360829481778586034942649136653995028823086455271893069379799442498618342855931385930453867431068801635569420894997538091677449846750356484112719150076850202771783126735248617215360089796105752979884062406672170200304823762197169562900615458914151015093992152085093089197088056454190063626368374830896945897024042869268068341775339565600480237008892305931020501012151196713772106097382925267284369968844460601275665158939673741956228722256896252096113600824640529327745633998424427537773736177093291682353280608041851723767697790818628485648348441052113384636919220256711547295181337441529149524386650637203716195607654695569763859697206264627203976651043596666337578686677139127404995200573285485226239112892870337312990219223053062428429206461673781211629681523650420646245864433010430285977298924956288101295729829757401526246662783609740653987334965894693598049866706743581256582567101376324971816715960541143952389041902112280944688598707670058476758024387956455136877431705540649904115912487509008641118582700584200039972183749607733468180968037805026137642653794800478851527839157013587130161018746387437067512512887919458855744171716101969481029088928078971593046888538815265752494807087748386534336100600249234143834248324944222538538499662157106934437845352671596911936514510084045712373555195762231042243866008839089123667846173285001984610905045888753110744839732119334902243798038756564745872262895099931144745415673540479018933434716841389222849688201581011143286256115761718339942089674457774933468325342937804864855579715190675864976440024218197301808624654424893914781010661066842789254143010387439319127610743742482901708855808212593332545633144710246520573832246682867342522327452276382709662667021260783818967791714462989855302671925167744665224506387343218715986328931835930458282630114993611186106333982679709082855089988126033797575363865641455794761205119060935403222474077307574585736141103689942689586018845911901338036898684090098144727453508050616292599958671635383166299003460962904800018321192657693027738286592512978482101798364651459167804622351280773855888338864750294823477982274200296181697418651704862854901224531878034584611035166495499167399558320158757381779182403257135125130867157536032946781497382742326176185146047120600438665099649239073948341185234407279566493817175639174894108017969924939305347251648325349334359083045723764542971234531703857570834214007430616622690809198472330847571532358556601167870946268480484579151516537445528781643779213312510438312935696569257427902663970034571218939761112436366862562696512555731501377603728581900067549227298623161596804043278553570712130825498061369534532016931157444675701589322532948102128908869923476578304485957972179967369122462337992383478201862029060827217558136083385737691584725180597265652072402003956171372040412945878933153734178368207586341573030276813262857608958874394003629973844589342133519480614863458840493255355671910848993813468009228541917455631371621524349408129005570883314212120295700604723707803174752396540064282119935188636243021796446175006857331592038640674077058834556014021897006618904703023460214764634693534124148848779548397740379314143936106845281371759877025679519199106784053350125102463136823501778633677341785220717312267736045522933738773606535918357059335945807757233372889419118415779515587438967165585471040456715115660900368941601099002041145463726456181747930321310740721283215265373634458443193048574148933061119897047885745256040166452379282352037287250196726437020314043165873258114652975718598720361738935264565610547549869142208152888735636735597034217244888690647508074738007866075987383661290614846080913468380442137040278298291313768643484433490379528293008220804559388436136675317173651589918024627171656753272301132846657461114396028835396575517079858532495086331511691952999257449107945650144254765619207570658545077605212886321212415924434760086703472145842361835050825732206192308155277012533094597444855815898071691253009728340496639787830492238788029852485914075697960646619182271329626607010483857373873882849796776847733497881744148239422085621470526397927631660090632346447654446748350067658315808189781102062538506459407527053162135805904720399262038726328838002360103832368791054089704272745848991624472741494142385896185078342305512312207437989251310384662043378406980450175823564358877315740668132752753819381570589853790529998248658240643365646619733018694369655506526392046899507917381157929795661768350462533424944495800910813032647419741786094053617627695874531020039173579744993009873458746615981067823168759095048311159771129611879344206154923605569512200084576426764496321814031649431969268098608202822079646343079561823444201744099951488263584960828220569400838921109533595778372813612807437840555871466521818244235396078102376086066346736312067561129766157835947763348121427039475984589468865231099903744672829751959950759619209109107115586252105232857277230931293394947480757529687542052109864465377790313499903211494722586890775651915410255135549963905620269275179869435954016936703383798722948367376583237208731396631741163588449218390951383856887058217729686322937077041486132392404914510826102814553749599933810123314709096793929127684566352098604482633991605933784879559452005149848581131794809244238640346735185247878572652298505535007572689054953782113802756762855700712437920604989625097802985372541172271966371125741561403276287089323299547265404821627931898550230015408095415998434460178768038709538349919168633302965393230500522562032929160224973159973857229240824286692139243042716419306957968437136747940092035787048294063148850668814401015301385047418038638042522718562100034953818833509611174826706558903559402305963905404258644477487303584131279516089184272356194994583654700847489967397223787119319051484558235699481707503134740059046442766721857814978575723995546864087427194966836406470219740081378862586244346816215765749187716968988062146746568280482319408322781729837907478486625993888352201774029039167166791068394151488156621956096102030282591563367330020416315923217845294441498809419405129786860253604418812804055838026282477823995625001862219337997515411454054135960351511636021083522971141202698140573677662402417547741272433843399900117130396099598927916503235303070457305955031627763874102511259902890404826965863139929178179493475073372598029833187756925657452013986948171043782763091214069170102366321266465321440142812169266323865087004325532356545009353757794825963604726693525874612414956845018516635781145787629498691532253751536468406445191803535198214064133397797691364283192002162367478257471526862203496175473082351929049953197655594510712313334304157504719511832162739136308101580277706215014302455883270774595917657095092993057924396571501742426814529638269988048465121436420757761342207108210073835686463587390418245411920783097654070485135451033387954621402876835325684048200325699618323181869729625356226803400124525594896030944026493375702462055403161958213942810273602759821452892518702752225071736882648836131891766620558345628465236697464592368712358273727108963544688541245138146838177636122850993748559632812348234024333144015679161301034393817163673433291416407379858618553979847074504485262726276394726626205781675006027856223841243550099679355639255596409661356631866756603694069880043362910869279289196717202804570142796879247120327440841176296711253114601558428640167961259191529097629957836935206608521426718785325255644112931576961479382303963924663038291262730896172673629861662222100366424258290215895709214061320632566924366490556914875991549896246894160937207257911560739241627120435247624874761791125991539794992786961494123713209265933679744606554332527573904913967037264657740595819502683893760084132696879116579870632325461253253495590124786875922328619308314856992569038081716948285500279354643515658820675155460614050545997180611821249398459573581102164239176848731519124283627175519770066125846065813506962807370853975416185913671481787513450402310314831316326262736788849569902392220418362763813808543485051175440636303394094666184586383644474554683110116772138266326454456853157331903055860823849968390239137194228951539845478671964476160171514780899780885545556846426063702915061943052682058753350415354778460490611593318996970164395929991176066979877196424929981140719600095285320248886470681288224097258772111523890258455239875061165481104085858056758457959599898689881888717054964382989065505350187135506370427201131391228798548573178926726452900435726028427937014498580968906739882583381640480039005050834752041481897953080736619974761892426463653590132780942541319145396883185576252429093107562477277219914124103337067722538015877133891857033704874505543916524549941750488183990112497216106279309131491570661291704447074127789761162075675164073636068065637313284493017757281064177334080219683271022069265312034433176471084629501204283287938628051181176501756148337313755800778854028127712043595546713518928172297040279776162668757653749691172410973361521790924841078848421168593002074835621291581874506371390793444993062103422072942677006180881928650937860473647732094542201736705548638565807295556911657262602039427246420940102202640882256407736947134947856053061154819537993686812585613158479836608579591605971211711181519758404595043349665493392062670694539711441005618731903636334124488482052782395330479471380917583960380452092511621833891383249462604617297148769469770405497498548165535600322378348296168918658542955986401952188684970950738769084474075077532145473213354183484072103139655800462851864526013547287495297250225723108602682974707764959980351292929038003552280640563756775082275463694550582823146150177996345124120086503036238951651640036945450334326506951209420463158026055981876788945165371140779268546185939914055487078028891339750781879240087326309749831426287769370099632079854011242706767860386110477835114247612522459748777847209402793479044810287900972671269210319997418247794922166763054209509063095782995129975698422602076488851404592106473217408804551828670550531272683388802744552961879816983674251563590472301962744032472958146486801676861553372733617081280320536476472235380640867935559326391865771298343889250101812931072229697883419408786500503578271645689094796969521268268089815152482798192663239539797300689157499725597364627531883683590312094036493103918429946124218566278737819099645322246731215056432857567057166118650277666062346092885920074790281261608150246631456365499159629004726171241917412244188265651235761906669841007425354175211342696607580781350264668546761565642869089811994272469917771597580515314719360297287208986326673095008883224085093173406115557735065240315692816317518201123741948858159616041885398187805267469374100097428046920255592221524184869208557642293309516298847441835244017888241064894510404481215187635687359970004303350002157000102309289356593607280895881885536059703831357187013837842211282977888376467648913247757292015726284075645213277893646833554920470655233652700519730937629624433473110245776638072218609282686370666062601312342657064656327282084650888030847555292152937548926283008523207153074724961203983886997978636783304837109744574844605594184901368752141621624913385052749643463155739250181449593131544479639940490404583158372961909701942794324345910891837848319409030319843857524620900121995754190301938126884047055390328435835454194115531865848775140213766563832659063949826602931589031448581591291647509577983503450826936842195972251025495739572607682516778283323968031853667856498520844503273106242524434456856082602331105562817845391027752340225365986035087648692166071496184628008079778245618732002072895180602633290517548936689423954149831950969195815757548317149553047889059181365943630540284962390034751988787846161030310757175244756897795441261002893274296438249476858772578124143514336158669437340024372540072494428849490633984030711194450653046549162652143328874589361021076988283436779036043521712603828318993945093913102694280841514531117363874098737241158995640534335750100801695206781218111911122285285208738941826651001174826505110781123580940302271551992679692269390225616888429902811209970508460773150443623745645215585303982018773412815625308668795069020701386334149707557694539203585401599306420274420844325203991236195075577903907183587303271571232509273179729135792769525456374229053138424510885090251674108452213402301690439978713607420956403935379473939178457938289387591095547943407706186758045837524269544562282609945353441292786143143194277336189946450269210408136375558181535032653677968229614150141093387292877966904827353762371775658679287674663051448209987411753839856059282001881588836685218768560595517643435685268783570865087697431520264414023321858966933145719642826092985745918517286894228134711570385522670736320763347439190371862913933154701409287500595138204116891012260785123808752606097924289783035220762280138858086259143267596267686182892366398875685250807971941257619293078815179816395392628888118035443579879375135443235945018264355873569217843610966844426252585406518642648528596758157110108402998595919463527202477344688056814513893841340122544386244327884874646008341849486664009715967487972408929555189515465679169565456799126569760290033288377950974975087861656597059221920562531392282676611517996658480244702370410685248225397824796621316070907920823709582258213684922920056329722465789736647139847708821704861911492323393304361202263041334175640504409097613611603355658080352891402498173954855295620414906510591251401042977886842547953569311491593494057282568322523847544445334370188508215268702245927227437484359822056182711892434201274868183520014728449272551536663771157492858200166677477395554152882601095014930175348822625831360791921589181792009077771792102960709540396563022507858580795022209333647782161347464113732451940407096579639257651205178059240635678064147896919545623604770386419779180175252201701710913350828443955999555350074264896962801418393685999235866689810331614405127195001321159916818627642657078076554276325978333990971872798015053127027783712793517796410518294166371077098248553258753935559894561621691557314969654551466495646705164542423405204592493084805843681941774486220853938102328325810507466717384919623562943930182488479555038013791509171050800928812370495573746325635881256340219240135070329608008758406985685557081810484970374081415026377954085718035128863488494845650121476913094203781000666092870742844481450331985739116512256113231588568756918675054199867867462763107577684788451865282588351543760064319592999025758541319036133899442058469457409699269092644658669872210551043037784382421764058466989801303968595648948011277644798122810874744743656452264728878704312686669738431165072009216271479992128235917852883642095838587490427903187084166165084487819546503712148833705645425105023213344844520755193320507922046758465080665101314880511950253177864358321946788156055753911608697970257781866678690318506225334825538279382845339190604392174299681255001398094985284665153913131056424281738176288466993554136767679655541534766437950781239755971593333711705242711737059912254616479681485725295096547661726926176113212107229835784166127100514874462511073278917836275865697177559015905324207257417235919344365935520417061356040381864105545814820380648935047204793029448720232344897565818762391101155685592752615016613803398369029360863543308319604971201400554168640180962626217342565407166036456603136739072178280824816497636399047698489208404918679385223804677649602411671288085594868125417160112137718269985365037565594084851509676514859655628159926892300639283857407687814497668563540858821577064796526641176339551450656748026205536892806167190800996464383075831750564027115865994850800797615267581737734283444140562612624373847968761061231408409471396208915771060142097185382023172315693810740014859097223886186626248070061398950475704493516652338975732109705944026646034639382195491180943063734409337241181230585388097001234785859370114234508782336396619155659444128766797231008088503090775601834230972605548855311022489100881475017774334340419298952175135965039766882343605616685843251332190449642932604468854836989740523446571662603918605339280851911757693337614282753773256100550421134624705142674960468055028726415669344592815383547325120554109720934158078367536314297630687169670026463098629843410183701043420533863102546318180038189939701876989919579706963582949317043980150162022271008484945502060436228515921085259610254500637692206028623733649869651183403689605280168352085708009865628477275528039082617438420174002227461708304660132575153526238666930681069977864561839109735758731727763799126924138266145880298788848594089835658857086859421138927945723303875756225273544599046259020361021330945909909880164972628198859988271785280413433244354342492600830728370050214213211597779625772236950706321561294835686757935382282636766009319669751540532747442258292392674598709490645780708727545134999115925809061554548766895120046468118080039465055317980896558509205311110296968439712676747389328566199462172153181874857916801978132479913358869816273823550821675677521970676733925721288176793323241239606253265010986327677560187227785972751057649727856400735741423631740898618316694183535992996229181260308534057056136141106202286190952282214562670013344154169242478809818339526118094120716614919665556145676208711771140721961328493496766237722888796451530126080725996440714511808588139267938151861877833992184360300005241355587877774139913363707471224691971839793381390832019151829165827017711290381244994721668277965544324290315673851684930071511286041755384447203863775461693229491023039517898116059739203720204897288722745730318818471682563261365598653360201795692956190681756540002188120784924522716750101272703050018600540527790408246675033048624053043504345556297185718814406151179062750621860887803457178924728125295022075112727034007094700713656741379169064276374793449593519381258900126861945763823492077426879323132591679988932338064481985893158276143279029904482404610109426554744123165480174501115581169497934400014897203058780163195459704288600078899775064677150804819975868356573730970033529162323217835241473879506714458532670139012250938269865143861053365761232140675923775387513809818622967059615751843573391770797402488136019741645795156411596679749111439440291709510322870769137234499553985213622684024485564678487487562655070924466578052228211720071683607715275431062561943676304669016721755497945855687429826935438675856821185365223694062847594299101086696056594305027276533472705988165066183719738394067554905527647095321957316638470134175933366626646370625621482552728834395660741816481506203598564068124039846550337485818860629881736536916227737326345421278867598303141406000196932132222033365711334255111106944493629423011188391473449051571622989041487060117090564490679010516316292965945558577252270712889639693429725141818448063252080640774981452026842878610555436202556671324747397680496500397784030606818771791311400275250540766252843858103780857617061411871298680562738951087811725330418694800487525737811179066619135688665968158890656616273393124788371007448700638427718141035247640489568314466953841584895382355623177325257868669000766752190646699553684237465735855765253678034990420170748169172903204271592208443148778082327916829735004289957984430311670809371125061682988764318893311571058759936812586278193093929863010549647080545192524081000140174215383703435822369439622372505571809337014007690024577519117213638678995849529420152722139931200702171614526377168512999559048295534637885913488823693500476663006485076004358522289563972297916046520736132937365317064139872405862223139081569315327801950348444388338538888641896243221896030948459353247171003398818119083386501379069879623766114362776425780416778498117733515981744836147282309437252200647274116622657403140973451125392522280262806978237645764874459446915691421401712276029387955723710648350664584124637155403293690007077700520530588944430497105082192248303938759597838438625792796341984069686846288324430149522542337031532563791616546309017880860478120007828019823126743648589242871719348820780096834322948968162543814767931398026527556401868268237445809332603803425896239684938480485973265207672936914043814859070547221824843071888115086344803196724209879812429280245310886289402823212499710047554920944833676807094044504158973619879288080436699667968664416202683967118392008756553994666132415495202254519958560985656056727189565206147690770989401375007699032829305476916678543603654737971640881495062010983222677733934028239786577167109639196449838765322299176868273485760193901613640373651605810066172415226363106062068425581408285472225818493079972694288003390147990845331384076674833290360404024172292735270681826371705685764184480345096422375455253287262632163585573607753622680205321751916989048123140858108457618024664570840183373312974793759003958567378887192254401783912291251438129225763956136751823196173800451809863550269348616562734578199531699209645868923336491450071977552265966705401911988213636093119528309903665868362181590209564330367599775556941262139585430282093974020136777078597982993523972065104512705817540297473896738549525301707045554146325086131196928586862770843118164754096358516302057483601175334473816052640166708934353267568140918547784490235799794525921700620748423424059150051180131616128341053505796983090303061878991307600052182851180245436533878637303743655159745071482040232795111592022195733471958843624190091951490026763193894453161519976200969082536786643729755933922744700493852310432339175925948669564495994200667146131702258999940345153723895550460495402830766770879976778705575864715858886750570670571471652550748121711406297272760909696897436350632685251075561838751475255315411680693132009643628936932516594727144331870675808936334881482146315463104896057589960314398018469375246369012389493296215050338227553526885250199980068784169456551614214364867315559521997302564466727102401273406969532685750084160341627221018142559922754261302207157355415016649962636436859721057232712083061199733449276217101582999276309125347872912395933706591707238640131389762853982973384549636568723009740513634452811314309564713464406926631494705696244430911872410440506112219645501925002559660291383584201226080970761280911607776085326667292846851897006616353645435823595789141205257990795008525000783265964964373761489728930928346668039996228868955712074172704179414282153773580501925629519511412038642497092219080080351760657301155677513239560477361317173506585887316018718052377344799152094768470347939615592059026733122190289806028004938521767289235364952805250637722783488549550481198599134529523098068582060280835581622335184410525584053396674057276958223465424090550806868872800825523508388046170223044684361192819644771258479870835206728353772818987870976111837187706174821381024803005885240249070838644629665285252078706838642277129020188531508468036071434922181709171587488418356458677875107619801048966767861032834166437985988612684283440412943633691782064797837910056614175113267801357051235261882332468302357177815662375048396196829738150784550536209651564183952617723357240087729492772555922039253994038567561535469993069174439314748069212727746693517021574856888569644828574738433971166538889179517128895226747600921714687260251509069721524715720819249973629212109545897403250619122119559895261428628775642461383264163725794450552827627302053298060817011678130536221254068542251106755109368561270315342872894702689666686878137176055293259487837134494169860010786111939616010235438377597179519838344479860035661411322770255124983668016371891541200527934169245471501437865140643583967546544965794124329854969074873878804319596439457806009477831765129470996720031806607180250697495911311799975721190459800571050525004755925175548538863032616722369994823567854752745204930256767224421372003871023704707596011774008585358464313522209788707559949285573638234716025547856165493082234948068169570178683582141162348785570656736034525814449940269135074754164858697560710848794882249652849726627580574110551207103364134785541198588755012275673494864073948732896344774094912158537809032873702891869909934460082591134836604445918684166344079149625911590565248844484504909868427449153863615249525187290494473972642085438906474134948518330797226455574057840088180732514144288077837959227073976560839690950638913015434590770551406718908920964800557790317156003205356852957786002460060275974323759035838876702277395278378683952272986552592270810520259321361943440202109600030621905662975868341331590009044451312857957080416732357717204289611706406808205159252463637776301080518592518895785850024416871481225575908129969338808914664517093352353516474580192225920233538073805519119066847492386425475984993147225451106306892644335585512747476551307783146510863032233099599669136101572341078019901153776802713533793698218360495726581172790739897169819255124247608142086475221183116819787837350841353103048984501694582623245422220885750693924683719984311737033940583404659729260752452612387935428786744598762189492196762528357394134826316147500306164085389956390658569679642939189778749013218752435483037940763563438737066792693084625332420539224833320984211701306459916392824422357706419180337845105634656285873575839417534778494711587277294153190987616793498373757979904441200285332254661150935997092986094955721057752212036403199112273438175125534063453272048569948500425345346825326350350755548099727488738807771246975369584792833916932399614520661057388874331273867284519248414894960677810857285431024716756264764500060349865321337406738597615380425349850492304455869573958096695129919762411969664593997894748307672079130648271983593578927519841368357662514196669889544345856923020880695417346817661081573379787731237276435415309301713520658824604599283370802895894854523159678002448134606125189090105869153221411773397655800539698686922090643684188808943671717779623469889036414525062384769250338972168154397728344059432777640902598582673980570003489929307008114453885696614801587071665200892758745008912198455920703315418126923255845856628605098396329588711899820275594085656389693401804991028918638760417167649959701003022132753722135929935945284100162165163514931826034763629565319387198658561772957180705307948457803321853935231243492850898225194486450166134792739338490862038389752641945153250198301676812393758834342385962525356082954751789868552278615728800838071555708808349369454107620518022831026909026498759503736014525561374169563227463825845683631622485552105222084826031088080566392602407685297283742878705001390834120293390566005469660554890358844034989512960017039481758258575541830343341670531866773188148947775197811090495914660212243835377478980934424345309051166146312695589993482303644466868786591525726477586734039903906330853150999938494349567971298900150940399240016802196527761849721049226366524722851298663321784334179176169785552893217810888348534550150204241412149586484348326361101184923754665649846681187561117445115559669696852693630734125891647519597064149931331887232289500129828373829270412484603388098565684357826404700937874445388228997629365085442932726133526613431432975262776002331645088227312394804246757067132727622965152692531200967318065725720153041722819667466891377433967052759041636633751498879608144954485517385785906337968260798539851675427965415021799866054025048541054617195766006043173897226858996081572286925670669637644968597428047670464538830811067079082837034553597304656670108434433185053619592193960575107078350976243262987529494747643273468823096925632899171701629972836575673841600452246816403238550355012046275576663749023800317074430016637461382433177665403277006515766657303711483630891528223549477175110819651259928242211210008770702064843606350494004736825708055812298482609440663561551219316700516920860475058165741879581131958026703315160645007110113426572128688596267159902441972139105238684756771786055324207426549536158566305807462893503009316459355655123909552572358464571848241564526358957009076654333251260842307400840042927201506127095167013250197692105742621543712082551688813007544993793084743509665032533310165992158397550608025093826739716836757337743225416783653207371535199604945680964793636280745903621588567857471268753235789046074151925138459497349844833694415318162928572197747812447334462539378393072847862892820197072891606651209339428348643858697668904221319673863100656481958935312708637079866021504304254291058401186272445390323855171683211702241115118345922136760923341440257857191849156103573092292429951408394647659006550606949907838663807975211650191821529860681544462045724716438799346640261668576816268023567700338596972646434978148341186220179233319717350508306464255702367078367915492744491327601933298741048432662941146864191611791901858105582074761387952529638684448927214283079049278823016600093128876340793529249786294661452112406092986896486377653333014224669521747071291682732815143783280974436915125566165303005313315397829238220011430965923535491576735933203124345042182474342463806823616814525318545517258450582485870656313163519280701112364842865451766204792618261908297306705802289517895587986057380053334731661549779320716204641703428846549402339975474901529116094964332432362060273872302509844451763421183506363244709930881653859020083157637939126184635069872126472153740196171951143538763305490371499349045338034284390640850600151745421088255844649156271282568999826782358429212209370738530749254931081451920244295663172305022028332207116358350191437905717522222998901675864514030611327048151515805504548618322453152926929607971508272323112102940550658891589138549543990177473152551660767557805502504787810199987983984546949885484938780869905324429314482726686295557492405098351957225914847542382652302280220484276179256997202592219843792589219958397139136396080758085048940466767416948516307449711419049765310455835003148157273693581062415888730617508397732290570857406427987343148194737885818586602968153764847611008767831963714586283817365276944381120069329521030144372058258986259851213899324113554573812906039199011219491240795393760072854995665945151626581747411050297429376577038621617111456943349041951254533264395613228115910268329673355316848912570038871761891277882628231801172237597430457237259810922470404048616940718452405747702835169561858970652771378856329607159773344228874687183100880800150655620129526830154220640977265795509674748365076787006426216198943180854294859930587367783404031791829176850927514832281828800004165171360232842257785831686998905584369239329752048753723220910449023202997726123623762035126797708764600445716104258989981839635860783250421862110469033832134622866727089924773686268756735122072619060772822946702156013949823872300668218509500986447294792818781334956817513827719973591866699415729326996411432939752051404683750047132792336498145930634304236736299904761368196740858235273761385229737674880861132591572106376687823380939490399936412877040275583426780070963987812427134690235786397909148919234794781155339555590710876274655021847954830800445911448003931134049223072914181723635465292511337630901420997617438144791779382494200251298101302200198281454712341978435507412569617056603799227615648227492562889991723453230747135944252538752447356243266012046802042253382396450775575293972510104031410891439557535017391690250252824176486967285610087071443928958493230631878741960008974206974883324044703436170969808336215369604552633328005126232078274957094594484809584498445863655977913219495426203854656800965023191366137281464947722034677586380347322700674547437423238542367165294758653611364363149738517397045545928525140549848638471919034745466462110175176186233420951965755432241186199674910459520005766727607026805245807020747732023832049441161835937093692097804828093425831495644978513211900276883315021580064271549167308359694074099464030672961667192016854531688884366184300081707406518941113899899024255678692226323999842052184563989165442298769739401394595845581054397649781641125621957904690520052119824350852812297733133455629169125822240077140573417206506198937094959188245950402400231381075416385935326742333421547474077167115288844991607676599507493301548483632332038343781446963389234983142482948452901216282755628591944508445679234742758594524544716115993690276686987524532025778588181295552879738517631739591821235337854565093921922684383185289463776983875504679159518704557009611527755004007544339131290431305485632232665196402086659489528441226804463016609373119888635041721294911721513359847899746214356478416474196057008014418268299726694472015181075019433617943506916979920091439368797696239899519451720780022620258932002654948334523613466097233805280346682260253123821858048517083241465535123642188441827154716521754090174771773020254396712535550871443432240859331826186274900359166911743845795451138748682888045247463506597925678182911367070468547186875250934101504943865946480735600423875426766243203643893109384548377554915253295928809667177598352999945561263327697231952680657989359596288458396497667451971017198891927368242027372290118354135503761027630067175773580105828084463861001564656232305003193711842619089971613440400876664138165706029748257920770202488699437318557391518228470733145327771409853862612132680428237923543809610367266599773558911931372619555335080083574746417067842881840188818072060555683418217401044502332702567586180191381513181152457545402084479845913404000493469886304890082144723771276836437133613568885145227694481127161728709609685884506343544746412804748436788421124681861087528881150095229616482182260988627208664013931984591722966196837796581372689868332024659961764916010612842110245917868300493039738652345729098636830925098919971193180672159430431380289557975157167647802663840833607466952829117607634159729661189100947999061045810717906484043135875205519429305852328583049831694240368974754660538124999950698020770342603924953743969854824614860668770635194090326330701565418398281958989156134301858304570230005786352107190551295541334784540606908347190323195019331235148252420217840168012766896163903468451792798896287258850618860068587012998331519979422527153943077132707348548393844933648101995654069814886619959955721089857221457235433337144194148996496302536054016636954206040116563645466912956138428277567236977926624900494287903616173400564927989441161182774011005722397166810081195223622156927910789303789999102238524884867574319477848011196549018031169602317435929552398698065464872258425780838405855384619014803300202421010370378120992086242833817022139400244999456202750244628805340745786305923975493919055085687040718765339991551050098485950253594397619202738159337429891937164012991190770742790743000243109240191998155027038496414182486547032156162639930516147873077813306729542149697537988412031660316142209535854425976396390028858797033509709178515846066838180522160750624821513573718224643558123925083583232871805122545183972904195703307549869573861722949860334399071956508973591966847942820467462860233659008590960300521418587284903474508118961491423753545989721922453713338441356486990230057610739726853711420595956352753705504498194439578305761928883531028494721045249668151564447738571114948111692866515110923500888912153121942734560739599893190099284503344889466002840865111584231851560253662596507969941909858914166859437942293923026124802212541528420884448664182579849903938849132915459325423017783785042332079441504719878379908781713073677904623497809026587455082312642735941059856268145262284101779813413595176784085650751369773825056929047487700014525628041438509063753413335699733371122879923882680450505066797744922904811990977473680610982845130594684233357391210016921613735821951277181086879422713133933879359469778685861836874118805475205729538614991832684944173946673397446610478875758870897231163645957387308821424460362948280672313774625586746824474227159211752519840641714833655548087287153198886771482251560815944766182080038733103989087716446314026818993510959313779080596390191068028799354310789449228151879511784821753599483062250234454245742530802688068664670095262914183860602508759475131185945767625140358093007855058637263890291175790789761192006332800396638176913022939501082179053167228368836895596946489165074689908228726093038025234350606258241091915208220232814472671660872623611928387957561203334043064291468934834717875438832606536318221276792744036722051901010437699859769037424159981930271356709983746752045527661288746877370104669474020223589704983586537923482746371814560840730895853797406176015512134642422036004390615136167315155295263559133788167265939075245565755581791232941998403798040742669449812043529825958801869314510609157242242554987285459861102754464413462590208816568617811165954234037105517645840219198062865588706520729890318213319189910049783673947443674118254290774411907429979610120904584590668162397617778230383359029341820586814275558383716812322465954218792013823883347164327725595913766973015006585563897152616902846465674373893015032047836889949436539242792476559127673031800576417200925156258767739261087147614786168697845987437980975788207437254972775270895711010501574060454356088485130768862171684113670907237813047732241422683674128067941866146532363964379325093616602938773717452513844501247020169774390862057711782030656700898249952922961360596343849915373041096353854603799405129271169951643661607095911188311242037316360180513719984891401396673702529478575503626868745413804807654132940493954931122657120426418190707185290926396028548576728046730904868054416264579966578785645949660260065049826069193065975997217560563928251547561891090762390162072889233466043900004272026961420805926221485534015065563065857318901216567896854194430723281183828732605874821164020270049102139016078576183711211955625001346675884551021814383563215716606811455352415100181388822926596503456319188854744405791874891243604035388429130498185387134836797965405515962836570332144842946667007173271924360277530036808834318780119905686970496685879444205464529297577797544897407984435269705866925889705678255793810407446988553343079470823114783744006847367311113440958371773807830277636998974746487716271581704168272247634202232143462827224899980749816761638335202337935510564735794831339428527242071927116450222726856338485447282444923656128342483386085144581922099240303201888298784657725335410934916273254689772830375032546708829275706715566921266715709577675202214988931029502126473031061803723910703717867206158350502656046580326469272634606548626365721363157132940980741310431334962987989519696229667991193653675114135269218568619541634986595879990732117035751245180957914734923602174305629052113180276261946551163106674974775296725808489972811903618882514930350525477142765363823543095620357755375639198537251688826581904141721383778947987306183812972092373645936784561806398132597935314824591060599109822133659633263640016568606909604158621124038903596884707135395459265712279527082497344434741555809990170703569818623943530107889387119019444591377136404882887567916685608171740301431359830888438698248087924459409627496074642319012497982777769943720701951674516990441104566850417024231699779136026940578256025869656909723142077162214586989697376406864680277891128990148140384374509365404253275643813273283729600511725818275706934427015469753841712657396903287982954613023343421898900623752283670001424605532718807873377187321391681159284653802032251780156236468125508453592827353353004146726202563735101526427284129711821613771025850825097837922421644741254805172485815602513999797027520475949033514156724892606904264832749977007887066670980948459075675227229175456796243461992107420042341187430025204180402984699425655479800444298765389248483352384639242211635210097522287158109377840902782519543715054762534070004413079544309609162562924490674279681392136107200153194727045121701543826377887352893325905511439048491029092196041031691393944179113260691220904622353758575678859796845127242643297550591031152206715452322546152569468822404019298542004514002783810824515291564790559318721504375752295727638287806912372580940976626538730604570270675574173703538020560191299627520540647947306089143949420797813973465662999485030924766581546586937719127369705847149712758049644234666560495446681946747417304212505045374620846773928609364825260726687042965979495835354888058102995434664317091641555515671965198022639406098326779235387557037729405154585090191137098195262420472615402003291138867344866172256672401749379566207123210405511308207247355773627332641408975998324245191104968091524933892036833482960956253200846483220032574261288840991511459378833179501654894466594453377638914678027707803853367914202894380575932227469333724141460730730438599847667269971905690142897757360114575324038921013000464356944321765194040607248927644279163523397857782122794083597577857281146342288550195562155415067306486657979275973261713554292342884728896042377459764242425446607385187467190397569356227350622397750382536063221540951142213900296045776300781742718730404199763692833837087968226162549542609723844131001003383676215898981334011155564320089809609421493847818534649809177397524376204633469737471569427424185179942427028041368958061418293858015765010645947350336035933984529191621211967825301548068337803222200751565347846332917314502369545023256308180589454023536081113680448709823310863894577640631839945999337458291413477905579012060506523791126561466254253808240859091278050933797632688874617322416083793167173902514773876444582404093864585633048368403516959744762507301148754428927697380485441674908187126599690858849286233443143241936459290257584359324649898577142944065058627590940954084252617269158826265564641356550284519090279970091267559523740370595999365208462047416005044386372674115550072173487932277960804930199830097440449235205116493515577899197120149762289742961006310591061583877704882290286011802439212915550186741189755129903301601475252696009206895353215906574911551584682346146217928151008133700060022479341003763847059687494821742893251048888056407732125936749108117728357046518818818770109683225612802746447781189072491646884979603853394514821139123072502007892413914337684167334399506991254107886169942789757010596921255178838577939438727433591113621517518330314762235549984515907506209485116337134621643265293742971309035321865676170572488404630860480791991427035882330827469413019107225810357395321059417127101348294807106346125303513482148013934711710201143937124802038161768516700930654129698152255029474194270322848526998531470032935609607268582031403295932662927883219633714209230736759249500449126271843701212872096637430988499693456033118855699996083836610317394961883635769456678385861856722008303789335108367318440493710030809685478800757876564611603750469960618194563761951878814532779555887438853328984559709015941798230999997905033121428913467263836443752975657803868758433708307145079596915894275124088953501352515957289990651688366683108866446211133242212904826530943383855279426744896245381582420875270020010438408750631388404795904037537848827011993856268091676574374468118186703912264414517956952367287283513969330855926744904962176305228801452187674189334392558373332403232608013210690030983949158039220691559838415569726565263941629365901321938279001858121429142378524415763512323459797544720517040965787118873889051313312569223931208621823854294750304336004028769465506638023310159273446617008102015916031151658770358941242993525407757979284001995468200948999893776148877324550417013399180298157892057634334827611033395281648880478692190269927717417724104363847213636875710163238101794818183513976372413960865942735800639117411099262323406191627887308895054087789107293787059677941067147712213094684187697977838167773898126157293945278783561352127124840145639423988801817378532753287141601584810499700154852188035222497127680400824129525716819329293575162045634876530065728740098827876022001834445119272402714910966899781227242207974633514383379466775157616078095865881756327933232579356282467950880785776085621769076355151996586054950496104792478283115536667635773930727942644308097127161313883468769106913467972732896424502936742713946786119774968370770998387354196631809450643573541527734996512349461246069820680110838666820473396119959620493919063627033075395864308709515091007444369108177963180851483174935744454335564533274441134748705894727565318667034301317485463807096011663878145935837702783466080461335423417135097879270862212336604272645391541037919631593287802191578909634546297767838524939708140131047094850086647260538490941698944709247162610025754082137017281672880763717713774415376760963744420267914063862445730257526107218445015072832143288494097009362870251817135482534761064246323410108872251343110889913058640359448657522282689637408012036912118727805028273452435010625520049857228921317639254110240847040007057002981266623606813762675536703081406174614599699054540877221187115956909074153856704515138681002227804630648004975518724950747927319152328530643294466391504865655632902363420556321668384686902236875386919071049695931783482853367802063607496243025892339470606792452493395428884900164858353890883097189083203163095313556437133415903511644825384276316858984886905047384440106900411512081809476675519042126213259459435201581900819306437494535545515243422875872981143021431227550653234483421188904865469188356203322221878851997278295697224700285644542025269225500558128185296690568008835654648067407774024060466898567222951863122741954153961175260612592362878000077724749072351883769565400983100253558275586087114303321100895768505868120223883628307514356994960421062845463276245774237462183739320298643768426943251088646637835976698540545164978770699656654966913479134022013424630209542179897928414150397459368234801739608559057699157532857833359189387596726765609757545702151655973371034671309044926893536552064329491494121478436025487794623321111556211250030447753301859704585981022107521484550523125697909505201879038779450374795013557136208682707314308240714242927134290745275268765758609358721458890338843706896312864450074881260871613225596930976300569103479230827556502534249601572909682659702271276359107180433643856950467538746351444281485094737037991400177125118683208191176919606267097051619494273360496023924439128827536577525710570705997890665186943407582281531781057593485076920083336485164177700435247027374706020795331739673346829582320783648959572912462145557054012116700977540967326762164675166418753111098760724482803406381505440226881635465620070065943717256021624677553092240884556471318099489023067571586436828234494071085155683044355444318123336384869919542433240305074207821045401848323815881370494164754961363585946348840751041808404544591295369553021002572143698956428682338904729220440728685729243151409884050686006338554097189910575959389440894161717046735375488817344257092313438942594561236793776991928783679443213837495091467198864665574957053668739104288719727075150186649636573499399810846971003171021035752972218132343597787519763608996232810259160148335417128031534845506286238758756052604429993318321087566400326881696538632055608606423029593032521851204313686180621443350420677709021988940810365786661333662847853694153319637934514057905968873179371314400712425232958597289099432024958373305639897284700149161266478534762378234373110124603663721565409853449554032529233491492073643611856109462549483749819295511975589656385425703510400201608006160122192388392848016473767924783734951924106419597727499238240964553253888724276663411483157224204672984672131244489403960049010099194923578625695272715404088142370669280512192157223010312047004326140425737581456719472123080429753198147490536745737705932251438462781469498217208842859644761797622764346488142904158677903840341308225287597055069156405286688555804302974127152910809097790036891571988391092599879950552286079067253313581054454917118756051911963660343431423385948123894616833545084996194246502160739292675763157304720190657006410076992682382874185315473223343829068322992425233638647876422277851975502903430563527060766662490876357869794423463746766195785223915130581230040025625655487712337022998651576263014864617668914882754684199723515730241607861764410140423090705249812049673690897124762321251789808999326758453116496020205374848569756908209790013861224459985230719075924174283694539553793976444908557987417672868978047436145059922505768698644405461838648734855221393849577888039742343800370018633723970384723272242856197122263769754122746955720536843596593422297804497917921090540580516233218935350472077046600003170272563126216171833043024110041808919673280240398219506233300619117023727242849857701262388266812196833084647115610286009691667213616158903829032063295813487484761230152098982621674493678771557647751684715185985968913724750209568958733447239723934041963426851671307466625699150534041923216541273498617107514249098819629550063305890355665050214600644745379877418381437514567478186750398882262257575748231081489676352146188750572382120764849806119754259517613757133063265841300748138363487026681299082358613536880742404100907719321558542558235711318400254423944940172462426855488561436273614451083652178671533119977829609895337285309570834321333663671297778461343050240480574847272361280595810789917909261486852782157523982532199784494183442802457550927705457867950317558606260980153095262992387702394025854759228396465206892258241599763037359304529541150587120752574342027153375514969584420787126919302573056200407065372307793769447919858948877124906419260842821001725878449275631198492599120084200528846897463375700736461107990467240519728804816006047240917947392136771473721968305348390034646722467082697877695236296352606369880051266364218470719963012357384339514163790291535346963129187235483282696180098076339657523803374687819316938327249961381618904555153480479628986975919274366080108721362306519480049989252716174774193021319884737986100754258885096052333939523139922074024732830403407057799229948026286579575796101339631625037205938397246018787898888934120516565906219018902028988078284873490796061505346614159042294534773948621768890472775435547172902208308451688582204761084498165202901718024681166136271153761790255582415438141000538214397879171251609956452228038878960179083852131615288735338492601576999926239666955982138392892318214654194950239136459061416930793777077027820437971587743264320997627090758994109525534271255064664309101282629415636467637190266657614971568888162191536046520660502392480547921983079028594472502642469278209037495077785424581472054102468710797758270417506120727118890431495952345306399006337549899156612349118046292716285645451096186681245338831579508358027902563376870945352350043036663249922190068785017454538905350649525081198926327110829261603251941143640583307720973668424843491843656639224036391458807965239069102056685152454653842947032052906493699132896993302415518127446225139754324350257654454180743229527907795861141173244012569560602291300607743505160882348375150417806382203535270719854282729291156528833567758953358463879167653093620080528690210142569858425757826052894174843054447521811672771909395209748906055984604639004851646614017763242486244388918813594847870614219817549865705473680670214927898636629507261223709497061956535661353608039579335829417905613525444912715908592301326188255470370871139291107498460200630170356839408806575970681385549205743402697643937617241629924328464368179636415822216511647369986279656250531617308323722734199439210098131211394521490974158179625389162699542995462344377375503512645959423929659492000544462262738740098577932460290068516576826027295846505102565253666999013186745077552219973386567814297638583349650134128791575832044649424967388705563449676704073921127597477693653152293017493525829641243080168795993140367623849127049468777444655381656214639352156881992597476775391164937989612869085464953488954704127788886142596322572975083155894728023854394297916946566190432097185737075355824960847308608726083896540030012157615202653567777752380199985363744304519052005013513702582847635858931994932093762346698837211852361749820099472755920356926993349446623588117980356997723839291391159922544784159826476204359571399571435274215915864161387390812695313268679030301980047235603201300915768286245433631876017577620725741342695083021380650622448800053975957368449242350245991005297751791543835131189517212991211429591032335226698834819273043621968038927909224149914528272959209225544785413886752572084728762995514600301900421869694223760809580045230705805141174237480735148657564687878810930583627987427276615947304363826416867123580111893937126386048059109661680775796624364112041525094735164383762818591518937295147659281517000677600236864467890553860137463759725851466767026655616729025571939435059418207083665771279110457911298190616859460595195969818234399036720813422884489532479458474690190417330822608882029203891592219928370309685496399098399774072902752041664450786342544384787785339368689374743016527159780391943245557718789117644274916374781052752353099657840341623757965778078868399827480605643219895290851833255322474587479487888250547707063347108914321853166297377105240646679016306562372798120332606019216030913928436666288471951963020778776602853967186875737319771453101320365769928515314778950285584158810113070746883286449842147393173619557967866713440124297625522648928180624424758842040811344553158036214386474789479897085099829524976793254554493398414429982580530775935719841779098237468486824763934774636638417308496654747120110000154850937373723293063205353952964023690103716726428230703524419188356764729356166663408326344303514535506067583302311169227265806591661638144295175870208615260501282106282147550814700929613320582336658208255369845572198443619818951517703734079348109360506006126800204671558927136254309555480825137405441049326896695828182379381761865166751765612322229761145483311454303928408128737966810083795776881417570194899711823446799820101814038119970538721425154052116899129031054252589903240074152338022106583117314666521083052642306884568031110920872998028057125507664276322182432185150515864919245132258786136367332244984131474744289791468113424984780143156497835297505063411515610775771573779283327022918710229028873876509267391031108684308608880379163931657783145928247394881869887621651502089029274436603414543306910604322753858054693314410667690162908967988871142734572564386639661340420227737236065357168134289966216438762178377127138488249654119300287598386668505483839262054592150707365847151521268812480748567548084656283735245126726688037244604891894030264056308076688644564901658142830456388839774283817013146594113372161346555998994524150736271915251676896690507803748362492155255085740664572725082760404056066402746709118005607459802399922282006568115750733564441322157633158355510304517458530196807314616609495946459673248293243881498052097141875831344761396579287210267661878190609663944742473086752409725106268138800647740348034553786981218625311537517000690963540560163305244668233403218891223690861608612985936685812761558422924898694128221055026917565182911123094177004915142694321490486953271294584859436794152546367346406513314611029698690447844134690434553296786654825399537350778717091716054272164935258683871751398693430520592169456774317185953915480578527326791375852099896125345418834967887533552736222336861304519463576201892461608312271393547370971397713440491794137386418133679037771671409182105997346037217047967793700563886236837243954116704259517582649075225225180120628391358974678202160991200830306476061113690572525788665594490794725606534212012050590823342952134746143037992238354087851173476472984523101621705713765293491364849544952785124803691683059697680480109174738101517069371578497835555058640101670810820727596715494771293956200117969078517963071296498055161207735027338748130926489098112605348604332974398002372099535201710890530507557462534140105778958341076115615487095481772710499465456485741960504959637080722648829342848596230916458987569424575723923786694666012370288036824825601983970822775171078702053672322921959148226386847355834936682913941655462618473901763677748687428458150485125443374894275885481864484549761337627279713577323963179961592772226294656674318287386369078905062310090859915450386196573537527888281822672137389912921664343027032007145064015249550745776299962401142516196130114550497431905074144472013719814266668366871753736121087288109177017511881477278033024123638159102824685185082894842490816066232273685243253433806250141716498584421778873306924144648413047078914690793081328515326872967518266991209483962948120346286947444954353854239768797512709117144078741885383961341623762475698906416653661654168315140380665964214158842149110329406983615757130433331352347748993478428282848163641131038081377962917052516560986356200081050408468281572395241493151209656172434124428149865880489838469307668818922789165822316812575415008455874806845402254541189637342899169233890128133430771082779837273422159130621641974616353116166142506457734733674297332364048335425616709482228929994637864422646635636738190275275638726162751808113260950164999957981690831993838102890108231707648553486777431117476600803589010634330781046259614857261221393333489877789094779422054315579433954759886155727640475853632867971974902209586902427064779316424948669703784042635704179611344579116469603155434979973078306267531290531209788345937877306032344188142306435954380808695731919557744751387736863900088234047258496077617926105302881642918625938388369214140435017111858796571021686168363426182511220043535197756281379809304557650949547284648256784798109436945299535396811522350935527510489934924588933962089382848475079206947488612671536732600877416076175832083047643452494820711058582836321136302371774319124199958206100326846405307958246706465616136135463313771702607874738488127491613234504520103680252331614338566993152696637721317291550037185463344468936253057358777441509749270488583122271072427165546904093457827273640449405376138022226734599775023184450255129534697948440651976928605010460120005798260035176992867436676896938361036464920745897098413503351235028955763172170746032979232862220227530821410973207904733765202608079861670114325630504966620552449230939195278635769329260761465404339643124594290449717501419318378624013390942686493954310029458796657958075609400759251409485255240162552914722087682771863812614445503769099125600859884663197202952579409420504194635891825727071955098423831301481462047794279712579134074081716328817913608143488608414881927193300221140198234690939945739514698282304811632720716496426582795967590019567127597225126220410027080123628231658496262447188617831991100528258653540585618335722459505429706293128151833503189712137175356825561814802036086512000476689447345169866862660705178024770345027697226309611206508208270054342884796001873120014660762604060255498431836342985673063489453439353209303748094379185116180436852193993267254449661134202598162994403707324445234370325846207835170140410060340494144196136122785409797919668104500145215633936707192250804330053825750489967517477518960181477687081683093667556012180745260963233409839899261846013816610741004315283027414282683070588580184828739635973106332223162285721951434924059408701861689370570688685040633943357418898207184717601429188854649744616623418860463536822056559304418775298324229377064725528465529602429883743975568279485119319374632299177947756085787145548781585116213300745194095379576834588088979028235556296884223836750952222588745347318218301535646124132194146213530921088181678654689154048956952864747408671823170899131695961197662615171425475614175495537094537588290629848619586915424701494665466664052320157904782242143169135723518081172908435832159937646571229297551955026674913443062985412488306647644259672594954315430153911426435684162496599426422185861218790397565606917768804645594094083574761388914461842567918792516400764790290830690904584943206786100597834471429937728297974181830948271627424046291204155563041145686397026049527632036884116488004996577007189686104423117380021329101560429863488928175074791571492017666783136740467158219153587126745209419604858304682211533451487853860566759178406461135226728348323485166212821143359796185616725352996563119592909397748705443299378646966917204787307252016088643862708160145895439610714453899215597084014253801877186426024078367341387206147464009463035003308536376898973877613598919203954287365769029834673710394701709350786912448356364677857803992364691850039087546379456738144185935258872135794077587896180784391864318932806163673801257749516841919859149454849605519752475121461906958208418574435407459382231497396087660986022441234997606774963618806510168529712656608773677427080092151353669582062293960455156232343331826736786129830221419650261037986438906445389272883909883976176172800068097857905512039620437088012302475379095791668351829549181397816347007767547199044841794725247065427515169698977489481317862298217382148061245157561501885955731808967499587157996972409568391923663702563597807218223565980393246071048076469855621522464322490755390849759229292893390710453360065891440908782163532265004526070090459239372078139359292369198548731414778183157798429477048085382568490573457542084291950096929162382426178367280060916023493818046747439068760738341313937849176171526917851925608217141634071928752757289051903558103466342786906316321677859747879344017615512727736639524224511868243128421614905744611063629869447386181362093551742322206883687108460923376483614465131149471099169554854619716878321449926905357176034466390441453493314202853215514667424421830444654319143981833361842882400316328896862205031251622077561346875024363877300870799161630016859119806664360205042462154639014201353466420751701904177948712533375746464746163748850730720546284932816226173050916415202945253361566698565371634038686655156635262680553201179023349147812730289057262228208277361262714776629446997316971317844725060871367119254017803306131767208502107018843675652217500421289751969947398995087484539070328173421648761396233255357010757809429208856523695638265112647024562872557529838377633852839442160356597149218434097370793788668624774392143608857346886648449436876282996305325482949248756083114859548472460922696365133500167781509693049950550128209328417922736850606065157498206644942993381376868929568618348766913400207498631359084906875327511397489900518154306372335710015850668382445428455571647559036901668259270991928965151050939856169481822683512741488824520477524205366032689051136635470977847804394425485854263522115350522893792944823322944658691764163432251612354152380774871957834864253613624308477232267786823501195680421888253852581115796884511734722408981371078276677041568287895589477996537059141447989512922676507331151535772018532458130203927815905668789195267926286090096074028062091775157994126708964932596316101267524199882010296399731809934138475054068222235974345779823845020018273161988290429798035611130739884124722520046400247842945205273308270572944281319386541535289954454976003094099824213509573200472325229936584380067816253014896186142378463258961130430445385081567982386324085538452884244502243305237801393500409572834088507746124494880511762093294611691327910513512912859850713912000767789484531122938232446618181186589071790088642435821817653449675267189530636971119692400814319114454382879626620685578483069657397168608408555958324270741126273869264234745703209573924213154675605259720660584083417235904369271028799993766919324683021426630172546462123613377730785940955286793570783077710074968649341658304644458822896313698838673979160588444629541235368930153036596185785074821795179151829302389890916570144066853904210949067976880291398150378285909883265862135310005049044746762748340484125238379154638087587031269018292293842036423713935461005368338083080810196212943224575437693782874683832980931981089113060805677451154799384385031753545081490847361644885268116903923228021535671021238206005606142246004746852656334684339036493589875371425284752533825948086898698647683467903976138429391445979406667971554339376480561318431039689099528482248622587991814660205665796955713435253236599945683591362301973304106830174891290005483199098958178950208587927202704929687315415323122095643644889710650948311263688024102666130651959730406892769699327992021188129849389942835895142803457016494211458911914882830596228379799220195609766463375655564117259707261697936330310482748384962349467638790189972780719656108102849173778597022868700799903845980004888136495583621257681090620494434366260034314602976604913879426202537487804657554950659482208788501276803332021302730903408066178969641229356700371635904717854409312183285574692594352472037642962214080479679408937680764758366593880051942129826986578131390455763615814321469898127847429055540281695508506987940336218334228664549405404706719586534991056755116904385059935126854848392282329448800928764779870249944963935355778546076989777896632780579266888783796653641842286710376412390299357472420244075700839545671611887179319750751079938266190558830291534001570251929541602915689357929847427329782108426470262397347497042566841932187594477014851264138399341647468046568452722802439139386336225861893540823573398863728671279374262468336850571149885582798606123861379058379038846521631003830846587111829583039084938704007385822199122453347644654457523640583455522473928406385817806849696120210861348732147061755213104163604437318946331388299044325103592289890879418489927897063641412219622636896637085445404185416168537826836432780469426800748247885107343484057958790375475597644306303611756409089599923414958070104804080780011420007023723831473936838199125070319410670915077552391000830408431103665754316607466030763098137019472715271884940409375625174088141884546241834081046113674218535479447443278327887041668308893904934517678853148478045613429408808816204142796533546045022397290477715819609177089796436905432736279204843583657281358564311852153899407307337872300898658441393975849894230799646902668738979271593186672950689418144318529191191963244719931288222872295334929167974387409605527184767830582564832549800726301392499519576336409071450813157078316378172101205805527344439911533494688829446041127583660506598685549357213601338988899348197740648642182465819194000467514296219398536697649195092982410920214996060284408393956374849492348120036784139646037838349180756246216519311796595619106321106349937272705250784807073033483927878415143995245501021637748601996137544688204780316161541822483264746587995696501152247036165260574674663031844992997789390169787446841809651921626953183157596690042205573740191885283068073475167468928227302904725781682573859813683996937000925631414083025280672907106950581864327225296730497443530815445163033577554146537065701695721390746636112034201705059648479612599066938234633080591150883333928313566346809954133561762170390693873454903016623941942127737185457441972092275294679625770257533482568338271248145595342167527208293528243006953094935509112743015649193303467580940615997955262773264560104402088010720433416322495740066501668652343883064202317474418256505482560396237381525620025047204165137648214918876922716964048149661472264523838112001343872818250812740747098368410741982389825055632089416566971340031741180700310280458181305072438700781000847571371144888929425448771227115373324090477636729734493805955373188156827550299223771667517906709168226215899358134333488548235186102052521055263593884939101285709251757488497419053622609949939818889246916761107096283259604934352705549047121807733591383206749841167627890539341486373976608021911631020366633259086216687941060411767290722709586525475340865445599437854615944141517333047842993173527287382035854125253743725558946722398570950144980128031580447304314928118454944884364851285945445446198349018906874658540957785258076155642715202211825964581847561343095757046114393009659423919077732322589745877669951552494801621135980406481475390233224131643363863033476244922946749872938996036457201862519832597758216771762228781145807969137721702161331218967145593682118425977870031675340044783127384066524594173400041806716507773805250317854155251864492822869966653985868323667040375350536355693187904428934582241184849515975493679272481469568089715840350405209112429454310784733516793409346911173411339713367347179431505998561264352940672825033385826144208215567487078332202538411990273125824489048336009957484645828387448925850682025998368585863571106443491442461699097879406842626595732308668774087016154022883662791295741041186381178786896092051898189777217679730597989545739622877126103500766350331161450315356684394567407316693230289022557309415264977066187566249060786418601286950669086569984289310521485910697321557864934002602913111485370418751073658289093529410945719632468010274455431462514863240642722947613231790006388578297079406166511509752228299584275160029079321230580891109897532704025927649926050035932460840987999899315270847610843371214032544066872521571690923825402245408732614724908054354957524340984031880641180335377548922611225425836472307486670223733441444413307195238809519100144327808785139900460822688420740447911503876653672535250773227579182780241818022462305359050569700491619213632223669580107932481040196311767205027232710945617516878632573281189881623960609447500138091289978106616607096209112865275461047931059871928235931880498451761050778814580833283680739023239113145813034508857685724398818555742737611604069917666613227184070722790927452198969077370149378655905870955378790656458135551946538483994152983250708364942366433240910125970037152012951197356013345824065023276949596135057185479602349643545363251900609886288640096757195575937272863210624065302873117761260819059076541754582544230490071284522801803872194917408632650747835658900087055974960400427875728794192958773612645667547806039759444416424078011202994244414757800463186260512433876069285139934313978392815084415718884241096813175502869324696773112600475325446900602816110003916440473780822420082722920904999970418951741806765989500289026379969911888140841753186457715293959603328320465098318842245916229446860663872427333065860101499988960684413272710027587692622032784052824560228933125447652659439481250312267952827307154494039671148788369519778283457555888219239925453461855027882685511569594813707747155070267719042558682300970683705283926397485039644992307147920433614103576000775363460244334019186945550837876731839202906667985386568416805953864380718771398454107327329198436472391865317801520048835529619237621585021434977452922501974709328912583468624879896787222637294950262904085407458003571479758191061921431760369171846646755583091679819726287648363097819163105529192803317478325597602602105670664637953574780242997752966702220171280228787422226243102370108765909139502336149998004320401875028243426619509233871462761302578783151937616149773612599135757105129517913453051663518164705316067333736836562851202355375369909334215522153393885436923789442347592283009409172219961653290121106795833019467870210729405066526988297698541082659239905575378333554255420928663857367698324283988729160041219354054833040813350595155845528369498413980303592508414227474359685768198755651968996929878435174115507351349647199820930842607811790926153441799687798662025419382365985274660749227101303853972354033658589174149038695988318445140900798556227315724175968856555614765687066679746436459619615486884801301946245705905378796098628263138708127285311326069524325351767096277977778855398831275878698997963636841326497454715371263295019699745303616352820013323959730206696985673796527189621832838776853617922477755694165232376255698169071552328958668939764257532642733194454582252043085283962825655744822367862022018866661710539308728025045138602877750986938086523765118863362010325321603500551457051551735550826532097486703249702919118670738201023231333387698194439949924074570292002462275576443290613061617356649939105450466977609515799092599706470860770834581941425494172443083785992405465312924193669139687722908741868390280748006715585756420418731324948742349482488570458635235631119123196691767226355648292889400355286220142782235556031049237241255358280267299322036071420547156343365890112912196348131802480696367852916319053636300009660216267314407198841194075887311003117543310226745865572035917887150972934714223423125553321989675666192799082418729124092345846433995188176753771942819207842083754619484220943416277123650632759656467305359112324729420835611725238260460243960198781169972985053183341477840967756930848809656335982476899955320122964285218068350448011041733372059950651297929881001028249010737337954984999383610119573934006466479658414965330106481621725347509555296643670593476746995730932805247889987247327207269955604769700831396643266713493169326785011659498752846908762400816549065506995952691457355041764908549291331536684398410827849707351312037915990246401731702487867421742726349482738335696422430696283789322960690915120860734955819305878019846946263619746368124046069090011519167778862623001292208555898542755116931057221964174527017675416245370414410811798407057834605145281103848058950967554799625575338427009766288010748716861209565614556875172777712997725083480241987968986977311541031915393782770632349010367021349654601690433823624130213737331064870760517279264290197464286440982116393150807569964690471065206272937537518692560798576089362168221685318904737259067286599265461601697883677902936948291883103841409930149878592948522065778109311391829661963793544388460372655306746165603038686905482490933278042041416539142984552550995757436420796482458767750191526929005002289392201221108179472594552482051278235097609027420043393366422067340063086261871530793847463901026337158144589982342761036723089946391514588549547888082472315353837184310567484473989359797089716372675644983922228941736452962072433121728899754010302864237375779990742749609301755074477107125826756611631548158798341501126415773222850556849042019859576705084008131030300182187026237158802385464426700528811920723798043452014952748626428659499599140543158065219760551078709290390482701993825162455600643065939755611682297576123274056247287927649613392929141434233208275347915803892870801176879397495035315947224395582746178912555266396310440203012932827264031816476700776813710030663326272248380406468863981981502570381698622347220205961956001107006099641142195646427048971057175890411038138053263770014067577274996107446826733773838848451557038353316776054599631604545106796792266286900335459172862689225848486249383711085330095458923894206938520669505787254856797577305356424897819802554652289417377893859568118747993097688373650416688021565331565670264197421139168629622083235807885954457868033434749062201138637219300280035730466890071287222209477801330810147028538251204330645881270655003886010810285573590765784329533833942027150741774208406765023180296438373839924505557574930695699097338491593950504712650010834669578506199148875354880627053290246572517808402885603473092417753625366900369283805636169754741597839300145391106695954697556711085974235677353487918643202463008797131948414119039946407674283347381776384115675080999103514071528142720284601742932834321483152415353699755664511956651654993997178152259329508287123630694902190310522728845210075593631001435271044764018118138352905446993004640356363657324441900198579894022286584717844778710954935284784091034335371137771373720894051697196220744611445194987880199446854393870281313538424350580043999702981833887956222074901844365532288977011012275104951201977482134524717587509136723651762934861846463981432107532045949449466415486968891194506842969474247396630012804701351452605162173427707352489548084519714041843498550832962416860131681606451337295843873314824983379373207327241637746552161923694474394422930114815707959537869553186159007655537215540363205218069503048261996675600254755715088496809576742103205300473232027428680412220194371840328283612158578668063328249510229882295980827500292453371917191122872012485764171255303175993199504282798024203898679076023238370065905496503070599317751417298069747037850539094509189800668594106656371886116171973980334296447488784779680944755902226927408088708214560192821600407037761209905337502451217243378522407674743432976477810345918226990634878856227105250280127048467013076567753774249525033086051799874340166593183758907495106278355851109961594130886511385980141460946742770046206151121431575147241200747928558482397427323947302966410504130070998161711497570912881306148009861487328106932762356983008661630117959090697726628803934687247019145576751675610859335882993412569493614795914025873843880863458308546907436713107845279015454412568100538913619732111135710751235512257420655500155202938886536573793650589973819802994339316799642368073522075466666108870951963994378689633658597531366523578186755934160001329915227140163218047044212038017294529521374098997817934708290105124678870090876751195908815388033374985356646738396383282963920717889329043161048822255094019150566110836336673857615363382691096824069552023324831654825277795632355623042474813815036446538743211700062294178612145771321107789269829797021934816464404840050114257665856274681243565520829029533216798471947181684330518803076593997288469543475907973501087650359321696526107811058947172337266532290323820379969533829557506640313993444039939135746955838333216581387585319980187661915427324135032974075896043569642035578195946524198955424680722584551498265179217483824973554682243561581129878227436773974534245382270729167730859847403491901222991520344308603599531127192324481483161662866583320302522121711878155273683081420995505585737862272997447570272748836716309623711776174064032407392015690601009661642779307844024073710689298989212161022061952427702166140824849068816358826973855944313386262489335975381087281808350574442265621414836318443270085329645772556326062154614742190230326738402249877717562388296016212862906747464152224732475034670859625588671799720662564706104491398070937866295574773870179906758508387552321066798228787897223186533745714443986531900089579985450615431992615893938729696931897494116156285550376401200357315037537469280776662950027757577424875698502050810255850938603922509445344767625510629231611828754447839408855336214215341356226329682901313607134970277987634408742508831186000146467919218571196603286055977075210179536301930588310181635944616843080902276101714456753613987193728942055228886130156538909901902100309473694180449591260677759970774464630503245446408070627832236275964471521595981467632996513406422374599647763605670425781294225321852991609037490194492673098984603017381800877462984159788303586739575005588776238497070294922759562875286391138171209116037225883210200611920071779705960695601108555485493087405817507289000391645552731277143412380139220962003430549952007218159795652967017253030487861701614940285296474838315895519671522814490938027290504451790465703773151654557456147030270313008121410816219613737436979532774359263779002703821773995597161289479198804331699607659993905170180011627323122978996354911129981275589944719667088346887956020435761964706546572299462389212155984376432818437233964180976286718471221654696845142578432050918408686087724935802694436665055763868621099811092423020283214157367105581068077912651781527761964430227908463378979306374316160649491066488273318465507202207724506858791775147224399501847601561198240225993226558006075534991600140621212851112884995240991250033133680678198639970012547117383436772409712260859256225577103466416317939297338591973975173118962392784245933880154353757526158570145222322549363737284552461118314149472633642420438294415221490126603277489931672496188753929310043766636062183488370225163228486005054306049940964930366349602624864584628461538484939923135701102353485633587840872209529104105961288536943931395863394710727206803268612618090449682885691365042658323002818209309820349085496604327118608066978827454208718793605633813448170738290144086357301296428177291624730864551643688677791920066992478998623185958552214165490265848617812587710833710835237125404037219734824036234288087639763202352844200414244977689223920554044882587331623900917895372069425199523759328096707597009227991005830752709206512481514670015204266186475417486923700344946602809331644713256621278561348105155548275155416339090999053579327458223643429211124744175259685707725696430336577443010032542413100621756421179704489192570159079781952704844011908523300138198333760840844648371990746636532457692681151775620128922544318054133024591803341312900209625195004632559912555422442996096258760478352285407608728144516562982018551344405723596948423868976660950825153095946471180608102930805841836056286171414996437155403966612609414806469756754060040403562460915706004478518159079452086674123539628005810960635425193237051023185063817204336500164775037496631332348028538840843071656197411338785565572279033916793949803447203007371656594026285426223735133251943135696707817827526372667820945542274272312247660720580653297593799574486304764021182998017265176374406139513894624329440560039948171581360391526524721989915775185703930837180564026319179844096379359415437649963017125355116457736858739300822910270511986602034780886113882135863429510853255920204244781304647421325940828612327427568011152408464890187958023765022102766835535656353459206127704789048666730736401735680053518350947107302452462970019583139057191483156078527476587331267601689457147224826030962300198030881495927010751134640704103949324844984131982332186914180634931296070601915785758682709355483719749847989982384842355316817697555415324356108718178950487858381950022165250367247258677366427340526961836602120299106432679970912847189680161536338948225776749920465870312235882963128803118176688415177257577120746846655092475718047854806901739972336604965304900913263029283425333884933154339937652288581779177305055420396008345733773857166943517019244950801309848734286676308215350347778592859714718213846945885094097658487485509891532211595236068571042213314353743514485615880952834854975591923857301524123059595820756165841805404571548377624553824501150692152762216876444763992047341574826471024786993892393755496529770128003989699131683949217027291274437372097592494318735589336569359178370513066880650170955292689034836794161153816951952141902147169624673599688541211200448403833404085180805776285287256337067634045235031476366021177558255411609868477659867571923228212214735938340327005163304655552361492244580637089040536549120744919532425626897533836021800619340141059738812692788399132797596544387705651612355822846501517740745463785061924562873740342725097059497328525036283264008751933233192504789109091604711052905733428840398852004807182597871092075275804010250255343463563892447291491145833224693432035869483811469116876651862710900222534019033884657156930356263489799473922506477481866033214929541591514961296998381637090198766207686459832143448699002198906008478554428951507503552927035897206353109217819532902496667698868466386221220748584567877027163776140332587587159727793814820517460571621305479524373673572554820906830417570149683124936785374733593204832845794779334284253597124980815630459325815261374826203477442054495829902989923294224088725417255270578274217742985385648677310040429367538363661362670896448868897773183973538366473983683000770530664828523445058996771210927189437383070631507952525088358815042574185559829785452068422223901363292474453671403718916400061556997363404950537802512457768317180738294179811515621806115517189980584947717101743672022893038116035502229190514774216635749759143053073788178360262551352636393551679884098525287010069711301075783263523658516009412361230058907120338089240655818540259069507840867124919631639532364656276679446596830371143730175857751921990104667946588179488198495406400108933663537516974849139075132151682566408727117704525893377345041061521883168628531643380738037013434017880464311529466603309127959011918602430866057374371632666310757470712883478416450204835328737644985534975115940875307442739629178102650761519898947735707478828242350297593038838360336350620451560259101211227993957854049323674046388454565699317438657329504480760105446429754614293073408580975716321091067511746905157334085185263098071880481730904156740218563289786774256219769668365396180385075987088163130252185519398461000953272801541645318349960342240458639853962118982207076956200904363294466984384270546987406320843585774259316193526366906656251908722853448872677145708398310315829872322124982542716423025905633668919939921602040191970472189651704625604088785289398076364440675535192827823932160785517501600870050741456620972773497339914698574218153657498047994831169563147785193788037751087633752237721870765432077389040087239652222114328245502028473476222892732585903088988293051112737095936727657079452445453941413490930538641132461860678684844287253642437447458221761583165276676254068655644522914369632755604403996978730429218745084428804296909590316074031206044646846687003072815136730184974071031882185593381603439909031962921940032482946421763198609289154764813461086584492574565129029480607108312093177901622384571389205407576173689054670728238408204063072529038114079983191820194384926015175028825473425143846401194232067374561970892928131069568985652879322184463896010515922708780016711840544279533989513634050556180669863429366291623072385743542458167721882628211558187294358596091786789533906430038510355994774426398584012588497405106492071254250921969991924257514982838494310644968525286940429063145336073246530779819649555797749652438353186142484486558953023557409134460007951622230688406118910740415462198708652649391001518970806154902329840889994791866533002188774642254566546371747893675021050823557199220586804069453822850393336925686776810296220487605772617397291014392864238719765973520784089646693833185193230937777527067404415829564630438954531118132874413824289428214937217392713768457320724053108213352523909904132378222422510904060603471861555432267135289754407028384458370934007456457915929639705329582581553594262234952935771974117951109003308191200185134308774500681794431531072748172032703870728013010157076522476631990420078146957375561333709793206029990046326766060824133438588131433806375678084827442342862410281670029625618041907409952547946623009813616720698849474178332729734519747880622801500095125845443241524597936603816335269597721268972321503249186535713292837609058919029798400670935264565743886576461087076790838811168596862867404126509989799080944412126982290005513805819879599136270250336112915579682681494428779993916887827615262905397060129852303521193347534913091084003803055447967129939719446066154911638292604137265125234829780993396140922358873103578464815158819608769581471134042482125877802778064517291940573622671955887811671410564337854998439496726213845536159425326072743653874881544813292748544180751779487644081708851470297975134699563620083265023857539077242275603340103475966182862960352908776241780591542766297151943146264685181771750491031082650807817512184485684815485338877500910422012682454375155428085537530963094317094279055574909692017314829512844440113970801125433545691475743735704825680842398150540362465888501005737965313785715355930814071849763035853857134613573914925315151311065816752657009195003967444503844315354104772123721891463985943889021844744817219486787335080653754271597922203838734589791174538285326711780532765449751209074084359754016770305801288391944836663626271801970278406261275399031591077755475877802026662167968234526275287908000118035299083774231246077288484168711509604423821246096912105116571417813669589578236207345165128159795032774427196957040239786773475058376942178265755566207116191038438171024879361073673849213855128866254839802597905552236828407564239165349722934049036014588989107522875265248332331530508004524637708578445468989427454517661461288619249484966483905199199670409529590853789802442633107682909258272904096605062191834807259443716058152375741401750377138592778033223594249919504823205284496582349143670872626547780727162729048189795950289105422072696541705379369753434532697466067883714241443405726551871227389489596049365753822120241650820444239543459098883596263269732552287143788442368497533643366580927386937856505444959282146065174569150710729223573996094790181684298782863296158997079219584355480132643683984454701728974013647725584714357875100754638223080267015996449459600371357404787596025588970144386243861802300320161036531131860282994731455088887857915908328421318075016675607761125779365826685442836166866421682919159788360346721684399027338323283740942489962179720774408622837983422874783942572717020116746884281495803581088411324373262178341438535451052127284145758569356205598486835544794536489079016893319864844069250034031669921858618272691318576133691956528839661117256814960179720765917841216559815388341278915320645686036446598527073520456324056305740166079206260338169774440889022154800570044420090234336758695850776240381209035365825162328080702843957036930107447890487234531571093983277889612207272096052512334172653521164951383185418852405683837089437570947851787968863745246950021360092752142218179591014189672785109459619133904444149212404888486042356194897015660452262258957050403145484830400267146334378791663286595381402958301648640350091854800008990479553281463419369109590922419375962829908526297729468068824235052817444213248451191647850570865634572513671610671155293669802215109712213608520221681661901162387201415297779375521119918734151154338120325071685270242330605707804675166255298565627681462991717247576804693444702109592654471315626968827934676727346051715715308317467274797014385462182133683043889863099490378840443417844007229365906521779753901530194331404537797841439838552933254910003921036107492067231446224668651115217689151319222716085171673394647105277640989746244559081338030094413628605261093405770100741285157237214355137586018864042594142898183871214397194346551398620260474580029218073677944562247251003133659311766268083366036726658904045377741130769306898743423090382635807183364917713555708410503988466303384244197255661469047774279468979132816759241121188070231832108657384322581622067493683452263682802827205521729724715348246793564764927933377996535878276875688363521562307236394849675674385278912757372923298285130820672334784207389071195486031326863692152774658868679508539861800347909245614615200286174028688434383491020017957038559290598498077206419930995962147558114831005020515091794571751830194696130545153716730438612716583074492671542633596251038379131763243697831350719858765792605238943842374444082439276773834308217668558761798608807983224632349014187301258071433398360997411704355272649045251551102281237262147265013086506335028007137612005961932437589943277501387698018882686593906334609829518569001285168351160515152425396138248964089072121558636370055172412789999195664193170674403447659923812820351377022952067731614690253709860149398749166679524738354759973359624803562506483152848641396041802724313135224373889051089563357058163066932250830973177704732663226941446198513625187614854738088701556903325656371539868498695455044647824496512508743619353973579837763952254060648199965179970748023798879166301060170953658862175397235311261252289164655676309429808127612964892201485608761245670777974315078908477186917384911573381695641138234387183250829623665817077493288819894445404394177968204834528544837798515257322299363198296661518353001039932426578808815982599510726103380449508273159758097396464771535736769483379840450279143655939169723205379672220715142429506800240392078617906530006349461348039711728521651705692069054427728276089459265310298152687478762367109788501812947147952846731409560015171816475902569018807303763499658421902283142810702805028450656876215012853296439281892524360684086142417316413308166643859898868289403341045976791428564178096169478076444638472514613646943191558519169700404509922435954248893693765786732209247057982508591557851082916948791162921625592641046534624086523177468036746145760611418530539915060112453199986099077032473344512835987436339737653774196011867371413538327775476372580210823161140168985450518322858675622930629792090114136484950822508861920896746275305846322320522295650546941380494380632605172602678272378422217334283078273971444366438526086350361271943195390011432712606029119630977804728208956024908871125440174588219364791043867753689427763112415919846917207596224594143423924396054430001590712136864508442430669798804096041209847077745390167981889458259506950589110053629167813866519035418858901739581851282735037989199341330795141648380140793850943127324196707559819630892640558332525805411231468431379904306648718376699847923314346033724111419297287848776794706206611952615894753961159288492549146116658718434161588379476684718665436412027702289176289505543765640036245000972906381034596608515992493665020637559623517815765629933663079172471386657500836277929059492410294823324139252951093656158661020166844711756459320648148814275863769066242870625964186197994588453388809417780567083069357601288624808112213585783009311483947280198202231534971433826864836900526649735911523646883631295798455545462685376717564910239973325252719878027613176435619888257469291962342488360437073170613050895610933711567477605013770284175549407645427224063633051661622709490051411706893550564960343383150677794408753937082523916376157359484328148780897392980253177172957825572176860567543559498787501681643150219266878693455172894280343733296827812484911242860804334537366225289098662984655599076428791857729996794450641086542535478808660334627551890143267609080165231081854870077519299256273060080900027317620739513606946709387426659302556767304884148269010223964225062062530554787856964554234362695738442969674412214176439309010461492194006907305756962381067228161954599548427571585697081130489689203435748298038807564382911370728331300137713180435423309829169517456928590809367726193406334643397095228899596793931300975240721229383760632764075477082053561987398850785755683846551801481766519718095270296580325876245986136919351650131284627365607898299886621473898362502413474060326469780493188157759736289501561657834715826145751312077307701868857969613054543717139074695647546270670215845679822568513180200572565205346148733386211577236369019776732818582047173183453798935336885234012653399043759500783171589525667370404878983772366759852550876523131553515287070885688723189806516339958744975574594774507347809275316459732099381416171516082998781734271297321334771731191029518791964085248090816199100797498685400860064027411915716843691012653031967420201028950168176057941389979432832127490528114551991699258100096632198175980232914036705769220645237439899954381607935666173323049957547850310466883819534608232431458137353613266023213630435130254116966611895126654904811982890729971975357887634737629991930866965275171849791148103258869252935349449319978268360006507953131072467863018793354323182331530676979594013639340821245504374784065213632975873748291827197243727571031110353880143885535655431893118793163959262185055972853686151497081506867405261540681119228065775437298274695140263609361335499274535051799649783221046129397009051256904916087589280508227489253783336225438269755927252714833603895617434778422617094191117666146985130337487669957949385781044839088512203228864404443565679693103416092970345892201404930396196532671910638227611437200927806216343336201863521824056553436042323702054106743947246118577897534593234266348952670372134193896132196244307686655110513883193077862170696405075156357892395450161635967533865432719609585536825332585473098488101217936352409752148410945823268632671983895952572135870319540087978724024130211139794560096948398680488242426561883235833839544706443283705538482641593289794274686036590371164723517010345259011390595500359326143919989794937330567769143784959860696968134394107372537407752575343313634553664340416833570695585628202862502055091098572039718283326164107442849679286980977144425271886771690348123791487491615710905246841301198440656634874131881692462570044248451296705810472814023424932999919651837757827205327495328611993593015511088939564559135133598201639557654488106809602887072665791202788853206684302567412460734589626666548101863102869461302626655525653067146256053599413859218670984859935931875849242961958402188493563150523111459237457286785835003540030491385576968212770204415351650661858658985746560553881187083462762203063022624680894487969239818335148772513086792905123602124559252195289759306089078937646265698705305780948683461339370975162039766114637168041111057934119999711692050152557721908059864450465000196640156981087445428503319508392138735232084810882750346393748203436544256840899536075073645851243821025481116305873885600684113878568788335963300557343252021155687988389001825353774981896758257669609146364169992452815005542740726890319123310196191545123539005536288550527839339895193857141211844976092265052080453359734373537911662970374329365821172760187483562958827359954299893267211340295413862176529195333298581457006036928284651590814134447487208933064015489914020603723690912261111933082859868853017185873955320148271616177937464719157675989436139936304371705474996470270066191760128737212330032447418176833970332461068328970625990724153527129380764817883598488019732930199033747872201795823995887776370171846984011512377567482960908465943683568269100378766550935915379328334692456686420863402644205384784958880280161344522559863296325681481753597483498345837433830240499443724469403384179490708318766635107549073190001055065582618969821583850586244591910157108088910405420032375896337647389642422853002440867005707549128182244336470554144740468886850984511190954756072112792919509513308111989390644189834750459258571578183835404235684279210682377799794174491180908610897222586832233930000835120892717288735269380471587019432782196937455853978265671977745657593795638363950200838054748365371980614591383010983078485419363182023438764492150178621580992821755126478797646493448154027398717588783685864176949766768307313660130384594709708311625206637214071669018758471432087669702539331712065764208533258550036118901747065888242036440911397464432943528311261325853801377688531476639930795006259844249409033807420009923059915094939940025804805510726280119788460490182096457561988109461028125498893202755844675211726573556308447655034321344245703666140759422892053924390428826174573765391669303869357502710940340017803971852710001656390465612002942920302721669370885465141429684988552852032686662068708351081561086863423492013910701295535670622251541924370753231049632676985769831409787649756148247398075236764177746258577566797471037653638849189525070384436188961023633866475476557602975375169085390025874515345652308334505023346532084696379237212883670502680579476830604298442981237365947193532080393114346833759689484236614443677390545908553419586503693213256088696969607906129261037377348798892039172754958937379311452962231486232991921328800537271400106532036859950986557441960928531397045680106209493222987934301593903219171469236750307036427211161812609719197446307065929289841058561937012335174543592655488380626677263285548853345918749538218971083587725143124331140987777615213957544853867157635334789793666414245225144785447364420904435373437658879367005629535595529785591788215659139209157075801678878782104109639612041803655242871426803607445072107850811155991591818635078008120874287724858038864213663304496909949538018380007449839880626893097043194205254697540100837221844445329912089500060299200635104415580116340986087141608756051378403970041611583126699241871051982754714953863944848086304705803212450328933248830624422444948100186942309781138328740531326576198853472963678518296986454073620133195654802292540324776133344789123034095762552087236527687182513470536043780732503241688984787069300693979413486556466800102224464185015620539803048066960598339514164054646058305864279811843839663526766715400604205432842965945455976459477720161889405916285347101496281419652215088868116986333419832229716276980994685978692882819402657518866675554703770865209440383985191347131665670883074080621120985030107186893837022034232494861008605593480192900613615208122268501142312673225115091340673261262845894554645036874384991193073361381080635080463548848418960193170189121519320948990335565269804686281350633678563283382703928216588374943648376376644942733266301743516406014735896831530438148121601616681907220566156448432197928158476308618637451407446593470752692778710696867314645890336171952728469765551433180020021379994495678338397326768687354292214634485890711123298115893034914132432380205111011985518775230001216283169504277753428249197570930333146154704831255736790021141606237609137467819447113408439274734836316197187758779561722703043244719303485179889081401356299713386505053031412180348631415293939503181382339446132398308383253395742070974034820212596730862275971332760595323818147864520245754662490933060919121211467694700110098841717202857230633460160662775418233274099276574805519666155155379086993806330142707279730431322990152650351365238205230553905296473971929447211787584526166288318605732395591180945746895176884711130411319381888581152114867780685700928179586266159221852626989603043857719634941799477445181713774491125239444429973911205004769770858735059748197276125536156066296111000932076874779357934311941479445910296527556638917899679328888768647191371265237030801651824203096028951417525686274364403938939944944483296916914728455253147574097526600971983139032455754023002660718960088936691969955043012178394311181088509772188524085348881687023110221956573943715609909791332983582305616890996162909753360044180618605533418686266025858881821532001030341990560093887099180678221703622299660033305762949008449783824582695206676797769627420524605023829419502120022295737892622217200895921821158279248959462851085778072795641872529424266463814004492884817203087413754234139400399791995407604904020655356544674775731311720480212223566374620187310063635243367583191000110376636745708270102265124893044989750594179794000629495224086803705407903096498492995851214543291813973268752429035550681505771153719396453367074314307674132499591747426144608196865365896649327120257816276563158268981298208786437974236977825970478103478259999337502416090997945064220365993402153336349842972746827771371456366749312623036791659151678447795545882452551990820167275295709416275694928890083982296150459828499560342838473830630579520218904802084104411471287736439280065144494958168276743452089098122498359241517123813936173725481555615335455915185220425796165942567615190419893412128208246221872008724028390598914142150540757717126401249687304628914161897213092914753651256618326425185102175303642407981587855416704564151453307115332641636460087935184067242408573823935987255226744242511061685939576096472269689295728240165983382089247274230243719987738327226498673386847456401022581140386018689889170968900172447269396811060425894379575106458894610832323503785927514851011865619827969317369544703314499720622984261252884770279875613130440499128769857070668706328710361615729320870784411676300967646241553790016988273285322093090498769173510984145184273452139169495332089838711539905355981015158110801756967433547613244517317620339510526597235469927115221967684747337976829873614756310131920051406978340050209688859500268705411173331323127198679291450888185353881023740844910461182753963641232256463324249029225409928781857108602483596973908233941844202734052984422918342152089698158041602519997749107049985503023813246695508768333395749003686195151650470235405403991649190993975046583694529670053412288804961442210357954380217549446469185709911101275332263194395629318531819288405052709235080179991782638672669875758546465304563169737351007727784352914413053477619439384803432021614443547024666933225657603288578263625427668056426471677174217237847168337872685757274023054441784221031997770850697625095649266978707339590021665360789345343015116336038187572666580629860406884862976273265022408687680216030271991183622658670221233776024202496407744928275414446430084891235518384018516811726585589803161116718190065215685886180926096683153251892779972741787841474112378400504478977594008925798345149047233606922780007818336024329727710887914652398785562583121414355763624536130663911596917825932996104361458078531844105774874344270958801215767248977262098129132858895553788708898108562344656418055769256460248297066195298544573424173047780335656352444840220112281549747921209003429030712390904711919585670638665367794465091378293640968694350630330682811285139150741531744523626264295197833748414053661880752092980644809315403493611980295573523470574363355693055334264533753623412567807368027282713920839956829208016369891785303123567941557887337236072652937109816660582696214530035535537466458364285854222572840637956238251887535457334611194109760685474656107180227647898670870758000866930790729509859934570113976783206236366799191683763254557081594795026707863987074200580240839893158619267662785878991094367376658491480899459246146041117846407579419650323619584434221985076493992449018205879394696817659333013861090670967949049619883127690815445366923147476540541084523907640820757328915624150388300538843474412374269111228566317114776512947790795998494472573061463323262385090278536385463803322570931768025976547347229358336968023543544335711004171291153868423871770004060035893334174288964687571014970767876295948294514518820649937420018300254844741557852114480804034312967786612314769376278269410166193451293596460542563174073142678274336155852546583263982284020095997488112465206221648868715148780841645654306444584280211873033141921424855696691592991225426461002562599165986858516860687754375352966371693130400426370966948370825564972324963839700538081456995089358290337841384320530889189610265612535442863365564526425748859609090774015156508704427864157055849252538064569949746360053187682928532609341273711366709643833587391567817649138687575058119895360845358614250977984512865840182202334810059608758561256785411656957953228844373513577862840436525622335121986110296181507034731973947742137356780648252265498732582453089471987331253065771212880490071759064195890674138754598012849019656584618637087831107959687426476621951391183311659558903498399095299685357428754595849789467699053306989741930059198080261099464916903086889042280915787085215976462573820424602390739349864560725164684958871652708194539942216377588235522537401970329846667447885851344478419904438037136770377780006420631197058561156840142247805151584376352323492140068557368650206671576002521226008240873837925802480615393239072692994640992909651864596288988774797982877875004867161008426966673814766138322537365785440573326333714043928435873560926009942194339637444972027459009801495022257936912510239854256629658621687131547858063540093812922707521579062396050148061706935580477637031788435120071189839470907576032748048890313745409006518374173803774422463094061287356650568322231423642745090756389859643887057206942178767504974641262129243300894462215175110230776292167926952337983666121528390211801911823388455111033173677122592112899821085589485088808687774449196851412208497368389989268493497931979695702684571578743065388092470404455185413880651553148174681471577179111307758851958430411517466867512063898840033349499185407885906021163454963056526985479776888880082822416102722623734876211643181259158347189999570321512847609889589239911469922101629417250439336191775292354406036170856864967651778308819636244930636805380762432961406969815004544482736869246969945655068355175648997293425250998172586927939258753468924587670435688152557753143993374582829177405703362851472736095781375210221696107412373991520901115791313136277429194655061060724456225968205883606840669410415402830844231287702367988959233657313153530447668044411113747710953685264799379038774459085980882101123635813644065966953334040299042563473881363677395379002763251841777296677738989540745976932380920585036657171628996842748303845114564602356695343616386523524200322421300028144171335555119039834052348338647746519054531262480345125243814227253810138419760057274175166554291185584066562993055394007622561530983275076757227086462918037469531677573285532865538399221894631315048503524017210835393746495188996770784527216627476853173616311857789921951921357356047568208493826338437765668393304694263365429751148549431849508889478268737874685042461925800907707916729583356889476464944781089103416614539141904008940747160902025263208896861543568146429138500720458938630302542854671082873863409829074148136206225191527275088403545993163757603538613487174735094936205381846338986614416610632166089578684597959639280562693490699845570151277412127105930751904602566245840100791092930517575624718737419341033705041100669044194624085555446584192785738922965006031945423360284547039373627565095668780015134031346054611835329420039453988634119872627463656682311261013241415547647031767274831101722334525104015781320557637037918509093846450665005577624523626765774233820146108111874551229430320373445313862076046863010340770499441693493584616712862934654884593786864760239412504782591895034071773819573134239312721699265334191086560404060162242798432317854390136781015251719369562243069654330743066744909760750238648317538137780194984658048097618847851918130167555249615233430724188832445211680605312755849191669585083609775200437812642295495285431232770043108805580718328263995362235688110694036895955605757805447150095217424591283110358540667878764292726190155423419239510513786899014850553433189595786109637460603160550494000808432365659734754324293975236297656145581426129301905279112297448777517300123849767873997339250817689228826466697032200740471382064370127593313026389057529065173646753219057504064129630789364158822075816650690660297015238610669608955734198768093323911289817379183070892343046133022685714136013011004760661355583985992899057750480556936306571039192554003234324373072212136686229458347899666615104503765484949450473101435303214081477523813989431509019449837081440972045255558280040432826848093143585107133447177303901381812972880983685842572357176130742597773821093904754148750982177368157816690117253686676173162660324039597862999163675797569888409566905169932422547803679089167869751403702483871217368931135623302372698211916486379312883912993432210265554245746250592409376692100680498610479593929963753613077741643916320032058504783163835859046974080938987719598992236984306756876962774824233837298030475400548560691487769658058595404868328764566089427530221809030729037572460454413216954341269650470454016664251366269401890643517092684589797911050044916788373818383958294615335502273512022527489049532997845875817637538759996768302227236146864479332537039561547775891092838275009772766043212223977987133684645171213776361256391155565251888930644380932435945905629029687846192239978846954875299252975889840724602397310870832146408915226450986566906146792034194475152025729485525148382909399515007861064761311124200189231011864368854019157246014328398116115051603836872954513614689817486949219231312215248180285683072365164523334981412234877572012121514592170328463026098794223527946110828379802298437952426080279114965797977581869196355422891379854451592212091681895842876303079491296052650572603041362061603601966401092497834288651447209932661975240443136776199701823641981413686911834057118800405701594698504901838084449311849584835026188442249523166993912967421826456017065850548157783204174374342022837673767413464765329653367563441191984851945341157161281159312009218605140128549059725122411663016045594407688953462752609514684821566570715347401868487084392415285119054645552730627664320262550354843534421814519046224754545425943413099826536241813096505731090578436836855621423164236328962561211094751956490364943355448955032065204478511283227650121242142018983276153853933003386055756517753744036415760269375835136359710347817727392037296228464617702296987337783603041064792954797165285947142465254624951479104999817842962666341168564180290340997940377109064830986844675695144917414344159677447277149675322446528145376790573055769479829598431154271889025784277092001665942609331441071645801199197383717877793939426853175465744886982369170197316551632345709945214551399199400561600076813198045977296666157957388729815128855869390250232387568830418324150646026015466918177178724632109278063303895842315123367691425290048391156028201355427422898718622224635026878832871082289813298077763580105332716192046456880154927217992900118565772355264273540260846273281201162868960795319793501235721348312901592468198590262248371473533437086060879976856839946487286719663730266865648620382153792326603661100286778333373241617888952003136712285271885783987875126357537675298860773581562289001047393415499894975873976884170908261100930723136214739239156577133527691091758231628258052107465699926329596392539329740513442271838599424166581347639758842831885022040998676013563572722758729817652863159996452903826262457847998575538026893727361664265440260722400524757532060287752766029845658142366270162353888156070234128572612501162743284857174235615984348327189904080410236883239104785736456880922857412352348868825338388924772609449322478680338200601455228497486800595992134724272561150743511659305237340715085416340630584684220436531578371005863118253042925269621635382601764365246802949978781294729571761703209845848767043706586461971564457544179881638397392478426101927867112773730948668793434643947222469929428130589108891931667865607889536929911255248994146481366820861713988258164371284920599004563884665306671576578529746002307501506554940866405528535680723567801565740272210742465376340672787431520873181873049634573752129411267081371363339382367411335014128038447461982892423179502471396895625186308000516680560152916261766315930236239380672063116977408290984541656167969576110136763892842027091458544658880389302502303301139215262386457358208702667060370825316501305425184304219583205292364561849368210875116298393613626823398367951599700962206256234574248240756307081353221462159188716417299756566567224975535174154114443379566805499091419293980362618846370643290600470330107081389941479663776220109231272102095616537368314178916778400565620227552185121052486925390541074326542852486743047650013811038953683044206512733265757613044774635900669722762384263075033563479718545693761317726752745065920924525844504283888954642539313566052950618714888334248684115342404922405396363415029923145251020086223329334708190811772709231037077487736491755682424332513434388828040179721731027719690358853955512821650433389034527807153997726712460081813238137790267776493971342779895594477580648294433027703377739822181943587497617581233406188096491459123687256806924896300835573567678652115456305830558875935726350875252384250543917683749554637897732491203003425326888891923605445394982131120511237688934857078222777556163223506990530132031140880390442115175934551607172347935188100870117827119440195419657707325542399103684879841226873139855624283503812047391615191750441152665191233543587611090387514691722395724753121435853624764081130387753126141335472830555663185034778213386862096538098342372755240845752271315603045761241211401918170768361737819948624919198890384009353361882989300184689781479898203378702008677767859586830736858140912644260131097127232957324922531544534922313131857472434858703483607724534462872672328016286036353175383502592078072437247761908990702448907872138386059098469836338807158779178708924831222162040245932367613521521707826023188464027649809273296722934554319469230836140387188290175105611894411592951521198153719202429291237270012829934203027625113257117812424197466985185980149108225197025426476149365843307145511431279805459559426631632658257841732624749772644609126602798360203380489985430357347467016792677970354811802323628692854174267594851356917977087542040424534156520544263832989293364071109573439960938203891828474786867881389047139373404931862736550898492917185457261227872233690904514534498928533229994790857112822272087060181401929928981266415991103363050561221511879997271426636801534595942150327720203256102143401803274872267625336639679858560999890381658913604327744339485743437634946446972140849884671518802177973935529904606412443574753183335054936444238227870096892207757645963128835589352592524101137966684239950288449368020229260055983268281294713469009921713394379006126208594175685687576168725235695789504368612256198871189985953124523475079096692850968458667565952915682213110932207888029734791077189921550270573373477315558960898209925323123095046177120874891712881155723583777670842268951298813493800744935590698645929019840088892849600104535801482399476045207125048450204009644146451333523187269200013425400349865540497593902205111582247269451409928129942187437141643939107535417325829498973653091256353239426168802944490146410478557965798506179094781673303835544192457549691519863457233069709440809033562884711642139855695835812121268795475435653361377908265906691580500344641262613399408123928548446847546763423396928099802826671224503420438690159902488162004860664232391449525077463926944044432014877940228878027707088400071403932589823202716018159936979135375963960038634307818276694559308189718248496183753734624090677667697005339624702219824850097388572178026083878822944961895506669100298927517872525119810531856139966602812396849424909928738244173197537222228828060635880544426770857724094581764255002979488093865577969332521876414800827186509767451738661712429677063598498746181792302228384246620614486984489142017616056576238810692778790387771362418734213677116995567602174626931067224691099864543744287640183696138275665105599524704760321249473094347432321957418292523560565400821379579047978755224430910476371481851084858767919655811624604830893745981199297438692923158604792691435673606619885740999259001650634025875353335994804350807392620029690462179535127884131162381017826664258064018085527110991755329897702305078299035003276331411635648516042181880855265582669357384770848074692643797789450223442172217075426856330311755599710544971750011466571483163466401581037302392487017875441716611035732348365907553496773736963955939629304484931562061227411955239506266365794987875276680563044962730001768392167758435010990252960188192111524275618982481004913296503473307332494666865906715816456369787042344797281468661040390635658288759435746484856171744464493224028357295589477773632202515043918778586945079736932109717555777979321310464741996257273240177386281368844229111369219124494646182588197457280509009886888561428306421231441032706853518204040967708924774076152317954160682146814939667643079209419021089927709687189745286924086093120681561145418516030376819069370657297822432297448691846303848588959305613443616468970667106542416421872228576215851217839347861018196673319889950629761951383610514630156315690280642499544609951006422713962207949169032610903736042062687480875476435784308723577514918448877811133622795334268126013085300630001337015923635786588575702412373033453052846546976436507471680479823249646168048304201317877420865637664326667818310970699977109579112120407958458003825724044177094046271443645038285155941871452270540346425221145478633089911560439782461624464306711239788758847684256080190457525086347714651514717138450931343706082720135959637290742355222561106009754656846719201964558886370896813373462555130393688413552673125040758537431958902717760486846364116469629309637088697157660358768140183657372142301727209165082679442230804197239293371715910547880844442126555673751255504313076084743403831480037194601642657697271668742588301491981779950211646484504781164907250523937235926525853800129039936689772369865237519389368117656540471588759928389099560586446027214367089193917765618023575810184010318703513328115689788826064401468469673827330459185113070548236658708424710547294239216710812207095749266411442252164506957552457688593532589293789626362881069117156021630588999697757358321158273406744821051562818659639719511101899772943122381265003610570347760259208387044069404627683968092883053151720726178476030234547311395717241672679522226045964735292698808024393775390694197967431515288363947099971115950429435720520781489846958607662537994032364658490094931728926023973452074828048657416878312782960853953069889566805772857606313307663563057966225596471440699604776504912110129476171061427368196858615613794887971803001892201653126635106399184008204480119464185500202341514723096876904837392036591812911882580311238228652660460015454342550339355785144660838339661297753058313782169900627382927714382072670748572149492541890553373347590473885196465605142360703348114952750767232174410463527591343530558653809691855441218206206232396256931681596656966810250151562868174911347993494033653685247202793126884337547989489471055530727067390017666546995644201408710030751385816496978261451385733910936246344299430716098770409494591104492508513318266585668056944937760565244873458459069769060542589584326107068489070291961479345514417648540125085619213835861565627713258500294149566372034733646492159545272209662715798338685538192641258422992522623680835156299433650705303888386523610348387883987689559446820190100614279877142209961960481473943526637629576030251319502444203001313384189148293379474872837769883745819549101358433100984442179803569887144105064407047482306591222564514834401498598432658625044352677775690186064847392375100653835199198050086915001116729481658093491550921397977179771016959973381248788564938188151389862093308361229751558338193190072107094815393108342083385417994271228838956898535392261233350545688598438071256388502116664426309182910522696340230510212165034582866667370196328171734382756857287239707580446802033325136623695653732386419313736448032949645078357030472371606765076723846561057727250280098871039869732446463672340990983957208886299423541221428752074094271180954666144337690190637742083869648566907280244989457836661737529575662363051388465294824887438535691398821734180231241923401643929353758300392622652673317083116631373890822213602166225877457108819743518742522810241545351607890000873566728930581713137819778130398250943025542809161858294646648891575898279489768395080757404772072190963357775943682612390000369077915497209853229654646272088107018412969916015688994786391049581892873115359247430148130139675713306285078695267825815357607742371491604591987123721951976070922377132624815890280324274092426143009056336167810809738503028523223404218703554432416600895317713478926525138000370877360405983990801538290100046764513630334271346955183873727344031621070861185750153113098182702884458038823273629275511505763867608946429988594534408851352328795050599904863823354378610452036286648713729386085776320047170709514407109499971472973123612618611177385260530434374519455269797449031329735685043671963824091032283490704205956474641361633501037431479979223153602721581591514304138135955419305587211099635736539328187504966925359845400297961958337739636128317662358930300065961307184135763438216657668100662928727380096754707934994107523278852520976960893761540867578106579627043688446393787955290754955105856029054032145126924264081042510413473460941649664145902217868862330860332054457929669876818721183024143500516150311388713233833299779132068463446330250985513589363008366575643525233097881838553466081174760620850310747881301195671096757929630818086213608047629644037138180979662422281280264345503389569293132475158291709699200160684530575873625713257395685495849432619023556939572355917869088507498791370203368266238216673283493418925451337979933617317361120878856768940183749140937793659534935832314128868628215190053785775294042806032686435940545066118483052317083283482944373983328143848118426383104048466116551156234878661517493700061587332376245493042685714653671056092378230574590400590157933821473990643465254103702843470253610584537590328918367681386636112185706491869711383571243887500805978687169370654261836445206766858770613507087553165199708608734888045599220119895566694663123614657104156220383185867434630818141030791606920541221161922032662749905679525883288881686793125162143698854917332885305640504520000184012304286972043026428098040791986344148533048775737477041409369356229668451387264904380188449251599688949083651191325309068932923016489702823612342455152620479269762667425149208611705115024304620293155974976185229182030105308367926324171954460799753987036280440973094285308179670272472915715539955682798480080376434470141817627173265874751497959462728407764511698426518753043210495717887304849180199508258302878185923663001304768884190425645630283335028209801426429193276104969596827835499269564172261723450898120516466497839868186264952737467356706655059948075186624508105876931058920994647504779597932378208339016941891695976764895544391670402966854848198522486350198234773152336057206161725159662284104229875794086405526148490731332607565105285415113841578615585580370072345429565068609882768682107539785905127396530133055859039783066300233830734345455141628899030677823026095424448516533928412826758288058389417012478987233420794576002416730422653878440151265530874576965589460443585495486583372034880609331715330987890060600488456402753708439219843439286005056266538878162628383390380353000098608466510269767949863652447710800539526330976730185196829876634039390079073895304678267192686779823519313007258202155733062000442551746129011130274566900848921518390419918524216712508207850057534235208614806333763927854710255964203206478270940295615677317477656636172870146532227610624468947082352448431852785414324737763988027662314385013202166278201427570047049517099285113699731459442630146049610732707406086433497252496504360218984351685997056933424577568797385045206799821258179933503093710755250409947948970919369096600537951391864756372729947468322595785931839837748104476989405380155598523287002616826487837280274165358470624996622379850629618991069268391973071094273680243645012462936377095051548038733503640493211863088460861726761044253302530832939645189784219545092560152242885675286146222464610723954930872763779552051288790646445541815514157059423164288380544905883628935550836138889143662649812088060264326398783452195240882486831152654453639938384401920581497929912922505720518621506930201781520828561776566415820325829116850395117574536872320588927196255310260899198909611634195456927867927893988449594878727320454038671424653665723425854965518814478042446698137411826515111363736586049424847993032560119318201865389603736068810243208998277180632719102739541914651974030802972017547453314771644673131590933745457981507645915386466151360924845751164282508882862278183668226780950610238549349268607349891293741970848438893286708659699392622822194738587069314834117428399416954280453311215903551380809963869187233184970378616042621339990297633381782049037422104428824074510971804463438104035860996713324664351714346648139460002968791909622808072708358983602545765333775971461335228911942541614165551382523072865389727488636165400960797891031148149727040012470771631023073856530043914835252641088583011161412584236538898476009707574218439239187447437428519241207444360606331519821168354101278510739873637356238072692801807731719576612147354467882450846593059075532925202724890700129301559139400438298588721070115198773568107246984422076555744847401910268009892947700220232474546720922298923910637115097536619392110438048033244812655848803713337419957700398045852363269849209354372165886728987971142883249853787280535150956483172433354667413998668138807488151153205698636104449865630186463606331955497786623388245510862111049605561486526454158883303518013778579064830481605549084661907523812550884067343254343402538493409485067766540113377538838861533060711245543645571918132981504405284126821417053850502446575784108691437656660967816239829990820109700749265273088406851728954721974924508454757761339260907644557731617139883242994317023277684433480638599789815118685751728752712357593061849542795800832711605708380700577271313440647143616358226119461656177725026308516677902977394007290519599073339579231662271478871775263459792451316244617286290935216681389641401986505416005318607317669338035487811290696940876172986455311891626683004197142797971163562544885177323620985143354147242455683041372075993355568141528853047283285704355715769981805240046003114396940590063405257464142049952292284614313382076909036797646441326285223116909428899923647230331126332702979226398301605016560937186714455936553932088412153314426723646892779435609389555123594125694771942601431959815218977388548515923571872338423566560570129759210893694621761712528550702416289940555422849468073395869381679724051468504787163603043008244923464448554321992850863989380652704813735291845577465906964046835312216497855788509756288429079163830254459705956217086900715247781747887823689932901831705712049616281238663087769737806022488386072752897334958761385374581165259607303563125218191397521549847339112505310371221915353913652881656522793229370948489733516494398960353785437408474082808044508193915554241625044829078083694478531771385286395996525984196269612111220168489066959691932298237890452909503407011387897180674453439142282752551863536846198134659535747064349813873385161489709971013736768790848311211771097406137650673480507448438692819715495299734150445287256764979871418275872550391902588053106049417783942076863781026086465384609568548064863802292242280193952315790659400444645718700739550702438022613985872321487916807836192091955234824203998841724283331674147393580162770065526346848477593342397925753291157751008849691996637993551045520628793734524112019302875412018816157055485161304637939565977492967835392549605849427607394366071109735036463795585848486310604632325800411135059317315768542535083148654591479669566140817499098225535418187374148144280734627651344294682135939586863348950826278659009211621847461687697999217785887172543737129635924211839185175013899876404833542800309525660967878001100179683170177487362404020375479789938323418524364071906246876829881053379569758894213687750972971600926504525444657631134421153998526024261946105041048792763958812797669563925602462304958250656968439905720680311134628858093304439645831283149016551007203951666255839864423781739797502111002285481347635647562743994658311728059343819917444806598593461511705815825592490558182316629353808351089721166440952500668760719874651004608906097312824366415115846888197285030317101146070968715078459757610569671322345195434885123603697150454462697839681150725459034551654318767939493521801289165928487299174068139496339117092630564844105345822769280935471157474481687077192401092263508840437177527871511608751958242740264306012999644577620289212905878256863175826455847093394811555703672759177431693253726224495489856679760597242925004398726534662347790170420457041328652059789929356808955139473519050803614431004412027506886052238040109339470439482021988221658246604514526856066774256554658244847004372933537709137574069487939617791180235656459006147646872737969457676549368409929279902595586801510149574447049747238932810601177354508081973061033901149820911408319513314737185869560232038717425702092290600286722920501159241864659403486483930560697786395273257272834814503049084497190319656841365504044450348764917166579609749601759144514778611619286215512964324767692418089153490268189521446720617729213647386388550640465426515360233008871529729994947611963024994555211068451847135768434265939225458692682201125855064619446373000768470100562987698513427403421102632575508569550437829672593363873190088061215862738947998911159900743866235369810217098785968638322496872838638847067426797253705138841347169795298773475628493740029378848111265310485827002048012585735665080116075881890312805947381553222736940351682992605433360577114154908632031156750666623110571183484431457598417347495505227458964739449284137343818803863591490198878697944752316231057811429789545420662826474810012438751688246659124705237757401208119937834589411469299605245367602217996425447475774269373095058508448742472283623856646835443376439932766564530827010412355933865309519444759812359523803515645502441954829611338379145946145223903708132966764940280371072811218847953677068700315539332845849841929701199679124510456780062700414870707226956104808079913945865010005075560508237570652334941573594284115113952649375319046772691705270703104871412822830287099920222315225418065662298516079632594996900299353161378602731116698720284496110512485790153689264186643749201325665764843519611202201973369155629515627079764214579219110062669221288176837365500714786734194169569543064719775924452049168185462841533521580579161637289101740209289985483878645194837411749598252212721010938307079500050704976484797128223465234167758584782521771341721428262222429863722904278881615758828966158249719982730047787826840555284625617387227550070536822536321147905432617929981408333026671011052441679585860908119578925284780264884453053444507774223408621642958647994192011641690690873255780189322202913248068625352731896674549291317011447743854029622624574058646911792496385046553812212245011897562216896182705739902590849758078232481049320156074249090288287384811243590126627459461981013717962907051411604906958498934586845077524143382359366444539508071606478803003858204935972205572225666222985143088768553603684264017388698626701068221336481219974619716710723753372875017268714087222862576361996126683821240355504506314648553322363748517730668078239503529854889369783680663640025223180253234683862186364186196407949429642662491567537556980729857281340180234809715325481991897911379167757920487310843003706329422880855235257169940043398927881374096092977265203278083647111950365479318389567565280691051846246352967606377515985733607320125417192387872794637548385204788428456233082055007460094209375132994312099557751935546909506661191703704498118716342862875870396584844845261137933415184327099838593194155857855363534383485720884317662301896593407192929821789161520323012114608365010256545442162771821956971113919705584665288021359972275559434582044476235460965905162539976093795760644494894490373127607418596423479909253980287341546404475744600051553165996345297935014542493674003044555837241337187279569484019769241086921727222702312652544345811415828302618693976001191935589471654493397543700357555911098440275572895425956106887865989745621428882563426893106185463877456830602658611896376580961784244605188398273597321764152187296149313426405057615563580825035386220192918157008555440707241909209132808539762103577970786170989773293139147561275873878728141880246188583586042389363734305645349290637705083393520915726723685080914095559244670882981796483135967504285463959777827104613006422051010724143532465965844514378671872969337883642328832604314103900845805677575660760114729104071478412319488460815065805621472826871550343834502684030671042306728149483246527399063055911891944545872403602253165203051487855854779069286844187705413282388196786608231196795053171654727017573411874527965759442572079663142952305889036955926483591260757496584129784215301349067874903190714562474566569197766410655087600956525297172599238084490532617500812297195039560432081882679717777546774370718450669397571798251185121199080306512437847113108137821374303826085319556046908033291995235612744261123727877009891093534719647747717965468095292881542581082648302981960838272117288370519907070453785799744786962943385812667419082114190378225607552251344083785017641507332117225804025459052989035164705369868198369671162498737585006025552900068682972312669848688191215489394285927325800819302407870580284939507250220016229456188395155380145457363364160798227136911669106261482016729494461132727701967556307087612339975723973816355893100317467118891363469360849816967657268766024934711571353895810201246455921214088271669672126632251878229990222704362327734818869209219394486207051053034029329722294184315131964665214914099551060136263000048450823421496979772766557538209885930548321386089333823539984881368622810888933503865289796713232654381810523667947104686816099190181756119804334442566259003646330604438954075848546365014412286593316072550838489330884141034876286771006236891469722862100345665419698938043364616119741141207012778430965071635132052244532789615468096544839443105184712254044564151970641470726390048459881120052604489550132433725911651821453482200346249979474152143644509372532623797365699378552289729416554150736066307331229184273064140049610856569036681969244768174403131833448365498027936841792909202812663605219235992057972477405447614326181946940007134619169366450724309758099444186579702094840476206386946515607647786455874644640880035858205527073506369025725947341346479404410069222345740463165371915983009900355067250165552763018945031253792893565474561628222792713791368021880528245269444448452616224833008004298692644738649791967315910420383269390300919583581163988867984009806007398372230389255439666146288719776537257329311096415905208755086110283442954710033819705616202823184926557528422685316632345310859603610647545400579324198947463355215734753717563481456228249537435186225858214193633310799611909574210225737077512217168686188730736365605352707156882377989942225896238549156109613010716394111914839747151592086450270701460520484839834969909399908209071560420212859423364760006946891472874780738362791758245061807911366428532723283746442626035519478768214299862687974273475692326417244871280329280499328852190921855196923644651967110587550038597919805453433715825267004791801010278489488835873782264544583896739158589005126518025160127773317594543425950633184702000230099543710188660907736486329844942737513633842037443546446654666021656133492108534317234870754309407303182554690952819081269632716926126841739413934215129174933711076134695124400419206697907090876668129220995125835607751606305407205040305088445387181244524647815884656408205921798820649151583356869408429750903207679322557391095921871845040312529950282005564431202379107699077730344018593542784530949463283742462670944283505557323774857767251893042803547844425268727391391974124913774843021465101200124859792246277045850674891568987330126026941310548867417334855385925462845260920551378163552294315195449764384129730239305123093700353031220517891087985505187078865126970651642872033048878334444657507045425786344683978013794932107864403019901781913521272312909303243362573446841965448647823184553078113529132524250342675611386924219688668094334700177963872481148408159243273361825538170284785214748838955751532588282083988106209839250481748780362039630406810365129237703398026573673038860662382452970778983701628504400853656762232524876684947186401029021942345827826824922166219665270363136620229500067838745625585981525082141010035565948576241989340906390611387604672557202163173062596102500512841906962727540712709166865485981218605318324453465294927806269494644650982967750772729568406800826072025390534998476843919156293669903987539693833033222890166494225974140063514649492158000989363760835983274257919241102791688850447192703432992385223535243501212788063083756388381204997824352809174629165174558362332345884556785128476983240933790192435448066340584410116788179257753201315526574421564842665540495402654110810542813612002887332234673693848514006041157436361188257983384180441790520585275152533153470829263750495336584621208979222493427362802583123435910276857278269916313692090688812093398729466059956953424953180789622190659291281277128758704060054844514599998195224939029242526452977554060054198567958665007181671753381171913067864705028128579076679979713952249239208115732706103965207577012525120352999498851064023179154943361332492044047326626735412540635565826303294526113826192495727516994891680931361264212679649698538372880983167579817249627479838530498637312780789692639344806143984493745457268459165448488834260359292726317838922626634644657405256326718473699223492427614080736213238293280848612607509199855814219599384023523518799017480517051437636703622739474049049073326562067766165201064522137018388083789888884396750848244195869770973040356771894861868619720389281631423524888227038018599400281714341747352834019498825389358359185664538618073716465923306150583542581981457384624252067635020044776633235549072272321618763278813922722745448673502015191668225246317900096394841462890629779755997619482265782806955398995933175471838515348938243514184402763648613872455875144914554722498384813336635128655973810318373000296845117711143986162272885177902336544265599604485262405316684657480427394549072844883670566889255298022154893023323921131061571608119167927939968634715814767932818402490203859474825009864936021224185345509310550171269758169971682111698633157528869965864595259854870817768394289959888707045154038396206761987727102682891743652307342543128174606190553732275735965261766956262138816770500604029812452854829387917414062694373362343828845764479647157656395054328804088903893105001868646801738818686406428764545084269968653525996359101874500464799983006732782310835203439323789262583980619245748240150930478059993677401188018698959399383696596668353920336268441296341739767662616219649704429198436817310418280427157170324383463631024963302023532247800553390776680130209791846107694869623265822639372004369537283260669210187326358307589540955746255938563636431086716000800544529968404347996812141989470948039550687406048562383366235581261487556947167273464750772202978038637546420299994283040421561037394313752464321965625548780920049507462413380314775108158948817875267069424941333580892923518200182554496340433585278842977019797124602058167956836832948284769901051054483736956617791591303326965190675974617294845953081179591718699076042367424314367319076001423956748648866969583014228963605303276072092251396949588326644617829933162442398303234063695495184088072550702580163721159179328694531422093434331266229388915428538556262262279203407709777074953720135871166006174444006993699228710236521632097424021237755188489510156457139611013566933364855129092196762037480891305385154286383985619534650773675298983724259156558643724631733422497413736040983637131766029336222107232990247242352793016643794020152177071728418472305481217112319914081413604362389079144680253246639684960077612882809994536378750887517788289917530865258512369091459777404293803621242281735205917637161752010662237253353330658167258259436583661711543416622022826620634136047761917329716887252345524088938812793813185646695965932998292252434474510813679928159259732597333376655859497451804216191982017231549657435152976624379487356273836537535787053984051185252346323442697646961827938150440852572369851360097930149536356267908754224788269884747136394143944087473129878670546467628406019136221936027195460743602760306280411813538961061594084148478823628018121534754818866710641421974562918084314080100460563176444908852840624866265532184881431124092689127487320417469506040682297837794242313436512685335009283631113040565040755649914535218108395071647737409785427465198405155915117374322252751176523052359611348488669378812342237855263614759883766224996407003590561291837115894403616400792166348021288438455187146799786176841013775324483701106342503629340437538876605259652404581111779478871459223310268790793613397839105743998894044068699728632259607452369007579816531684045465753767255021765225889332758615491347660241219877944291743583626157750952527898765906582378905333411857972889444381042352736706135091438694010751397121518323511341034261581346412996093137763412287147985740766621941273034525167027692316846986462757563418323968174950036957258366553797564939507946211028799636999420623144824660211833525788314315583826204838067990436377824837036334484847731779277216238190484599068855007949603152245211202646989016210514675028017477240828099381069398656973100481343391024159905023608520273503523696266585653597029737463278784244350242385687801753272500400613374321867376906874028803010715446340301907796714957269792725219927976732146738617983431962977392392276326335688236439974269127158744667843781621140238563220036079873206619702207574635215721518908671384575194601175548361346215618016404466326937421110696357392356190117290755517355350965618254038493023971498287911965753470829561104145338487404025101152370462657834687918271722642058581093950655219552429614412148293684999468866749738643531031051094294123124628639606188256697860886729490769826145315480673165856031050474570364837698654581365539867751935205685264792406536565868566133321340106146514319943442543446286768519781154199964090136651503383627802690758463629393507450309791336247380951842158653720463322133381769893028042229839864391320455122744227839242533289472855247887662634761122898398689918872609981279255880846436759890803046238975250556506614889889419682804548635605706180676656486462871300091617274664050951804002310416153779451041993103779073622516101355144037905284748690655178093621541230180148240623268444088224805415497224156240741767204312497457808054754701007543117758090057544614280729920519806827686896205895258808123292228644092752698527423947545813488038540584643172204856127192335821909638298243881362871548013437334451147995213544726424502745524990344475355470825967169205845770779197298237548945861311132978145630355508054400644009052529557114273809519801617100328328477761946519559625739077817934123917162574719555562978321185320551484703872832414410065041446089748538379493587078560224020556191711606798505568407912335593042579602120191407669352643210856353418491029466765510259145947101436718848217466782515215965683676619628826666942584108921750505439830319478633111714896411294873261545449946333537900426690579555851467620880390657007332676858841355411212641612873501080196458704858755277405615245166300049675421049762131453110763308482835489042522193643746306900927132662824222769809059413379748252790792347075270798059864754529984016023262838381155462717976900737809210773588636941032187160479278814691873219157343948138254764073947587383647465938502996408574600784661206922380640776040827227146553672907304191846328615523375143833586298599840949357000453065976049983138678420856218452931522714224035162524894943520304314930694624122946829353028828012363808308747313373719282994114668297741138457865846164249655201221039218009839944802909611836282813095390051854332455971826280530916697932651702454779987674334236132912933902477666641448042761060933537991467329426077065303830045795180799948211988954415316704651722419733911780348939743357601358641033324182209700933521198715616546588386594813926720575186213836802951999183116188346179933150888708351078917217859587124376682150627644225573539347835820152755898588017443148768384083089849430248096900601945765009476659580784128568793685213255871220662481486180239395214547604819774424299370417809198935893319029195623142800449726864304301507095372326858173428059290475868574225383523998042100003786548436273261571146590650418847180919833307334653188828117060666404725051214710733279918645985176730716063302639954185016272638529386986820915120844225412126005594295390618507933390807217867882092811192233937464179234295648030232982038271628911542197375315953448131639276409583229387260313290308342049693286513017849066656875054891227374211124358469186083514984323775655428329055594635301939981847275029958656679098688341679750103111344984420258072314582588871321393194524965808018173579773113278220711424346510255084540017136922985515100827150455056365850843635853594288701444309805968017862881148846594506890216187566980850743580262537770528541023526777952166186682805064574229183413179873009869957083218748589695902686599456916855387359398656381126428353272017043941389153498851090078948108179997541935568608866118064285460424458501154035455461865881113816859765736829445676137905694378895713864845440467956715702624061700620389926111944018703234848622590705793569999422518440349272095575706042361229351919654948507292878500319474893980177930896649658767685373753655504975455045597225014589759321926472108239640978334294561831494101369759579018093542601650586625542735351764481625342868260848183916957453309283762178056620320997785627615679821761993169248925381145305582161844321178851119553318616037457878678688225574753656815337598452538375977633773046000919310640218834019006173421404897970676284409107298829338960161091072177059725504903172302611345927607424183954269417768544285041147846646397616441075797441315938860039508783979282484817075347409836857062887518364529635447333298853962772988476145024864431437452766090773199697938765279697621459125742341702109944109866424201829429914993727286345361665041455402923511539953006545814965529783312833573590975770639572935907964456851554106662881960775376976737406030300298348303707137403438832652348988205523447440045788541547105531241326897059816258401965225932270461852637528238938378955380963985564554419670927364385623156711963272654592532302179176029507787292316647297208264850293224436989201723868259549574778890538870266400454584455653499465740530787421831313873311571818308466625414481340612074617653031086403006346406318883495684913923761089303928757009130744973180377824984079210650549694810853507336379248317490891831556589999801192217247390197067323191696241233145606719401430393072783491583940400836398948980307310563297994258496932400043582958984349192805813240143483066688612726407544225273395369888905286801304874806420204968576901214397709540161772632382064643375718102377149437723018165813359962844801067085780377393047200989087876716160676486906223392699405571625257118618918567615333190894285374941878426880694442775330791471996501303514756230103862269400559404334397129844640866363045803957387473104695583584971572954680684489944999601552586729361859761758819903427748517628147890154531422237262533545774047064994517514204138657211406356085329688597940113386347921322315166948212326664978384136347063562860615358368467275076721761547252274727902785598511164114113581343766824999315598900029948457578854508354280501521588255661682061883857073868637583846757204916263960465058701630406620632318602458868358132100107770199751780447357715316763604840468169157117236690330600552067758134927452118524472942887417383087717715751991921954576258867869600769285225131159096923376194802358484447872022535662581851855920424840143700033880045969410976762262060518086079056918578047119652483358256305255970840155697662156680429550910998710045624862942784300794788858476215665674727472490235431924233516852646085002395587161544874350321141437309301606276249768044170636673750568083596180897066646298984050766543932815206740372014907295142597736064640090840086680972608100415413691210285299505453844453190639006391855886625349929963844394101869971790834318014677819228058750217853219636129039469570436830051863441389506134328621088156167149289427142718153115547699295534632888429486636605059916085844793635754011994393996174136361418441995833102238951661815391060418725776559404002029117656166021152861464466264221145935011256269288770010705447324584762316803767195221764275152279422201803678128328113781260364558352801917724337486758832442852274035612847857799782739263180028833406972286030386029966507093389533075759632528986660570921507483493599366257289731374961504281595241539804178979605731835771659178876127542197394492510232126130590543010021531530475358603230971046517657623578002535705990109761909149648245441854800362069970821475753917507448384904977775362858657900160242018771969379329079066666615142008077582646015437533080317723011752139939060066825320455923948606785682193944448512924340175276113752152447105094622202872605978055938687473835361833013387853085454463720980951929671448700612787961956997613185885530893207973522961079449632138744558856350927850262670474879226690744883386469686220373350274959199930401741451103549938330319868052900396228881454493568148720801476644576363800763557095662289435797125167045568372098172466676148997235146174887268434858700510953513650676153233796815141101317163066837124292637875096575777552779447155269595359301439799649078338959091352169048481844273175899569839011069657848019489945634685862857370065102404075449907516079573896957607145611156774303752875599300393761804499449802493994782317933405867802658991465991911318334860637749651548867879489539185491175011016162173640555086189216262553816511313045964580212174542206852878732168849544077957581964698361078480192832083978173349313803940622636851460266749497944660885311075390981762550138825075653818353795942935972975757074708749377432745841494276074248547471999205116663610553349287659600630494620707161423764433498697513197943416890451633800248627521627691982942257466861496546897136074975022929050184620463605354372257049221341566767304670801917680265182414512106036839888659085885105044877908195233757682456133028688575863412550745800846549070420584547384888700631775661812463798470041720445887213866425825891586285863721468116508911382521828462210420861637865821368323099477973715941455061931519597233228806349271996217796222711401712724570133443714156816434776248489683756620891776595351209524218051593664138836695441562074734634569970392043286299394131711167148266428477028232400444623401913656400735473668044744831346907634374579745092690137431261477084301376399085456909245250799108956008199456935203827996433102852389724423697394601254372043536204911028883812781091510603222243884241839454513633549051114632047764708595073385369682701004238411142939436821202150756222364805134486216819806924304047243770233963950080644478411022102207479146062903094461941756257133656552760210592635936468494225687857951084108559345481587550581358376641615787186802693490846029131388407739050673020916197674164783507326865440633805771876765778078999771605273653048220344490441539389410224993627796817958687071487145315415835605626577508663447271122018718567235294535229686183813514440230780653029902039276143215366179167162649194274463053907821142746024033509003394219889282647988383430234339171478994373561230300702184360368575298396616402188430514418484540629976781596018318646520548334034376774997765444720788053606134136881375662508694359249176364017287777661229228543713244364779395806107894035296880297583689598784532854790926001251318082216407897288701074641330654372555099717157657634859810762521313234738836670964576477586084578956326334419395189342641903763131322001801587385334213755997899553971303853007341092712799191398314883711311282524881405629938657090327235202986234970669373697972757943290515823522923523841964225765165621664183810178365590551161036353201318054718479268351944964284246216482816889952203909714330074036839698801895751316537553111235264002042666249245692952982720083868529359643455911571372679718446291134979484249434402123069236743719010803652810273199755508560288179721170806587883843425389681201884727514361364643329856984950453215209409595850464184047170824782886277958148388938793176965610422594093510846503436443652189035162977201938294122638655903304844443043953313643534824080103420389701027779439914627363381243205576161278644213396671574053159104590578281898037370515665597420098391646121050122138751387671385403508601224599154396055628915939677073420964840359485630747620468080188374694146121067796647836715945530869445936521859240300959425338398206497812674935078490045069742163350117534844027351081234878267603647250729676982540413547352326239247447030735617146519782739292268692141434923776901839611174529625958005629791891321727780890572481905652659034328744017487448630701048115959986667669743399039971823834230802780157380590977350478739428283854392337672686877845089577078433067647523597795935282107157078996895196521940199524130839173568938369438112648089459375475133075692500408129914412661345772417500570483061656689288242698621315653392461081678028721896320742188728113475383095963022160552700177806660959572614943482590216648743153154593978429312845859216992703005404868985160824588573205143054578631642393353022656061354511331840959910177646953293157454035834677324791816739645395483062525638317853282489053509365802556221228599330954868125718900298318482634997035049672238385890530853954446642373797485141704970760767157400142055818503586765215190392028009725505164285036783226035242282182868005281324934077751638124296181556416748497494062698601414945754016394583119024876803648290699950772007404620571728921846803793369502732905488381304162233350155178936378464097001164270322823127995446510918497567456248002256771473465480759405875218087354407049193387000467235842587761966710568750206813083792329578607139107732647852721619606722542318632780133296812152857492034645135243891055096498092327692867206857079873987595522845697997147043450677678689944222675655444551257447631764387848141155680290128590690465836925421737535406122419977812710968171126443558435459761355878115391724306913832480160777693489403993561994152821978711332133204819125614106587662980323882645284403740491996339285670939280348900526565414178691585504705402286651907794740686764485630854426664970230492384358793637516720880853655373418781581342141014790334425463613107459648028895761122255467741101414735491643536378053608859072089951400862009086195679732744993652804475037132706939237761786666014470315093439505795907095276209794945451787073789009695998029849071976222353256202831763088279568228480103522624332793211437378431140672334913014588617619407785736211890302671055410249649918800504915645107905839475365215659468752413662776005338191086612063202826249502752384214068102942493143201574148725920550351765099666419269998398269396587152037081025325288723342033777029094821286989369731301576028365067358052061669850767578776705832274616825767153859969413307408484154770059162456752127599131587083686629370603850227962927662848125323841580377726262244615497793623087175482200998988366865646128952807868829154671141375308111051358727684533232202741156837661292753832217176835407960947674870558772422184587335450451017773512635343785550033077772221025525969038919227262510415903294703281604579492450215214152408154984707286592131475515641278210714845392708122270730585011188437423314968138476677936725534790671524321664194491580530078012550001833905873099141247388939471683006036071044335635374350519926753733914700893856072690686261271294754155035836338124681855962485841327523318163256887013568595094636319898323263290481469487104391173531917355591564410216102017299340123409288372845503832726399030221888298413781683346356446162566053369100251042768481828333472834016271851204137139408425919291468459225230027848404814923060559739399272863059767324218558054341408414373705501907290838118811120996551301805877815284398509743906285030307193102254971500914325520127737732775599544801103417004684839824730483645229477165091484667345452075005348719433998712211850390737785505899111275679462411497745596816202130284835593860526942980981168958004934311044175473047412672067962028248951707987335646420321445266073894732076964074131441408493637259009942388990514777060379653184204410297573668676768573774553633656930352047921067045529195007820766627154365043696189460690549002873962662071277012139771166086512656818598079567472233782714046695521073363557685139468888551041885488905989572234121362051418385877758091091081208767854576275858690861770504765360663172926397893555324670586058833323790314339805843020131626932139806511508914560998973654853282127124553413396324678013698440873478872114568827653472407386309497663229132957973200424514899117422839022886602805495988508497430719586518148456458789378006024620046277645470273011501675901685171572976450905815572929524483504806117155116078251887272192420190097574687885712429467486771471423930850890892833368932544425971690716611545377539558640414109048704018141365072858708271604242569018555692736236413275516118571912225318266096442200298959701541969175227875565735103522345308889470273372906625119237140834152188226248168970224121279884788837907548637106849649754368894038620172709938739838303636227314178471428168365423965587734572565341474017073943464601864722120696981897625984401025949148544075952097400965981308675066336174259416102054444698801660635943734164695044946339743173555943691071842235840461655212074027686997827961930626796334066437194282577598432092881148940909174122881117558786822986354131474841977038196670659046946520408705738496251916936551972846134349668609956828328046575946944561407729974417307644834127867670879408598160499180929947341320592032803942839751403928440477794593608136293466447854834729073264348343229524603238820389245702936545318977092872400274026830274637147486671662400679719619747468904027332380648692115833960808342633601874708029974112428949289008313917405102095024129652642122938910866558753813719819274035222753819334054828826423876469774363683157849115873395747787447428076056793094773058151997962848519461690950813297598114528681423745650636904932778084723477587044901858130130787252558646128898716490605385320720230420297104791268014816404961027845191095625698360770958976098487404159165831935219225798407814356660057995563191070237089732406506306105373476601790681665036004667358087345420910086142041876082206318025787450321709040387787986958164606425381944851311076600374221262927975370951490102357779456049210888251619675975814586417169786517598466153716010443727442722595766744298571569788982815529056057980301437323657892004382926124475865525561591383026604381647095445032965488006873670433822717866236375312379254091539658051821837733064137166483257797598982039650995721522079394921698756086475424732722804270205782229584290595534430608176443914056031374937891464429791769041419199518556319594411365359853963383601878122285424526837764879878871543928505266391429561967005770761247347952873551364759899280485701162999777445588674529788831606503431722428655233621681914266454406910325927962606368346611304343380904830243321159916684718306804018603426301564702524093144795026027974862518531229298221085498249654791907481378429534524380019230723483303203379476865134293203327482830624300699119599409867171214272197568841329767207945276847512617965176948914931220677081606649054891075795457430612761464963853871048075328797052800603679788541637234199639351690562432046444897770453877086397038586306605710095990825306702137632102185955161340673794510834759403774826361490240362180586526339960268599140857523199297058977476215626783725496780101721043166293262766415445816493240838052223355107201647567895764846949684542369800412499910694703811203273700957149801159888377384124199876445322512135422092988595093978984794695297215647408357515196392094812587195434443639183677369104456235783290950207147773180965965352693672612684897299569356652583372422648961084894822093069859269322481702599011341692671332905737176080103871821976066511468266432071930851435211155836376114044541728507779448716021259463048494378402839756749137645910997776107224039700084395556962546630897982494641116902162696117581097494092419149820730557758190966822822752851367793243411284515165795478280627354010665386782208457391674013938531719586738414860234286748902804845903431918102457137961071486908298466064917613602812083064855850077751587737295871377051334548149916294137243285138275159450691748227658198446249946347458308469068716141073720275961546602978780555719468583493225433846093428083121750225492383498550726024232720329822948820658169444460829181725740551578837181939246984544045467714251583832099606877791088157227822391521997892305281943863229541823105986282184606917980426054168160839002092839599714495414345605347477594189617355934560958404907684681658798712554057350766929737587338573003822032879058744883149377216043089880259211352479864515871297386551640722420865357102531692191838228442341626647947362269266826150090355847496460702448884246913049173277175131921055376087953664570164144606577361727012514649747821498868342271863538466344578852629171903089673502072405832296407074888768598337497527162562137260797983847997559690143095917550579633602677472714136895148181680606833031599878103840162452490876346286130605839495647057909751110377937001767448205214350505211353591617900101771697685000639673562045596835728435198585406269669193146869195155918651463556103872794094580064796847824682028243871044193231008247455717793717884565284836579349610361394665829933151041669966463316377918828887385463810535893218463490185627443995573096212467160863063468305154135679072429625182525995611562929338805567126186870638110871198878965329937047681051505442283189581609433663631278099920190829132414102248954668146956363342552684177149470997593831820302421399281388699375988854872346503051345898914938348054495114765615143353015019492996668571043073111182031562065010337679925017351593129297241264848947576137747107129340575175956141920767631823964262015469025972755481759748415903947541899292433940207000484673119122591005488482813195213130015116498507624747489666210853489206529573107947445306017017654696217251384159213063584428714675558519371605612502457496024139210403356366729427531126843368408556085111558490383539759114680211336123302720753005699838818498901989456315422355566275269514956456335774373707720272477787829570366888671435942726028189395185903858447864366743923143670866144941345649008050992944752279089748642367677656098803803648291854798283916622091882617499032194156222162348889580966783888869666939022136706428481068342474663515108681351706511477354214044103677945330494497977606342735575280353479895493900342198424787564168251190360662849587344102394320116800920174657852265319725941500301098846956224688472996545497707293811567784298133854091439973281978019042991425764928762007673047740270178127334819824395039799825684365348849769179204019176440564797662123226652678245691135788596315003550922761751208743416749954106367787049703549613956939650606671427184457961140948465805246910671919612137206904069578357871650420646838833632257233201283941608430273843762489588811693291492995809148120274025808200634565895886801415995394002388751200727955278615823938267786538410909267703170707820881607031643561842290098253694072786765976706848299746974996108752585548101572253918592920051750146249118831859473545518466433425102381719151809095447235122465117718644741282078128645040361466185908474269329310098934521643157183985798784088034235933194454200957187553009872051650996731719161487401812493578308565189325893704088107666067072762359696558232530043515862173864802838355675003395258198622339914650530553643772875794565540767742357807007266660589581875363352356113104039043731707615240190846234219366794731985337937334207195890712402127236752607837606599710420806783748060055268822099700828192610167572397725092589938205141144481544393294196413232431546168047576585203486300276126741924889136635060377092580817592870696017449147053427657278515766921270689525664919685991737888365903950975913095254522476857591158509164753183868573675432378231087818519318120902829000547387257667896329266095458223244157595351789321461234959512727945967201128077979758675868277888078570549252595723311028159571266618789861661784524668655989368404954914408283507665992992073104726266909367210834418448060969735472166330944500208056296156273600231132186602476391075568271881294376649783824700689189968320836526800665304690688719067931664162375566884042436130468434103062989589598712822318023357065353801234445057722034884520333620908376412935819974547541055734848484063024483031997969431159651973041775086390080264028700169864773029615386485928326623312507153752529204597862322897331059262242333313186700974231116248911126776081314683941027905956318084344272425973527766996356181416704199632705655976315400505874439911721645185606843058834294816293769922117654694509424256342510650051295353340649873064115455026702223392124744091784507530985769241922550539634239803227433187660516541419161543466196779988509138818782838256803545377766661612391373716498878340651566409702373174378055409823788950949015457115914588036059637484867120436983637440679771433188674729594836130622607739011136166458323295023403494290395600663116664832140146351378467215703358180384478464176488355081804306720146447896628946397125237098689099394326576230724357990777151364376389622564507464091368648834115002283223965744939735525021195513269011061626680648853659978571393015138655611355486767818242857325712696630422643778365137104283271449575220261457193298028092338083119234128857491279329327955215795634692152944444936642994139215902150772872891977322888595028498529978532454894971883916586024381332146405532071963788196407250658528291366108520862821460756647865271922454910822033527524696064456527000436045412544682447091660402098961234872123428070282066455461380788420957441960802726121556492766505608005112231228697293012531750434390220018959177706926348091495421077767339835501938628111953152677178270403382239030400624265707417591500347008052529632744556026183310881734643913867337825753413958679555082670085049409846109964600849706938316692975370368039644420529387316245762677010578688064386992000512442592254850390151370787563732814354971017449513308537440332914297480016557126889748975748819490344978296134622172449663192562002991208212453562443992329176646516752976110880241421065726307727457310094859614287796748398734924381679987806182707587911282805970245548149706477592787983600663786405994278923456759694073078013628519501381182703799183578114036647313907956306230903462862865128090188712587108962856805797557092525420316544401310176363614253965830993906327180845679756065713236346648014675967375402187525371590105200448103855081000393268565513151923135986244683585060143326492788785846066357160092456471685369063702915090776060348286776688928870020479606160563528142118113056366056585363625338032568490787911790158754726824739071618718667751702493162598942568643171083811341687387438628078920658791391831280120749754669683703815023604669648403281625921928577276660597339365567414944583374197290686250331521356635703505670172658719945720699007502224869749464382477927267053517979137761061577104344495516497963765508599705749361939303506611611343223819250614146576156291103306977184013632160221975473058486641718165388972849872286417043988566511258729572519734617031827842843127145527765143760620693636442634011398826468696238542838147420322004633685013784786634351216828086879192172879357758462830663362025991210711359449018857062331079763766195533714139892605287974894546731018525881056047327082836867549989659509430739122468916541553862140432320675843532860751852436164396698940268193903952669179154842595749967253301929087876323156242139014467678882996860061808259584454895487879296854265742804449101946024471130453469859999522041782537424121410070403484248522108114287901111493740786824538132022859878579155048739603928967086763409352416746194622042720835055444257104411144355057464716614703647162870748755044873032095436441382597603696657290357734317298122697270298090682302083091715360457993958084296102699462532757279128017415458303316725613696359127604443380440573188438372155966514179492896363978487061188796706227959805742125109644155149975848143645168923454752531829988880578388536648253680938880161244584620789988170019015543921590490368502567408553258431268033809153276388516490616598053288149039238166500865560181663692453552128718929614654522351634535272476029394170390382668344385988768905350058182651539929057739654432894733750443786951277041802515490413252128194563568596849591695638788458063082792411978039424250902116874914984843180769636885585314239650461136537475009618085895439550032711392261154489780785908078147946826421584517489881793911491511638580341480642163594874608520440812935182084273007979203800055468915750875116415636448461825669929361521662432748695704575207138120896314144236970673285404951166553681638918473252845728095561377452105028531023728265618638333260218866881472017653556751196388825959552210150652454901408742941192578127063394230860289627315406787521264781285761456512282025169796133877729974999320327909530656837395002924866056207988384199121400003208956260235919915557653434684657166409316898491176038632241466328913689178462017720182398212069983514814660996077541047558964945897805762834398023832930588367785410898610010530293667175424360100882246197964984622912376746629051439287790637143548849007366830579005756130416215857865034084756745080472861154933026581828674816713296128655342431061359043251661290637182641883052726356189197143718639209143051008807006562784852667813587752578634687426022292839852284504269306603565108302052606608841260412459521538680968854468710645318380030874973367860766596140431754825399889217322906326999659111733751667008635588379205458255445689440486565431941707886349484043766567043464837400070634268822699207594730642365509342128582969382096590352260778730923196795590379565286422099258534762254330807583258210840498990589457012097132602850557795527098860693219955482419170818448284194289130775499308788605588122295451214248805659091471666136209988317983748576349965165442669577698280135068239779233138427024868967105456171985370513699178705281816439192034742290389035269076247780501994850123855446859303694818046622396198990113483220778961115283393510886770224404885286159926876166359634717818628996159579591155550006210792286907328166368616867278650086689521762490580274843811960521651978821712488953273803003045538801223135869919552082602216607058212751794996660518918868338895724682193579439695354501766956952475279402336042838250364946631709331813331053070786963764393866174885936318185321045708481861894171838785598958193911551317823108366031940983351324949724653663206235899875231739714709549327511182168513260536452548683159710735370102733173297436961536959779263665447651764745080610154033820904668074424493107600889893307862580177010951579637565614994273102612857921309684200016638816622833254053256405350870788327966961081404192618282855915976370574827026080796128085450258789231721540252087910914277611649640929209360234737600526611486239383613660843364227915234109757949300143241692132396370864227457458422574972266149620793615702710708773713237447986580403803080177567344867655867340020720963703451403901653887041432604393147455182751146480728656295016594169614979494892194496893568611036760347953367385667532636138681153411514866280756581865978821655698316761203400960991274914582381936784169419220066629263758289451176510675526848120394749821124603027579815199757281350483738757705274210963115026288256573884624703590881072167813989533976237883239221155550451738030031490994075158828083484520786540019059181725797436570438530258427265632710225622570819874233413957603583766363534710482912889989679906091822879379969660007901293088553831765533631747232646960643670283154342694059899715367933892366362541390894627135486823904370259331734980954869996911971408699910313238890175518677433875070163277980543435769567679587846866832898717981824906820395083143541349787025857528496042392583448003830183050898377684911464251862144152310585993970134556874989633035959633524303802033958233280717416514169419157037714250801562267940438143969706530240473612168429503513327306792896741802401121574592933987810998602849816090029115567306379034462123449548644155321009334704822644445639475309664718272632357684345848294880729915400114549396561924718282190433639821717024395849945464036403347509030390332117580100316252244420693585180135653146091636062843688383249932408946808886086598874963690694602642207193820929108444505360251243450865488210228732746510275701706267058262281143495381930482024394494521173589531865462594119402986702812079415717681271708349042652572699940624788400396249670983541333147407629456311303171942879777606266462294138992857249590757443555877091704071424704785901812715413544693384310100732999929224914203292918403001614676500794917541555271105325756733774245546764793094546234267914799029476065216774799950388553929640833307176921098924049845047552892404205592596332152560575288169236788321344812640101148984027262636590131228775178359108308644996377781837219388117658995443589452817721393962038657016280574722353394990994838178868263335905964955568562994731814101046869397329107332236045168923748599648305365666798126003350295107313815761043974140810606453072153912510832429680541391549104640322442144498421998983958609794949780152213748235885311296779563763869684886841734043510762296841022057175258733961323040981632223551217058956432228198532366758127103311180505720922398133941179947566030760830253888499661923315358643272792911755869160470877682100324324815990373608738224973207751996011193982252126564874444104004836940997537106214025485481113691265633834642370688998458219586423647269971057581782576370304320976975409353776396758564976315058778569231540866385993447478132542764681868736493303614111334560841854243550089784221784183759779774331905595639182696508889747242884233118909913990799348353431032176794863118359118568118639686064407926567664677961057243246975097082008885567289326227239046743950124005395781783910410278532220191132505046129155030176385895400105111202460510923549872004149279398635344268098439525239320961041188949105860511992292001258164581742390598936296429809408064986656997570710739938382298173556868617246496690184488635621032740735485513946956357140406067609691704957629335082322723497512582597719920513680745785658439197579644382911070677990373746399145014665438205520101604726405052424839093390500911164996309276940012243283398890113375375291634294726050567853955562902084598402188503825898951451241632768836129230144579342302499334849385089545551066096392226571702132206284112510862770439089874014652293812357089576733879702085159084548821921502069292742310330581913503514685414450774847201547445159632370423084600411903281585549250109627004782598022024805855846473311024917128232820780661716489285639585320078052020901871514136485180837874793191889335029753089115147034600178561039136089707161044143878276628958558711794120098231524514904958188250875942757032471170933761207415741491003760123257919370024837561977032915897212705706883625905999620942113128162902988693695217410990348094944613496500743300231168323396252292816244698648937350950630427553238169709308583133569529058284782089749123130426972788767099367486949416762333994653224800507657377144716911674829385992213389359111897544914467280557189301946544463500081505190410245715412605985549262844556081388498972131554504196187708351527636733327428124536308459020932586419463784493592076616063256086081844968271295806119044710999954522349253517369030991322428340020651319242786663237263788683530273970755053829793563920578563561844952285771804002668354958402669155099048992714457274565152428557269834375545799966182041495478492877590038105781444038607104883503915264433984622365672820605543248810177099585599285004758929744411152577709255747954665410434425590621480200288273286585674905549457765769873160017857556996107152894266121053964737525780606944858624494250706032885084622324959911025470771532035304848258614304254456392978688802489639442653794147522705037329871857013602423419232825452736454306908186454961792562820105556091260313800188418292475662041929095921734957399439158320670006827946144464596245173898305920761898234036600736332713756487954116443737729207925637255756666814303518660778538859965608370945232855261433482431509922274797117845617428428851359431499363639567856998744716988603726347961000972454542515721036879100288047129514659490645271726597088871437058540206643474041261174567024184584728278903351750782149506778890577032835375413535451821833358552856715023175612368998521380095207319574559292691026911523482765675509982551054523701046152810420412793035410190588551114848125435820333939648286836738655272195592558302942221934600030031727861359132173800629065339633089967761984392197364136965266305895006807813086610999106857582018566868895256990740997293411098939444640627594506520015000033910866801366228705209688188405213206985768882814753730393534312806263626715428349828709462013646080900585375396233750015541592889246589600154802040893880878305023060836225144683325316635165471043213551199736976604453140858470289669928666197736514645018096350189652977536148329940724982690202617223786864656334145593266106839471707343603143922846399620773936983758389216539879853898746365307892730662331338125958496452420514116949086933991437811711578709524760094097580495870281141822681081003081391189317084758975868746666187909079438695381475794256149812537448070416112178399855263527078976962424297713876534763929512398483992594327029295520808501407790892592945616483596474909466798492773698336601066994672341454704609349148427219630492474813561088993824497106529593304171774942064519310067424271887908436245054481863051500514714766312580400201776597393664742194977599669629442487030995048007323085722442025023365183973874830629257728340536809756017308574255973292324882887519793383271825949617699839296229516972810881938027664336986301518272657866930084829703336647100355165661369414224827725227386323214553605674707421483353363851409361015262716458782032755887031744526254623854494160073542430418089595991097897441939772993823972847179794307371418574899520314004083896510585877643815172553726446008845725491035730201584474467887629468824169267431162909533732413908037022783872105144611860669216079094945476176258146252964718157815503107653065027349514121754357342971351109272858564511116648483377172561583248629793383999933824932473594142720249690344837757026205974834424532957518676292801093729005857779305978900464513216683794590181959021550567211410074027461998114715712294706228159091507389468280083573034824038125561316633051155042854585711692724591906395931996089464953792328327659287155873765413460108989808452678192302236193446811264936669466022215660420479402484002100505427880440213741973635813441089908439152874126149077500973641194972486089085251903577806092796303408932900127923766638461696190152708775916040946610610643946928632998786072335873533881507694853178456844497536150601493355731028463015830435883976467350587178941788995934693992629296959974074586910199133981296649061639898969151225604095325136374155319338825939512518670916044574905246066776816614371675827549780768636507936530087716980177385170036951673647404695212971345450170274107635386930526909091531512686776351278384538957326387886617406807693189124168785888015492184696125162777162615453425114124601005207928472705727776980040223600030789570423539791872027521382365579538028170772069083497585782266898360157852122493450289276369964955353248711031955876345304493024441219668022316326380205889797215723039229064267285162216191351158708074992027404610505765500760480347486830215122520824261168781492653408929275057015544398889674866633241497459365980554409157039009464023357436958029221505954794604394298536515605334371726840540116802705714634586044527175894817723639701324388881681026093405336132001972979309135120510847830563013630790052349198800264577425235830956895659742809735398831696479331735922182181909443596618312813862574688382112178479937518742394130266077181954038328036474262543040221662941308593238659997661139668218390996883295264483910044875499366949089477809573368122412024045756523509608502982794717918284595562396340668434526467996645867683780958753273734727694584942408206414862275574451510112065468644084815894312244728292045829721808251905491174195527514219277766639695950966235562431203532798213253400635635994328150841944774034621071605593762906815877455138234120524498629503254046350275843186723506737248753033116480482745395114881539116109362069227804848267343068481024597731291995809980454905768265539752180229419134167178744643030435224216033786371019495224514296495195922739414736311717123489241373601961234487370661690737489097719491758876595208782954975764051294697126176301915815939616231008684171223538376987230193041651810460913401840063182589748502357500804544623753050405010721990687514611831988232565061360519481355917267777645928664646766616471936823690703532717427512502849152280180126831905580887112782954439981589093199536069892196154268957771872722999315300768242707873364640476201377497527005394631429865390896341575687969559023354980321662198391420092096753559118445891654855765620777086840109312329670578131681411084069363601425822142311218324240433451167215391293775095266110057124614876345205689960591099646517646875847082274518651400832223579099018896046594218190879696570277271754430500589461133114712347608731139653996622542161081301228678141975045488819234078684129084904038701920086793397473005326175860065074311260081549817526731560796317787134946662774070712898529440852287473667385830204754220618111321031586366730003852786679030955630844240939878024258074766675474331862207496075639181986836231392197347225261346074208589301695971296099449046067642754504071323616275797125468964833796295556007899364361172688642272750777065059889595416015067821788712919627085173524582919867378720037176470943784728306383169049281697374135142143454358156249387430036564944627080606664571917033246062903003570667067442994232217991009995179890051694385639532931668271958849673128786963722119145366445799687209667158034936486039856594406901878766550859823552029197072637334829543678137569132225143170440748859971361375650553156303401875295842969026817135912800834372935352386034014092116411518355191349226270653009318474605482051514259988148807073967419264276688675697628502256598537411615857063610565738859013081582803610994929712721485067933371785924784278407350002469142932120925828009620891088062404621997729495858626130520994360037511676679628915965438127090910209564853383580738408124206712050244292699996811278193529114840513565389613742784964967870571693557368550717741318843395877801544923690729905870540967747338884036153044568396951365973153762092162517443397565729332940133654154439761787361025517699787115984534000337926586989273056155325174608992986474012334096559856574418937599538490223650953029196242282445028557766106008015901836190579743581516028605904934446714099890122638201334065933733924636652821368634699976985188027671984817259579894112307888506019843123048260621608925193853779632683874952349241525165291798923584827598585507697398664278150369911144292676105225070096996717056622412873861949336052404331085974238051947988096794055388812756176850364683457384292054146004433562766122807500954285381907118703106497638769040705505617459395177714885948453681291698251524932984081732827837417214662019815151255322085495601005238667362087961157006486607082367570342872731454686993498589400741032363547198101073664480125703452447713121292120074909578060198217444282941660819772532922953071764172679595138102903027119430489459793685324239313719702821624865088642415422434050048467665282921992459867778744837241995614718711998500933528551326201859320859560190237533713516001973077117318993136764898928228983203469008740465246077613970956978729280603902506491263258790086148562519827289100358231635969157851813257590922909368952586013810440500558415182105495003572786708914332657634398584623153913291066278017166865277208988367931758949763567841596764537034444063493018226196193033321472621240420576392786673782728338437871838969405497751526897281410023621394511782819573971181859070775821488310587796376825050574430052217060382775072862665731900524256261347076799725357836636503809563218627319366379466140361468503696626084776515824495126770083626063013580674687144193868158312388072312018895550287538955705757429238000630372065059464373816379938398864613227861106686895452517244315008670012649301805489607567039881792281469688546644922862400835637360858634117030984421060290505319816918892266377409595464988391676879309577481899989357281034120583241184163826989202207762088506715070595634716209198430616518728863413948412058903252556415384197100267565729686393003608245702535297734788725405788338778253187796674496472139863876353837842336475935643378269342465632702301468967984907823410824202175415907042327022466054694737314904856253198429338161287137840830892206362094360952350672008618453222274963361357624122298804861028055112913289941642638077425599204596441659883117508435665026879983368071378353827604985385396723676112998317814937519748630369801893985539014351191314185803940323447417585398185780724700620185840038700698665298340680079563390520979367424306867780124398139436714272816838970550153322254396270793147252709100031242173985579022383939857407570481249466006424267981676780089502129010771930166331257715160928357231784059315790590556496986253347485373735650657717588952583293915910750658330701692551920880914356789795653731778066574330604227993659625776081147800437424655049364010591896596391186763596461332859274964775292064171443385109921291418646221073268772040810563120740094203394254241198540163280625007749532884326208927497700772700515707223803945805307314913893633453261291117913931256616888496587074937248875211461144131757154460613238766998594456478883089090932927714189253491394879075618841028536386746305039576279280716543571281562930552458556652269035156338144839765604683433972275925133012048723884714916679673943654771496627921369920368120658203571654553483744899799400724189815063981764901018460955346283822995258088799606814624917171820939874506536765288969729217970681028494739215453762118206368683826788368696777193929214466146581464444315023042015891900237403290782688204047506793868645216127361805127503423452350865878271871126993982724125067966780684808531469661064231673481410002971501698615165259999833773076752546952927257736309768815083945295806767558798385025268526363909387019524724607123840584844037189220794862013897096364401018363491304172991373239585813473179438924149489026910501944447691006006705002094067830578193942650276262337750414296124965997195344840328603010055623275360060001379800287458669152189980242649980628659720023226165163719948085384392743590539984865990584310078342577280367682323644088800968057941116747955592084489221324431746611625601613970437808575544305415560467921266531454510070275708493111749699198615636500007006776043120926379305896600867602719942190755846931940331705913835789642180365611978105904350649817730495763365627037893216438864826474773284904246884413026282830554328747404447132009371565874575337580461157166970147092943030183488129887881841978169764497011614908559440511601904220233592134128595004058462959918294158132107279903701864825839573838880560072085251815483359501574497362953494464170423295200779656646660495660177370993576397102338125899252000010711626291492912440847022701062307307257185718203884719592621717564037090006504355997230917822090187468403421705824501460669614912657814407059964609521594945145399726909433544373895340904829666102955965510858076443745047803313186762958443428869283224165149314238396119304265523125797798538183160169517519692514029932163115116255409571903077195480336511573542578101260559529417463388997247006160867475206430879511764677428501092375679361698658258021604415855120197871403676775085248923770065365271214569766084662945901247676412184422970690774196527167241092082680122450764786479883936487233459071553913488570641926916922023159486327271096065471617610264803206866366528566143576017390113065424431306032306973984458920217785536678904529372270031503089111925388999019589147418660155145020247916233287569174113139851634645883449349959057200982336519525049067209452188987782136455002342801268301601002718471308748575456294307324445803802424541707191801139678944734901019041656656093292705839725273818979354000498665517965769050412423630927508676369088053884673996441180830670584337033136544817011372224646255963498459949720056456338878264698194618777405106975867955219904974013258976284456419588463296652904582217602495119315215970323325807077625984715565510965925549666008748210013015811850407218716899240506835416874138639361663928919798690073879106558291613336853957758855241785704099428625719566792435335838034113326596991660545239140086410166731949360561558392074317700584974719026292582449449586979203619806443413279292974222610673971941360189169107059986088985829456419962058814291267443141302328237015209227019202315881033946050268432688329109299816922431267279141012858901716533045980731237575788736910879293644327426269107304117340155388324367600904084170002137154706706341321496124392452268324082697145399593218637614042347983364355459325922017268625501936006953993601975564810928411547900848809723950584952313899570112529769347968174598483499444819929123153713800238253302993459107953646391714746257665393144256311740312047134344079331296552308780813393540618120368400994326136515400976354320086988915714429288418127537359039712768586772290900850360763622699781106955988898386267628477033642651231571416441062991809428847594785810196002375557618069164872032286773153341160259405898811379443946392096034433917767895706380145054158998686095044460910511376801948921430182140444505047565393493149157925068084350403642327983140055314983189255313713010911078067176098303950392284293214144805158958972601860204638050946486843385740999032902718157808940111996110559478261798069057574992284509634358550334606531790074177969008851276792907445138823722607046498335404191794767638031579150224946243158561859428755970015738098316913196475112453769928454583280248774480746747905902407589925187686054601349395008037596764417380593199400564369129921991884680833517325773946668033683064269297266407767714889028308197858965700186746536184271488801658391538038033359011551138801773655505700836422604386183665699524148170509574244805705091508151579046266710493157110829766163799304634278935711576486131466607762922420745069893788703014651063316287372510449083502069487391441734744398378397330113996403974437677909237949249396995412757788166753904165153084809828824735990981800554886753093230186134631975423585486501405576780489306523832208482648608121797917327276608306355923990908517202665593635402636262863038533637631123387893992844976414622889911340334804574354983846369383798584488568719045287249338358896379554972803569869043608442501873042153560734658656866444604288771766369301230024530460939649884690609298881144302913687279075475704499647908485607040164845309597337501862723761063228015776063303923670365718738538289892960633096772842075836413332775747803397943243002116086550393409149598027689614564931858330841768479013146747380273117121047282724411860622921142449952707643294030287208487391676391935838609737674100633416295463496472294456226364870119404562074570982165567260993402497706102595820628367781025029939453886511125101837480239025865530003413507511306063376476242914509127366470096559309788163316443704351722352323369234843161533228575799404360574405212788566498431333071385166142470902416876518802222143092827784677215177880628830301541953574607185727611573954806306292819331391053066266427753538388089402840087493806774347137914144034744452669070272629724462101400572069121589395247476617006736876379598529839308326078266275967353270700667445355515707722504733495142279826414723919972045468120970168546139706631905674612889050276413541339907454131378920973947813688327006416234537609445197287886781053452308207158636125218074496416365068126216794099524094832543302063753702276514438287723043590074462615583196570980674963678299774011103986138860996248135103225395382522380541353399958624393415142731939975466693718718445757057188783471413889059122409336378580972201831347217506209939120382636276889152902251645928381854002803277310127949942783712879381637233280661054372987026302041146863516086425906505087981774138910144082608091324251226422947682869280690644526120763684487743482918167534693338107280857542762013512051514842949447034177352264358931172449968134650332631123704558442724999758721308215234726699769286372025048717043247350039063125603624711252336178142735089100746988020720229391489642360541694617649426950880226425040634192347105497976526761667185204685469673326043221713022082871793081636258740071679763902866211772307699851758320673632472690266375726051843035131525777590812078304241736712441032177465534500847973614722914527230637635959689376231424099586640332121361324861247351911642220326558030592256572315054337790046550463512789372995169291686407633619237140240615515787445888172412295936526401515890545002436343535885713006480687622336506009663271576057225576622612606855978225792851983421732629453095829993429742827550205690454150695349356651383656610340270917889642236003460647355771249244691278343092563693942905291361494484889102391550313388442291815226102317678097014177223699042191021951963934714223582028139492071632911769458120528536224213827849826363169110795063373786095512836312764264760259977812573227111851925696893628567883714378087090099896691425400957673745860131824239860386212466491857656053466300237519519754280714576661897003511884549133002708715469724563182525805219789746831243656916597952105487970354961038773243519449466748551368724779088139518173839084104721607406114393450837610019360010832903088200038851600721395255635496886673177420058921492416248426025896129219265692241101777810905248189339990774815412247592310326813680902096353372583488679458670926030888800111410072551509610781504378631145360797788443498846268679723089928782769537588257074437490590431988304472684258388924716477162371903196763954254822516600150734008520618333589435186534988317057689880522386645161157614036869818146411637888149420724726308366923915239397844866752347722334164551897938388681747418700405963980986320805519624096759429993366218818520354214092126498718154791783542762027974152737255813131034407176449212713016810511937456733867741514796174686343491160381612607300906448086124864230493717155131568281202328182182054836754861368772458840769827974839424379988613901457503553786768662507702052767472689908234095114201001311041189447748344442462482112401596250861471615004274627081607934417520701661888051855585176807948658552404670061018246119530388036226968821113167680304708804284253576493585952803471113494998133197534097028061717108423465890787367765781439586599194414281052512411146948996556822219619496426665740258588882959525861723791487102384612202072966201820733756956979623081881304420663389056498072496632790364723336957035318941667416837076351852474460277174765558058521878734105934090396828321756853570373205289280203990223775302180339231299627097578553110049629568476825082063052390981847072775348281173251222600022171858003879951647182727020210704343088439321550178991100793259137940118361465214453531919804758157377797188812632992380865528382527991692223330424966875825200019633783834881800136711866350565749012390613041965151599107100396768516977829792749312623686606606451141350374538243579494727267714164878373576757003155203648086575608485106695079964811862310615513108589986050375284203761746750048606918969613866110693317629595087660499481973648849433489580529190533381010455346583221369972594301325549986828033625555930012580856487844744103779000420511261809369868050847430202876311211879023815857357194585964058891131825158563185041932922361138159680550223417634625511970685341269015251201330524082442207438070982890198156632348665517742794953517968783788927033903215425641455598000910617108960198839979839825343117448869016670035739837921839005056030263977423375521605519861639933064763680558980121593287658557702352399972824419229162544831721786037747822967388638095810503687471456483530545292868828806261617013717126219799467983929658906955602110638340925466551714580130594005770120146779539806141996051602011327748489304904815643301679532200663285808929113899418723994494814592223291954542172557943612995289670205156611077016417834381845243081177003462568015689029584688397341828074016372813741096729850525625364646255983762806532281341332263223250131189638721538278133494097943104388893830866322697066974415771687568558483869584929075403234507146922405817302560165856425994168124394140831583037862998987018591616127270477697139351977638194425667450129223015003393746346355391244972347324743957765063693139330376622543235758531595130493099140631545730970240792607295205613683150561686169358557747434706033972364910053984948601069662094634692453115365476690346344740057570837275578621051981026365346885534097027451346702954479702611220663060173424118939177502456243136207795931888202744996538118233757535732503819758573620908863702740458027793854752780216273117895990712443640710350206822026025813959463560995449577243175039496595563284327996110333417035333667241516537038573856969125110554155515817983992072382266625754944077434287761492302900566467950235326361387610598941399645491113125489737060303056450740737835631821308748263831389661633257360213112860473043023833586820051592564680001369137029055706444467169212346429766168873527501162916139633084081676594521678933444271023601702975397945768633134326278667494536871548499295945961559229270220363813968900864853574679909443213653766961538243093654168319964423247876000386687672304957606162573625551194903880613383855119954938309934274681296427548588197934824986830867938543069671270102010619177238261216974286903456572020725578437924428504807147614430346118419992083684332761407879405745112057780650323588908881130489282212737999073418646096883741395489970858292298375060817082804728680817249714364034533098361362405403101633225667231455290010301036272893473806402165085012589232146558531674419804510121213450739554257315183321205932991351380232682897076064743274287016221731517246379880497801921324221069709163715120527626245079573460148993062951784720011497942098714087110554253336268890465725861427825176401377597308073291798930682344941332995409652802291575192570276617772068181372345559520161603226558511138883566164509564729432620731170465162733484999418342724117454663069249453280028345754569583839844056755173592484515832622057576197453675408231779703798415230219229741984329635474410175948118166062428766937659297621478080867488621973939999223580639697978796969630596135240390856369812405496275788112676914852829570224857855592696131058742808326782226327639441703504505159006302206659855448564309963391060640399997885421301679637181931537258048214821640064400357589777285913642606250187774647331795714630478570763512196694687342676033768857740707737629932260112513891975144237008952468176264107968930198281388574435861376467075385235502970665279741259797319169443559256500621791418528861330952848450281744581057778272353621133337917457774867464291217288572477753596669766323875069703570420439880656413345754930082098064951830171647983402514853621990857403715688118984346497909910998483591677081627111674422939257220017300371472811589511409509979393694948724817822698051183055186708932912637633147701032974129788044184480206590118311447120101105558115051677433407656026632750539641108692477156380110415772467558873381111358020896809096190595810516213689478082916842303923825064158474293659659354097538133874319407631476618577637992228965235387990947370288810426286406468158750205499346664179173112001975365329067148721753205463686291021472339323824759596617408238879366180824159813115739618376679703205355780273157724016492489416041603387735914536916925124019505326815798161415652348439184659372411353544587973114979361458903502028956781884290899925713656449107272811815893755779420427949080292314628119127798685243127833966620694034974157546797899247825509932269124845740732809935319041082279412699352025421785182902293617120685578371562490158219750281134159837722082800650881092022865176198538110352478735559600978605844809477187093155274726444303879415451218081040317957910886947195258759287486223334657899795137355392138693287650739670438337154531006026385129679643204329730434123095956324985115486613129642191678959779672387457362654467479404435558390573641344213830519014655014178459356334621341492557767597674279260616331399290942177568214944564664008446765117665073971965806973464612630957899322494453270070455607935932665348479891442748828506326643617187964808704571538986262617150874179454862504742482735567346869413920884686437118014258753920624280561761602514200552459889070481493514845269725722732567584821727275086254082206093690638357995975212250519577070972989582565168525498228558571290852272457634699589337614877421243738929982222072707722975026505327188786408832881977192489977646505523512159825827165402614866124337789425086000761027174140678299621858139821613122822989133567995634413942939680758667969067715477185055453696723465823076830016419910748933410080771930126474227909714812820908247194998861584399361913154375138880985479460759772649246800962954498589836038075627690543724796340420657616821075022507941264272175145195684859287866397786581208697744332879099336439917320809940652424942678875853085479141115298352550451673939331640448846885804086572337477508444098036531561050096009340692699344848355295641401240929287428645852062174623126176708322057481362909154295743358905804028243427909609277946008854175589047069212897459801226854635288204972964496383302557230208386306039753486972370847983129905206590303801516581260129094884105079274416849080512228060297858978064164977685487697463992715645945803012041272057428073979640953250613570174319648958017639067407613086371507285449069456473560840026095618030632663805000918466610026042162299010475731352497198461618455506287559066972837405205256834784282490746906385781880017868305292776364253000806110709340356060609891105997000009455788630241037027997057286993694670068521071299822461975411800705104548173337854431124059038790652389502000670530865733090490379910091412941568476489746735114972597455808502230363198948641147510342209333466773301025405593266995911748390075741294253766048194426976895751431722499082846270714442274173351007214593043647147179478287861694890150617848714388939306599477448391480698687758002950616152533365148843858192375337972167698201631242688351403911233646642326990158360749889850236576152136510390239617291855221099343608158285587345165377274239750052692769122544802610452030798581385482290934688740735257059910726666927620065652773077811778958579080181963867388802058886119241320764193302621323352498217975694041983830308926444052356436471870321336364861012515653620760776400580131560430180022879000152177947881610423031532414877192088572931815071689959469930713374234630915455807340369878882530699866342475187220067026074815043755409483627951804375123198884381726850601056219287747850044921429591530541037222852932003300458765096928152028498658683230427713408224556840735525230967865415910547476541268473823877992503513782497796634421749938051100322690507200721993623995216309153506917560945836852979252825973248608071757388254381474081965392459286416311942187006087869310892471405590739623712657635238303660916300279990486828585476883170782634505801694744960609811860729363201533745143716669976242461792938177818461577936618259469296229943886245966557611304198192424626376016661948345767919432113532234098688409536909888236609343409327500719017274063963511061861024539466152828839201201684226065556328689754281344459545181551526080192423690175442778465376058549218101377740325454768160246161487254824745584249812207007877150641708411294804464609668374029690352559240399904323490144491106567980021335669209338669938545163059058454143630716815950732378493475394973949215826975587116994582412578642480156326368322370539508749094768304428295795101205027060418172475214670991137742684266018732041318192554495487273552463767224259351925269683801089249754481236621653661204526113570997376188996757992765106639741547168824795781422507180766775652129299852634961792860079344994121013782339557008857029057275827702128216426691244106770318543816846999030830067692798819650519430451583490086160144852719168515949073277194326589486490544772788289011581950554004916598065122484598868433140517481440134428860925557894966421479211313447246156950329346657189090534309003173288008681130779633674272941127595531394157952434182192717310597804460908888789799942708470464353862338874448369181280479943751766604775818088476144514328778144960882066848557934641459768034825972988443910873997622796444415123231109686966667072550383173949605358351023806435087106671903109437445188572797641783013375185840154165283418970990804308190528139548738337361296872121888471727114396707307461457504886444890581513714045062212049921045721485340485674459058278535738027805546191873374939495784535546948300202890853216928301168894373658251060968228483637976717723491639317994977714192204530455521038105423016174365261036160806014924084107521779596947327041085930114518758579221875868120108881155236021835612987287840414289731240019463620318781837185796286024535317910112498394791093854343069309019066490197279405735975189274703014744722265849970100061599520757923311950290394988696699472479408576972172952578319554726901629636312732707501266212493943013239248407676113474580118962629559812724806167167282548902888236550206767085196757431081896295599376095261275276120300112587210852445782269890360030974412907584120890073696855697631462641618545300299048328680279580169020749449868579217228267548177655460932175926559259427687534999174273765686532211176477176579088660474827599991437071453070381795228702383848012706113682378241233384799399611260235610727564034738983003212878932952415677150734499058771714902372362734787752082728392593517942776379383256983054015321357869516174316730012658561483829343409009247798585808537070783760168622158102185626179531057246142358306853080086428928407883698709721648703336097359607291999048643335291127505843135963732010351859541059005749612074247204729845346382170690486922137630040948163670957816701449201470917215190633776082407321270222246513629927087455742888218274567070650573011793649858331309313957696262526977029659626922548301307248331599052367466330726745921971655249098965552631322827349771684010034635122895544115287781649010673721271556739074885848179136505350717141292264447748062626129854434703641450342606693812477795719950476106224789448420409320587696072239189069978067581239415243500471535140661581423201975647347934823795550542046852859137494830536927897885538362716175166327140102220086530463318969470802983347792496236220510687061163955458967317585981899279125525915317303687749653851129727746139441824689342038978955873715395698263541806678101153752145617316417730166224200623333407642409053793710114256038600478948123801676932460402723599535443319065184496917681779035733214858882153395879709174130566240076213765041003052237615392034902551779849948642853724310940950268558815893114446130922455750962686105006482822645385897916706956621337172405071760554312459485785986229613082536956607483384566493398693644606141149801595058256588610318779859260569219892201481209693495304001038484570256366711611960085643282246828537120609981175000944801732573355965824177804591350901343920011188813851036727218993376660282095102794932445088327790033863829675001419502406492108401960155114770947729158878506874064772430719642667590337667747828828870559560107065834042640986169899438244728304905018044374469100851284657289812353015561796918795412531136432348292006745936642212433338774014763952663903772170304320021076791081775818439781001179015301014504350888125298311077734003699668226624138010061522484348050617388450840019197621660330180051102716025458353908622933682208118612964947291309958332736103619257675631925281404879969014956849474014623665545903842314847909628959729626784084203381823233471936485276962935776594689982417842654914653856236276650278280588244317831603619414684561436923422889105901151526939187502765860676936493288273919437275930623518583849517460385433733582093004915913199822543039121811094987410270941062954274122133031696935580627597929405318906343487954733628302579816569704315167430274600726453377492742070874816343807114039673616884516960427898904735943917588234875861678517810793741758319348609302798639604542208770878289559932564491865039675064818379979476682675220723335424660840449851026776393936123237712751954301124125613904454571976199288075238064450259231103333474531114782108536789197014192345825881792146522077125518665730879904611983556466740914241395448866951387337920909018688567074155273931909159426541974979360873353046988512761869021280573640065786893887674297776849212205027810978442050678207886709289438420431910990792516141087387161116384138735017186037263436901203421353490373064157910038401264761786160357735725795263833915617499688335043585553672395194018279851142462533788442964920873235694473020049334363707445036301587946304808036830165367165263536826378358844768935934681283998925551942539289298862439358310811479221709099861104368368188364381515986934186216594849146675907219861902530238195914732947086882862393741645316702575340304688698584823039501399382415142474561649872127660655472019039598967513529555536530413719177728871611288648160406132350355099906861442243648422073481359755302560660820804450370275398631678099780002718236892447697987990417927372595888819427293246296895374755242369394598330886530214168162094118356485119653153318685078637359929871174818400115680396769176932205444294763255325553095292187936608005643819277189728357974630447109446768889658949649407067049347346514425477473611511548837553742605955867221302490244961245458223242059386430375834179174463251851454475412118255963581719006618608637440180089446888653235905919101082686935695766574364309249817912999032881178372409910525571027704808500359224137159514695641398770206826672741793078611952551262550934286895766122928293922769223153826102287321230296180707067160570143257952566015335172786757229138782080128701241549257102924382279731389765588617034483697938824256132858015133868512470220250059940439985178735659866139618217702924110581874299387090009025473232335880250464339020041412605433619267629848513585560259045275261665880879098258885375635144048224452630779971667354922591852480839284378352105450587415071396769452990243870190931997628107105226265222664329833906388604982603719862946269941339613333491599202636244202339055613210983759149943884894355611966058556678658598332787388928151365573837995766655334513033153686156972188757195548378219749016489587452963934301360854110702060119905365278677555950669110404544878021073995480957709783833719195049557087318357270733233237416465478046706487397799889472389572496430055532158623675622458599332638834518580199240982431982685983929077025472194965122523539923256206090261863817072721826650871583972236392682421153616812342474741758913987674135288861060064034946010005822487539348327730652280013402529287741942141462815741111330288014480833170293088504820243288813618583827588892005317043616460747755330869917330619381740039162077863290762187498976442400875638297671931166965824174876759374175121896590909605535276938814378817614440413643870262451312208614395438378258219964651467547564651134176173037853618874051253513385392975782490330514098382130350340328150752218870818564040195113485101992046989513985938067683654520007876344725596820337664871048805337485777009357636025891578548303135888125258721350055914686230951517130309148297724076190767835324519886494967377995204408342739142466740251695586543803884462324864995806492177307897814823951155454575487135916543855920107849354496255816839416126204943972119692654557887077934746521477419612049247567852040572620213204816551864327461706326938136574015575579833547832190485801527878022529820274921633700266445118314720980956991020470585175460299491220243155343705972884845366790731514230779951935096197928731438921194442451063202309615194273080665673421639687727333797828110052029436020521019344756867541941256073032419773192418335756242885016879421012773487328538986709249978283963614652910346411977619598890264196808329575978503895826505498891615274981071122059940661452280842776423673903059979741932588826309767497675637185852009407384794340363235401052421071264143839523463720346746638122108012222622953844232185535635638208529787740432869469549356253648004787481235283328694542565943513137183021182779489174088222934453575008471252157446118476034249467992835911981113475603254797697116249406005163566217537429557496764543893039062757661897467540515955193279120204095356501418049848000156121511898536435820016484377819795327221387043236046970047586740201266187291921772935281304147028589848975420965592664237314008052846367239203030920036819318236780482287618902021237363198405179218748377393356528979044059985361866802563438570359144561901785583033687931797881317683425915809996280795757304637037330973885107248035492318103474463912318814203200323910441634114338489877895748558213471775843380590154320460723560641207740528726917881708022380682435498380395534790518825733377582096210339460120574941784703706366393425510952774646742474389558845404891778151302416767297934163499231372829919323774699696189287086680402083297700225877270950615286619477295837534113023859991250681484609096449476122360225117410661839141429261206343364357309063795769206036978805255487887122863584669567190319898853806013326807127108087915865880698642223314993751814414570313956346086815964157782769473592578964794893462519251075150191406891500420169403336910527154692448586965461692342781018010471571449069560691688090771056689803512084755859830123817283263096842950806286952609436744019783568014092297863357141049982823094982000242619358096443655789741611672589731120978458058362839213199226311771449789676190035313226242136168549508754461239947854275035789896537690796825491505152455914158307968479424864877941977617673969460803806285060558307733373397614261717513489787986938034489239990483724353877905722768665498175862374761992996826990346889773835323666345535774135886653899404254555336982395329290384186770190688853138827540948297237455477430329743375395308816561801165150933420693953709135410670075567301806979111290090166534062189848226791189684189273229751682545115260067012998089444770427983861474457495937850741463882352564534812340833140770369645480264537806908040848679498814038615734442119418686140431592567472087614464895415238743545341567753552008228154642996871455343524311405682279115385553074112432683033729833838025949157908468174028361536643517773469541578302701906938538690120554828315658144862195218890740252786811982148661510158428409397258722905219155490202593874993591333081531243815888166617173761516327811743601704602157021907340425400530823368186689371109112047837291060891634225099333303906356962336456532970113591830083873126724963576423455914656476440697970593289914908271667462548226549553162037508834414835769339236741131371069500588725088226187452921478135188482297059410493583936620088710565866731831750828538278657334168796249345188604486116637790707674191222257878821244294541327266452925414372955605462268044383492471370226583309978915638579554352236317594306493840317870850558889337792264266352303666194712166304697808417625350827279883789225299326157640967207421847534990709077448260793507696707455695889749443827158395281352353039710644750953495454356562182345711564274601283458254353365202739537961893411094788217108389356495100063919836440666853074861618833979017928167005936240107489327793593939320766703057075252793394925429170788195594818538344977230375208288029318629203034765157807035407681562739350826163256033319858910831082236168994092439847470989435313356285788267802943186746592228249067724200597083925273430021178394012020274263180338404228393276239091836507362145623152301466338215671657582459734703854664962206448039872864751832218643015594192984535561339325216134435768064397004295745750626361874611892257394548518625115783425679382814585649035085296542813789034550034770338942398068518267313815776578519538741286627186281446887955068251682577463701880604806809178757775108525527330021406652142098607490475463923274413260387974324114924172320411599845056996362966333219135349575294961955967081192930271999255177348147077839698680222453228122740081223040797010052101829620620997019995105129087697013330431530053447747454640172637959970107268873687793848029094772924312285462526511041711892692762236822936194574090998907682616645901770585178691166130399962918202348272435590641195427901849357825409618997438933157756098603750829239351272065087425195572273022814067004309311184622930136922821200975264310013483368461655516529234785075329042161607551330868161355738888550548168916563917304689817812560536334694198685777910531381397241445514825997644780223407360660753503479835049130108187568387237568607972722485965074628336602251576919491287209243674549025470780649338298279184962363049151775129555561815612486508882269153481120220791858296899909769464102701215617192088734026477522781654834879311097215087935912572507525809885885180388305540899821868111773667751203180809019679514775155999308631269810773486276453593333743254601236523755827411482967084269550610509200526492986971615018232644565541546647137589301815751724162564007929782058633831516601125364638788722352338973519088461482964112882629501978070791197755231656033183282944484100383472651851889827346660695387651595941488330416074105558475388470275338546364072142810888303124794215501592567723362066780610462782517826093291329648596420199307294864981523003066347759695960626600839809186881327752721347612706965683053209565000689170253111896683480631259233254225752390975682937518228965675157023066150176074137683646137080685601163351793114360778409431722754576144179521460259557785196858759903602957525332949855933926709108384760397770188558300342326281019355049477473724153876273106912056570626491982285998348639881656845404192089072976430568238710572804747941307084614667696414836174430238433875755667603473450890060237940941925216284283029362009978014917018889078578701388772010453100446382529186073080394169704561140503386276720266802443829990781131494295681502962370204001884884200238845767660893715654119872635780882098482852785397654182092283819128561396986619779076305715415280566197617771145281793810271987896605572783351684094363097264388272069868031662331677884964134874003327262316756928665784828112659225278400555691770682059323782725196603993254560759470356184894046331921493755937777605430649794776080013163908865248416699165733313112870407542893490257845876625550048527549191641157608756828131546291252573550345918965847015268023733432520766274975609302390506399034805157042991412726792468689268636888487599015430451280066150176060445016969862052324583769808500992560934695956263726490692084057715590937271017864982759540525973615818772498827275248304081289792941071694528382893069859767343161080434580109909921580053502512599567096433738313403932602984758717252948928936988988277453746312882394148439410640129922267108724444731518252501925238456009622045086071742463049859010298806566984308949786241379009033307363028903128628102095969111099395084049151321106346111290566903069537396506995800429090166963066247102301500563098238024443820385418840145445877940605261460485854707423703517580090445237350907395804105700685806056416715504784545438638175976767799002469795907908708371124665645859708480953857677850433422944118346442966901864130915404886194640204727998395542881431759804095474648422335198722100263591424052409729234752017551242431774485356393220025762813815988473065043708587551340246678513349424853302367349249166623243094351054209928676539688013786822596192872703055916213284506608479940896381332156077758974534182197703139132292358093053954331737401031186088581491500677294392209955658667166384395419036921064938992870974582205700699310267799286345777377896551922614827804239174591924676759322547831386444119151813931275025278952049982169377640879581076541640866840525615321977004278953845197118648230844230810231570761141606831826689404206766933143614963764437780836472337635784963331306472978361194813605022731942191252273285405455426230988768436120995896600119311165541673236225220609382465567145346163676521058547622601459619753652483984842568329879271629511749653494890860521559874088778737247877642571345744947200021345814017323521715544904056623596839474071635985028612128003082406738902241990633067967199310286063210159437097251184496143361628041360712063265038730145522293684045746810458934945704617584204460196530396578650477230529561767319231248803226935871904088779528677744059843432364639809166231561702784895645230000001539674650875842360850232643269686351471662266724544657867843748871844724579736864561292824093448189056697735380792999552836256605160109979528418161029854543784234671767702462929478625273065214602029936006683395555175950692557945148724800461515846839946180604133536370570055276571250605141191140140991057756413996710684996361011544890597083779388478551944330380513164924993004897737717834406517137878292232281571509188647594539261730151013050354341967416904922761587830512290452261250433616166381245857391493523307032582484697709414477297709752014292454963760130651835351019829767811355085387948877058835303167635640556558431150586164663327075184624177918495861274043316468377706987554381666023525657086517242284677347298497719638168506838811322647805000681926924698362558133678821309675596117713234921073095635301251256674900728430209073115486663075067679642255630024251729733363417197322758036596896630828188584143522820102598123495912317385578305699877303365188101421538325448660901005469595321688609652798989025423733376775948502362086133114054448256497736863684977782632502926748684701294007787865792005279776010131600650315179223379791600363820726434829165106117889069039103702370729184115301484447962726839245989976457349151986491356982661089646144801150055049613223346393385982283002796791251616823080793631091623564254206402914031384448050310803298974377345194230513366502978303915448918547832759869809385069281767549967525542625264744443826375676253774153612892690668757466303938616934733475543998365129456185559295433913695719889916564282501601461924781224677169444597218794830226028060915717103364434268138239408909342129871617097669259896606170839308728858173321197507716424390222722931414132198862767466763709399925422205203853123709828411831466788109979531487991065826363448848708697663648633176982353977592871688458247768380253783531647857792154697825369075706241288926901532845746141920956416432441647260413247212163996280985860649876903537851916819447133788335550809804554885600192458863273113153381967288982599578537424491098105767874083800095945518475399629770698715792460806468027218008319402932989359540061684266410742958496466871055650647698666812397433328543656577626956221778275545042756456393413914254785661065882091481816540113145256909921356660507555718212024042785394405963509161495091949785192040217726683060264929276063094541180302340045671026295667305003802319208499042979067102768495608153025261392561684640424943213921865510575248006633406257565648906584278319363118624599997412747638703359846644380744553883089112291175204140317035462951283046398549268075306971781349107204587707315206676045424753623088481527963861125965860329306561583939101611995962356751723665107522835436892058856050967872709269633936686205449847390940970452113479271656953320570763776594627226473358142804795874057383664111588062023374964944607745467158387743347815383322306829306143518083095300888135582450938788752975773103093186729885729319488544103505105717053503225612293215948635885187970895795853035058903412324485453928483801111426292121050820479148597662548044689146460506059890782422694910130204033305227280029947488951131890543358694515354504828254269292663968043182964537025417426151100816777461695140644818957812558819290993059153015980010220267147336482518678426899129612267398395531275694222957704124709478626069389728952987037825565213398898243294362077374642398486058268917777007892279030821553550528699603161216387135987844682436052121039493361487071596714128839269524956183529044634362347632920927411235583121795445842142467440698557724871025392885791235918802427439662001366061896375267749214936588062332486425717188507960018001360797752056012124820266545726891914750537238332353100250899468110266936008055150865845473561639574179245983378420990828891870349598237444460995335793191111123748829635007085495318989074443998558543269862500993268646370076206054842025775401552367934492606517389606080334419858152743425450533940782955326260923701748412655268910625346983437659387277236890215083563565736529084137889975334338461520131108328802960285782162990179634697430870836125728616319635789178200011845764570385587441395070527515746427426710276335819091123772629190963049427574193985132825249757745195719423512472495914969990044637484149233480651665167264506832446734173688146316779549594104960746218041892349622624572870907251309065803550082302305104194862603125471542853784127621937344689943446871236104697418935609286161421052273582062712646199909580628992013129003241713342670790974511596017560497031642242079063218122942433395163730562406087045023545652646702716057350401005601291069631747960769414488437817690892096542761732809477629213173735698644352937513009476990309237652083987832399725629776002353733981953414587078582734836121141812631159254888916483187922524361343770746486154882302949890982883186115595144842712499506628068349986861604666926978326207785822260211500132673681063670723348115688802987510632182410583687930616004870940221164140881926459308743609073140610684796405869668745220971774020118526340831661878152509801612577161541505637263913357651173889559575283673401483687079888296341926079770212472611917184645072230513128913051395367442655916804814292922804412205623509033935505912742059735865375400410962254382056340415031973110578435597465034593941728971395863971190421326756504349546898589968166845456010883681753301365538668052387415504742910840562731590997263162704994316422362424149281528504074442126639872650854041169624015699500365654810829311948806398188414802557584754511967768195549467430675159816072633183193700356610801617095508800325947176701515828098064617760428685823516676261002266077151748271732606671041163321376616546731660355088358985656421348635260637562404431361604722502144783902259205418814231314779589244720257047081261548786188709131626601155414631354103686929106212051492095497719381430081947100821571091705022452447947844956639163720018258557083314732046488943689179513323020679783389644020077038701640440131243239194618651893778267414643182592945445680180225284628299610265196609163259386724187139580334019729484498254119476455699816935318538572369434831086932178628784532263663747364145156760941000053417508706450680140909131359390395855351829784971435274595551686915674155915333108112116333312154048737909605359399280280155953253605743969539124540001043056655327352094798968504189315466882425308065906351346083616139522438059781019211179861794017613964111479153223530067777095909415517735248726855387386442255767072182180487695286326632172496639225931019336230321071043321950729977279779018617981929901227845447803425998396586048495079705960756941311797583953410644523188516174623791123239738337919509781806127268367913492470501941623313768849795227179550161812834059890046389872866151741825603481866229262144784955699429083843620694112039049652220765822097759497582919638237217054214810153408281322797384237098127012428489536740493208425358813254134626152498581270163870346452303334763586344621017899601207318832696525087456321144512735327572661152997813175199245350831081469659814630357356096868845687014632616160911069887087351533292876312847763226543618833359619005589780709350770636233658864014289486934091261210544133567647978201118654256487519580386236870971363659447148074112851489448565213592616566727981790092408490253573077736684894159262206367028864252476511277605776160580197136509037994377459077541408320685512576404722706696184572343187845940976015941441697131376038021456435925788414525275717344456402786866446401862373966322682465543532939954123117456639920056589313578360380200811883727491170956323972658885682434013127657013202148363866364164733418182244604416624027267197712117133226762297501954109673687861618048423968233557197529255553306006932751549159874437429228098391795359490098603577545287519754319560771837246871585657150327361927458519012647675528831731503633358179069142817492679008900934200662465943166142188631535097608102144839708563908885305035356986812830350085453854513223871427877507199053326971192099962810613241975347848392900947046979871845828774182171115838857825690620274819131659858350147271388833539586969321069552888646217984291236102373192562168359553721891069884946092975576494697167559007181295281910622267924675981375999311231920898280596177119365943242819996492711222816817883877351930927709112552789479808766296245900056371123543861536755545347164173574992872506004709868067822353676614337614306410181687931683459919121697941747105268693056053869331124751741896562664102215008445649671213787426270788477147497466700207130169205400710937023660836024173111987576579076496144771663421760293460629929856380730235533024542069871879586863511386245509826799016599543115264361861042511437250836410298069935291933231140328697509644270877466121333205152555894704868899002873362830876954184875135525766240770355614853520319051236489946117574801976152579781812753670028799663108123136902301864034459639427309797122218968539769439531951574028807032370426083337708055332042456076461854417375209008537027724242641401446418691669635114356037669549279713177257758463384583842559101127974661469567211318027128860579216596146017647152845931553305148494274172139375526324509078941549951356675449147279452430861204315944360984487206764836257598717039395840713479188606866994058534796510559922784059400021578872308858388169869653806686367303217755156253983947720955074209203205356798794387718864047009380710373169836739955610420412478617148788350480244215606079317541449319943720691414243602692879798593151601762816983534608154424059661581877376523523822159138017722122975654078167057487823948363568198962972167601984837282656867061493125843880441616621269971152092437410732160801643449997856949781935416724024762787167088910779521591028047979640041371815454917321058634296562571324118791383521212702809899190799368780566554885424403889716114743398789327509815428020188392739844390217631310104662435241893772166903638930226194386364799517419057801602769927616377620868302583250568824621934553558684991695115692016524031351694727611798413607037217772573733989130155169887607906466186804504618132075646171408202844225422613044133885167390754290588462908439706329343622467050545754265501129022358331759316831702525350473821283516321709831068543862139093108396821872413596097506807143164758187399625743323399815849416828381633825273834260033600223804576185124331418906799158478271056728735626940199511274614502571855000068073885971230266605906665048688055732598435398027670570928166695051589232304063330217947589433448814015685463454384114383562689412969692904206833108055787236031499280696748286306099463041913895711220209452205351075908333527777276601326363656106016765799150078857288561389608897173934459181890942893707672707269528771962562656436570687627177257083327019737626396834495833019902601142057466407469715592155318846089953642434623105687929653833733707433388311110379506750027992147389332258218063238846355527712231491623875339839977897546603309915280443936730975500095440165509980908573339446274611747500884795264121004256752317729077654588369102244923528355328017283416211813154823768041918747992953784482668115586032721913721790295169058575794819407106121495311361462214896560143763518670623081234505997918754129850895534415188006776610931702926052516568123846412137101629074313216269800483346364466480869685657573905656518019334288084571282670197029689622447362108036260330666387219693675041522062269029308149751735964420626174421564890522066640431822571510522041246872555000857081237016852681587919868248789458627587959637127637122499650593225221707380435414671940019875946592622150009981777225672368149082480973748383690787948875892107081009343943042847657375723001913275125063435806421175372440862180403207072166823373696484147997408297873346376546261869014490844531083950545690453225505042554167458262125848862978784031957684946365569381639979721999227292572661448554148198621838163412257960698811845271158465123714394250151014571827851430253311174613616863843332243555526924728823482836035580884852177416685203919260422217363652405003881027088020052529890463843993354860825988158627026469180542135211148834067677911943552873076892365997355428997809713233412403450983983545809962264751782933327467536804463949249457689225807738506302163654936383778549683674039341201213748119000408434119954137195818689355610148976734112115920540349710754760888698626053602644811520481968508788500974319026763082399491146660165965027409275828915504170779206662246819888247533071820940908020493968176736193867627836006988694160311073947605535027454072885594817802602684947271707195238221470521003895350963561827530034731842772074393913639785212574350102864369437403222084909012562863625720858209798355796950707794381108225731059037454594492080628252307391648549005894059796073025871318965198091170711027747383183760790652031150683417268817540645234664387729329049115753360922396379733987776745884995928329158872335562378210951930207996298797163905011524042579313874460173822392679038131603798121159062856226334340582833361888832802740811085921241445782887507902787905421287802326041792446885630361876683451637936777937168583026542311437288617616953589335690721033242286693591804898402183107674883902048341529601792341219379626769127696694156390789788338710730013833086857127037183516185676274390797205264871122492320378769333242812234840873418038603484732661351067149904793655122935280741790582231546532934235146742410637110393409700278165668248280723364297990476396901144133071876082130842612462574232084556280044852911103081699592343552183465379722454853552488676417284757056247010319110685063543800025911378477260365700732126890635540904765101206947530439746965427337513523647420272732197994835555265636915469103885373580830957067719887653580483798208665452261537186671655603883191930720252910921704139410207066910079961661682337707096229091406828768776735184592923529796254499061159689094805301132589167492844203633176029786801246094215841415799018223636097012937738866187922375972625606286205792206656632544203041477143751738706410036277896929298011671955366747385365637861445690321109285918994269708386564080651116113400017598547505036584071376355122436958069454995701495477693812361430666678414720040123543186113533486216245831552211857966974019937045527375402644187290219196094189534106542731146372518748851617051689725809570267458176289358191377826324635906983247599554456315765953380499020720727101212130219295683853073592614241522189710359757155449035280017744389925468865896408141159499143147407364247422504897813044327311406638706648598548591910183861453360722501029673049698930764923543268183903174300774044876058787172453514526112437783884775563763765880934791187636061490303171290173416224117468045326254876053210907541925328740323387437090096140354800386294995701580311727286013509756890404511920536236119864673818565927560687096042897778447715775010091475593943321961930440526928118237037227578030989507832651207707552361116400457560674367733458380621944120606349945565184865533716090745648601722845243321953485023414024556469281805548013169656495168655236081999148077487230713968693129794807419564278499101694007999620423462874328659569778857389991581893149117837328660782899226227257159359399996747574216401675037161020754875744640390129709835798110503570769640311730116341340960844669931660180907303572057688070381768945177035295211424770047232817014185691315191535814014110962907784861897119076581886552996205672021960041451848332119108752723478312966483368462723223078332050720538427784804453394094037359328872499261094578077453331814169124918683991087112922014225837429390608561518898819760242095751509080683772765944386140755510535832823598510084327643706407649193199377942016255590050041617750791645942095695821250034713056424997662233811234394950830134292319926132027517980905122946169039075550866115109731758162874095110809821973802630822721786138851216869661933710373915558420473027013017378056475899085521194102306385464951511124579184719599620383872370122547217869076295232381993633546144945803392805633361451468799722738962375036618623662618665843839905174892488901103414131404762543061806429628445594376595526078451783688319475481406820360575078141170562578952660620216507049839023352045261339126012591083724739794546243714696826240435178895456397547574125508386351413863947312443682084248406986917658435126129010964581497911366929861855676003790481549068819200949487825269938870400278105699026904858576660522527603386775866329270553263966327737260429912795552589156687964701232582935291985306372320368828881424396350797579243529415581741024972341767739836661804181701718062829181844766040675782166837078915166176336837604036310065958810817418494641304904151715423397928395321861930821540351878316360998850354025241600165871981865607766849559647062388651248044042889677396847987770933697376138877548844137612207941147024184480665085175875717531938005402365758653772932077029346986345531380812958190904378200828240882294931014854776535902527757946833148269807935834570475884051015938202370745825114077612181687188355542129880400926521099912122972209524740045276050696039707182719913891926579099048133843243553749005143818867992120317944471659677911181171857962977184205011303362705808283527512009084373333921797250573779115542143384388486894201449855651987118308371311342012613388131256503152834740856458729794647418850786258551542184781405787214198953487002887646097896679337146908998833477729853791802046483191136664468633300984358047542444003729962649805958611244771408110462162834042848232035112976679604206559801380749626792377988761715542822531584792700341145681291018687831121759401677451588922641869947765043265872270210877493219643100851192669468153362042891881910158987298834675896020686706909409534955579610920359440526610269317358104632808105672172117833638748009441729057483556857898526816630055564819012737840738868995183579059433667616442951195343809405234430106194120329404832243015695036071837069507357303390399283210922837196375952231345633366187022360758628183635476701085557687829848605676072409494525987585239989163304035781464432625943745955683017282844075047710287872184945411940861314301842915043068358812532810387524665153513508464758463923415658191392956303273085717312183414837926867292137384821320510304276058144567280389448412280802084424150217816554633060014181780885365142039475533041659188321563722487114084346175595633026949619631402079049368796462265904030040083123438421580594993357078253546380222858917243112005582200285762058202570831864104903987549854712276238704652117657000756293659745823162276022642730564380799084762788894041978083795890151326216846190916580563746170846943066012172281664491593444822182421752475523067192762424059746167486628924601215295140787377513476824069134857428906781717760189988862043369610594577922288315955418058710545771380234703695538531973425781732441252545750283208943700248843315981042297438390769477752035900822821439045583667660675102301189487329825396906845651906224257253979890296851833263075348105469809592930263017489133606877632164902753566345543129309867934535604659260053579790252389989284154113214829939809875899004497633329546598337369425386445857984746456878083474083375624242397035391951468665383451270604642430591833301213480226488459993965834233916877785387363967898816440740368509294478021194583615223888489295986228037855752354097810694177213758135295524780213611345106946858391144898355350730743709211857860337509211708348709866711514825972414040499186937748706161374579877127698833686857449120433271423259357842794694544401483711913186113629425286386531027105030520382083199713860064923350567150831933027859240817085378518905460293141892986421964559335983968227882436048319909834284824076048276697705879260643091793181965763585145363953393734413472128320311079813415458372528734330632316603259950659751668085922211500447172642941341987386696349371868498760414061911658562240352820864988641566741462832304927744634554532667026343642053253698740940193040604009623759793180204988878442162641809273805796626491788544356328740545355720118963329009664517707988029956830297280814424584328782678483836155767905347449395983327994382877938268760198428573846365137186344767834249911045544567476786287802375415980855803413065899949707625637537013174159174804741430080299497018678906366892830322738777698474617834530600998689222495595251933896543536554176969753864646024707405313901297730731756325651812878595563409519744075606737054284267551211647962399549305898637874009109747547768786024167421818267113102419626469454125498232373723217628204411825668494125156171706787882249365373272363512856875092160956994830641124291505982861088062731372988226937003771416638674954526932123800643321482274717276562580672564065954700741788812537278511538636118942547557335195481589573100298116395044662435966024665572394779100157963367120564410479685063954168602585296781539740045125530856097065635687945090389809942079358541154952320976144143927530228784687984001669069875320667560102084731233045760109353193701097772143527769299897695787004160205531143027749017401173583479387957407610720869718397918346196434893776712136775567929593029013259787545589382755650777884595538317824385078142718967011950772246629567667770123593913276084363175711255325024063748827530964080295431600743251077595314835530760417597702183450587197247312241580535686641707343882566005639469113514018045275646960421498281926818521771567946091758951506915264331927093055711516653073045800641975419048072804692045447031508512825560696117715494105132264718247882716941128154525826613230311202187554118305410168724509308038352458953107585888066951596190908477617535370199654858526573940643285667205497536349573737560028877745923456042119562154813246086335603388124418312964362529137868988441316410307204426046586916050863156616230466661774593212700869359951938521424945686503444519114416115051760653199626379056121671519075697113400824523899578956571730680206907379987211837313826368030063377233609778767062964303192844184365640511972965260399262324938726054495580217783223804524487855179815082523747883694316523770562900115206566264667082802230629254287180168107080884409146188496337907065654907253066334923618806927537598130161895059906975977828467593287461964055552510869303637291903743755117595531400338969938132768723477728360987306289375994131537103727694356226638301596849651332789005564426029083359461475810495003749656686497386000337806261615707009577493815134353316594161497444673922438516289658225376424693751490137880702466117701015512702553869102917169599486422995459641945072058939319805498807192728545854517539484507745622442653169188238865877369853309059816082955279024139603324147904753314269297463662306810850390875444995517456566099401365830314329858444212103690224782669065210735181661791552541317112866847596097632171955961441234375278593381127239706131932418932129635244570445168623891674810056041375430231464665020784558156137832968966324894215569586307539876460353876573214879692899135146772878239191707197474240541733343732957470832381996771103671009556995460722298755095771621754155867687298512089226265827634128927547916652774058934120824713861201724525004062986233940114845253595230490358701852475817293514004151909082083372676300352657656202183560875940453608463741254559517640418990661730916156996894968487809595120393255189036876945087623687707807178666174345817275371584688745534490447689700670347358139992908310809756468548469797526518707439816256534111940981265758883552973121087758758116910829175981921707799085903653873251624974105132437364963056501505894480833512776701366415395421904087253674095415453936935979430555012447679727679498093723483748464079980541766818086354896142824663716808306178524932388898258567655853307110706635187422709738066536277376244904918843094695328620813146464384828105235825518198145750441818543767950644457235039503992335311667140201222667421249326145944691461542219609175046638579878451547277201152610730824830491264745890655837179256021425095072048089316492941117923222645930554827030888268730204106692345947499335202335988190965958043204102128705234215445938936974708865393293330225979728148194873316311078370427542208536452262450795023319728409401828570426108558261635795907623349692156155081176095234079696042553476217240850121365362815283744459334574009807904536099790534388308983312151217434541935536329026885403183233768306201108626821848270442715139356413700721267517073286235630788896977473359078577377550975603043125991466401679123865598010297829386951270497023111684099644656673977974698840924989513754667141597448309286818445423683853176211642934055121379307387856261130832103719536283836616965605304265537294343375655481043790604721967171031334829460980322673344990228772871716692860878229646142181766060639696230026968489391055181796621119554697531805447400854808719493900678835550699760002615100239400868330876873969332061150636742104409305533528928107774938068395074891855443644698610047928212855095878144704077768528584796249825392431471707725448348628303453819802214095248772192213037133295934459388224791949982963741585780370899683954794220589894237963439490126333227136449387171407686435557401343809038133797606933424503658073598641556340167484454828794687549109461773246620771117964744721092341173670952794182101619706535924091268788934872595936699538365608198021715110903241390493691870954165459837438225419944799129334175663447479062779462990077310832245260911660040440516318982156948007503267026848941540023677804662332587149122249423751137502793177915515163935957921688319965210334014386983974933601471942021929981782227787760048307902482487344193396960968584253115951246344997336298878787879047922817029712684981112070738059214022058421620479859524296703389975682379993845944028983898163602490898923174478959496800010157233856627566231207607193945436557923407191769878008361423260307877926846736842388670068842019470905994753438574627072432892845973798776709324475876485169845046208517209691303001080135343148025013715003553767207862974335206059556336828600167417306032089046253738891273364557065092515018017728239348860675724897056086219178316377620443703833007786926790620901464869353486333810100990823478785875817173879523157589134100324026716717292734790966067977065210316354904398117493502910239215034650956953139096686523771987150094246730821548528088973848836576215439998986872375467846539434635079199503331627673981895989654197156462732294308217577568251371045526328172162480012203726216478320897875184262025144962723311647825215040554560612252097803051652590914032475389253458848428563098984584352767435014503874441292793757207656428687532303841216591947095056872606423607021115839092241688655860015808532602887430914754330736977143322247324914843291704339010015300197526708176881914775135781277095207295307374985983854858515671376751439032770166626243757498926940716238081236162098455733583371013471298508587578740367152477663809922875430655983932170629687321848480233895255617299572902844529453901327575999151098535519676550156098838090124315666618319382422053081586365308655218541926497798375551385965923826054122100175126181152081988923277392754072418141493956863574174907260649526239815954424589454384578416021273501793140430371462624849565384916285858993354598763321185692719019968042401786345208184603933939101731789579621490579481839182530743097387486271540190760449209782197043021181767709929012689995696573050835053629318664198816935757230383206173159113551497037599835472057392363250517552979105687809393390518269880783074590045541016454011297360189775718484728398417554075186972917738275821969786422571079678298423189134194703701480831093246487962591247476049132236410236370701785035735138097541823653559237620932430399975231708098092763820152665630137037399533777157359071154210969853100704702953938693057557015470813748131633702853006406386678215121212004090850302472830217049509388206034319237948757354629044649125854741315310565846933529395413224241412278911984538387527338327316206980216363250809036861744597214439866652744426633009288375823079341412442526611628422036863711740815058313318697720854554387702241865574061563924869982934602689797108838968637127284906778115181502356091545247373556726409649262072285748051449304386262200288659422712527277414959977952529123297076343848331723729823211909609280933539938381987487084513051529056725201233190936770183083861362554219986779928965813373320398315662227562555277011824587307585120042829888716027966064382681839265340128024010939254912109366801829010516944407093995929430523598348228395658622010088577573474038599394586289828163276049377876164065822948699530653820139026818949070331244839771498109904190609087726778218687260454907958421136562655391524505117960517845733930411463361050968716637915823591772451188334278248411017075455084471010132841925870186352576432659628270207414711928181043599690069237628797317207200810003686632584020571627908081664961433523510875347181724750985761433288982780007831165644593775212863440656626425724559320379850180620033428486442566160336046251102251303110782310449312221316878937157734636102895046756249675770018373672361058132409314842897484558917172049498394904409826269662766005069585668532908183709308177918511622962182252934840859685624322897259785424054352863640923753115341263779835472086236082087581856278601348074839724607725895948024772982908545632641133287900355655067960600500937462979045022694259686631665128531136363304233912630832142833077412225486472402853933627030505890308486240184259654528746373960336736767561014515548991272945506085964841833034235491603960517093933154421942864584533738218679812639785298930820133960750904233359890803385477371739419680204414733269074365905628384948991959611923436400411506551443831399686823943674961376676707677745629163016123305249625482021146008522519146596656128576371268762207727781641967442267018624558104838673028976812737994441438872361973606583100419565535426565715180369914017039026775849693081147257173887755683993585010852597852326259282626628027474100877677374312178547728023683973484436371599118848927063604433768671286695632185387703571826738208943338589975970496690869957327625480726416625831968247466126845968779797831647385507879200540647525127553517952304668598128927871286248407887570426629963389144017973233673961428488320314755704604106590229650013488313718605292292471918563163963433713088379387105522942146824834552913228872774686075287366882508849534043856919967597842052602348716496698295395876860877900370011405681285816895989212128843939944064395747707510761667682649428498988714727997996648539186654654991406534679506501668350212235748935563628070565232989464037782738179984734299431838472891793003369146056555856236820582623152666308924670638293643540450068726157970916803748836139141443091782722621189909900120045410741769995907564475933795247269232863388696208539227406782992655260461615470905436070355529476689521131191421329163979505478788339465572053026185820431345480928429744443113881669476168251013763651647222886711263159297731539248252308128593593929506468121637773728253718747789479015934856914933132032938084418283410335177944196549508892936119273310493245495482512076701784646373584013761010370868816394053554627740206383063073237586109113907886704150809589027848473740040795778286803830682379468800321407707422280971220783068390072828133762430976891074769231647883462662912380017252916225933308319433909596792171222624146042156390939424011697337975645764001216821693842280390245303322256968315464083927510977701952155096312743641450955239277132587874073369763167823270601898940843615037934323603358730295418045314896954952943951539669979871063931170258178028046200593797264099105381993035811783906950058077502297926212413801760414608769135992083560978649151684021973112845314517814923473602185017999693060065980505258727972571385333809736974424752863137154169344777860935852216174366907839184670325130268925483910592304851240601989014649767804499917461854782997170688390238385653224554180976024003933365205577933749236901413879665939829014422603976361887458880378937688531358464609033181428493755364755399063887440811945554209522702098084956177408560087738594868931382187070496741510259238947386145068114210130362116937598653873472761276744012120885655250002070462377268962971149603624257951973869080432426185789738625592454640745199315020486532766293029912655894895257053931685860092211937265924004227302163211773960205948268891386298919696865113316936536015318628699192695966667113343088289077339051276263840019847909319555968593059213998180387417556635430245342047485069031652354265481083895936295290004070866329693639626511101221435702539926921502778398744803894057810080786691598180060444325360128806158252193088317545888792781737712404915666663979727825000150826875402538587110891580778067788369449500650209456579529358481849022099498366362010790803241684478270814072613776089355919945352456450205191347572835106620839419428413298085310402685760332604106074182386110395208952553572824456938102758446276246281771822794204068734894920919873425316329191791786434005568825952002148271159787462881991298264868543477864978963159087093337304623999801172761907388126336705504783383168024082429050803313486109791117645209602820624301713320698119531352608023400575116729053747526518061933357634631406527760398855703978422028023889082084379356562892893052821822662198559521020411371199355240302114531545174689590470975771495951036190337080533604174496296256126630325745007118563111860710670507206061702613347861637117646060905681839631079918859986089715040916661055526575694483774641542740350541421490332149063650615380075611676315417772476081312741430972120362331133997216250594172271108065632896278102605685503148990794407949694886668435763023914446799644924301756903744975544990620658915134973247696523036252291745015829535501447320528000201122151175216582016256814245795067212847685238427557767104093508630865313679647540133967075134127056200973691035966704883425749319544673057769343078872167962211502214077658533263006739976224562257238271062476671001696204619335384811571416453055513840589286487288363597882944259312343669658799455617236022152557950571447419273046561392289047075457241184208687068620605632066171748753788245837958835955540532355834571615672433369109312761566216432233278919353997431847802518020510058073259210150471046374143732458492256694656840425564742837402352023852261489494713405978705274321815091298075220135580263169227461645685633992864610764028823840333356284326212406983823595925018487086755583955277544860753089451571912012792415826214461614784713058999267498528464779273180789282048826914622077527187001184429179948440541587316460180810194948336829437427731730824253515956710648933761103851257476897629901239941131520364887821169509427805358217854260086775775348532068439647511277237181437341974620650991892522222996248506023965809600317341815851734735432090763247713458439390066222928150034996631532242174400481694011379357024496436850154137269505081748289368659627223610530754161308264760756728069481547721473387875745604175723396683080166472365197362767030388619255545944951300670247495993008846129499100382058269160653006075345174014470681142411353176624455780910159891784493442732807331178447975220235204261006135653254398190999968439338636835285368832035179787245564119885591150900794370073992370435204366979553922030904563167604479306421669501170738618971358025005573310438542303635546674467877645920746061903820001797451203952597526147474565999372754733568978518156810863984761990090424809811631776123647272575527872574342469816890423922295541235951853882960591759142077225775061406343139848531915234405113509980760880942328825493846322823970894706836864999537512717869736834199454774270154635583079445329902280267536980848221857741405423520491457255136060077471243063685015751481827503028444953774544919396533394937312317986293245147466416109593180049793197136301022264206331974772396042077081256757975501285832833174603879065667120288952425737278618978709837127702993263681338461127775628337351955939608242202920135340550982353197992830478162505342764633901498047602194314943567011024102428256328012679257036969678848826400835410554662992488136840186508833057968550015667356513405175622103797958307721278800411491535443620158700679288348482289765616076635225719432510076032914681693469500621537817534959619550231304927402450111100205846765709329691698479447964201667344490223218954892520241664326740720559841735070653771522506598321804170199461496562049827193505544763364168712657950409664829060298484049082378822707088562610080825463891344917626007039277270384761759079024381605713906656514182706779312015459219207161431583596204217579216012195551859867935290695363270888812563850507612523437844933851696875658510448278610611895368713204096703307372083978729570593572648867503206119865882476243347557539348345345321681650287847470099063638185577954071010216154927244573383423536421781284881283990859204100753796646414189378854172964892399258309134364846801362428506855357128267244265458453141964307976547685085599020984644283332841010190959254023782068355423423841651117685978985313331066504953072068718251618764310722245756936607276064116067517298696095331866794746845051118350676879296423873769520486372261343919177808709118173487364206015100753186066583895378356839828656116970746905242394037387129869615676873633078598384622285918974746321700443053807363349055193474256230035939687024625193405569869211967831309601374198173224765396910659767756698440575894215499842310854781318957234564043179324032956222675222707674251475071193491639755381544051706842698370904181312604077406098817316386512831584813046706385608104569327185525352596741215348796013021951071306855165789892330245316260347743503813027440693290718435594480616439054030959871154792127771104509122231525022284106168799665959349757799623660160326247316298423338830048256801379035228145763550064578391755677800645902480253734189676287152230627959866488622298712931419612767828607958140372969047300712475862687727550075587132605570219172679473151753472129376463836655054285640753392796018780688639163758183658534823314874346324629421104367331382574468855451352339272581916955001449327954449805313864364959747320378643550875763214763282744415976551395673084376761462766441306618466652298831750683470740852045098945652990430473556964454864484626202735136551981366058025662122164893699829782442266247085589385699835892514995837000493775487777336640991540560595993864374367237647124498448353470104583367518829625681339706138343294332080202758003771994423950129041827620969353332395607431339922284332187486055731426814740012170593019250184199092031793777583174718642264813365281509325643711181376387468849108724651372545040030777455579047497547619007408864200922768404028001927405804362007460040261178454000371956831826379136091657054852362899779734252763568356204843785711613844680322157521653918157043128779352644225853110457575850254026540830611055630369114999900397079991719879411801768529354654659151888831839654876100395625310896444138409093835861440944161394475923958710090255582164160248534002919257231299850544187369639756277870421186192695361456255272899039138094827588945621291924327799514979537950631728671648689171572935256814147124468924103653735461602716789462988307976527349525914067725718510777107498082773812339366677609823865559055723073515070909676011644347519566226846398954864359676009452371726834544498296593535530247390139488484124433194586750069108434093770077717689219927833536250131831765741553664638056714845259534160840749600803061715666297260182261777422653079300499717572171467751233563434316260111833539038297213836263590415453567468281245527194891990165941030124082785627979813592009893865657372307097603107785257128378243513701131877850998479698295409587513661804352211036884125537417457175246910768686312488472648779048195957214899256366868643903764565520930099924469315224149648439338085875744530612648599851082129330528559978180130807076317790411036678105142734446780135198915439033173160261315987861828777562069541570090910391894707319585558232806276732435419205349497864818054660150144132277486258172273245812477493392186361711055482636355772662501128492196804109506735786713289990035341072227767120219507792406990775155183327849985722989153300874775014131254574682914783861432134511339138491812084701814981901931048738564581101731921224937457845379292634784887524215179339596954969292290546886818446780064573637602160118973760984017465449947296040243305829020263566857864672735218560640481052404932939120198795635282615397681441492568892859742674308868066143360321837306281740128912590737531466408333996127211458093162664216395111772989169737948868826963990005629029878814124593172458690155896244560205403746820630555257903988615559590380265069964590992140641768939117302509883182303773896937868434632391986867707055153117160554910632373322014821925211600544361991263180547664699590778850148934078744214916122527500547276536669236129859451220181647738801691462818338109511555059188982144739838107583679190039238621478777290428427590706204210896918776527316225261421739107856170513596702781417234767518072897266173403159412444679957752116347431308105556631257746338443172942216131436946121622763046823820200565204257072813358252015036454318055288473173387307801593711041798672050202717979683153510856917373853090949565951729306224541966216000886689004888076812667752727921024204088269537154977233961169361260838675582699159065086341814219034541884246545914646719591725838097700020347050248603643370992145937192689220769230843463701756926862805309064495252055242329225617378952371998096853730535036848461464426464960726273783198576469758987446612569825834103850524470653452515683186120906424345923438242345005347612989525683434926312391896761109560707744052659036882119965329125493200718681983821595828983262111810531900671926345328299003674643823814578467672682662939085010138596032726882197736824252125257095820598309630355774458862239507140220838302500706789698995705690840799013775654049533295361043150699318448621905294880565875352991083613662576226119781362572602091293329001431710639339821923598069180903515213716794343170722020958205299732383550517813548731733535646056189444567489605862129851491878863717927553798999535215620381338340281999052216014633719965371754656327216767725614894426667310775979202643196091020859476731873688432659363225080818204268103812988770675376192511737410753484895793178521178005774197690987780192827145682804358061073806931502832826012701145433268733817674390278236940841898274018569744167363430448363284528446568443057129921866577174236076174191159385969395761900478774039760461741700698330331340337589849080636406433095547023335722577959285504726054373524473418619968666384799579322744173046947982084364366118132191054917219223152247444067502249140349564813222071843143517297377787189424088694181863168986992890863631080697264653111236142927205642100281484572261706883020358605406742942014868972924205589340458336860347003294749705859069820650257142576955133662126575640444131658185120937045306509884629053377556451998932511767530037248995899722296776553597339954251093020803441773771336973633357270147286308412748077581313095420567595345730257015762828646677590840218726037017906660638919068277697739963377603622632118668467853206748974281404560710680538689496447370938812949103114951460326251321750751066593088408501189968413835972813866086992658376574664304045573132169712992720877738226486004857986380257765439479997018725294597128876866195228818831060989604408599036437037741518077055382395849302413430604045342627299997298358291982963429395784754700499561124009182398768805502908713003869414974931241364016995287985094464675494684358492931764349794933512160393094844937595626577658645946648028875281131835085400342387585528148782878529681215296548239196689786087985183466172615834696504784761192049129829865469827102434200957738190669394174313310302807991729205514974711973119725810145646626656717249724045314787748960836068262311171181182990575511221975307450838288697464887961902254215938648207089491298137947090267311625414568438658107138839785417001391034178524379938900473448369830065227590535219751668947088554280918922510242066083959570328055553426639903791782603065545677985486045101422723463746459520758584953662218772045937912600505346582056419726004802811589352041863282470511607123711639300830699909317781557893462197610703927551558951380219540590615562429248249689999874922010252190612880268440288079296857435740611885188484854242419918383309231242787010492811870659628500137648080534698660291189284185396170766865067545972438511264668230086132355282425139023080948624308858097076635098671413589375924581355261904021634575068610793884696372482516291974586985506692710689479873675796803081705347384164323817101188140044055806771859796176280670036468763279836139238223715424540985673629693380814198600803237540047522042622969001391769460595822307229420898122366161527054225366445690740445474009388401031422799903867849992663205747294937246712076828691403168740227658050826475310607983691125117478382296489780932550051284269442125435615061175169416447181766937728538971304229840845974891020767995758870901925392048409915010242458079859938076632692612643995851902785320629574198848411122627377747224769363968752329833330001028190829089527272900738096579923296074596709555453817868637058094145235261720171350962208198557030363690780755057767655588362800999097983737530827183929139205871797156021404239124771228950468613657320915663431422702520034289191128294895234363958220120738763176084733175578433039996132830577931233691411164817839900861183562463460896055392828987356038029618368343315181853376600912686178264125003365547571459100697917650880687169988765694702450521051835428088539912328577543835847845615771961865212139482164717614697281452656741833556306666461400439748549268133811076895009239321262878779154138743398243092930867525066793420780810105221760776517281907630958426186612457333862896023279105293293951185105590312815183887231227537049789049586413751587764056873403390117272343796525703308494510321588933155113985828233435126894867643176225093447184183725535424385504667351554164963346565354207818166905674626900648271901685103638509575803444098070924496177173316270276358620798557137270687363740419624388666263396200424344766695611059501139061459764346977449938188381540163050097915606293934778631287091390377729298660315162999628964283929425372450344333216947097231823901412574842246728551429881584699387332857135541104806622911599436027505139740323837494103961351428523406051108772127085855186500063728230861198280434621674792873647760948741823800948236560361752081832734226440091328322363244217031272039621939948219087090640578515062888530028591442953775877830237378847819018642221621883754317638969237846315461047772964931632343880984528562351753261381661321409113191192870402550245936603083875341574923126961453624628197128408078187544872466119216424174842144636848285532087259326869303735183440749106461260640828831119371856955529033014109298134196987147349277005255997467388806419851003874802610168943274025145282929616065710172583265964694706133736443402102598646840943575339583955347547006866444663661740511080595242195169092602045368301011102500305380409722555679079218215343643224076759635959990641214379367946959120738589837390245194859809346877310919495820933826463183943541149385447704493523487643503239044010170065707626394791767174650191008328520485574454045942784256853406906470007794736896678291235060608808607717110593132077559517175132744184367577395186196424930427177317419759685806239416228070324475098543639147053011006798622718849648573559204963059692722110963229153162847383287494392549066960605778808220722265815506785730878795939571248592294918852465930627601909011470295779271689187398978858727632167306951023030389919268702668984134338099173722295156869841324149340999656809967553768137061459176046712062794041678331883229020064361359901229012772245568090550876766131027810793237041718295764916742103708400896282201851881224647465518535087517720547375140094281816653357106355410087622382425958265684532767951447613682979191831073834547446822843152788188704992579356937381493962087221289679150383900499999605139143978385244452761035835735302804926142778582143487716514843487408370664247101444400341607315481628970782745869823210959720494505891549420775524366062641799290685926507017422480434801053811798070141728979535370241276655496789663439098509165941908908126025203673435079112966944341752198140139186286012486983673736831747492747903730413777727293276094853338412250240705103992773973325744509226805978672420997138600273107627801681920348904311169666724385028281873573501083863802330425424109055957972077299631140531730599025086228955816537182358795404081105531002362508700177316476504903552035175776619462051349154898866025045347559909209542841562513583976337001381932977092994626206595156426300732611186853506508245281361784215244031794460979159485324261698709094006223125143431768032953010685885449087662527075374594016538352548703897832743940314079647227897595175441794982543715373359270265088693745455061887477401316551779084779370409764690509368973724039338464649982744085231453582414202485351044661850174611336789487425593109633636869005165036527772188144721509756065512128408582809810112244189787155328038404063366397598261283218380946025660991252521083986909321866240156823090550212448953779586410205839997923746565871983911998704721948915131119338034985098319483845579739574553522827914107699312877037528600477695413204042242564702351847917281494158159248267570860920609368848809403320542055802682815098584787822591155998195244880219429363260762703483042932088677963288419249814091028094193915319655184521258153925198933500223670493263863144846189611842614411181189562782005077461924787563338513905572779348922389944987200180394514296836830937276340342482643270002800670879344150570084201418523895713382661623978460080679361432034386525442405469410282995106827652897985880362633004026758263122184913304036618290520447169800998385692907508250502320217142648978990248146129589969956256844558370519423962911666251766531518395897857457812238949829393253463269465723139153328564298818416290687128282648546299540888935833640325037788510254302285643082135042741247464516462505564996475638949315138072503734275900223058214855456955050260931980005960968206366377395457255104405008705857829770159480510927638370983153879174532138678848163136934840274636302134285584713948064655601933720893301146414685012981732607524501680734287040701229757796006270392863119554574641608333560452573404994995243738257640606099587676262381044976856242133778587253157828952109775654683036614077685322297909336816541538110549636486413843277922620830592699481882538107922970651070887239619064216964417489372945363660436517872429344040425899891769608561649700008997810156374734180487714924074733407258017204194545007614085886707316336113253830529610780031683034183990179201464662055729218276344528129057652238783266461444397643284760502993671983291848730943070013338052878045908316868425547977906256501553534831955687758779310438028239584266235086739267787407486469426641709552890649455015045203113042211899339566764179404050646779153196164632664294322048679090074573407781461160612357033159202300424012952176556635834557429552963441136002030097469191511493870143327749730978611030010230795327856531975985642918050404074207399390870363804467366529426490782681073718846576946273391621603368583076401299915354883950815162263032036716903745719751200596512522058958141778528017836559017168792870202201793175481934427325337302361074355939145646914479860257210408977117583310540189862968147372445419195517064207665570627067009309498904256193261635087406238595772769289505468943071901143941121936751151162856908111205821494252553778754511157113054905648911359759394093728746294806632164469070244053954522205768279513986365725303033693691704755657724008790037081261408716768045879455438816413735478993408958919389590188692607115308305638223039110370886194687740195692017272631195176178149018217011138673390784717815332144684873206364176667353252472003304836340259336950756099349479442981525924358791653474380863797937961503920062841319483512127508633342490995657064820978193264495104218058696825060486025053259861284668650457473826417602049373940148381114743998563506726061014904035073028872803610724765109864779449255369026286607913495836989587184651254076051347590798594069238689240457718253841858575821864725289647293904797166764473475251971757380219362784413844779184457552209459356592165330540606241727294161431468615716741758631062105332501231366167760154259647019523293264327666584922430099816923425281598710163717269856306612986137762598787319889800338431773283520751456513061736059282072892495619171980398734832671743839300057618395314069231308582125219609622089335051527251004236879918798596061803419305912681834494169304087607953642385112839355337686529523982790389343753640071244626788927178354858875710587395532788606565169963236556129210843654853230991880898142196110996984246878811309159460027324073463363719503921315275116355444929463627690455002565608224421455499222839612871211283188757544000721160189949204196628161067871657709444093525649142677031344565283966432406376068809766181875770568236290649067235554814731398940009984216712992853082953078707170498853413457899139311236852549536209216134180445476939822180601306720117643060563772480656669809660020369831940717985573241354129814822799732445290326460408322878182843452770019943506625048049090380540925484382945026149772665008970242772299151216425304576641257551650641461763678487626868893185982787463353621700887696259356662573844182301512665852828204050513833003532013881002132602311069893524955001055903523500611036500110496867229127994310740117274447009364223198439798107604576503554916082377277369233982831806257527378857306489001512052884461406210088323464068443114162820069707462463618382102736104584874772620726267946396531408255189870262006627933181841232290951610698193273864444327631883167361228548634686834057708175960305723597590475347215898471222115934247963176582124051464349539347761307424071036546330270222549738652726703723302942239823358189995258529841523318253754488107998365234473187073022812178364002614192742703716942402674851654284773859751358932082330142732138701476346936626651872065551740456743979096876790953456341823828115405651182816408150777038859709607736174555751948216575235405369681310094796958264970893609280362688548450389288371688777637871051307968484246099183732184288445843563162960202980626812889780985650490173785894925083211555708025637580451081232970489326680525268503954395362732859000098057796090333871126899887706469015884073317337041170354485269429055817665625418920397953207550359509620299451880120957317499185993340278637972262031653925399449304815720945429959647402194020802823309773321807602234246665166877927001027582819751858441362974430658694233342736856984328425207156170600317004760778728704413392795278021893483193976874461353024139900862985866477152125090635527036623495926955340608401233898167487867512666210268939054443695833143452240914616342153439716575897475475930501739764529460918119965794365567509281988984649313098049671146342586294954790852985988017540767122975286057542440094504751683392841716081200610808968918517953676738856552450170033635809833257399745705145616586905169278650568241689440154917016315452574950624408664159417191498204644825123348694489292412151617981898018040815119517429628281231440329961646859256353345436021357411375128548550396235527627605800266902977133062529520881795080793333734130825372234168209880796204343359648199920082595262365559672916669253735886990036706470576389320548472776749805106799846050009029932282676643469895789968014378301602116307665049873234220125619263800163451547201131254036241412893762008087730479531473694054527455125211187859469242430390493642229884628309773848413358026732210372275222522064249144625990227881020758620249889588518721832859801731617420701471972391381704567120437042292495838083793687434483280722172621674931124721734049465929538264693098751581667224250829368162421346583635005747640081461886435123769128027747114605738293818620034343699708265935194789663518136629319075593574541775883597703487993640140410814814803615399813127523586602227461484295236143458478313728621862924132824360598055974800564364331825304529257220022321825343386790295916278764563893249315898695137794577395464799399073030368568543655793914607745560351802964715914974236161067021257554355780071863214218089174727725342368194711817019105550672633523120823990959084454741573398495044994404782203514239317344286530675285285205175144397489362654234932912326688370470489434792858962570500202222901575476733695931349822604241678376570217817506131020290848316082841868268256715512676793689918103098854214131640832267125311482596040045505948078123246841018727026504733535164151313280376004848781414485566933214352374912742877816490828334530513599868501253772935920298797058423241710574991390300405454200191387299315895455702267973447927832174261519943570787152910791798259035224468038036461316055666799703620167998082716169365877453631721879903713575285242151989487949047566702542880065262781445470446885892897037543422122630460836665309255336561917099803214870447822575721776412770238010572875625807822624381564949588800883282823431925130721821778220138327997804183009116112940344399966244682684023926101988876566137085255693031230451838190545851246567536243549269219089762052514728008380014388614778063352076352857835567485054841151497176920130419578016312103229729162837452423524767904280477171910634017647962706049618614319501710774688650800600142203059235458942424370133672206953765264232440077993365023213656492526085976493624944687234925280393907191733763934210584862240788741476752036240363004043375980729537002836082156346462485128245894217656382490896737977890836890810311539981576982083153016936094817275012337843906595468679422201294385965489378155462349024815203554211810013573905657059756605086622134109688521088209834013911320205245629468859566014909665896059790376793060355281033343395128800633860704355134989838596143896870870012092666408452178365100190027763684077174439725815722286396434991385041815454064618487928853970553097554603186920132081526303076021848465364412192741944970712496807098213913571929515296616355946414990319618683496851075018777907114687827844355990356800203854209198025286889054869312145907581707270315950821590736090613038387112962667442626885837979334298765889250665302268563171947508769885279533827336241557226864626299091119336548311005949644314684245886198553656477278017830482028371775473185902259100053376197615446273236606580906749222593044048459159242570540141286765598775207344861357863975702095884555738834200424737090906378435577294003400180229491109848497118635851795756336853085246046941504949607860886704848546571430186599495557895136112427882770307947856154111923123654126314482555256229006352782720736671618483373959425857898475495307304238667194474633124436107088326881385382049738074171018715685225764470749874306847774226887214161393541641112586006397017737872972670124387544645015538222514617053938627023869267712764200780511777263309000775409803593519349480542025939829610711582779330125517448810725268331478282256020280975583736123115508060723352788316924652135166071477873300176547600697992865174584406868545565755548383905021682318122960646623834531703619427715367585519123876203388052902034844336765961684170174112418034948418490154158233867465513345074554004406135781297823558227020543083054076677925999605199578437254966780550881309792407921055954083300384048856189212378592894874566208044349557812485199894386285455726494510431889326672980983824402012188273518618343844195879016885336685529069982792764746711662513407978276051270040702689118701422955406258857107067742018308929482253680349089550601326078475248847313092697781531682934126160124373216276512691355818120594408556058493699198289619832058493133039163906679476935793347319728781996657660314150880577308499033493742292604656335078893780300952540786953473161211104388304570487048878788285293330948727638258211539272475000721672540486134386853037510537286747302077952818739312916482773599745128851336904205887235551672521254013633924335201309551089598027119840653334940263613369335051400383969059016645648102630102542017354559444745243118667810373771541706367698895006381010634747095690903187694731715054157005695314731217147422721529971361238069244790474035828756210697701180655654600787666055757989445203328603687915559088042102292881458512300845514178911902776686245574546507439358798836050825438445786698487995349530648671531240814156681847516154868193910982744733976165665936846307615129643347965434915180266801396025569735661335889393359267209854872698258118038952872747790794101359615710385557236334114447205148444181891832826703957864212650360193848285701926686988070043256736707341557987084041221643305655716173796162846167518095666096333575439148918753278587839790314114691012199443621143587663963059833633118787081847559842878107382603000474390514364542864447559260555721286464862595330306603968449905623041434129805501453003018047602364841494370490080333502118620052620741707406802668324813973177518482343706564272854724488647568773079130803466917963022958023373200986726158217587048604635433704032546975162286222117075740715511253145980534059168227007756698179441666794151596004221178948644662342805820688565295487912757035839049071344673004234488589407868226616077741658077369165673540432481750436034107972600556344484784003827187788502328939124528050731747795577348195377973520225566259755600654235782842001073168910583512844974395313067389324489631456698087811824214656907469187221012573050464491383846856071623313485956775522893258643589405687108894198888122387789909579526928492793968505231294392757606358439798771752335897687379493880636806822034580845577160020913936605132423630256481248546237025947297937937236739139492406267013131980165900163758862518816057816137418364453747695128830315005152866013760913748925612676630847080483292641095938160747558237809477998838978053520486046820050634276891274430957997306018262676529041013850291108568323419342154223645136823421539852483977734477161106561460584895644169139492792423693411203479051360018831321083060352623516116417207015555824566535678303354741582895320407957103816684930015708220865675261517581119103160921635022798028111998492011580798052561814602694590444412156856940525057571952260054851606203047037341003798111162225474054055133202743818679017248880854340632820865459133128755981490404576960069691574216711509863639968626332126622466536604977614180652805418571158126926355205911997450928400864246450466710389985878981253558365555942998002927274515536226561063156749342400994033115104211723211541643622817518062251872988553732500717830037356275158461372286766981245301683483679090291566996670516885202945872998522868038072056776204626575689921443934810799727121314816944437312458284454107096788604703605554035082154499132571108217235469819534756479016006123227967699156888797853802881344444233733237086939320678715129584275458710489671985012615029906432927675891066006576100215488664304645508640456596273091663002346856990054756867116483588880906475185859198842292549664372906011941122677132607462244398535512140623199703960194254019476591450730544626032941802374363655548990574272131926221031940832753504709131490139061769798156936534407302298545435588252365267135124821124948545957527066291295671548668968584006397962122508007020314946755274132417557817587808289349610193432318069175602479740199463496470532634058194231943373655218146170315871749664250392484012283479129507941008248491613931687294362170070748379428540540520451011575108780623742976507746447947736244976448630062632391610628359110774051052349159688115249441489595144859211329092059311860869729297244680087757098427474113167580286969661413410102179537087846794204699375036924304051496658897408826506705503374203240349116116206167474101752760347211841996553184228156457781454836792386979886723655036564479447555111443861492398903671362555847783595473911381207404031547607713631328736699125632520839596555155651971569802515517146764683742311841295140371660512864021499298867967691806533037048225943634230035167934684971179963248712763361945841856570669517608657927961314742791654811549728258895603804370923370111326261801557076678825611965219163938628365876110377319507721388085095373249219685702417134936318290012795007088573459248466729510325244680761514983364436200325742491142934369059905932662171456695578392246153336106043383445446762928312006936670210999653880904371601889111047903299364358072006399923991190888344133138732879271687037317522135439369583170056508170843649319572250176278214059456289758281485681398850897919201966352893456547875188738059426578007913764761854362635149249779790528007260320045883883234603606128374315095276355551390497393146581494931141155068200157570419956520878085923946549240970256842389620364982101614196973622960612883598369161443138327759829197875309044956134415026024898861089871707928290272094072354575121518797492176148935381728208808929545004537667444432904327884519557253866155001084091568398257802227660644187350720662514910256139643666240537507346473072952648864898047329459334575097616682750459783219852453897642491459809269710149999394852814882372818793149549253346947859505006909834972883303538333215740546883348622451074411993586237463086753476831455145036113897900763481928256930948546796012506743577196904714483148067498799216156628919891032385753125296082216443548616879739143801346064768833984902842278672759071537220043681848377498726078593133113316952529253654045942735105492405227107801442052759893788729778666003744023700280155092088635499138444521320587302809287683776623108693123340382950247467964624058925450450056162525640128739635835853573435635606255258436997878427810964718093179729734009781971597944000388766243513129142447570961935137322851512680885671261912746500065153317201813324117828079739238147339414680837626785943961096454978594295813629284079440066636648121139724584433658319543886842528756320136692459207875626470726080331264950265852295495473297429998468752072398186741159712235845542992054835636968348879235902876856338984228729137435359427283223644086778625040757360963972818715096975289229335383887398236478177070352518606348800273253019078993988334026456284556827975032963245302140825839335405798833159088176491890796992091004081973295125931237402807067425911365431897253037329682877948866263379923781774319090139609834829342024924541838008120405625231788824066306953800762465242776408500676205064783914740265432088780239293116428320023995882401735924097677573685414574737709443414942018222472392318077241740296712506896913935170601953522086152494323077131272860836813809970485555468456883680493769164518129958686399160218747964660654947171142886712039995094192022461709413055780087721538225205548054368471417332308999806913820935434884130702271056238792745881471342271914078830289137126000375658835420710758069644105126359905820994691847475037520902034580396187096220114466043721961538319336749563110289947690179615567711222587997965998482244979974660755310042171392262619249774103198820391480508641776469689080665144753274406418782667472652858440167309333436461202410805694695673614689452232099753122886896026140017123268610143019379101786564220426596544133622609279685551443423075326487852197565507894423286595394562978697955627104720630719276963408042616611777876701114263899315490195702671653921398980126420859202447905663007036644067113467258384366411490928234811204564089216039338533083445211977830042256436045428576973117223604766846913155152901406665289976862917376249110110791862660391135722163111981415230575704075099431939317938892721544232875158803656818936664283082535156609400805675909191605950442815000275932923374860363689606788874790203780004723476703772460182757153762607725991819776971361468231897375382658892413340059472360663279863289879868829595906733050707993348967155518034414445964557132851934528962138123115636593034296845689598809075135301806829582563586841460906294728021364447050869475284360807424114764879745754181843131748639149414301746421005320567482217039228601776484216402678434092803795956626871113963901502964742438309856659865690645619451711887521054142144437024339012731525943696232480260588196025718804676033847744933377737238633396275856068952708688123922582187645368800813219717699019612702203596209242892054773174470800471544780995730703846265620780246883571513089385835392276613309010471546149952807994840643568090527911656534230074481119878257185582180732806763293673512784972514916028108441916604573968169698249886706882867631651072311295769106302926396768997776576688246043882862802466373640084290052318405478295858848010850307789811658701371563717120861987188025553585260002540425015567502115325102263872176860166647671111235793670886567981781168270453840679507477264859119942773762116900014055294439292386145096920992393044624684945629771880287586638028344303469256927605658284506317289820079742330918613198753713329428011798160946082767264114609681414916040507458537862410681913408441881156316515706022001613246439808781196650371501207040950092024618913825386657544833821892910373171501702015779882932501666325361698835958397384810867293800522352256272070851401544212940977335971819621247537166324747073061956258621788568062705390534330268585454161561262275863301176241086089390165064987242431844804675750120882688255790365673239734891594406069171714582664549862680281091149089771175656639782696713821694348137201001965298829760062369122835636047552133048660748391157586962048292258916864010808553512367057293034221731480180444669258839764240772713526829208685786642885772887021319187535706000991151900085782213114998510283797985566212970661436681189442903986377767299305698410928707173974464578381129762632564939214035875191781411702665165856386273809724284152539535788966632519764172302229803805393683993731920624807080820618091947939152305684968560088814621094094820446351613241675693857733026861717826632048200467828122612694489426104542197103775793848010298417997606930615217171407413987172506262928911330671980056687288527123794633846847128704464510582348885441647629800518767100582147005535201261119853511566362357161531953993319475385873614638643540646062613881755666628973089369842543446319239462392044308650693410126022616182447616013741147764341732012925562991532994185664073185214054067915634105876431837145195235469691723174876651919581534792331146002440446914211504893507324763928969173243783685288690217654291463082621183882748819008825244304262979861001940558465793069590847062894314492307803095558034315484702511119201176751799723015198981533720907379740560775485135726174938361007458476481685760319297105699180861849147772647855293923472097655317172296436654134182799673117806655661607402267268593278508925584393285409581454231118114163173019717348380198833107361944990145369041079586072900216497013756143429765406589273062585379658303551519320408601906611943736403075591277702495615616511816529820844039172138705860607207680844724699491780827422339370415381663610921717860728728364809426735431633855981612654987450829545721993157638780176219819146503018491673790977454691516844901027096511328551441580444616396352022320929630944659838385413268312012427528721941248306485043289567273452629254256074449150308434063742090262535661263253798907137144202902760091613477320826760861500632426759257959662096000184682393632043464051318658000963596673540790955473215104510454230087216720127453839239435215749717464648640825110459705824536812001657351034914628725931414452578368843273451547555951474386432328089546353896337672369502229479185625556186432381036212178668483026262124045909769693967739477245006977250262033257915808455761019593339204075481899571465436229407962491463464240624897603865021990796121571241673866547810850355509742724528422714933495984984482996289384469897257226610147462212560168683491558945818417641467126555005160854384021279519474166635501963031928737997364592896907799167149059049214847963977617816408251380726896593761288852257053228751673773498010531454523069805904044742070420582214161955862824135988234522210181298314738359312061443346110196625813124210775230340061817741694058848356302505710520725114211138793290184549632239648367809938523058656652527944283251365919888614942254833658172449701477722051973119839834032895134931875679861730568858127589382169311412934032645972388618485576989789938275063407821751517721429699341625014257928555336452863924996138309960932701787561970832193048184738353594417938184796003549093788494516622409396777913368120432853654317571106104765998802046433405061929116906603691395465458991810418233551612320355281156706471625587999375519275854242394917691122527920387147383394769574160668596558817868280298884070764981126241808698829573858921193553426978957586851963001099384476809406889619252777911075358925529613152471794272580341536610075067700796166657349080096829918182158609940926634460357236873876150866464221527845984470389736218981604114046786585605321745971140692455523193417019362617251566775420755918320661504455061427870174647695166209192545111051925857053531570514111180838161488717289268675341876769293289576033447894262497968913456785646912033569032572205837248560555589615267151311235980016921178262946206313856445772320741911222893059268897953803948203189091951768765707825564292567324430746534134803231585780239838065142417104181443516524062068688465908028605683319483292407500332314651780194963946317947998778943911587853282193603948347403483736367501156422981154600389221209493452154990382351071256386289071813327335025446429720853694487324060270905701346127368410662768030779166348846560337441437489253104529037521318291462172426720992955107120435048345618376516237597526857534385054074393319835535674420417990532781950477219176580983911607133633423716083187815939876916695459433131167629533996710042946981613340021802941675421877620707953424649030428615574783501069628367697152290880817988030142786497429119814503294391294106588852030297218635288158187061729658161627920189411622353587800972808402520897212256765816305978933404547298769245062746565377297499945199758895735226293196470929769623285077752694086868220440322081269804142156140004894875961325668747776121611200503807814663213673768709590669525862693270371078119589457285897798290398446767457941555818819252797186685353463272835820379485722612268206020590196965951697387146561079155158792632575890940238550294816489732565663239448098000697098110262632501104720714744671098361354159665712289229916472088877888512541146048230956609252915981169110453299689833618164236573410827707943932023610287184271260732855698807148344919462848852638928496318752723299617177924480796851974845038659640424538198634355456587400162944644498705266792840499756185069965093475898075260981701538663720469889316194010822355553952858850736995596251535980368926233643207580323155986052790853223057535663119286387141391327659331432214326049839628720018338186321927635352502158613986983793035772047338175019215814355864307224701542601415683004575566675271036406400169505703765305335489180053602991864799479132283831874113967627521825296040135147527906654079917014519031876172478754509498338532635132511552340694307054006998224700371246088861438291912893012107591029802463358005119645006868133387762834883541865928326070263868840598891842579130742118541281270202209626113407419539643499965407629362398692391519462840278219819367463540385554547414636931816930543023140599483651124317702043876521220633333599894116478114970189957886776717384508359600286248988072642051272857888218571204907174167237472981103753414671358932969792068375899066610009472266798577030813975781804909781634850678315777975956342301105909355177016808099330572931020449199458890101900461943452811327190761646193917359619666934927863099033320115197415780003437903974421214911364448431785018826342457504483450038944041305523997060877952545834017713936236150815754700485534344544152159194492780751089370665993354300351720922650085708242498115346119985605106346865655523046587846946993559028906555320133913065559248714430182339893954225284007757062154037615612196806830376312202651492026355557417858976119216859978016142317319535442659714383442425120993491458669710543440758284451784374000448411872290918607902837160373657793014169772658284475404985163140764546607378065521527950426753764317886263708661307689898067990061051708356709016247209654265128030694419373608746029148908532690197112210124185150428609854139569000428109974093539366928284122005676213073555615692465901892085990608959589332384098597849197284145311707914295569747126460345078416830292234045472802071140756998668682074869213892988980204923401974449452559944358965225080299567469517544773749893176061467740409568434400891799818801077598080545212975112453984574085861300329964926255543859958036822971792080157224194465937597150703636217149554223667094877845782472813790368450015795005592822161984503264619586837210169473249405156960673747952226949480806474205598375913922436109435053560731055332697190701875016313680341863625807819699033211963240255331731982587262753817467358618139661616817626123067921463975075574921903270827787024502108469704415978709053676192462864560787409221130143027848178751991943493696953482039311154108819892627438625320716158658350197794503842212021694904090491337925288204286485759896853944306141454048216209237269682144964563649081507829191827074313597587194619730165458928736783481242162664192710027257771068699618249098838910659209112777999919251916487266293436816162783599835678177731482334239279204530665544421627665712137497493629816332113961217956741037558292837262743827725697994712948532444409731441883938002515805291226200608055163898153246270471128917813530225156360272242124575378093183431701696644974566328199226125098467494671520271430428399163365178144571254563649208042214187479653891580915127913129618939724208234456201977852009205436247360080248054689547291663958493075417729110189998232827492697254740438263611743675513466547258278238016624932982574028511701512001308696974710959608978882511730806085663608092252261745280017726462159655365896354631524013049651714628817136208094621175776381157317192066659751755735024528570320865737134976515886223530409917037763620597944770683606677685100793503878658220778603602219504570085252656374534009551761871522761927425752984652698449947081955418623183794196976608596170738474433376290079173414695860631967796136520715244206642882384232431892218144226754835733782451979148668256784170538880464892303773548046467239221175259390844119531696954353590864986618561978120373171644655615640305480187156985539429762227098675078023852192371557233973504962707245760762245823620327624700980892445166905005057839104118613241398677984905299740176590270424140434700200217886168811279254400937777379474789289720562284745579155928933589097164764311300395588540667780098888300372397385928104201261345433360634133377787506010690576315878846232693016776570569691128863270897839891834886606955963292645753458594057803027881547404973117535139081855630906401013678566589208085780393821304589054963121515058383905424797853679949183688599446927251842426064599415680944072414351728666393530934416974603076734164608606650519424104941536524366740704183407105193806003356421659752434629826856737754835939153693344051299308512693412731678263090385130187765739758460352806959149417683001255324750786321422052948324542573167356651646156358765080983359259591029096795085240998747318776126814494497244386773820533659352040067861481819480071509632031564572741312707733074946891005791420601445423057387992548433261105956702682243065938843808730217521547983645435844772534961206704764992510680786979121529416739362568599460611491841613107983042851431249038462874910541353546964119003821047962464850832924932762840567609282072953199900966649070756127689082703419477492211821250032129716604752016653100829938430935094007600894668253286039248462339381256302826614933044280865465194784362690728962984656141673843638053266869703934572684733316999223972204570151065714610995563485038173802923198552439663023365567626060290620339922737215005882443805336771024763744264758707287407541279759626609552913231365019659824418364072117343248196628490009836888560144624534769478800097657184117106120649939971428580313022616128239688910450466448996836666685897083140540997911376079139943827979675473916416944724156004365335803922462037604577766968742466634802857169120870876678217093102690905055365802771846582560550413713621782169849842619161013720540044654565789649852307668114715998421594903020953149624491218727084725130491131382988431328339298000788906241220379693664186777060970260927810258768414355111728560087315792000807616661740971841891764286197175568016644883304541468169451189683911636382910954699725588291702156231121393610578609039005119570797008885745163163983642496854308109310866039301981193625252384820357257508001940570796905542943897438605552023374424961797373929641306844742314450083160862384488638233112891981237072625156754774143712546728738673631501289573782011642440859558072635218373495939548462357868290405768205271522656895141229360566566766652418648873988943992629984618379326725084422708578482342620164155240351430941901606236863444093418738394160371746769167878485882823465142941244493843193592755065459781637943060504377557335607013915863048697989356419660220872930066972955050105886604184814666260331924771568382680031876041731582708640023819652552622766681347911817321349261861042398384640589999162329156378207303181984077012432135864560726490063646768908651571130610054781616305090544095783654212873745252544658186449218663294912396506371768928331082519860774375437043438364524473843577201308901103321448419265494460026255057557601176290586596514000157518415037080578507685527202001146230197230136756243164909800879964269368615311660495683697206316256088308863772580366660483303902451692247738672364114267337658982482643097365892780539965344571416985793518900936995494714154943560504408526442072524704803778520747510590478506714706310334417674188934189569794473148100997821807768504854054904213786002655425238082469886056785211252814099998007914574033893768209906809385554115732770684281628907178704120365633210484552650177794866322421995350647146421504020223559707128046003842731042195133697530096789249185642627724227133690459143780613272441296203365954981246081466054155609678585780689280305984057763912557509801584366342333344483590191328735966883468031481202398660627901809891532961712990966036687548755875381208665010728429224529419839614104383011465055333982665941144158694485573156190030582161773612824756364126414148516886052081406089615139952716981766518331653340902781070980230051659263187662721032092006866636010293909657470940892235335873517229616852176960288300444951986835270673486319118267586120044939609002610997010910888911120923411912344025384005713718267334381274585150479699178621664610115811681256955982389771941946452172180441926421715271442408246442599096946179620714261250011727665726434938771552336295829401476391908821313132953233198951128205564367405470642176030712835481878977411236652780380631797324074745190853523863521048096910825347625852837156078607875706190004370924320875537560548962425040743852647528049064782923036807924207300196047607359596204068793023043888389690309031765397657473733892655046956261634167989017490044095705592244389250451129209619861845589005449972663479310184226804749203558324377680842578019486767092638559624695801951466778291357922971897368012410239704429090324386189461011446934525190034906694231920162048099768511625657887924375945628420277996186658048427145250718830475061282681177881145503674705158551162209251289985242215199539629619915676022677536851316913521489163223839903775388409655522960639728214635865050765047950325659216205525660988510953760439489493218974311446753892138704098813155292650474266247413040984042456879526683019730272106453347341789216266647977872625034734262296544793855884650653807999263844650239416540270158608269722983879210877527285591262798142708908849340609029003679164702039797129368067346886784879447801237898057375870721350294578109263712369219577400047323887217561168766681079464588030706512569734280526963237952263613258016384232710434093143378007529701557503776871757481590612754000589452224824208539481586066235340326105996575277379679330997017646624333388717128333474855638387157574006161934810426113341546874069404212290825317766016129998072019089841484551795819548209060203459936613689689278323030811487078387783470606953214398237302652826563851315882916237224309216249159878330013981125048084265720182445318539940311501389070147702165193548448657815113146930746199143262717251549577168769043528012803127599341821474592849521277254533685226907484867369907214902143162451531903736566477394217613507681509555861584231455020804167021360230260750260434400885661913078681741699391894004902727833876933133187888048850034217931489992842792251351519033151164217167992807401208943976505415533800520278042772271761502148880741594519343321412500879048347865569454508732532264002174197760683689529504549167963204410596236582514494130626817116153866745072475285004876657096222561303097914885553289891597508888276295063489646617392344340441437153605347330340799459193019363590752887999368487807577140994210521147678640696431061884318141999387783519405373264434543757591029760069599159870763848980610779820097520976408680337934144025216022756939724474132581437708925506536722816274776460645165438849501802766132906277433744338018069316714109729087705603933332136638638818265955582142168945142511401461666214273460984329802767451906829863183705712600457224546048275525185739468620765702535197354585554036701041077014755911095125222315795227452116062551815621702691240067030807138491288382773265896195872892009228470217020433059063654365296061837764055193005401414543871749081026447071091585043070235638937371521997625228265477008420094707180214119983987972813284232831605741944696976283393143337534036051439897212936015444270819886386761937264017204062913396971211255639039118173381672188830697738109098588178179829102723145341388254352960555333872570122790178367766138038612036682434135834429023878811590266154058027099516205067037462068820718846195862037433188118760737022374692042438752295642970063354370634449507079989826707481186564805318614622892316710238278148689930943747320931973867293142233473418799261005332431040426937260831842234673988291223069661728836932380047041201228980150498391125282418578119370514528669087054024131621100700109585686185860360766130984615535859954500256630921108019400326627195498540645406821917209749129365336905872050235233275898801014549654677184095236906190581671706312434206985747120530418633949980221094802878068344629843891474406124531699538371105707013067345161907545619718569793078238327623254993817864880482763314769658872631995174395355133174595600138052438294905158584913866516404970236592548647410836434284011265362091347985285825699323841041871901495747595037728700242980712675011021476188812224988692877175671550731375579631628704053952616696535169184652281141352766315248130332355157254977677822147348514256590318891717311934874604426257574933168015791810342101152968386042052522817105041298524753462738506670576626046583399316199982400473015706531767039614741588829550549789871140127420715638554223817227883872463193473892435508450192840427372882506941918507425693095206805487182602831266438205345842692196425990348808802290106302092537436417720448971486183180270676824785360821451008389945539487550140809203706824541992120197645834822436270623404366085267027644224817181581847153842581310469227066757686768894828274654962268813386934274732351932268922489580735949744774291835255610875654618191185962183613178752031912466017798340272695968555709394755766539971889410448160172747455463249091240601791992914465670385867677192838761622276859430534188994085283745597299013013274554809892175662406379723338048798295098680146299437087331703710741131597276326595753342771967587106360434596061611099232927590056645791761527127549945910359141154585983689555954262724676427588443996165308248485039740757578390140803078115044115970652355576135196428594941602512877786742032647342616875036923107642017975471810282803989140185584830303698650248144621509997141171555117786333927529918818156769892583305833505338723319360382566838628249208299695163288181555737822361640384115778368579622347738386519055451188826353454742641603809113523124800573103677363564417319421171548138261502161796174091877760448496460885557392149685425172584838758352075560408481581872790865735564632511277961906220925645186039684347280866111044671654531450443085760542687712529112007393481283639756778194169562548342927946066722039788669372449040627824959146941736329840035276918026520040012508756930724413636843990180164617981660911533712230148125061398018364032436184960867615020517025604171850598941050709822396640704597126828249135980852198529202160623749919058757446470238958228583965844062531817636218374167625017390378645510989911971158030581544407385305353683023347814314341899425718780384990962088839030740962807409126310242750229772587864463146943129720885026738765237622576049700383110160738665226323488967884236457207353098706007014852554859199992433880803291698421869423273143421468658537132499949962787743884748484249202981083790525112736145672464019634666815992655831447412312846684474204804276471731652050726554740136951366729648908363297377913889603753397872192652011635233051499039683127750377775077366721006440174597416271119357055727781619944952575060458261729375719947321062876884075571896574039848461292243768396596811623901649599480148134654003279980480824569848938269321304684079470314771103172966153461246911544461863389119502895156740971795866110626159189084402512565966033358489045066997939234371072526579813787604182468879036181842353868980755549687643973794800805924294560579384704849869657131360443609318113257616506042256801502878933365668305963566566677194932009530830803749348934044076283695992049247072554889174113864703884638008781594885127742832275660263413293947822008744548731818846486046305400020259164071990691477039163577529436424366861080661297042264891363221927540039681078374988083594015217646862454660518881936911721807201613756211380796951365904549144671736505724507882530211386637946372759077772399891341881302486549016178730244682871727400722284462986421553211784936570877232731984647370112705092569605249878649262181729737768269734001989846405269367830882721396781985290543324943255053916025475056547929666525081880776170099771842826460030286391461321819322646820950935449299802070386789461073260044468089043009758867787088910865351065310855927511391367419728372225163729878766659676636868485574625662796218518949328244723426854540578610889517001618738649749216636999725690473386092842597324930754605145799910926740153516264755588899582941772439725161725801483740788939943239154644535621546014583045426085333580178522051341637646251618227231633030749199194989321400167719256935996629140420794243525792848682871053630149163962760099631814024894873684199256168331826399156340767125891556575411416582061794438351728592699343175726462323778902699911452121712636398266348670600706368034161641834257789981060299173176182462870685118004939819382269625886043612513965395680563344858079670689420845261681554612365990122065622930961834517710318448397948664170041221315797545654654978744829263714100464549800030929867844590855795797680873482002300880287546439563991299960902548236551542058604585219539982457203451925966773622975332856085170792757022886289852178599141002828142994106248356733715018222543688979302710415289869666152673638562241638682865682250588642195489824755307709728639148417281557105368238560416598739734286971983093638958113155754164517667066198729965557209554275287257023613758159811298354348774803728222809333063404540050410669169932787997233267838297234178385598252069415591375241707225672820895928999561395843905089982277320913574838424618070928438851287173965128362550064304393648282540481781321510539556147000093223941439003002622409458306833538471319458071498111900894060006965058244780059750561599116998652764739823926085079495256153561964503885245871221776662331637829602532090612153627446790321393924725926647331463487716984286239617663381213223371378286469774377937185046535489726536396381885163716308404356479156893139726877668072218120776060750221530663145234003189371920539705950322586991769705436079467539484188640656386917738391821676067047416992514226105136938389428059341518997154218587787506147958301648920551166509351210027845777175581251770555602767352706370492440127790592843424766283383559957177553758018314533303219963044837465916415674042470128596728858756718637607173038437322789918608645784837119009128982757892535270902427492379914164234334332975375993689720891464774970300082200187176829293061403464518474576693542345661119903016638984599183258030424885339867923853789406745991701294008823465384847042610014441230290392779841757972187428211568534057499920053695343638758313551903836464897986889217049333146470900885282784565357028956970880809186582975891817218643176426868484954603059225045914846728962798682686737660601080857249775381597673651422124434373633331748533383757341169575975761211180971123522616939088724396455420574418652565097358106711940499231936737295774359771808743104149203254487289415310611027694012781383553936709577704972269325195329754945996655887134788516762549301660490946103208127015201378969553315486431641747844869890168258152004205122609676950462521856851647913518791443660759914175407530727969821206289104580553981112363527756298363878455111392493418966272770810147301974941954486130352154830147104651018593148868074813498285565658911504969752486367978695959486188617006980737561921370409088855370321579406795261498347015867857718020482582757710773319272832661434201380278375424265268851829009819089768186787517166462104876621858248435892615791471852505398089626644049927596327019681037397077729367372379955075018252120237588617694820035284985901209195408552131364989511635695744625429040320607406769024037313392573214339816699802839633778500688443953723799299717404705274261459448992409826747819203440919696695070169898365450483367706548124853957512938664425645415478310208016634471995352807163768938853056363547928368433435786504716426331191332044401817623577464564884643591543355674164758229033679062724729075912504178786407091694717459289738237407083428530825418640132420367496316049131614902228590100320735519838167195791126228352864511741943673323619010770438056442424075160641093955192881849129449329538351657650715084418162440594565297009411335660544756258868472434131786478088304015248222475629711220640066247306728352243597444009781923928295623595779178355452683154138627822295566852414754055335094934051815706115159471479048090950026205912017503784384996741326596792697354887221693642957487511245061928303970499183839232340325561606433378277500312392064764636196663986039073335641527668427643652071433122945491220902569937609289316854060690116911221122898568443809560366006228935139848655690960639332951156842799891776801436868031339356458643089643748243355458651025367899574435988688873867737805892814587345895728280137083423610750233104341203158720573148947185069630684674111680103264844094287910865483683740899836825063727802274875941101304960994291861899778537351115880113054444573893370875225723246158544481750073916163305559318815740836617503854724322391763803144146037894348148833749304775189808357541330059095340410320372825093383928529650750759051569437355165117308675706656945626762264466457447914721488298923865732158538165243444525275247206828240841350685142320543018285956600104384829429941993922569381348151313023041854073110874125582900551163122986320485801844351418421560234749394315174210474458107837726833713156683510323073024671041222050363693763634234123181285370702952551803538875819725313902967247633848100809551382640158414696660339337404719441223060297444156433440390741910532983267221640822201957679485476640279236490308295694448091936215971473279779206723809572203158540917515543816843387142134885715180897660500506284032626286488276216468410517270985932914356070417089876334060053025451508974225344306344673081326208089766366770013641089507351821573711055056232994790572539334670537033615845425849721486848673431857695263232049204825479305241727955840311165231300389819895206615415229703602505378118558548701289142283206560792340977557466183601598400841566702313899942975610963935886886105677112730367722552904444503472925792071266522682722016942126647711083107833062210344707453305252300490732499436601051520070918518671081178139534742985250662980627690977146585151944770060879214112375884691577489349069275997941362862741461081709912665631933017389909500356284120369316475655913478309204417429844323841057469171767454754152722633286426075562145490095448588188270797373147962587577569941775748714021212298240828720874002954879582771474012953195612397100062085911408112511834333503426857200533022477537723079050772790586042142164535780302656603126425891716075163531685935465620583275745075653640112184195047232182822911879015989323869548641642655985105683607754643482632996641310816317846269167588017371974210955178719522017218027966730027930182075328464240274013241265475775417068032599950267900504355967636441238548312101981635654753777801117854836720357117433818574880724004919766446492869536436946559445248901737529140138080858133807305970642918014963809259879723092655264236882750270014113837174153042126644304100143875654821659538282480133685475965860375437797345143030550405087295643782673264949765790918049844362852844278743926833814433893475371433422710916764411653975743695455450940220084580518942317802247012632272159537615155624961632188803869978477356899157363294609079221550490142452585622044637189950503523916060010581227876557355427966385222707934853572514069700895162928678506391949992026636146836866250393212971734446350919228450892402537984979386979320279262863822325452375480918966009382998982030819190826107958337676387968316825562258611573014827706764138417343301972429219756825433259510183649388499337867078743105779450553119534173188439868016174181893286654716620929427865066552580338048510343797281531570498730869861033995179453702898927768584616398421815297789085393259979346484208465477564895244110617406206116598640020369106023748824751085684040818606861825652247084110173993959560790504468633093826242301320214379067670058730960443227989757830171797609885622415115209814470083644622339947019277147266966922200464582222202820067592388987685371618863468743774906234364653446977554514909413294057525151036825057003226925757315839661005640438038716622699914225244287468005045253382325227320048894884228994086074465177299889108677806589213236389412885488374660392638678367412127777451114574348477648624025069373085573460878102551216973374758906133729173932250492163472624560915500790680278390439062567143388517683314343327641150691663962961517532479528717285160983587276461579767517479494930304687355333806002192986477003277918440355565944849939400098812879960694435518217525826909275762689352971345580638966235597414995590288636103346920432514837575024127895684352431001989092158482290555643275838244689352264673021890725804380239777703251361561922825596808890028354161973257913985495749006217286464711763258431288912986296946151851000232994706505639074513247294088578472464493002117129990018250892201154005144396652831350558669682220113536793799254774163622263100290407301006949425497196301155216473033620859856249597384506668570783617100079871732154153843169490695853498091697767696864298099833254823957707719457847960857430338280501287054877334348101290496394485904540686956328504102752667492582561453981521522946452627813120076075202906632395536922822774893327535934691327953632909202889907156286701277094076919977773896081793242832089735846799002985403251417599740870529195788738609323499020481026081749320840205398251335058612658516791511762988564263171721452186074311134297763893441796542952091405116112180484755666533233067935333117618567990899623338258778912470656432268960751872437153316093781136458829954722745333077479469914294518999389086474474376859175658092894388263829120577831599543516341249901959719452194261524969847099222208602442598244802062028682506417930286735945367291690734594803380216887003933951042601511874359962151060607134154248474267340718976673495923130207439003684564384276073271733158820195693760630476673854259378925499339530435114058100055967055842315476780934999988299454301019689176788530525178903556757606843987496379413202960829967005922910736399671916719252590391205708847218422501703496853068821035320992197484641622855083241859341894912787773394109281950414552318623748003135479152849962646046327000894030211556314131541164380171988102451197933767400468275233527562230847347989781816880531757340674320077529342899700389019020340910348889758398621511515137759687546820257643108498532461269558563129800882843540221706375042975060893916312276836865427235208292453883774400250430483131176483004465633529398221865176254981867369263204758485983755683600070626398304955852732104908003840730918761215855948878631195073497889109724723565941584070530165063045125160783642681860072289264012749109152256054626561380905704225054295501580005570255554522776584583672930401370950243317120206984878748707653283206618034914836482194459247238358928935667075638812033697387556239898889509905237484949578490463333249944445584334001840054870609920330938065564986716579863976466542593323399008976843315761679919976201495216841665334616974269209258224492065061017575116950022170096307534603750693458645266296392699232854783407050433728678602678446006383478075089328539048813675831986795198344870852062949357927027783872808852742225424791319125046283072152414311952121072284269143313395741237658817629703430474761306215658019060174614542046757350006564463763704400678552381057620211912359288074447527909235989340038277768321468433777710643255334867221501749073786259724054610623166675447588998472927187604972491239738263933689382210290287349250758023072129520152896738929010808086373114528318998693545134718177005380589565580747459058967071753218301010879955687209335864069990724211229954428580365950022773519299536080795850585971170987393863457342533781647415354643521887957163327637258452794567274176865491847912155326771846623295402904904567591871621421948501730635317770249269980560204030621071138937160722372693746408261114095214518493985065720386375275483484753082981851788259084497093904297331235853414817183095554265286271201941704232275690642050432545816900639269970046387210589926850749157663303898478758659756350161369379825586230810130064212526507529187305074893067855229049707297726899044917352448142085565251612997633258450600483343464872106590224130823037526093971423907210123593040061445658055139133589872952368513760976924397614664196062204512687530721125051438270122260837551661480811082060658859579375462195412285801095099328346204461033402969692604135772891165826419517613331070722059189952987459524347190401536568662227689150534421752325237143759189983696515706623175147159281477884464958807429215474006987077835710116728967612201679185714407922798893628409804160851787024362223843339316787440390087776474381159724977912066599244516579124062184935370677117728317971186872935823560701096634358172442654402861376303688417981338171068931672778815298120642390669319356569468319253191943648497422714107611426234389556897850333707370882438264506160606488651883355150815911799429491713559125119843735001836154249286171214418051350845885366310862486625425757241490379397026899840000716336230005330431205585666827325291837016803828539492290938191086624101497897655316507908685282003298388672883512102975484719229692346443560255530597899540976220745526328103266706586300123757648189708915702919007361084931164104206709939324849162760479175255206751739327690732758305260440734563265451018055037631673185247370259341262297807990465718408774525982919753752358177086160521335345285254257815863625409523716894024639473778541206447590123928665418721898180546409772378267144965878201427421995974348309212791698818059158634508065769621975201582084755966513816830487443038548717876418535694609792432162762664257112491911550376004962485797091132066979127227324147151201267633453528787044514012610313266367328515503431770247924230046324238488244199990498874024952734304325472669880184417018251732349301861948645359423559727266728664471013681806866136200216521166574788780860166627524823385992199006838546095200718876621498810262179017085594355054974983194116025577542828999494239486027652988309098171791002461530886641545715682623889906787941753535050196810611969476877800649368168628538946023877990589177472542849719225490953176292389764316745751126931437253907040157658555965266401361173472589046196135244177168857315550144471045284216715868919080880070524915182870882452347876307274515501882908235953548199925856831320032387383361981970701718960653958510845705286153471747757650061573991509853068480823883372861678106808776840397455269858067646390090774616719016838699580771095868687869877582339923184346385476006680935699191200577350871797280504210113459553444882576819548496839224894095846853846526533259945290237952947152712978778944578868647565359750571576984559107909204282372575326802545041396490101340182354552449674352716638584026227215270801828357847791504235300762735263711004296883941276770813734842951815020157890657470986106018579408635225174714631849415860184301319420652884533711774826266254748451309598728566311309165602420138356829043393769529340397625970489224425778872270741970745354339853550599181831701271441508641198214308157077386864950994856604380916744981104630379479014178795446268269167100217629573052222426919388895160388341709411429049386361078034502999698279329261804822218982896108208060096387983366105956865118820176174709662777700309171232216385091190436029869383637376509291057703705531669490175653140805576752914392634625221037465302288531956030687565944262300384253468536612907879141197206694790869119327282572544525195930346706089098198303682507339824739934955139726101397129035276265299354000394796040767735178018331751381917953189898248924210395196882989807954903428282446290931772378117868252376177029964444393097034019869790409258228074779454106348026538733896425857323735409608912035226169220581134424507981916777008099453711796846055855752119812436906857953652568499770885744531547365360747734378982449414138269846790591023219913315828247912659707368301947481735967345522270974761135216569524993651610657995333626150919991868532248226303918318166181096793119979061163765514165588005901273002931740320061760501137481776711486442824351291389997484560563421822404826138079665120426633165299855776003452515430545171136943480330360450514872058655185037462393437792257820873140675094579391050638089349116739380023360750056380849240565987406679731556755812375223587164793496221895290386367060528355801086765057821640720600059990971043861586764148425740751936193017867537093764594111123348379525750902215254236653718390438909507654345807530206466095245648349908643069008228008575524196770866615371346754034188848849261208784155789848139793472566103739624389100750802624765161174158322908864913852446513911404615847751431752161766852460233040282632656018107058325528942374124461099157304529449523792538460186018459339176559281966939881384751909914157408623871774201698425518924398773054105498960121533416327170102241347412953267001637315915499543517081923523956880054818887140192638385554244577001035697094663967128575235300700666380750949267822851725762745937540073417534909267989140282258024917220633675893084458533037405715654538032374142338387438951014990806973603762485613095296063202169241379258745264339506466424731003831729552161208453870488803132904438998185323115584481506573609625057881478434203372139965258194912371282357209868229553482951166193520693816268022121645145658403111832026048336583201150330630660579203003269948160427040960030825109522051845014177349424260641118857963270196097729857771504480372073163534336970639429915342452720313297290819692474027628417462773749728222563758120731630343095971932106317362767841860308409451614089404384800488804395320425785666301993617456962380825816909718908026444134847175262555032477003080303779133787089089978988258908505202061760446620144055876694716290759096507562376124651709941064293189885429226454221173493944910934366534367041049875411125260457659076339377457472171450673318143753450024769971858941925379642259620950774282724068941034513304292233888611859231521401009217845985309034267626645631113382152545329953176694596570758934111689669081643892151874225703783368035046022847210509711622867089279527836703785150581591051082012441889772175296387404419994489296214100935567057753792721429806449099888231205995887736054957170270979539640036256567097965152268680486423003033427643863929709342261491496639742769935416464199710232988205076289929636446196670027944856442227722633214316126742280186353568763612438277923737279844558983356504296206598104620630873655610665837823459985438098386259436097341163764590202146674774999919386639123251255920808023019962501815376088427598403292263352544251560258946651731144591545771273736554435092562373449348005062218747347073052409619170231596046312719531390759395635911077868188217067554309359130073818647524442078511512819038728264731250352267977571816696514858157950371765609674905402204545190069618541898403486725480321114831038623078911709231485853397118298665944290862132808753059420741817031483209018662500353983010654127659310591541588295594189828499539765220246291387869080353488728700016662638752707699931629314389418731287476834161221827087042345577943247610787043624439196004920094423359222240716188171666969112028746811215490796441117196107716182961109293027672886308777102981758184207491595450096836013845288950182413396145788975863227676680153798435170029324060736049488060257922425080770870988905973563886857868426400777106247581436695859687554726589861184399623686786945098617987106979481615309692449148775454991616308346988169101212897287113379718029560359807874967320526514619820132494752406573961135609338943666160054656951483821705197255295110154698817797475091390215674117179142643587720600936102673530646668237914643496478009854204869045007742556904781545876230045185568130786161587903151678364544056273756830991579186306945915227366905258974014044203518973876559805656659517203906284375745021617350942231170388781958229317613036030158831234560123147044183225391312040501297726278780154581748217359798966319093065444996068702409063919627099902186628697847613475548468469976515341722021750526531933563824481280923678177230158650133626758110474470732169898124651696853065366674312942872600048798578926971730589528349910798048697532788871702347376366919876712813855507414855861714332365071659834583087130399851543282357846393961382702182600436031091845138917518625059031494059339740038721998666187807442619016502687123779329416109584938185924341941983868222363227119155019862063708670359056006341083931964854758627319391347225743006319848464946671848737561190906550845131774671720111288095774674387016103026030730946604016746688243985851996075771659421495638395861444431100141240649425443784991110777813569260001924586213533381062426500306433826679520045219637809996694146639236172526684719791297624710854157392605256937213108858703459059785817888636987622069199810273677767302960920187910223950860552991886900403694790252787442375572234892449287358554073955725377915607280508339828663157462554202127694030293841040961601503661438984810090749379599807416640555163302763021659050658138391403302308363041088361813320703795648381175909749134585142798915584969525294780046835604323493341152358922125541212162522337972319062298155095315838674969777510423816716424166848817354664287012380692598033569905010421714211284135684320448084548521354707884310048502067176356397071736338430969305969570494915967268589804905811889397878172071962903375899153662948074592654098839577571687882148795592677235415547685200700012849577325904470116103935927442853497036247521733590928425892181464671415290655896491562915086334658095306953904718392513965161647313354903538678482171559954858078122005293702254255824439572506092961787566251580770052686273986050263801969050204360009698835546103422266296944218496731041656474518180520325578384983698542964361411489232413980580952482231342268118989826388038516045387117555437453455733028027800788232391838414582661140523139523382189760462610064216575396924318612493450046395968276886521628714709039367197296320062218803957870633182632976803627766903639412690076527573870795167015361768643233838740849581986762365685756879432577555604015136959562284989292401803224464710386910918875811234275627612159231275417829157476772926596760106741222708833643514298342392863161986103431895486905437372573016241900804720567622729797318696147961704298958368006834819892091828659728520528517207212392895065359522019661789227746031459901132977556629393000697780500729716976544372874447017128984392325315988695783683181026256862923049681080626875170009201690424929509700714278263710682359428926627648471490737259078413367925095288751469562810125880774761778534252691232889877797585639456118629225299816311343537966375329474450945866526706162439152681055770847814027542199420783363496533150339337578709958586404407843017267692036504470235551076349785618776433712136815418385603910354865376791944500204882842722584683335907179469253458498721910893862179317746607025561142327505455582310537384399988817264884280545987372950408436752074758581244811930979446159912364127412947243704308273515772797552193611216432927569838026077172773149886733431382856882162141242085142344163111008585316909160678107956778918001934645834149986521435288606519749812274250580329521628333782794185145117614744166608991376242881117047462442896599509511815040421811958569011087794551539672183762402205393777029787054657519300441047400074366854513537817743389982219881455752602087245132487335804478549874490312616995584860586298525136164107838844979054459638487481857000188687750333958839440763117794840401467235735733639816629989571978543048164391860485675858434399375329264228999185409950826317632033929996914595107101852282554108353086684076844698916570539457652854887869778603183637332749680695367118652875795353930483128115910600222719936052911803588816058456876985864298415020530211217258727135923679157034381693013273756148213090081056589339895289254664835285661460359746588617301892201408406802573105343524042928189199137863432994904630139842902268830445969348511902611213994551363617760872955482557674644257483080208594439472153408017764228674646321825192786561159058882831553533327978215003835126443014467178062863670528168118460193162856038155135000930512048669288545288837643361616178941887849632995657406966107807656217652483779600382029747285004950119691534474209213938954432911172980833723397926465435695834679553782042072026571891148011744626884682470995663349415005867242753547997300972057719759781364149403229566485726367574437448719344793817480426514035481469531528419658210918673220566873886032040701998158163760560661901116354113366187713920064328536312890354448542887807516231515865109548874172558501294418197317025298080101012759844800536730027114456588661154626983223434556860528520414501574789713112269873357071117637186595505723821969632628283350624394912202202336910622276506294302436954717297511299595691269007411362084440213511997832512965335624701383266081014053456913770910152292089243678923981890890897373291662318491228626942566288550585632913775155727273748734547427479319498008889989683569907458590506648310588016530062772426861687963165116079440430474788413822880238064595755069110603888955606704447060751206343519149469991194353587582852639886595712473782820412869366340635859471536653690543413649153239296296461158798491025400190269901269333697126797779343010431045509114076212335990564613930538603191669246993393112074807962749873941792847857460131472947669017008273182793354721136767204722532375274283169532803415798796345996432038032325552684286133620008576691313803546103530120187631355903241523289602167538291062483838158540173184711812221459426775581000589948186500292071018346952839332284285165152714541027132696175971618387018336564026834857483130904534947966692485010757969215336899830420964009280713336529149092193707029884602928797901599594198398709671724817458515505701672142461225819937727942919142161678781792295805344410136822647453953490543338296004801657679813656005222401205992912222763438674565855912193728838755572550290539585609472453877256927981892825402494506852267193509061981454158952196207170154644232464648748572315001521625149002525807185442891129480900322998789121258480579442076654962526380836094300024802804982575244280836677340053213723305508755325614660489301525420439699408791346157622915709490573704309228328662330716493227089416597027037959181245049342588561832967766114480923181405885690080953856073156015558771712343703601260791696534889534682490392194951843985387475487817947168957062584598563945920938913050380603186919439413966225108616877164376677383321772756781321559004092840903653205854537761268120274501297895520694590307853456056033613687728131522354507876199070539167650838618754821148376787139274311196544988622083513444557077567819941117709314940250057534439260186449370684079131004730162404639445726965531629554883138846426102011625796193586660503491272381896163130904733509337361698760797380530825944370747192344835993416569927176151494929523095266819525661304764944362073591409635515565889458359662568392058372553720507902803692910238842473846992699059343833482652401069192694267595760789445924864400065819345010082789766356817020498781790194062558351988390959180717209192015619469696212711125352797832284802342191657311797063106917796342965726820237081747807231633264737144742705899934196202168346080832614270934622674515300294663288943506956475176226351011093293004642302433881559037445250112239342755930152976661739185227421432009611689346847483143217031036161447109718348784624573308566912304814981964906629899360249781021194936333195829392576567627636267203605451195133251704817264719933502935943120759903730286335966508667344628274217836874084073460683190902734099167491421522681617606558606752227323926013129577390858221912024409601381570731978538510066661070775442453742543092743841317677863469166674366866954653477763748282685789476773247195495353226130475505124385427216108539430164746215889527340449451832408686268414360157034772986733572268263728200575155693786964308223655259282154608789989330068565455409178232478395636201586879812911288850536239785331959064436217020745239680895575989101082090149685678545775986779058947465883382499800923521050802894038200876074096191434433843076142828573445554160845262613038306494512337745639516463160754824365292283224417252614594159418697607957570597155663997847848037206434184070752623977977360012941991947822108206371624233265022190450580074891111046346153248257282485295100811206717237856750184136823016064696247079384533593140128849593528927147073282266153378234199587347589864210354652988162269392369771293743791600822754123666789913366375237506584407021855901409681365194076238242320356378341395569412074941198713507716258182226237798169850057230787695746906251566199067867320401762815523868258365336842233161900977398676986237794004906512846577968290907542269091943422537106685337270613545015834323284617494381165045585098747150149009009930143131403889482207656305562565616434551056754823640444726052558189229715480901454887816072653364366636441392097947488761222958957071480217580719880223082108114627816891703834656423370630278483781175387293574927749524672306205596738749350923677400424519909823218004943849762931504998573563301420064808807549773737291900905484877022639563300488209963792365178414121252402650255745826478818609005952270148781620206893239012652419221764019380577391918027586732847395145745086085201121355068457766510511790061428192035158517596628109353907518957841675678045000935867348405825618122215093383165826500006733923335436826527634689954220041519445124490675696311298878400071545554871879492749682711086657533088510047485351947827879750296268782688068895896791456788787916071582774915156656891408484478340112612803628651723511843454022071326818788195987058140051761507273720840312998862089246405568526266506480321915183447926763185415468890670982381349188982934625240729642467790403437503519994349786131465163732743093433925567824458077451725660900634357964332349855966746522111049134637682008403510756996881572312062014390137028030192220591109885170700970223875030840231363074481346918506737274994250054219504994232766144951295326934011375164773500808546611976927941892701058280086872950118382172828843804637680969730245797944363745730336737983121348884026132101351349933616543443850727484584127487390722631666234562270224560699341149202526684410336376253186714418666471059742480840657951331458207183021323874934852868184816161041729415998732748839584187954961562954889664920034573914154422546728174848997338637750619570624446018449546851581384662160099049180945335652255371282138730740887180110380398812536645296361448340830578839033548856033569340393031557467901754667848290578280174733751220157904767916881242717473635469207498353510717717552645044348562573419498180463139993993827494048166930607264014886871612727620626614495229644991807012401014084927801412448485210743290493640471304829086816219659308061632295869176234935076628649790955064185716945022875993192071793646446509434457464778888036844887930558702158648277275822994873146715326491818365558643144781894617831025667837317614772369967189395764297255308412323357296320731895282195380420016221799110364726054697028856967759310508127782463851284502127993880460916306376879599796925035446901581672501168935827452095105860030376297599100838384913965807749295945326352579592294689259833620741482243768603781214584211355358693630673057433772384610157939076734298037507387461290377152603123293861836675068969793969254060025392566727615366044836538861807589704416070169470146225051483491700871239954530565010673683763319871984059846683130892001020232159090808492670897972898760845417021182881881246301233481188875610700996404045503038996764001893561553506993495800941299514016113704959723407832053740852304239465651131010159478657860871360857730791329450076575289933764617131575531743771668364202450956290915443753830743282965870408104495261466254701366546955228736880480992307537175880303087926144090125686674257801714388357252682617082207379477812070619538126618006897651219184255472514397675590598890343383526967518110335090831666911214240234358740586678261957944223959213301675957738480187303610811761014931930709062128903416050598243789040047621628794348246527381052112984173709267796111486420416035673426980653879383269394209302284163663319296793845642593982239841983023089863005093870958028699117298732045696658102641089545430128604021687866769280452683772445061374555616327444730606418481144933529124300909944468736973032822326217424163948757534729588440958783570068313607599753771644653170681333325481892935378775630690501251595798754465277953056653502857968684004849180869060571158307179083382904628821927239400817040375320206821684742807677445277424829270145521863930278784619669693066632210307407550205267396849902389292445114080627100217760494499703513110629203186781990841660216105862662516980816261325309207360918918261159217760213744400806836180424677608774742535393850959417368241865334363577110753144111281857324651065178645466825172253995920358006737258753069092621545321550946771442893554542446600617093750602531592050719534488596055733517695990377472887779053762803078125155657673759294949589064403143408272567071940338355993814542399873774902609170559402467912846781660223672150124947250719927650105874657513739838125162287871772826071994628606255141735677094532298360523259760892054042777902410154279800822941747102375268248145942859271412954829249164545495494745432012496203400651347499026280194168555284023788632768843268072546087401757146340523502805438474365585403808282097978381609751077589010716151911465004640563616956972118854151263829908075317253393774305773778998418557404751872269903774645017339808387471723108551675254780148069384905746315820282744596581902187013135224758617406815425825897765934826948706958708204873750801402080192295468003280644923967300125713493193139315038320035618082898254476103895039549351220438121443028012793811966532520501308375657852203488155920273437343463101450487757344043977086649014375907368138560792080234112716951141721482067107085283869907910279880531146740740178069752775274544475940348932627287626172334601880340022630290697417098188551207267396902909686090683706724008283081347781631411377136369198152907156899455364247115132285237891593495492937328743840811516424084281293042484300130605269392298073180534476904389252780169192355801753258583281625636368342028938791159573200952705889449882738157548296812684651398294739773637764919669166146346886994010172778062184548524367303624128050562417693930509093305671887490268211588318231409412254888739564015626010005252724557193717905903942414567914441872310646037051423376679521658584935544396757652684033949644201502618273620020790949038284217600554453436526113032920427928215980045499266969702923763052158872552871132507489798550641204450786361747326313469341794441018818776351625263891209515704271785126999514575728931721053487080340358158854734649747419586103535887804151651240878883584901399408781006745181110014830025438639527571943243262327371194976941173770153153118549130470631586730658096394112828535863289739423467836168589330209755259013541712273107363657052556371103780560974173774928717558114267356544089641399350669578341872409446428616711767704243254933983552696094302315794720375347567809017848261173645118199754789243897368103380932608304032373948833542875621662569349380802883386592754262595456806133081403921899585399464017674452404367292474350794142226916607379867705731606165406259768182293290801846859147963951087558236373411757404646425055871896318682695642020966983455533646383953431071935963720605408037922609117478792108462325466820407757739495483436550530778765552635532440521684895335397056373296766219366478483323852966879920199373024804308764624814067307046727445575037781669802213411177836881234548199238964086599489398455087253056094187390362506601462918425486640084396093140335247647091956042458731471260573518464043828647769576007858969422340570079265965121641691081410683482813970709682219355822263538917453030880376282972192337422685027889685190074938137032328020387641689716255580533199739750142599745986843263791525789807605418653310750113885079781873275355338087671415192102460543886760660789411102488347256754742119942028720013247040829339365882152742213489715422969478315085568868307028218809404763609558245504240135353962739545585868263400299342212651565810516845765088779971194593978523463231972824811791513592903499666591076886342492039930695743507617328758480463009399455068897816312114814281157822546610982279950352132996947064987177694280769823639450183416590929440522114045546131023057076330551349820289601901364841630965329981989730602878657701736893717237163348649643788493753810568061949782799506656717864293025414932862784271206281936514513785141685969592739945312607530057629699454264007161323499142423977511302202026428023516924109769479134325435502324856269161816811909211762814818711376572610205762928028403289364116985664031568785098885098142143756825452466229582716480313376178510900866202563496985657960612407558591181678348742314717847229688991530917761520325266194605199118985702436976485589769480304927213894601994503070237484468379089931117057307966936087349735732012359163012406963141173364872692824530194682792167685096644487739325667248238741698287012697774054485000035010211599560994014585228695762071789664543174896267986474704509685348957409832807905720756310764572116549006317886109219371459668283952583272114901082997058374936908912314702063853879891763374772794117132392589333092544071308241044005995285572705171918895897652723947477962149289326152497490660179575333348249461093419080094649611304121356055043657504390222287515662091738658470241118924618053353583850730980428061308540819844415775182813081510877319466061621110274576933862159171749962961607270912600798087867546258750060295398360429851261548319005082683231244333845755441782440557560272749702700346017076748094941637807283733489818825959634424270170308776684347820553292898475759290250928463518178886580489624886589202459653923503092357912101206870898913085867119498174629862701341839452581469884722562387115743548410850003583150020316671983182822362998242043887411753418506214594492906200003387522137922281264041820597492386390070396870664840892598724290945144973306754437597229332635591015816501848495392649087436615746287820804593013620772378086127047145226742024751979699545388072949119498967952887573374600209125459474671548983455816846001653238218638917585864803041306267195944255632564638011290101313312661164096377457588383318754095764852406499842138242500979521092075194958144093383008269704788253133116757555123492926042711212277242245646818041305530206770756692618241650261636202727992419451440183804871365841058509493789214690099481657163072137256275369217121340983613681774702335793114566197084345100020997481869607386934358412604811034876753824565302718560309164004357331099547107543560831813712115004819719431280473017691466472816426380824975433496636953031949733591056507109512182243554457336199367467591598329325253739401226727316625094133441665213732516528243498247396690293365533083903358902276610602201112905546288908351251022067226369223160244163213027139594365953451591274061002096416465542820820498401352148362723397417391157860514006640206261922449742162852580932317465871043713392663815129791519850444359990037825379098338235579765829981640284900081640213746933700273534703442342146768747208036764772492773670612945340315253798218543311530603904987453699305829555075249853871564378702896404046762332730596504213941751646275795577555217208657288728325201657401922930083313006984461238591262366402435819996511631630157753024470383301187421189880602474620745269265203056572356984147033367795853414601221958011541789920316002345567903526426054057154420962546327766866870378010518409982424849675323166279698332195358926741493317396011851696390273285563070016418903649289902898653163258698435528915163210036637350600496088929829077839547830860159297743563389895531038530489945401188937065262277826520607910962795869339591685519318263089084351835854241992176308947210011490920755967056224693847245699810972339565736754494476097650423459028095219496558991574774821189473259318351066180515845331406439850456002804057068155986531159934507574290538665591755471274446523950945654959184503666177885257861705580607610052057125805602195736681764169718965770812004333054816608407442570190282524812526426495899878953255921404339817777765243211161657150770735094707225495148023802916810484707916092603880882596079242666974516744653319490814706989342785753835098490405123614428470078474466425409096034195022377827551942046262068940590661718849607319887507885448862271926147340907580141310634195985107303607817691222455671845284486781735960367648782590276440752372153696455441639848451007496129900301876174882044593105654271540927420263767297981648672909189499489315892274413507006676534035415118971839351615692668822186616175672229548587450546537505581289144082464822503976215146625421767319682283914042188458535213113040722739406741283002769686462372610993441806492549545865058399305740839374326390723013357563258602991016044501607803960745619910320510939344508576016793405507557808992855917562370181686745953429736758559871989244212956096216059942196187459451460502683845372246928024193153214436504103470161248805391768195653665036787877286753478218504070536261358192424539160276379689828053002747904381255204539945380778951533345007786213604541209929040284398472737307451491870351892999488310593499101977501178744454592387312745863024324362282444240992094645348624632449514202421405883500521428748279453307777792496712978156012898116234383843092257001918169667418036108069007642924102398623093293780133694713255584492937249783517103132819851195125853416862558733485850108624618966143276897728968973891863419469024117516524303187017021240275273711576452367620292264458788060550588372956194895894570601046020809161069983659193829886514355027200557296944838774892546987315989043092406063148682010049344801979282038409246929043312654315617255313255380533857642145694432847732314306895059362886887197714147715655633396372180028376295938340967356035882351449117336392270086425892035425648282206978035422403075783916536208223103177538871230188724768321233453954383284281864429505211243690106742823213417554951618872761755040175950092624865762723930283115969056825152506645848390436450263039303739639889296380182043507765775065381118704483048294871948303840958371748573962842057804736081100440553254783326245993355410865822212385242459448547031810391499119005536735119618401838820112324992587341415317195490563569026842183319283400468456234923639612844633846966574893522948186658709885972540264867253301460997991835907530521080112726357725665100822616759700669663591944971305884229724807207527327691574354573832566315477014470798905743521419793866750876395711920808747269944953008668227534052782024051031288751868570107250424475865094841279588059502669077251283029634627350989904115242874395446572727835449755263949939195376825349894809305098382212582622548680314566279483693067834590370760773860941249875110983824901089188333131177888467178015590343721065316884365279858148163718638971553723881433135339190318747395327648809860933942764831638324248487184193849484470883376973240597861775109383044469039764661030390603295159242011629428623379774414681165993306892321302399982238908081286910424231810638033004625441771491367241636736731996807922546585807344418309190361729886033565277449357724971889831624407447603753718757159273195043895472294474477608491239545386203313602761541678948558641717532081743241237078306823504533670471477389912186949073047126619395883628707314437812665668599395903039042598088201984838381617567256730980787824936717860171758347545492027273569176295603427035532888614235747404423940442519704614646650694238558563257139637122996407294618454465297823009662648526623224938381391343435926215757832008345468472733211746767803986761772209409773700657777396080781154242904922487109926290826908855946642578562985285355475018617122970564296402984799517218488705537413959244361372358440127317221170831604149964916970578208149252878961618832818696538261716030919132636638136397336389528906616011009743827981704639752747260777612284726023411692765268543946049272497636212144434614108792106633089451531446644965112170409544111639003704055432769170563268732391977894695798227303461671126016309224137382891885486727852527913790692635677213213118184913267841093641591463814451154433362094963409911561028430231312215506780041035821791249297003153026030497599885516150301130968871331337492189328383978053621798468128556157496306482826339224477024211858768828826365557411217194153718691438443495608484376173745898398249535210145408977314829895708214810505211623925155284319119939288168314569642791544018625022457571265689859678777150250376698873703974647289911078395007162716495717732853353970277434383759876788979297336734625747790593701221583773683180109822384761091380850597360492940723194233568478551643882602345914285835924979888178744856203629901843472266019756972380099051152241848030073304262550418090539544192876711047931329950025580182881958095400928044196816018403171010884848442123727922385889292559366853033128018936421788147171818663312968696069181873670013959379035350700322459491786891085797180333301635389614397739556523824935744191651767485473042996134341164348117817259828035537811331532569978034455119895463091376394076772701812488969939064672312812457577651980547295112224723460733744803228620235741321162687569958865756864238147287074265246822108138539013312260393224538977014954406378824840716484832179173642758649259632208055909795793450441301235085490360206811393175632752131218571591110183587631133753764425830875458223779440719117480288693073498037120872822394039488592842997578379343888112085853507291009226893150499687571625901549632730288120850886483978502235290032729681071118355475368785811762823620275873015363640865799832764933428402330456786519354780485098685350752772464223452055047309723010926115184708605138379641110368537132495248216818791595838564684650687802133607938381448681679495252004544744309055917234907788593682312345198400326304222658580021181373783779184288861049793403352818843464946096060101878239356520309121674778541768897546359164126096319974904159426649314953200041733805682267417009269690669532633684758124781624311140261097513908296489065747318555834133164506005313775619266187639241856052977776758275933819685394684036904586736205342351785309871391366297966030129462044032541577738602005490474087844044651301789445329530037231386515037383665765050400171590689916730109328264246904323651443490641791513152113847991995380572378693529535541031299569102070364697352722072475395912528856195217194559672719608008463098860614323801075336068661676330123136379877898606322814661280540756528351472574501406434654120599555495537414481808370663542747583785386104718541724773331727052241731727492798554722579872004406320773816899359577604669400045931663184204612862642917774857348574512294098588304998462339348779878178051517901571402627251835224329888351607812195043248283011074466454620710035103974596807797306873125069431246446819092975272521941521985979485081959794337717976836056309821291451153323953117952592953465821437756555730620769407880637996788798288601279325790517029467302082039825359374379174186716913184946167642912605735121016342369675641401484827810016269642033980891784071118283747127870821394915008966009889093327531531943998956471479034013199374474026533823545533682104639692208727695919874701944435242251368727358888401902871413939371177151729418367509368300959762803162205185765025010739636864529457348543602147714639281796781701685756420925519248565690165462360230164330823623773379115335204990117058906578264320076419567273136469001341375936851370188048872267996351582235401827624204642929781011087779710231685281296526551669083607679730791185000073470783039572719994900791919216948316898392750025669919282449375548788658282130422735286721130454397452184646659605771696944133092796696845156145504135474483313846901584232726043844787246880041550462140461414087007088761993632775563168320107611895942238515999589527862939458768439625355105666717109637310901681927650560910200359608762566200734612809499198317170284485780993594603959535413354567294106918907468049801395632433749695471865018992939461044681884241233629501487619133803650663622921356170000767467169300929447438779616424892535939048600357761451732441904778976676655641335348867431623815075048476684907816148402061147920244981610707896991104079578006665411810716675953909529484581830147013517768406984319590448752573153440588986560728310884991518937899343595274709124251552696796077717061809734159400339604298711299609564071289382181605651260795298741991150629396277532934048607085009681018749563188968529180589760445319265999148337031040609762263326360462664398461860643471102767188658443377137590380859925915514459018284812153333075677326734364502709134706138593896063855399343719950659080436208091982887127576544619741921512081717459331580759544102284003670416315300201621258441932589430377447327988704190517343075704633472639791620257791568683420699496117960993753919651007663609430577002033516294554465884807547944680729860669579859222186066293254377278119397188658357280062945614387590421759535343756073381392496129060839021152848319324032545299993281462232976792761093765165437910596304161766010061991065965401331914143574556501833881319346030511944660993998814261327988567163941655300794979344911918990688117613427972279677785862657579268337801609162598503711854082956018333703082217756504109035548249751554211428886272269270882277593576816380316985838429921321154885138609549352799253231544335855616275732990138040914797017048795112987211405919359815689445951266452521679469442839949520684241158954673489649542732036480238317252232737992856950516007318395034752788759913078617716853609843063955576023109376320053104833908373647571684666309680802420626471513492333920517743115665375009804679488274209591855913479885840514465433526588611267337134618583739428176844045691319781014921346158306993099616885670077908701207621901555516153575757657703458091902348021141684131289455100886557007483632356635414808577640891668426207280245211124139978201040543273541468627284043729049364692706545796102553612949406452627015208126280454879599326553665065783498213819897986252302566335937834072570205222472083239902672091941782682073798564080262974794897939669009298596904596545522064818181700045099386560471969835672500636717875023183798684926705693878353486948876727267438396588999182763104765095274977102076260190163994478818666342739678754567401759525200990644947060565769694013704496857616494421939246886679239898768924356125183186805718937218758606989057419538153600791631269245909299985595964316426787067001909203290254603648285830453084060237728058067674296478787198041042167719365169912205257004028915240145573916538773685324694055638952977464312735097813145124002900997805117273470659051757966459464506125801495995066277064207396369617636022023544576510855161477616004279073039203217046870109707467107242376994949503502389446218005898982067155579710097679238025248248475548864685928324487057656390151617959223291484832812152281832334629360071258726056010955172739146838437434791748115138172118116020560635280386859965056918969125592517650120791691617771588383241427045844668983472325030953566575436616247362765491783577476107927639085748691176870394115645806802673283858683436973659832021183727538318458323837976267838215033905713459440653512090584565560944579545898516260921133039500475174395200740684821138077769034827060257515484220174556413692685571333849804783627233618385344976320481386926534247859283154914642343051090124809743233235300342933705548246467632295647719674542182746197890644290041234659332593173867831379965767254774215610924338689537650125155209939225300634788597738956899370765118820904989429001313972553817590983174487773687191407443138097779859431388427201520342677304406048806687577233077471988505742444079211961806729322756641289460417014762438253352378808491973944516570302625496426631333089745495389359251319343822474538006298431225609580032774603977749945054142173797531022486726008917136021572709050907055722902653479359600341906405513238912442075331100494416502312013843260153626411547757288727245584838521679333639453074648026696008340815614917902330696888260900865730325731890299696623128395237934370612763547834427005552067571437971820208636033916284159143752290293754021867468265073086394312048008990253174508660536113200237981086911448630552540419173074586138126850856725116737637996139922510793185672102072294013159689149717910799575553551040946143932052685260444286007671205634242978953734312447656848109979331857513177894539494683712201071034605394410773818592155445148635800677211213854244411624837016419142161318393630432909173933435098505546349534314736413444557789822325761092639978580871443882290139555776137446794881696717869394263924707494182562403704857055858442617757149813724921383999046604506536182321721260023086786944817277790825361786355605544024017222511742279755869643512954618902784417264495913194252889927550905432309717208733303119876276977894733585063643756519650750137254883300696557758878156231354396726447115074914550818497309660710031485987031489290235009841305204733597961047491368462676799102766393587555982406454255313551773288527846324100944009798621244201959754695961205672506352152053531318537865067090688967505166176682919096012988863511164956668205393452278160436680991279453825987009282454505827323707188182270920761111187242564477366975142065650119363326479771811002870631079155928851863574643863303290019130096585525293483712051899637565700159497944541666761582856070429400775513554919087002994380210397738628130273878378708842790967003061258573702728472387095417639461060520672926948533980154586520689822008782556106362130206155679053679682300473830222852134660161744448092558174782790152056734609841173651705628100625987422835523982064919873035191905985506716068880996338397299104126966697093306624064656614139973680986786826541507247230834512491578599682805878361208083361924766386935082325971118576535914374700659283365427143496597722828727232744615683433445103576796747589203251053221343756658298974236263870417149535681581238162744816800852379564061595227416637396577646757386680012100303192089816976822217626747318468900305376289589205358934220985813245099067543442036715958157643316351995292070757983059147197264593803341059198108408866620286675257653314179896054446683388433165103644743856110472578820345207252668806680851696348748573692197664240825645811977244215699238942603489474228499513110054850245353548814589037132337693665195764602386587988473040080800748363545515984150079469169020874443051430886418139367604643670795553766282693550880347997573864129175467609930151221411417466523641896274966489996237111276066533093842067424757619184605054006956478369528521073589184032218772644406196630928313125868575302357364926307626419804753075154642667955108608293549634683235095659037046370171365913461529681422601584472259247001284646411034091579129148464566154611985747994597563906535437288459300033201085622820583530509774107575771056755350976603903700323935788670674090498451237652001952294940336278285514683360567347764361276713366101003911509653000970762491264886551523699720044054898904759427649411384155215758350381132072389060165517384334000838558163093224279844141299755117305748058246075535821541654000978579223175723681125154246975973035692089796825218945851119216597716918889781708861819620543413465704152561971184504827998879411697841817896163767101609407790286617985393870572560597728744932104167790383214694122744638827393208714366030097294385303939707764109749540006343512711723512284209302873468417654938988568754778152153587775575578807912603871943649909764620902644933835918309985055516357444282547166099780598473494705065170216216764671492180071670673790944347841436071578338895727737249467862980994506774301003689578265170186057098620322596240488261586412464202228780890839857907850929287790187919681811236659848918489808606962028662734994211851153461487140270231068216151563643220524312031598616305767493963418260524781122105961143169269602491986150748322445674555254928569335292930172138109737165131973291544715633905664452301746338667673276470795442265466436325165152971850177702606227278504624592581239416662453143610896365083533933786760923587459933613794329035734458283821724207030309173733317764815474252234107957677205687069353722652200159387685921058703768416212059604617956827038102973508049726566539173779489178039020917829578070128049984909834297346402104222794481010342717037526158951522382616921467410415792927974772250586564136181258241866269617326183389770416506103801285423126493336422996474993472848683685539614543819242693043874111038131437605298504749913792311308113872197793101493749149937050716102414303894607256941315259064672213277405137118513642706425933325798244493207548443113253324837687038351766782190970325357476837668047649049877857588277677444702283217009956513961015214984963296211910188165942861147012509204209684646052569802500024665965212735451891653867605093798107460852277825075420380475488751151878594300493789019747840331105239850246130420677597324055323740348333486735064938668201290326312704472840461551607903027233846922717119841489338846682743749090968371381290594751673221106237953761415841690272806922008439833892298652280521530061885672909031505992181627859140196283940076177342246261681836412234283966276019440962458471816798201482713787685766478070728368020322464945058375360817051779065987405630700808007967843343869180703326160530784178229855843474168828504774058926855993691772498897423811560819580813323856548066635439106538240934345042964875209306733913848911527694548912696694830563149312240306599402107358413253592680849319627997552554997284809171513212867145112937720526393064248499207224971536838531007628804541312140802501973000806544684027347722365664327860096425362018900427753319276295687025546795241018534612262428535632346972754449334864238053658080398352267650897774987398971487228509723675160972397124739878565758813332432501875176058023411898202856460209953266084965342208556021689882063801035419514936208601662356682447458137186051275066177734746471086046466986979076848384577654449904895605374142899326540074189233650360267089697865868469015296491668225441100051576837090239076164243932289892010246948471844797217586349682049791846494383113863377538033943499345370406275746575260850190140243202476931937413754182685084681790488345327320074751133667156309966662864899843879183797603886029808537990407475402480043809127860417718339546379515814809471483938957331293211674254829998397651679944048310214020328191204985860469577339982264185444035633228166635210825585551426751751378592938577272505589225960484067972590581691021758559153461825280388527774357158390123794066902436596778935022239636861348902511977334408993717142961489871364115915219248184323613926610901089766749733929352625769639062748251051859832062124281574247167098516204770681191907586849049941361241362302995371438859361564624364259960190637545499482852502393576834852370594196016020159628676285196738685890096040152515480512189658499153285915881285285160186375040196837319872648955949294727100356757905803867784087766481053256146363216480855348901031290776463559760778222298046022468111759499608043770868637761588014566624895396675910171951865535325885433398256797859769712519765334156649627315717191707175793414270603100401096876498239021587210386029495310616429507896853673921193874527981535117210841383909509779464789032274330649900113017680681969672672461136026378980948960640571828262638430620038574760041856682555317942888870884207683099354810126169658657795271809888919775181078031845676018262039718172561074584825976126024787141816107728075839856875438470316236794696215391912694699265510852775575044494060247442911860874135563493396415395486307126708491701422478786694196584372989380090665490913823668335557972090292927743457597116789335142422257557687619118465855671000643983988441177580152856372648201770969870074798345733399896904938039659402538201514071656388859144363915226588131351528590744308008669549515134830328071052878700455515159173578668090293232411479784368787498645747139831309609734163707973725524676504370351452844348451011913905604681104097513929089081359848774683026334676095167508216819179585219934861778748182998594093440041272309916054351764595895440384199574801578952947021534449139256625440155160569903902223515712165393384786492794880480716494449404373648044869254815170390983340221499099633509793870185288725662626246835653006223674648731062610463419314066235119373964516126464403974112889985180316899432668223159300211828475875629876701628255709493352308588452351485623745312037719886825492832334864961458031851091366389235090351329026159123892479938944580421749286304948030582270860213569787863835789914910829682215567932728563335768611304919517850789595724982134242988100387733515475147209580306583893576885796097877710952397100175421364612789515622403638213390225538342162015823511282586456597180505772717448094628569927132328069701266180052665870826203181540269077581924061868975455558565295858298378694729667826438906787303521186446913359192166000364425276482828285694575146110647510909908134659991584454192690473894525409930924244323180077595546963106784622360236532931923105307435534860040171972680290765220416437663519974002256386931303568516107753263814564586082041781658269400206150662864999757172451407527888457529300130461473196814646066155830132643992101806405464285093783237019799789749969340228688857286949603965261467565891662972956068606213000817398579574804338583586408549194970968600217069087819097410221149305135019391877306355922816286918582880110637136159101743686308134034650126297100199818124719336339870984186887203963559843281124490797320742106484952883501759709836711059970490515592133543906652292122121017937660769100560406686251356570196349699701319428989215088374592677013760913870900124998091502727192007832865203402742849088656594336746994889350728543645921712978505836486852718727342250193781885071288045548644847475689801885083250005920055923656859378106351460789995837281306587439446120543482991239622160294654313014677800989984853321765536436983060556254712623458976390595064623102325188480981125953930913488005198986142793014670591594244303119072484714053523910268616915349630326230589286315078456514059803834722516025054822425858421212373867295823910556404353713369457532434475328608244182595762678896228299782227146094267665982352274024387007998942867430230669394994674663193607883008664083674412723928492014335479280194172177641724264099084454693431036877302805959452157032381716339540891493742727326687634115457451575090023555797967791084394319011917077246456417981684891736673246082908548876281029293315145024724533859084064508736057413579754079988339908322059177900867824191458434986836219261538096488238004215344224876294259044603179140489077183247902835430628737956601931468547020694609430831061053327180765139292237778592236797228813018298894576135411820126505646470765163152766113416488793833621471011182593919086244028372393164294441204027910723335081967288120368010690879730308475374869140457964434862518113543846845558089886700855479694074653345996917822127889412484129494302975067779145932777221862689516266800956637569109211512265347130956062629110733403731430944270949252920397003617508548758791819510703460546003477312300826321946395742309833313513659882495389661356937989281175694070105920695682489212025631618487767915171762045742904407742071631074468067842098590897210277415442341941137581524739745191290347683255493721827207400371431031692240330374141185235792115027475488233182717174891672326043839440534313129619275057098250595061431907926697710463634762348348162211299706598760744630994273711091478019430145069123514095783168405815941292047133629227043572939263307126928639312364824323956718980725689509260199930800520635835415660685805362367570027506384575030062383820943975747701466340311247795503463834806432489432862233369448273694509628524126348208443877647529204444696966841739599866735005345381801248428717617477977121306773299249693647243828116364237711797747507498881819078898334234765301972281131675572275226104658748972160462683562846997138919796575893404221249492148367175303931934742576849614825716859430663901290092038180260355938629321759287573062905228953865022982874315140219883062714301118228336372245967024009517784308069136002523181802578017104325321251373360640334848051754843169190286957654318799016184652382553040883973381912801093242029454758267228769247022774852258401188981242477993371659208196435586096604707484031298620628432693937662042026623702178451871721835702684614211130624776587265000008642569811893925705632928968417084038116519748439089879410834567362986217524656734310685476118426803952996790374639328763771242796743965951621243006904253635396866723580827725297004053347975468632390059613371782987809584109902069069086027348656814746952373932892053232984538884393255983348933877902924405679881722283316742465040981993415218766478504411255992556452485382866296394228850447844402552267473224254102206145508706342594092161552785178762705413364884107387641540509743941117273769841728760081535233790600639369853940296035895951584792836000900397314007098748231050358602478350258570260042149940367054884771060612919276218177227979485567166632118465226834641602662650153116220214129290438510795297085201682864631779735836149347313607319557950329428248996073619679367722628090760024780949523977265602222497464987604612308081250323363756403159055285820651766869031670697786925054484044835858281004259590752756631373040127793092993199254033894441853346254295419585330078798570765362581872546100410502624381703024162523125169615737858907566208460868878202333078014439269257333071215093804542841299767275862971018925387176373463744380855034720713366454492404245662579300501042254975752530161946743209931933173988866162177640061739815134206635164810019633940449459592618486326183884364785456198496785556682750314734708251247222577418278034049121407362257346963669035870302330892268106530614561186184588829878428980143074240122835373696309083428896823519282677418635106297009782117635981634043420644517024125807812145433139612039510515954815097582686017775597836725275449495932761638942075647644396940169974077012794728602211090714056533017172688015283217463931283618063559419361985342644046622959435912155934557632601081108992439807457806283055113359257375182103070188261682899157822939661558470258177111603638252735869116394024203419938847147515693764518059357219844884919887256413215510839638970537567025171774811627526799684351520384675411942407610150730240216521345765873326477474029089932274507958123003888487836289431828060220346532423420569532700039487990382218667248485773065559226255169173005696296399518681365531473442966813537303545409632812621301905242240413054142259652846725593919582304240910893813923221267001879236547544907109102104960144333087780477203009161486536343538969523946046377827886925223240115588623196033354839672162210443442633632919931229944291730559928377042903422257136866193266879834923857187782134116533426650001803626139205018057605161494263050783156463004812571371788424186879668156515592975475117713840161191721467110818026904019736910330772204518465926378973467112100286605954954925448655912922683337454698545881091297501156791335189810677455519730990343588563717215349384124995029955932258760909445437821609350310847615400577412578578510879768226315273617553059793822926888423001413668042308650042665783127709598162078925715908773722445336426777628274784683453518841944606853568468401184203815155183793909386477164429720715175031979655316126059854669815345232172589061401746332629443938497406541639877962256215823461158666968707934116161248371358129601629605172488949816344052445841405804853564857401943756860090960627272488611564288248365119701214814631427541588625203687149434327309309181961834848946116281257234320488515025275860834779568814887212575503751666484209587890492468557668084985877402087138409630025682873172413453902042849423316181566955660915235560208037146144005400763344616023369837236881652258042592805931169223854299204918886204278855550542424008798454492276156992160337662608857054807313863426280950852874597243808847123751235529705683569419679102751168088960915179716101482331070006067333035334089414617061814058683461115251675767049952543951333332734595989954943866887932251834196598642053830787089249762616088785953502488301909151028040339907707618417118509177092042663315379186410503600414281580041888177513778283791692808809810917591154917112035154361820723054020919081294912324351720468193324479303243675916062025120759766208386001754473099961929351388395968114288555060284173390010744379811561439308484931562961891568620277906074264164654761047287864163707789787594449061436827919485421389709832825681537129997762813161264800870165965812401797357075209149837850683937245822149428365561227468079622930151234301318025856115488967013153990334346780944737143832826865516900750281443548004434754814071748154301080630483791584241608560104889212807433121103085385989606047557563096140532248569959166520440634881070707601821193938799102545161828697962473150537253735666638288419908492607773973687062659103238837377499849100100992107758112345330280890060565950548164501459974372809702990104190111009041166527406517615564860351507272427671116651010565209160872077660597556679433528153848585973489894607996315219281768192089821505425652455124446447975290764391479078997491827670829101980448844082384823705572155223253987528861675080616819433458403042364107626196334139536615286294694849911043198231986755001572063875999928170268271362174979871033560384457826103554988301036656740431885811928694113112735874902562185820059445379863510987790742107266370295043407055311030765432768082605552400506340367492148935152582513350094938687528780756318876468361193926258233995241264254568411577573270095311850257293838003532718734268606199117551097211832562121781453107006166598378977509434827466613007897837699391728836257055662796159008128091522718967556622003000841906954397687537592997231277073115523318810957599948033870451104513776650080223995596575672200910412034204267156212288244420762433251194938998305209233402333701149851640545305900268983753789154255458965156515708268966769375921388241693766650969409654231178822993905985762618200801020299023586207074157286595318418229936988273302738530795370391132746649933704561379939849551238466199905861768852452202805846156667763152920580300842521458002872392031002126107271774277787162921617965974795022133315548917434388848378860200198274773079978548761621649671411570870988329275065868631689538420374014727264504372326034541195895562802332204074861401548026527977751712846764239462779968487897161016696106572072982328361791054913561236140604369169712842316205532409504173190960043555088379976653192217409804837289201317712025912640825485628641010602717806729760120981086255290661409254170123560279023047888860352504118644008868889052302788560288241282483635860488961128600774174643870040700311132827502079673058785810618499631546238235882968153730707566666289684159967123816772218419203997013453052583627382128239022192000421279101135711700874523975643178344367547042890498443126003074190675981627154414450263399882820963700946765408638149807183385608743915360342795520755107142259592442545882231949702086034265119855433552797794585863747655205595734052158112033364653503576879258981357368686885531873318245044157993814849826376786638141673674659048396253091813573912903917824805418237487893164648266860294959610926983716824436400674153182817444658937039413404328728951792890266039053535343844773096981942046347125173533749890134335137243971505214521160278668692499181930528226717995846493521247843739866780560162930780063948649275921022977897789878886793192811330778302462400615403156566049602607561620757973650442552721120737917989453743542191002925948683461104576925368103540317300615817644747572211869560032715892393868752313524013364875707506662063177449441681465394102293303655400277570070807600301533947214318075133030501931041979822963047657511917039413003946123884009555747857013532807961137278407116431345398080027034107832313153426179418692700153590190407438234500364764740388153975070233798622274847680447885675452084568599042644346358407182409378048723211028708425555214275154071308279294947002678931702029414050893267062253930348739068001114792875185708209629336354051536715968294904920498067591097631994876902310162180670429651313644207906578952282410825359227379047624225550482653923836696837484737376803468246175431531385968879897925099328300454065504327042799044793419226452123900227897916342110385830375170385162432090416306786573118159303424020577343024440073053398886764744365156915157701648249445507974630626099259917217160251702041242639833311769225002723264324612717786258261609470076806276752771105907917428579544655398031989757588156671602989768286869349166349710909947884717275237751901052397501659407985963068855109799771168850646730490914180658106404188716406043695233387364240002528096852900010354744629841802679478624982612443732975404381299357136579863030341358386775301515586366201144946838262529716103111543484884917758950887851805285616378414868568103690642798219916245074335949989296587355604746733443131039687624258523930421413255102506432620409372387674292029213808759107712397434119497226281616593379885415538455044356524339692947170891099088192963989491514565739346543407604485874366521136778800068524140012321687340343833022079760352134742905468381023562348573268607503890130903662158998310439858753247092738804963502928319231212765132477270636088122548519824404551532980675216490095317306063918247917833416887786252605870846586107779946696011836014248573172046510653122177236765820675968819912268864031095308201941300480332321637035029869723269872535699775833962009083525470049177191298743185107291835062393346808224348585447518954849578740798944971478268405210339977595164781403627714499181273494656458807123252503024074282641181395365637678553797848747618824713035245584612138384196185509684785774884672433701575221520472793769442355081713807336080976646448556192546290264578777447296129040805256532047320714294883195853478737686454747606124713564676025457486861668608232035305928317746430840267561503149022615223730193745253829613546941547814213776184365871441884209382168309788812887038476899790098346901431716132678900977583670458009530272891085189688371842628005189107309523731980421634574028748004893082401701174949069500483298489861797651327249129988955761594264417540621153153249280664184401982430698329535933842562603665991256967272904728127784783322686458721292899497677595442990401598903166302901673996616399283550962546453628495057503020271500696353489517175743577559468747109243340279881888833045233747350342399208274596347065516548848435313321959483951060425220762529863309973927905288670108726484511981009314256991230857416455516113189586671862551742926651921235099918411565051409932722093360052433620866265533549403232246197469685196917234924478415098978838872478198509757764959542401707340848701946469645572545340030448160861686498566905276952228130991407977047703306401295629437716691166648711037687257847291153491720161904131857577921605307119172348920755466710772383915304422895648105087699997326999877239296172763943455940273086767477475116004865118449303700656397584348568430174581935941248828649273982795540080827191962933411045231169737291180455918872296015524876056076324138702642878996529499642891882968739038988450739737989678069738289306034965571016293022948570309924846767501494447566117363869384369429491978464834543320118029661877754338099058311583987209377246116314737950679394010826460185291843346877757784230097485489254330399191925905645043359476269222421775689705927670973919006601457096527380155036966761204970926699397954460409829692784245925838416333090393332565907677031857750851951176009381994305740355754324731854334572145375482424189998231362872692425821799749102167272610807489380820409362840396023564010368542434784508327561703113479052460990509192003298016132299958657381205956556053743459730864699409231757541476728022470265912087192015349354214667572998216909140934737329887425608070195717127191724572017245827046753650417705311938047681918635197507847903587895795506650318237604477889963669623599197193385997170262387863715707335988341288050714013463574705067863681896558105447008669585429523036060483028111329517212744998587782690879660269562819749179620150677576917676298167427910707262104399995462011155912930396599380744974216849864979840994342917113414335768568481880646447358333306192732453533141297284277177234778045128598959151557713723734647006295400074935118946519256200735164764656781641827381711819880133054881927197834840956295591653777785716180882777165338325116471990210658659361548203445762447730731204428489448892290507283712460940928230239687588192030906437629691653619264548008779917400746409527647657439789216400543831639322346281671820205320049031124360314026819260826009937530644935685796659658772607337092561335660935916533603465812888276377700278371030294809630461374816339007809724783531173316715525978965778979102704024701062893614161044081217048824501502752409209672002178508642877056568414105059343567740016528850707209141530581732928158385533636781243721925524154004226932447421747485622110967098250697060031097123881276852042384795342488019670085991028333394764392860382341867161717516625402380885365343618296860250310364287583466073814065735708915979534845820428549199704194178772413221488351129202962603978460168723243028409902704147239332082998449325263294766828371436481088391084036489597330345387327375009551690003415543857339250869824292343101384676652852084193586310627715841293944852673386310109463245095328626187269132253375721177564399422713418643129463546102921248543692926044092833463278040022745444473336102284121572553711974262495178920055151922240487583869912789880658229322256914791903192349823161941094141669425676056525177440923704687802686544716743338042223855589370679730211138853996663328108986643767289135969379421423320302007707776371959144148025971264171284341048508267674636768618496903670007570988642006656288243255271104388453197517938833322239622628839063623311749403178308133613235917519912016002061307810458221144415744758130414524219678049393200728722644624216118838453280109670753663124736911707717917549605394624880955719831877935721421934382590520058342459274918871762432176494733361090005275746647512243839237180394410983924351996014381030703235143389177803436511616679456473198991130110081162885275754799157731091468471843846345771602129540444628952461035869262129018118403482273064334634350404444814074529192365991556474333425734007971397337114665040331878079008306731489437754492767307639465099311066725363627024072921877354456563380798211297425889262479073414889060735729820547748690517048291151105852506090727204621207881459045106171735959094435210087030229655238526328710019675870988166010435699106919737210148238788532835325275574385535306801449687034318109469642753191474750708902867224555252918151568710943080966979444701381043737709956906014576695283614025991401771206502440564738405096832509735994113297109583442666201850791690554310592731013881468131059780809408013842542721295492125796688180346775353083238744172656950429564282480117385225006178350515718846778869765497143826881458407843228290184364046512378995579777684383038712669842944861002046035765419460286151110912015787834471621075445099787798807897362794577465458845245929432057793589853192550636096345400651795651257203124630470416921659090485966418583415475466484426316515744181172251892870051240245397408836656295322695067266943847355275996243909670312016563828896373081209783326688671340597633763969324758504596330778079077222251337731245599563707593068958420211920329430575703505970957279862975031293985594117079182045764038422358958271034476860007261284898613900656020325217950291435934311708424672449755607479992365813617972934030727449418714098715687675546014934180257888068398280004963851570587050365662965723352175924760392614420780906179502576323555462598337588930060523226158364473889645740812295518087298236643392493570518158377710830880391938425882118986806887109481985301812817959225543199476284916294500378196105489491431675343065749878785376913972345144081002861736835190408328567809895207015336854910251063446046068860557799419910691326632551944244253699920360196532163591798204261204634611055240537290190843902475439484525343974297669291612192905668655533386317066839246163395165976761382798699713437140698653839028666698991482002506655865248178911012501669825865805019443805639948040615917954017444749914551212679032183023713292306779586017221269800053496436395878127253235750741670700608390114712639483342356616253907905608610660865330719752728347125836601737026058175635974973587366814965767142724387833877957080393163159141766488298239262077799749011783780226368546157064006057973257350640807237683272263765147055392184292841269774743324027338926517190900747717688966585169439659933020949800496624334888237445523710875551716988105351193032060069192328863853725333369229940950515628135545545601125140672066869454207911234881438881939951792764003972703823826476315279459792700203044544617805676126338113414553450046883529665178657688923758013874623097587752108259449593298252178914331572790265826605593428980824615562609528421374322363637149905023511258585492648576340253149561206073027058914097596178990647384352330299189787944519880750594649041724537317924546445080448061375077780223193182034180089342539793722749280463209265671591978867786161334342981956543862991706222050718423580977737679634265453032898251126726263815225206238634104925131107905884002219440849823289771042350919265074124010007078885840785736391142491395261309376789025116680147239360593114213941637860923572989488791321630756802430159492478626706234600209317259877780336602320149242006091955293624656625528379683357199868935060801909036439196984286947571467066784828885087291576977728036889734837019173837572579248727931345367741229251685209421313038510717005591577152779044175693408452182186876879778317142582953172962586948600353051572623924488526116656095505827150394308549772698752553723705851848614690280833652493608252586440940975305241632930947167275914010873489322293346186380390281998604271710103292187615642387409794235296925893058674764594855705430092563180885984660785765959756545839060276017597448248968049066363488123935580864814596555561162273495214078513624739892772710025488943690620619598459588066780282396220062698934979468107400123372966529012624060986134679757482390777221793914621141866613101834070809484645802885707078279255414528511627666579298644451434644486247631278884454248814879200286032759249554059645597118101608207925518884729354572631821160274208820691886079254005026066390753644700342878708797378917093584696436012150516218129676974930966103809231242167137849911227009832363954820378132875415960134552820376007011777787185126142842580230364561210148713793270561744727904540244103628826894911924473034375627539851623940552778928891752401294409893268890092192388608902902494476719133930698892666025429183285639268548265454109789526735255077759420062027976525460847763049663641748324093285471644643133205229444573734434541655033353224215336216103812371795428833882349081410069927370494909127632357770859221301143571216042409446637904358441914837524339130219668731005847277748845052528408461093954541167748419869609523016072676008771480564584026594625548980425511706485815619138650155129869267113220206470109829483743288605327871655312060054548929098090152557931960592129627138605289707947734767211529043188775274372301290896601399744569682121101176780676086032448667666217579406154985429569245067106512080744871953408954611634956169455013569236437271061413217155889721013246190573040926640475818082671828695986199851672465066713535086709739564595258360676377188117604626884349595762490218486434825210475727607893609618521676706127416331554261748666118197181609237798920716068642381544053074800360393833548333457339504744338922444420360606487393371737453141750200947318334173200356553854932165715734873217461251478512805908413915485796752897409536472548331521664108723151522658788644634407291570603349590144639123261739016699707920000727279653111315293072000302407115636249318553421713729959650027270416899844421110643525829329467336373602917287707294127373226570890241274665006438558397242554615958157954599628586744739657120134925811770219478342580732622178679512295835405709515680666785625483379503747458329273302449928301637680236978282223671834071927572338282205391818333355210592146247799342302273199523497811840712158793705291499200296850163966891526651796357643430472238757405580256007358958481156098971655533677379744333873511276122861961239677453819960177904796915471736413782389596018439767689968586811869530475238577370019633096361514908001086912517669707105651382540239341966377007747780519806748605079546252250671411837099177596994312921202200393946218710422346307869831935478015406962902987577482262400407266779237087409926874277791008931527670862215107484024997280243671714215943187236229078082307291115618516953119011309846632142309959318878075661014827910349764959105535637567862352793090213177594720400002938229609794245191340599644553523590343609268184444310652731187787998018020939768170783743579110640359535908831093377271972443498225460898639299474547094411856948107620082501445383709575453473032032870882011773001010585028202340080458784036802546020700036833892255781996560181690751984720318273796447370398357933781770803056179406417769176899820857753715487350477196014409664727540015514401377280343386564910463686835375689896398496314839282667804376038346306326935045074438022314600378883255825714178108424625458091206213542115563141640632099225920630453168957408906519244855386746269847896422408421340393686922979254162689957123828745685289918364095639041625788426269072260149303933328422519088710096831676713744601465086072541848802721514754915932839721548818834593764230369763047089675194308286346349420468320803158972372784690758260075855386297071995840725299808021218072619991171857685971759823226426524055317192473235499874226587701496791810128737120788014132467096156535633123852436872639075100858279092492461201235075564751196368180172699547340783484042226541590828478013122692801641147803038881014352077174475989551691775542477844857162873787428326661678718195269866267123526747385494734605795553726828010591934221388892366119867831737419434621533109679651938620935856229598214526318052340495626411254405625513026859333215697289926130354727342107534168763408794055461748407162953898226866402476223849681350525158237471434906838580703185212995403323728022913406876877204163248112456240229387668927087577101837862039086337349478297048004398254216028529058797798176400442212794616661836376705794138019191409841046431715945430483257971519779068048126678694950613235542245631530078524939190923466958345309849451703006680093525019998689857923496044366444215428080989549778077165344265601805671778367102986879408639404619198654920034589550258863804712701236274546662948831674997456859861858210430025243797013484554891980735839568985026257277162392791635921556324150219964507524665962502651351737565320454939595772688256595780829574984381757088716617252800353317910885826386283554877214346639755460333821082618855391210865685648538609201381472117123546292840039514394009988202113783453836728867629027798277376970496732771654890928006570176136636332669037722365112892531113153093995652149299693953609667154183925953391310703142612099081951507869622966663319673507769804660647360987287766987414395049070474853072163270937460788251828421836995364016089256189700310225283352437899279829686706598565068409182694040452904448657211358876036998146392968616543073986441412229158702103549860836806758166758111004597299747106933800712476396852126626181856029965325482192013287788544412013477671527603009704976929052696205000320026891764519387489263357519304981233216169336271885208425153654667293683839517867717067664364126793297190395300148603278688467276225304951726869068394690644052216487022006773719772321791029800457316135527542490178174353488941197072813282180189854324808084207250662616502592190024259308262631788758601424018921005012242649363577156742767321065630039895144860872683459083849558751780806418050966186224088181752334136716217792332292311521434928353569423105662556362845807367777890950391762332215236580430630648592237036393312784886298992272985943310866798923183723595018616494355246347353445768471914626922166147931384427575316676456005104918456885768542610493313024153548143645161272204456596361766141175217704634757943669767076003253161403350005115850305757214421823987007861522882025063369557282177753080479418600159616251612407678253671447513512289854821991883255729598048708783021267201315524560948263911929099370310349890311839335964428521271848440816487862161361955847178668305825937044983317894201212583227069726888888613502232636234650297863285862793144718673854995830182248805496758468078783515750482788951506546628003448245287367713856274199005112892974596262577210683381985735454166867237748213576614951642640570924251332704785904565415106717176581086728378010880211025414154288207879954501099598093669605816135825049340538759735915795427924294077660468298659789125112226557345850742640379933529746432760744793752731513068436506614800072634977758312659167399603796062585286556764666111459721469189987569769841174060326618234321732005832636339951521432996494153638250538814243233771452511733054247228947084503087913893531158611336838060947988175186205421622287964290872398444621784873049646971551604050159327263358082354079677536222549826951181710180812454435948728778146668369144906735398419490017150209669070206652844248832508754971396484468332407717176338144119590190918462049802608221724486446528514224836663878014676104004686465060152404506321199404765795231379929089712158132354247672258834358908995042816396245832500992602697310829685948425561651980679852573840927911051104426617705511318122167763295974532273603242541533721716834418696438764848358590597276100627509674885634082966027039450128769658365226389561589209977246861226142581985764662770080885428180347882369916504180776750248820556514524498095743855452664399648623555724350929793106912905702027557568067774572290312141627425143153666324740734492522981900663862178129308189617688970176015109188351899643046987291090354342491539025441221406514691029922671309644655334523943244754276397672140202296705710880055091643852242785197171293395960019190780644586859821107620094530519537618671362404226228043189233321330087279307828198129649442260441796592447524862898973601457934559395403202956726856281218949849879998919211089183435759355658555696589973872605852783010715779489987528239714638905539434881522712637462428906096368435864344453580387641502065635402411472747949962990428505585064362639043527400265383666068595562073001979338993836595637344735152451081276546429923314881537211359583324575953696187291899834654165122808971923468725204618253606163870807789784168746751310821844651346483822814642742953172782405345860302792556763147411294442283126542212297109202729452599270213009966287028695130426072961395964455904281641032222236921647019875052148021727370162786068856705691641049079647450100088581990218208934628383469170902236271113430289598142753812322285286875318556890427696343358219767615155199742813458103037292848876900376968251680397396793355788760746564706811789920012852159998031095023356229003586056728609852891785159669842855789427015303948100462651383040288120901448993420188382994304637465628280796354972173245803816425078902388988724563394338609627450579645991072766982004233800736330079003923872579190208913475560566617154129968337042609079464033325403926930314872170718423343349275392025295670604364547833474045881765479517289007268847902031740368549198711853451022176532867005040594716672944708760189068764067980097508517364764053367563686531253681904566623440906655436982681822754879838309831822346360963251387886480352593944084925106872385961254264469970802709618775412678799033505181127880381116897625948584647172360600147991722461814373800664473022135849426360403899266019583119919991082233746192829794535672924130519304756607365921322816753620612826944402819727047454780380396382179400728757433465105922008990516385430771714044885336567402200371800170206843756949625922576468018823312504691097397071960784730415176585265724121229303208453760912715955486966258734527815137954518063908887261569915302319285133794415097813330466936021144170425643668576248957686805588047220049976377284316285890707198286368503927273355974274213749802651336263379555842631935539079661519709190776563283947723596238906145752081850308513314855734043532403914753646946039065067009277004944600052227167894018598283758156252214101832116580949116094186121109814736738949667555463781302766051194013582612048229716793016820993996124867533629873254308671230174038147155157865488516234803358517893020828159055030895064133092414084308875871233867398720475976455615219334070006368923765122879502805304859936516916697463344668040212638603138858274908084770869991315030976128881412768480620917661718875027614067829295367496910970695163610816244783840754606541931871040000748672652909266167058705595733349886517447119118546030847475133244345032040972093780498738632928817272084884019291375356843478503343931893750340563467290277018145223294301124354587227650947769765154103858203263744392123240474655291151325637134039217188874367013633313759106310728943442870065369341379266847338757831566809624889053269406921970057370510084876763445821184800122111352392184673713033867686413249935003960496715988543791072498484272297216667375937462243541097264709018105464162945491756470089565984259847727206213242222524768137783933109656942063679186325761566886613535215494457794092871333417642647679328304819638647323705206024011949890622828211604473546954210772535549293666104135760286493145823034627234692045042667870111838421253209477425264113287727600954640187039003325170349645339258678687735958444596887422505799263135070252201392165548814653207456238563406548942708738084161409843501033399022686489859909470980523231288325796741475573201060531496558231085114509377219665397954343369095771885632058498941386989773706835581782035404624959701487075777292775924301405660379940967123588987193255035875731456876310568906534592297132811700324815235443582484666545578200336858498930436745658013657676772829047839202491220527251991879153580548897307354528157829733087020022135585894556011480032591722909183789036074075837680621126159369431390797605756302320827897692617537650470033072158714118507053535823028972579730839803729968812244404243367067134002163415888935140371990092248879766156579788385081011521837624746448323902436005084478308136053286881524663188729075061886104640975812152965696169352113982478119480307177405328729082945446405775427623829695803912211831950738144492159864635365576060818965442502970079596325284732172807498378935108957810564487057248039364312563164202666550422660365692556457503674392321027268669522886106214240159406386379120871038624450084802857107521731273999140798999330957250003969862812136768386144212304226268624567375891242913458262356657867754929696717550867639599303760571415147400975593646736762323948939948428038841613397663096364104555719890283030824200285482853473685745532430938606583243539299023454521196258227298570829549193610486827068953304726951297647725566062495358074695934611343635237161959862236915970012117578231830797677634301117887727397681574785396233663580153194841102394175311317815044240949034146613824200502838412576260539979793122904709328395474530275678819326472670220423318749163406043914754314251736546010181274535467655531891802283491218680837484520178291362757693344413336755924302394470438222534502436510269845821466094884395605275005295758938678664399214880588508734163783634082244894259351790311133482339937502778730483139821202238367262120745193038504407708830634874727185142178626966852379932814593630033972432977949817465840876881327347821150303446725886206829259340350734862406068201861954673772741240749267601099236066188508833897752332845525910219788754720624774507970190352317918717607941613145634081678936659235748951273554997916304728183422521561251219628402442982128070107857296416531873074565262279059403620591155070600594215095659498099571912081242334473154881925759957510943341797375755693883474303218015068373595638013413322256773972898201548826515718234773403273357275968229686446522889952760865993614184259905563097234487221701256781390714763047516619418778701280455545287714469529758082370988352116614832089346707714986138797632572853480627882962687307703496663765879056325642802585846513632045775223098640752489883085214416030587787165501044012083186063675888368139101850563620069409811952151904552641569798230504227287197192685500642572770928262104546597908039254205850477457267240228575509311595191435016821822474210737005225620733059930187387574403446720916569874622833755289930147749595396242690671891923073258136629614257276483771809637189349018732610420061443523437255310346859549292463620719594814413746047117706392217641632192718908247573824223669818708873745895325552862428410382571567722951738782446024412065595479987967898070558328909509002477647186256755950200277727636661287987190529502900189594376345227701220615112961610346078375630509266449308446257623978703850534946345755422895595797670933177306801586774429402012390212654541771398930580436906563322942934844409084934906756529258236860203908772706448969063568773512495661260768656260668151456190000020353402480775147412452271590365411265580785549673458377824816489353769043085450403144688858046082156084355558039031135498015242674304668327370226182272612234502262461369043687563195617018988907434708499556880024468948092524530088135356342959115901246565645133929118002147587667713627184856469101850726005226030263657205330789864984574780587340883410541439862945902731660163063731082369991587733755671575205030421655752357124502942516497784627597491571202802349735144376085419389486303103579890458513523467970662182281284438320626305302754976570245739022229185212341748511992429940915485064538064725188077517646290368081429405875751473318070135693669014109471603022008051922008967433519768261748353990007565937793583434096123226748048469213249662856512152309748166641563053011099695048267374884061219446631002401473885070138040344872257211963265023700410099293698009939508983964661485741354685787494197951302227544861305061614958269982952694957220270299198519693593511597917113319135908930423881938779274855762340532359102286124358629390623458891275915567256480818448199494666233279466841375486496866245334224358725152224808280875270677629118012385217277528750957614190727314080843845427573644202285455653573170240750714164882504222770032439654482746375453433360154893146086312584891833274354726822925039285347388427962911254611109154831789073810215696199721339537458611796924087296252854715560396873167096044837645516208281023395768393155221227523528470677555937948420900616538557831135378220540568943531334838682700754661043803302621994201694006061387766267126523422050935264245377210373352719210386239545094637213878022784170406275105728635184537211434381417327020444031511953441581899029380654607808188142581482117092924836671934996214143644555034874989555111973994161125852248809984495592605652159702416649995470325691973638357953695734208592002019683609020569441989075421146220697895790325175870592984630190214295800356598786516940603390611207323154885994172353058715021853131371235048147605171118055632479402601423054138345077262499612863660328877946949349272698347128041220249310550628815086820719951555424832323721897539485664458217673954630084872094698838560276851985778241378472521100108388742932015174964070759364650556384898936500266990796832672093766299176927259568555698090199870297085036802803884403441686253862759853889918754458639985194498928921907547902432221571966547984574694243102670710610434061002912895286717299696912730228331989641563518527139869188742499684678048025516983321783722917142399547968714945412304354688891462621584568590269380962307845743944829689102881670936483015202350658373376233606858580795548734471151761377754420048677539961612500632873565297807464561464966158710480562555649418728141551611389331552304147665855495449992726858882663822731757876143920555717470463690543770066277841448299349886387406658250361101308925522413210671737648026979830864370979910978770257222594907563123746043118286583053300182128438323351743655014779898068405507959897823892329527709977349316509626779115538708820399306996834841133243124077299140627432584102299964589760858433092714054631606479872744578973776553568073670771575101854209121254944454761492206639153885834795794418007522555200688702344361928891769633476369374077393697747139611970189380849675312359461332338318088073555643608205181610132402574688555137303299988468581990559424898411582527492782921598389136069359359646829430105966421537873720478161121313578132262118634845243882970595160608352681766153707998500478801741056379432022820860310765914478809983432532424746713589460459543219875457334603723790307301160453763780298862597741280851949068576421119108508875577889545860520647330260467898261618825123409176174586078388463108224958085158980478377043166297116542699425755520645321295574020671493710262054822858675574926928851200646815952229664935577573302077927534611192149543400110776430008834892720881804292004500090915682440298136459758655826704504340750947035928442966248988812603461795167956079762127114045762890605112115510035321678322407553000811856457166430863863910392527692878768831319779993121260887638127464130499988577112871054578373454319791805710572874206671279030670055474988128985824170964646227641744937834769091088450604141484240885461186051064707979050687665549184838287739641135022623665561114085679200382735024754557251015107641175842221857724621715245983648075800126555912332276295628589734418719758561836348939713180436192616375145353913031767698374789654276983839045679141624058711282576663621263855503134058873408119169459642803792335831862634718110833241379194158091644008168331876582724723276642205568567313645797036240008095646027425499612320394143152222301138914012447132119630474028013479788818870275370803273012551653116501812434405636993238356697727705403825171531833410475953428710113175342776570524820323398586116631475820508867881006529076740455455539060251444213488796400147488648344762254601401449626400350514188614462814665290540854061118015403947812823495771610807068080830507270308144714025010954014008933046287292358234217050835608825720459052471772308372539604506977334617438762510840796027127918294657933492796438825158586881694610407138002744588852650146335059304111583489910248697498760140873919478724231978226977492758251823370196174099561132770105850858758632591126744889778430916743258662113286807361517306164590591731203377941991313283902200429346003466314086903344336301649468421250614929283638894518986085154522338029185507324121552470364713760423598203881539655612590478177856619551166194829835111319008449228428204338122292876112433083387095068212303818138902309874909847029416230900273333842660778722185880754370733483218958471125687202167489174567719856729971496132201988659459184803424617838066715612967512140124817954061180660359118996633306329368594237277193527044766153933395893665906191363880372938322516518273958251979954097207144656837985122722335639132132886820632621963806605735737743125793003500165119369678478995801684098194353886448305299419727184844164670213301499586396815110146238994468306738075043672287932495721493001012019328803302686075631665755130194122298648035384348373476325143433313468385963929189057938285571685589437643891820802133844496511669364377695717511914705704925392459848648087789870642932541896189882169510467334438572630433642001475007436731561547896980648996190813583328583653589061513134963046665584997927529932526993020568954091239488563516898570031151704425814045363928640363628443104955577434353185802615569373311650049124468337714655981541234315857364786282452440160018215687775168070198012600603217394231952938830052669721524266342517587900428559894200843935975011790883489583254170553661260504546189080847178625485596224565928822477161195625645627111451810830177425014018997302707878779420560447574495106157979528427983338865750028130228361368149947138702107555751989180574486847867224147313570749297666145945128172039362590097733822699919490499069803936244992988332510652879705328054176411381648378956932475444243152962141022448788754349028368546109500001359582619094738053721352482580614416723504189158874694190880728456425082324084336080059244210359009803445243659274300921931882562393030247056562385452139373671239445066661165740301996816262164842645150313095433641839761742002576787009049660827004355281066429243188682096932524408158279371684361636493619760931001381810214744350921146846945582087859237409269610777996144521350004269294145235936128263766721979953040318295268693226500803677411563695766630223411954748791111371583678178992054487824890393000096517996939975752687606086887528115789927868506538034820334081076121024919573595235242885908825743510988035881702008794662289466627305453818260960366686437096900730949727616884344964645023580573518505102525372455276090340726565081821543717651356687183577858666112525449790944801337439868161920511667579849334578433429582986345030880911525842634704547780362014159060276362364870287181799671539314791830734730029059030277115995768639470895179774288923144832787271235711703418582537161761195252837263944263391031230862645291830279266418603155062782535732756536764583536091429043215131325199867680974287656119737979911386255932848131153771391887196228886539300233243071361694335572919975410604790112764829548053371049255377057811878543094133913655754912391704891251309015734872618193559459283214356634619460125214362308466686047989278215255697674617715516434049369919462300432808398283593076049891807552213113987889098863065583776991129305926475244536794973832002645958214918735098325585299755898683360971376240470080754705180982072223854260008104696391368127965467059988925014852832975550957137838550591001885634240838256246049874248548370767893915895984393084070453925462325076029741713355853638829653169617890359948924205189290373060581983755097985076541248571154569211659880333020132706126315976970560776208375582486617174470486135707655535493754587887616855530006530130781057548861138730478946207406799261172495172928146677645193824177815810483849584436164453663573430952343944937707720470476616152988050632522206253702894946972894210570563584719550699710328206563167426714798151582474360911887415976492787462004959146867974844253472922730769026909930424755356712619239611100086233868962628411395374024036098694064218568762845978120865505977965356507970584215561848271626342914110259610686891591368480990646173307891046839618674515805389869455483544779625173611717151805694284448552638365661032066725947602513519426790842959678186810508027669009462764644872241490786720547540510008970674822799683279879332322523667410639385524423739954933597514112644204216969460014255323542818538756951271046660351101039083413851898107677717955343271485752735281688941060112498736388168465091993253455119984735911667177221508033480112272842899779197487483165177508910474376630281795393951416347525413367862950581290916581285082164891752029974055764405887416433403914457699695277882768196691138779529012129982285948013699862503991036274008374220905516792621160332553800988437981660878347702680404474293706630461464738000421800059460045897060082526249131027693887002503211153786677230273591831811579766372767631601953606916347586764366846598837985901030605466285953288229526430778219533210834100609844441603151416965588965086849312050804968915473148123278758349628077989274346355510722859461235017075867820967808178935696916871618664700145171442543921086518694675333087306613181056813333729519381769825452309500696676907196008287088431362642663971351163957312279547612776380834278439733410026826452510448239363877076199799449141287327062526322596960750352917091280085285116022465305612542259621770701589089362219067795820205674994096362580208092572945258731391703332469520674594262334428282276530205206953320789288049988137725845789363966721576991417128963559184406286718462424841626346383854143569086615011299136108352092066300495211597587615317704837435643695954629456005095588336883215338095227392795773299001657275799151744107700804927698692614389072040867258317740838920962340537454115013592876370820775459518991634455465084974360915739588114242456576838580195008075672568699184281694395405843949546027461877471940622246681531329348112247535247657680711737101758520657386762755697314995628332272761058904687699587006041489233504486271396809808964310653261380488302034423723251088893359669859086698179044645215000182717513863425832545505139878033406232053096673163653806654321818879254193630845176998064448846992774431520009181460790110454481142456395052647388633631593700000767693534532518420388414475704671333662427126977977557483140429402912004542689301240767659868129269977129232745325325947321567047958734200922899407318318174411135090133040437041749120478372865359567241557047455744232879907826004100700789481345152082467411474325989577193858842470321990745575116412174454817642962783382420341120946810651457237771859730218534550261837330954352004679717219387811222738516301008753515116002024964344615119748712611121757675400449200620855959068434633818496825343165619343223015296247951891836910113256540260990130774535246985311194980144110088672402357626709754960308598049910213871476506157496917299502344030321046977826654368365043407917004558515827440140827968424971972623771776381483034267522415460766473302469030662165735932960587052487559516570130816069225242986708182757248506490380473919657530510231777382832596181156271960049333760892115661353843052944650485895610832105124425691930386677925703042785325546120951432703585136241461557202985226580040025674287155171036605497133324765741763906828424944882979107205582766649758550309867682405661589771268876917874644332455269457434278636225102369013936194926676262807480601740799033865275149059436797272258661054313666974010130890570060705664468617482567680007675628781385543462084324637777781265939345301073459059340110317988476795526742355859521771843770943587222664044388163358334423422737141892102553155020002273063553486688920934683724625757312119171546040340488680052339713900789790018249528775799981753831941052234926028268738102959725016408188765988426791566332110523176673479156655468021255275457057303887280071772366911977547797789706676818914871915770303928048929259719180053185888326763846514308470829544826450650293466837614781797052669555875856548289974241081027140221990121116369632974566999747109151625705277667407775592287846565685347288121222041677034019425851419485572065252777837738654041772505443142585108339716634427957089281038503626112070214474817965902141468331875417650905513669677265591187932037977199968019824010984050586313198920293723172812612381562783592254994111322372216468689429049863504461570300516306434449000901516414375184391247498404527408312674614389121122077253741194416386597004674419441324242979025758890377299190545936503424541735708444336463685699201434561563159524207394197168554612961603828616253846636293813290494062449811415200615310825722564684587467621616631855817046242125314523084903592369310017740869301846496566391285868463082599796342897394858664637891509292146043883731851337190459166935170022058529104615574975000088584076537896908199742896071612036028223643745674411528363488491155911778828636004306885003982495725896351787123418846205263792235204698400588243321893164464703596498333099887170047419170400366514488035815211006370854208047620597121723591676687512805557659987687967354087720529625161597177501960136036027959399111363604812254517771627932670670617619256282454486120445238173523560130714910292232371565883999605575712554811450442889198608471371272668820324271980756339509159698852434362908340355273023928737109603113984004356811423075513642721383107223803836597474519318112261785660934144066041493597028654058012420925756076648547963345765216411798354623325737761829951586510651780356407983210373132416029413959471794029720539291408068900402360814033496208598534352016052142466904831154995116040620103165117991540481672264294592882974564396022259845053145515391381012061081911412745165403486799907946079507113157907332652314377039961352999607492547161390032751087058689508283593695256092120657654824359390412590734212224271399484593930427517878271077964287744408625803799402498825412346949277246927589489642079253183753358164121796325075763352005632018716012148502264718461746146127516678223686023901205179002625745055150586454744765247475447374869345897591669396943222136465052157593482063082117416789717441321136070688647688448314897631678536155344554365394831979093924916126359661726737688313891810403012262214773802668652684771978256497273971392461596556621153784534459107473869706013250731486097064636752538589886633706284796412391332599953142189244784755750933978372172981758756191017235808592769190170222775240718577161895562611105557413734729318404890715295546062638644959446292156411332340529264190674259891760876667079285080946373043038567833992771420945861594610767327135831280654351848517305145086514002835412491320428354149417138300188388161902820102369986107915240677692404243262047832766103943540525927748563997096404450469331482839703777526719591050272298843449798754786028742425903228048248468987035184248936630823898684893649554333146386772079744540062690830890417149848851159976702616148448294177407584220652343802321971423017785802370189037712820706521840257774460625952122339882444211768220347172414125541705263470802058420554731735317437109449072815746421826379295044123979368032432525802845974887696294286652360401552008545200127628303527342886238239518094942532268060884234850069701643428422767260518890681438609777236686959663415050411428948966137138589750551104844271751744898627460529893536628546360699068545129843756520204322851859752629406656006913887111622966623649440337291732390866003258383477553959166595743492835269571910687299273155756312553559862203050144711866090148984907805519758071226625811020942950093182779583537186699065387757099566005686982246204762751729705712823360721750626824757065208420571893707577368796354897529060687636118937347832049417370702515463417906634174142801482761070356941371578515048105794689202608494606160200243201864373405107040755951833062125693468106197796500630177696181094095342417546272800652323252646008149316642318448166368858721660072761768320244365617149985030674955173635293320040127848899424248155033923802901117383440467161957974974637157871332849623775727625638274955253300445820022582448633964674983928463324488985819034799850489872340876460936495153734984061747874666182408799681296475227220888849340985332250545797809048020076208889400225583598333847206716982318158018943388070130277995342114288137522832060140261376555756240787164533746077483446876344157731356954411521567155231691137433388503546628932322128931899532463252987000989305687513116604406436895715329729275250748589313037102988223048905867164941830099727889522293973905866069929059739024397619927623143784001995193010087473539987396568114489119954235344641810068106097117399072015169960988075779659633809076673414262350865812544427524095782913645226928384956534408550497830115469983686085265403165342255336715815537093597584986699545311043154859090690456867385742866360731336399504815973860396726865307530924774228033890155920816736114857358854742590881643471268156365669037322026760298507144252893139257810689456592598293500595512033777703843555996458779779675648520104517443669825572654494170287963487693856962965210883777304158034961329244858411359107161232038099652015265330668351283758969522293610555394343086136401286718519491174265762354288568772940518924652633174632735424326677350294178897722763797524473284040942190225208342417519779860572758224820653152695553859829385253307123816399217174207979852300728203108993662148361429799935800419170943304148150563850404731712328181084171977921211179645802107437310733970561236380009756175169477939637922961093476167400461251995112492018865280322751278873345910387320968876639140565119932617324638096378468533881599423331123185750481118684102861542715325579993999409087444556742499209512652019692177129490928982639080161147306766765180830555358526689916693988174017964956324888144453971013209452281410552351801147548309850854708602219584500435990840053194378875011073780971916594046302108634095352752576329384818190201555087568520688672390626316204923520172972404775796395148566185124078991992056605301469603649787124097392499011140122322857308413111938043761385938555217715876158986787496588453144922725233901699020554462177352384832076222004833158596075453599087645603687063210119165733085459628584729581379677027625338064583989021302688417019210268448439261291317107546860100220887588632776487479463844727241479042022436797004748165691333094331360567380115194525781635829267932718215919595644488728816473945658379550517171621325160919888083934614058737299901008785033206562497401481544764873829418994280022184262721466229898155489750431718544603623421609679048897316962060625095929764248344065047507992569470453034226399206904978179675542858788035855932301324808843769498048958892416543360229905771846725685766892144107621388895040262039223002204793895586043003805528354126358754801328848428847338132092018445982266628320564824285673683482229605230592195817204888159456516974782216468528080952378113420206262253005826923578788956957267190964222371613834902696653607673156047398999565099246498684174407553859020294435246907658465143190139908208821496923456419154405618445488506817065785743106615809976906920813395735672165922533128993677250397418758295368888816454533533018613387349933077432175622047390544543731023443892212451745020415320635439528219874048088421595983286697993292014113665677585214075311072295428986755788079986119078431940248750868508936833669091674194430224314333262488304457016365963163880272079314704367122114395452701647479273547780538354053907267899542296824490534876493324871280905113391173141597422031953596809585034579686690741212745065027336318798154265489761937525398531398533523117373504945635686364242558634842467951776303754200756768637780150014575640132934479849819571681010853863714224578735482654967734817007307663562521039133686890478266225421845339643240154951246657360070394630232459252209203316713515792187572014518851501561097476357482088221205149920030585979692138065321810920968861705440194473941390493118949290082598705933837674168015310619561822419303853413599090458318732737947199037155088346833012335314781101443613018009956015276452092050701841741527225264140762870004436373251843998986938532235946002497705626005166929624514323781966815361767635508050060754371580203369228812784617824494709611619585658153885576440922100958397201711611983113815900456780323469536658513864806606161675134628873171104401790563784206725227380019107947892894801975055869461334776672017771853817331176831285421801694337435092285729526030359672794358358310134082989127439762516153814522240981534427209681853611745003761027930759847646455154331556217277320223275303968526050894645424046818116878328024719009615894651052564108801970527031246894093348918254622216547044749219670109387967493248715364184261140718955314124432449972055404738736646277917362839832190633275781451942153230430747752972667843173567072372446356261978091302447023884190585501854431849318949571914547030315057366773918127561155274394204890981342355980388404330841954085413045968318113157981458279278591835366162689965981870092335127106082271422688157767317562909467882047586770228210931272675304678433332545524495034431406928384756884375560460046973591141406046055506870531162219763383964332923797430387533975426890441345654513263487000203889040521592577023602385626512975844063444709250641059400169153492027664234162536256028045118998150467368680852006935168158681604912666449186583273077912886660091398327401655924060972577793620781522337551815777873762057624935412630611268748103014537521085781552925047507478839008460223092665925777964994162966268033675533772615712501049426948570207310380438742646012094556452123695649152926442846328893287970572458591070697278448393670368389479409106922431114103489029137462471877791209135375341618008097359505900827889739029594009953432375274277249760781875872144979808809942966696790964812532877782312139066181988485512325140858087309851579506647338169283767033129425649355109500459381848206411778243399020665985610950277964426921398404518892777809124969314251514534242233310807394089124041534598083409154712031866483960053618376248851177862765717800850899717739725212739615357893299112027796757555992792997977301944622529538197030204010415948591387317961245966569844587482328520254001375996816632657952238907239779066410571157057413944983786976225871708745133173973618661308293630285632495745599167488645174556482562898884222755670846987778895248839879168931012459060921275133226271175274205543532410519379445452425109128776202476390522646069173437080060886192538381065535999500142225492034184698202808624386549489628348937647717768517513232718677819415101473391617670968860227808339238974647431035085744637853217589761925922695356761476955668136604493090450972998338530920311967039312359212309944213078658490743752097046466093646533895485635141901800738358335128149748080979044432400779358605342682165269156651381072849833604587665874535446201088806453530558638685683747784363048044888821785255892674008933369662912233823252544057529514374085007231804108347989360121411265373943885318574149122390269276182780103522794115155552904895178465106759199350776467346128672539006874947415606240526842257936698856389234497656705071218236860573367706803092294243769038533263546275426545296642196941627621527586481179092477232657111512046693253547077931012467081687473065899450800167304129700719678150363604360130379693094852965489339354070349619434373754768970637058390201338112417701502125786045284207161366898400224148637348368471038508895443102468709984776967383636408221858414125344657618020575149216863739498772682805401253629685147312649503228873888323280933862450034617901167495483492589730528749187160501000483857849601199966499300011671847915851927785036314825301827054894910914883034868995342263561553458799746705820471715813573898744039871829057607849817968466736655927230172861316951724899376388529390179758995806601015502790154122766551452946841015018488736653899936639477657124229270206799208247014033706450840745480533221621956763523765739563047695731522028854103280317613993052802178666139016633237292355880289902474579454227117085489881824352267216137859216800517357125381654595643026619547795915969589321163733891853624691636084118765345532700178593343158171806196157569607948707943286803910831093025720589488309387317484503965294554909573668896222094513071570942524649701769135999423460741191273689205960443995026787224949514928722384246580884761143670264017016046716933106964214223347881420432290988693394337781092301054264758080471952241901039076663471209538465694653696936870888390290585322529099927288888940426744779180183059022762572377730646830451057644957769892087926595417748248178639552507045577888509116875495536549808424512145400206450065386089758107909214839787884661146707137912174342102948773137664584955444314381444691421743255429001312581607022446657550920474511757140558447392346118925893285606901355845946754662415060844555422064405440093261302175893471299200355345527320846378176811456412667418517673401624629411787431674074135108352076960523674454390238906627153434930764933456089552245632499506890911459249602833518363158968362217274910448071304018172208696963217153937617675448302487249369580168165913620685808555689993858673996096064378134716286223994549371836146376488612181316813469314268165150558982223868867379122700477989177029458520289858083169197219205549502343839192717490912693238566152018240381465958428855039681322078843518912127379455774128518888515655443664196986753928402601847273013365824115208732375456406969056631976285354488091371885166209065907220314438431161745617526260420623030520075454001982974427780342357731913619289679851635914234267197023155051935292629746472011300084934270496578307304169610061764164787263941866721948403424625145137134266558150867508179277074432214066909266512493762269454801878426531532189482161945214843051552189769512652467686008843232911254707603880415714194191764699067764189393002467998726599308297002680960374510181405325435150278221142614174742131321485569950279166023171649525856043152097447551347524051130817882986710135366020577278209934150154113618949022034720378538358652896660029499955795790494670176315654694403692921379730722638486017616717359165573320256496285069695670634845286211317475398255727924315854780067318796560867237987419276453475371620298643650682419474562826781317800490155383709609496623638743441758621775548698167062496356120208554245197583695992359188659084903725087044000614075909946054088465489490196832592383246321680587612166342260789099911761879631634730292663419850658559026847972555928145917852965742284545263380842555851742829957750851039990132553087250597537647533265600618396434049987319306282424628249482984972249153793183920853135593673830159083753972325051175895155987158326865542395529625928051324467736715344716094525205324196368791350094382434137128014152612326173431895374053520563244077039613249636140921820509029997956167740284922589083350507049214677725162532901972167791601184204668750090046890089326173051394658107203821054840502195685258782152446010479926784292105953228340351177565338621419607004855690168378282235338955233497858748381336693763070354627106507522692959283042278745275097389816871734197497708995529010798438065199926519334049832813767166197407245556833129173291466120842740863974568238035402244670099893105190935880261778308631196576397316701282365683971958659867968695136419995111469230870841890882005129312407291389259358702094829877173545505344368425566670367561688797283567612054742731368085009861650006371967498770730022485424229712133373549935504861418227559020814538749765587911046835639868124473097294485924157642500083579951099370287704389235449376088771534581991230367910385579486516626314772016198884662816860250859354221716376394439748823604264837723181225776495129901312027515941211939937480516173363028137273054482396351180012616804148991460275104341790533991566971235702713873162772745152590577159375833167069741714267260277715698280273555733922741351413833434110890153154160259463094023291996560602125663997986677569242210932913603105621157085107802320423094757992270651430048573475064801671358570609417017344130116203741010491264186313949609864281768013517513344670527837202411646332108952930088302871061606383634169491184653685353255724844584595786194264375158738479236789848890583834901039040804277774264986463490190618892740668449717020122443632426930264441841327297581220032700314608521747904785459944864437320738638864279957456929435276859925344006065001003153663032086947720537579763933541845004077766010676147136142354074077556324700878333487756338069133766818875718728047497612562778775124696838887739392071827708123154944506427902037930702326672370936050278056754280414791485565033601462965153912861904832592801106556596987132056492898714734191533701479783215814828951114623880820594956296581938554806885420286696509645876517532612865084317265707059097054590423849033624787091855936049844230516434579802116698133241739029262032883027424363424517960784250161745489486961848680326501890957786208663477610049558481606298738965829038483129160279912145365549622269777390057771249954031180781314764667249611025511723454756240768923861940624803265447880836707400556547853571194718374123391953761451903094246357574556004951755424964203736015853440905475278613538311176356099473853490420758499304828885973269165163823124887846464302034842967666194920039658438382792150634102722210555817508019347777895548715500728576225248965348438639276836834398011205645035253228138936241907153746780104808328015987995859824618227222076542823913115224345603761482823539196886135156658704575436105755147674382971246949382453981610279445584156345329149090794705207943309061966473154982271506409202361183872760473589137551579029278150347263808513415966858221947816114307127849212907333668948844341978788257762631647874096954074429891894080631575656780754027743364167482253007637638940191776312253768320808543108892556667548418723198126513342302633726833634070447897495062500119642078919519391206946969406615200948472860795450357556752707907233395460218999678421071889674946119322143904765152515529410312185517407269237227884532140802564178255551462921442636079044633250915423705830736685111876624908383741474999103462029327729720657199244015049312248066345436251826705279892378123305545063259647151118751576783250603850192311447458645031119531170468977591165280388775038574527805088926386911489897871653984122142554407561484075310924050341401843556827282879350175734573266645761035136408344345120364701814941727049769631913578309124573040186029715393321692071053570698602405714198323166806238015529710492468710267021715977161582855154168932415949641434610486110235025456825582616523073346769625318078157762052257412911146830749026869635325184029739853380396792873090760976356744906294498965523902221213045734967937839891893559567542922221857146458438363891288707897404757401690151286452548138541630972152120328332538733004534997505100383961979769595325341662543260642903217973929447695437892636947720106267849916975080153238210402883750413138972514046205037451164801202726613113668825760876661681571374572414600481256958683489620354353449183718118164401753053719300991260856724727215649842103465240690527230818394300433378231846986804263037839889472860858703563704214230803759005020697223217559696358853821358684054728194197527898868505227196811638265490032673650563217906109353369497777484381314044337306414996767194908655479862841809510451566528856913640939748460047301405139584645816429207646796994935620485160849931156970780736416305189269305316757516532002340700823181832035846616046594960012431297660134990964036805099792699141081751175707955589028108757870836104615523523202246370912635566817297805742060213395637810026689834271822625035865884011715721150455771205600223808516296148273968824973431689587170448061446214749118322440864424122567511090388682861088840207785962833593120302239741489131377696460236566356124545501320204978675769018708948086197482084518349999090376151690083543175301787793411412914749674055602516623454196104779491497202196981992691547324017264317730777947598448793935947929919150437292691265354889681332198659478652135493930652588583716780605362250483320621009034399969001771027349245458328861917877001786069883943204833451136988222363055214141171968163991201972560215567305910475661706815683031079470756251332961194262511047507251732141345921803036083473873595339117594692109956751397262944847145125892810009361189473575625194156489508253244262833462085289588610286998665587528705988634416243499339145413530538486945380228791378099166431620841713370784960873438058732473506511539484230108446166379628044528409555276736118812568105358235619563524492652597339633619018251750584201806955287456904502365466456422915195453323305625199847794462930332249397442838840317105482203935520261475713948497863185343085855144805838923716875819013870643793525156496791979051168632887133819209820807601946418227062904434597756834613081147280888472817897691138059241523861497791455907351200566435510044522231657810302510801909126887290576726481024345756034362478059255414567181768153190023856800656653359344849459553676765309813314818379121558455007180714288183500876926740230951007844516837781020679906246809378267714456398304318946631119318404747513790458411794779687207000489466882532418672349239420339226122890636356440850254153259067270074015734084675601413776683671932127697020278141152638486171044061891431915749414225038103989406513289955744153364588312395575762065554539686484827690532002550627505935310314528034808668130849530329631144632726987508772741427202641736283307243907516915589611662562155447981474650625584175703357967989105488479556023962090092464571748093173460089755598156373649346683721651198456453390302581933157965589270966805671831182584569457383709008788400961608215828927067780873254766796951395242025915342017045881223924789401960427114364062534216919239577605315974046258123034931456653497551230919979658149272658769322498097200049462193728906155078754403528840355768219295318333104840103028092431866780139480206497964788648734366707795307993108833800895143819459611084887187074170708203268698542438970680236503493629817888051965889222231176412760599953557267121948947285402417498230243180479001260209332468182262275807621887363889870905376911308471361241738697324035309717027206341689823707667943286810508382905540358535586492267023263132458302970273553338597135691268703123526287483943909536573338648314765008984410834059179558746505339903604189832856487582513865177540513507471960448690361062491096275558512161799520526842284629249873305241965428201335453358422635542051204500848129891155604764986736929039731996230127506684333645717737810859115755072150832750659641399912127866220225639138222825523860463139396524363865646316745605508679380232747733880289273864791843597534335601711664843288879280544525085489691148760060013243749583324884496306291056458904412291016493727838230343836265714656381326075839124612617374088415047355809643831412951433675341831458902127108652150384455272696453400069394323663442239264997641517410817403549451165004893492059858542176614080883782102269655942353911565167367290048231019874792943003043481994299349865718661250486277990850827661670368777224270043717486799976968956854327733234679808441927155361589745240293397335107718906441013267680206684324668351428733385429084157978447012084255417475378766695390826207861518116608364076591973727294043794304621284464287358217989987244759739844426858882181224616843362984862330866367368294060969861781394365036814980121945284886791932368802974119515446605876110397535675149034192244975252718020701700061542249333130227639443163635152173146364432948836312520980965301312333337385029045932136427181648256155118590774005784556345657673148212105543537533222933046089666680213279194628705764427908585158963338900478357737730511036712227464394364279453310682823922334732606418587654649222454227990268384080168350729367871270011466981483859342499307799509830713095217598040499250368454843937999504708415217640357594037488164736365078792774670312929287266187989259244491524246819792579535409586539513083369355492279609523852809718029661632099695103271293178937934048187685152677292271452151537768949879779233917971728071509970860174278342664224424599979632001959291389158482413339383095752257948795181691111997210375539225338489329808557989352187406686236425948136121691663395092851342616726666291111601442853548780015550637089837849165134731265273773312196065811828372070071271993450869581816456723506876572422587026720107337060418385718974597236650750385978852138848955816175129209152161610984572597004877770424047103063800705473733403608076566144492494661594017862491356126318100675002211898117689720400453405491297526487957883053202357200106937399131020076473643559250098535582269119976898832505357896199666248361856827166566242800371883991498010926356180262216939772927634119022241683098968975825865073648775253784858251711836999172927479314573924405902287292648162311214239135106397446395961045757412068511156649497493655426947560422732451537143141860644642895650858438503279440220014960969396405623556295391196391545453634581019505717112332225339080601025035064510821592444844667014817465832909378962258759928486000298993249411371924040899680907288483512677060727169616739083907782927664262402855110854501674724447075263248860242897867493796491301911311509824176280240459595725961847680787422176322098668912588228172334945979525613820747537229227436766109842705302713046114245328077950823116826910781259430942076194347464334356558909590720692054605626990266305216928684056641385386429391858925101269290473076842639467860599050004538926807658211407117136389889773400548420555569013113923189191555744896292582836285678719210418060963599707400057605107503417721756079240406715183351616758760433548094916013170673248084062537201160062365829084488855296100437792058169318777420876181599457922634390279365782925220017910366398875489785803107770303876109097985323077189165798195032828552424528961137335398684932846940498345842044201731728985384541368720324571575995595857038254932955596277261178683804410924004497356988492582222720426556726337332083970097244854427959826907796803326302356087026053720859919675118032420999982801255627655573442041469964611987613979869430172958563838768711054047396585234837538860141227141191817459010481347473783944728292608972381567512406556486592152236651334937514075475984891793640199137459386428071253378979571473709297446528414045210537548503573517667773259701653407940925906301276627202429283577262178152337315229154867964573830286658108965168794160047841967349103887079971536904073605269558950370248515605106388041145236640057336076417187139228318215738172220924302764186776321003223294873849811989729108533191600879495245652542944969610776082763171753258482418445786562422462631678588509620168777286166339440715675428111198533069714433654761198377298741640912420529132167494125062688863520187570964095019358198026260835004971920390303537504101804977894964987720030307246049654983808841576191966376441277878488176939103547306045406113288905733999550520668466409412918470615410607653681838783035684006542230947027135071768387137327541701271092168158494224690773607742716028443363286065158047492477052198833006741513773578508794830555686352362262274928905827024683471924723415053627010739570906154317526311435927809572108194105411853585362220469032236524357497259257337417140700002015350702650300372596303479538631534896546784871902714594803934683501887350599756383333941518631529191655557893914362140651677249832554778057894333681320743272534434050362033469614028301879961250675175607356221537031687347589919114530216607794576348971001249953177132766261460445566721648305114933824890973215920072732815123005905524968493633170163196547002304101580205820668986381048847488031645443090832499730011973802532416836069584461665789341740144400450694328987559854350508729360705268504599204963930440546466453454119543823703010106661912443942628963941392870427248733629542956558002459460514880652526895566734081923845849768145925654972752708452799059244633953207071364521994819022988514822180136605808405679042309135282131546272699427921656069963799977296952611396066810419602805653493360290649895855898449649432398750921814388544510211665997897617348929704742490980194826691780934903886454912671681733591987880906672944531628264084751929289521724487636213875666546324367922601941247496913801596158948241952619050255603141263869910384726772935139119551103534737831762109723636117055710627844763890409616371840950350311909605284074949684636179557319773534324627447248985524915364909282011513446076351442852034601490374772733420615586546958198549033078874099108766359839912004673414232814198912261575957412784520603087733082084631190255569727650464518938285529866353562663138801518983039694913451463896330140106356505366992968085994596686792941162835490525490064057280409526235439760965204666093840465462861035993916951800673525236629381101866242415121081369988365335233553259344708303245768212447032938862844004819671826934431624528550814883561527472473116382972104763493800022322644470923693266415273550518334609805755772022499350776216080147480291369797131999625673992159915759752528532501119943759673945401970551766147856184292541061356500124505477306220077214986244730493426723901316130363179360878108854740971062000901684084681346855361468503161135879334464301505654897475051723748472393487676883139630118855506021190030826084906109571523917318014884988032520302750536317529667854528447766358949131319874809302693381945931261812046380553908419540983867521359609507763638521858387644954339836288723858199350958588308942297443315404021555840996723714370089489723590223353651835631652759084662097164841779172426987003760618551114971498015478196645571916763436579604728545660446274776610897457668980514425566822633736773518454016339635295071362246128994353629515380915090707795058568787681455116846914983799477714614542321563529343500398312285542225158720466299333629687415263230775136898089282426375804260176252277707184588282900566084446575981501701991363539878954274453867961979045274576054763487428870841064558052235893340851497999421184003335017937397246837996205981040570564318952698002284080471583627937694718231773635745905346917177843084839230083435203610500193271457458524631032767771448502711952424972225496900039481444423712226246838825752489135850752749690298349239864002142639300273799229480652249857648480159846824675301141385187025144408644009165174517881184804300262422395812954966370285965559941944189213708760200252431147418507527263935267472648751904759829363878043384967753889318701109713996478716722918403718615036047396800888833760691799925333574549679273260550049329141270585180959298005114713532663935488519671289879850666473631610568517481510725983951953114602541078748494693619314339153203705874737644981528736648504768689814549541684126520275904608431672940969324991418958377980690088024054068175271834616661089412649237735890233774724634502829548700866103505348292510532669162576742655225179956585455314446676313592410841949923233493533143783940365455627302152186381596405477516735877140840473542505673492507508314081318427495815886227481489533564532274807641304667634284202964055813669207346064795731318724449026362462968712595622343836765384493033052318774351814206949123284988573134121412318938459474011276536532223143322442367633513409022014218799817760179242801832501251095106730278623143367579734972351702792664117588162807467375910500820717261292627520271536005941021073205583387777283746350532565286932152465443217434042614666992797148235612063454155220294210041814164105759864131417430215334396698678572655198952590265149803693470091177716273263054240707429297760687455210271592496250893209671987562189728493263192458235028466365128111926495833231248075087221245835999529930714464623158074930207378667716907576312001309444568542484584685342938071759440888000744051245742111198743676667405305077918226814489153761226567732145273621626532457344688322453048945116924966821150481570561708197524540246660751618476930792642117383069313448989816198506565911075654960062798234283196858322348351509052248224269716667733360350159520684170646758011836861885412708493545420508061150055844998116306308028307262431947440099434268741924568460344440282944703264830881333596013460103659632311033326939775727682645916385167505343793939808859711172968103217006769850692399562937652481395154731808916392514791762996838232927649081876641231063471191964675148045601673645686259647109649086989009122454543768519222127929082898203944680091126735056081885755287961428079575474859587352405182950292733631476293713934600142166674263514407368507063633003684982453345062961333895338229894311595062412483159218109638297217530042860912462031877821370913652525099369393012590149775976817166969210478729995282804018423982358688296957615685166072016732398191607238095731458959093271676555688594735365410358287939538438370343997467964179175721478896911428275084333421949616403040858964942542978975236498166057396171108735387367703337819920508125097844885047132826426172196276913300986221727222574212582385463512670719524281490795741997747903220860767777657352827171450008286505650589215680567923224770479470802750673329016558222743897741861788482132183468518300604437084065158572372769946747687921425554326248626071720540304866907541730390640393305595131375277446538998165980757665431431691024553877688613161992791180364194826575740225393161258295003560363261590277291611870431711815605772678972146647161012652793048479586610132939171046280842648887932514094730215807212389286817775685205432576444285705629559200438928925868291092179065557950699821005278107100257858306199243929948446590347399292485903733314311867730396502772927434394385622286661137248987230389382905360958123585805862782699342751868869821452376563517153798874490852085882657093213115211516104181468448626438375667932366591731330181212430584819809889163779055126156797040061833396190708288887474398587836483274188668638939307921993137470795003373179897863802776274987370150672143705529438066509293399099811938318391131129923594928796697397409594030898947538684711980104273578751780338502350211411108623707971176451786565304535089286807176536625733363598756495258806722124727096420529416967667607369393817840417983757139579131116489522768468342389946298060598540081648727891444781097230239229137875639386902433270786473717677276300367890050025091946675261401785271443822070703084407829357579946888434218694739782323758583950143875924290585338580820373168360270270629755560516176813850356403594912127780543248449663456274889916719695860548903100212735033699262618827172672350663643419073376475541780135679493059612461403398231599684242451380333433560514971676118254812867723979270066952715695764438873564613026105699590705874964707662174057430785928462223052717702919091088544146328046884745176842109594058959978872510051496547929618081245096418027324436887873286393067695556625445501051956690917364478718741537088600479965518703846168337907186341875840345216030256719747996577278273226015019279856696964833107177323611472429314466872027914530174202514147251475629926582064232081983165589568272603996647464080679871914072542485199744553950449889137022431733702178631164630144037301913826049162833563843336098535188933953750878333030648963297184492247112522238348069670283821461337173150884140879800257035303297578040568122605590571269534326375124565961344184549949352620466082165595041075820854031184425848885642988564856447153010597834647283087424780152149527531120467783729832706742902098879324835608332864640472945943593244195851981288219363129067127793529724270110741463016289797655268432190021235319061578384209347236570014656565006265309958769308376143799058017568242804632510222741441785113533894988017062830827781218152723894718543455920374990585297293432623426082782719919692317247316186854296682316599697141083474175155906103902170799649833171050744782879023209761685069095924795933816674285574551125375883642169734927945342789012695448665977425478752531016831543346106734645395159881256671561161177250779349403321738388763134872454335857181540078007849419188401084846891840792118281917904590995373887251771785114915764740266405890800970975951912474944458168597428953842114749347837872571247352068763704817713377745147041495390582035663198990353594922733218952397166482889102608820437200381975244925415641455300325984701709517195846204513949818200966978881308843132528148527317771158959241000879995462223885411707652004527125971009211532392535878054829575003947467105970633144050249302236851291754931412627526914971169840333361165081765539346111356546524354745442458898371704332822187083951197660032665754258544698328883518598287171415933111462442225584440761045050031064673900060499568138735281377758293212478198945532080722806844486285097962963249795063612070988430045803841856726555152844845807497482863156753660362589192899296419273025310766409746736772087665148866032066269307878263218773830425240209541348561196358149097358474095757376591167801299613317595083449620007687607629542948582182306125349197287976142540598356295204781812177510958017781906600916233717310622995048676014434673509700240982001891889914106088500557936496840105206931608537324251949971695769323335269362088920191962123037591191942412956982905749415871250185462460445312825077664630834374965163451993238007244663099970037910508123500903714508093213534595512704389687282329939697414081643474995195746991677896759887277981837900952917856072951811654728448880107227409381872255822300653048557652507907855350202806045281134548688477621185986448230269189004910882448059255929843908565087961132543905385387549927298370506019870710232861023245753746750554024652628274951232647499299354884413509599025571338147151793712817848281107302455262923179689852724711914275098289458942531777756292517142881392174703148323883282054760797588730909054764553038220578700933423227986521935606730297494945198894178852376691414340711078225658871909015677666670532442669002670330971351526453154612666235408092895998476099443917798853735963217076013754556804155955605883733901023750542409115218515556171456208615937538238099537379635647114707471009664330000623850849738568018953894710095735814697179194239388272297469652226020867303060060600560111792617603454886171070303745931061840718968587421267055455533918131172780361426594474178259269344397079399597476342909296921398296123576745722087202939355147395850117828155982227461773460893341082748292583094820748573367571806440702010288959098507841711822338736403514799567420123351474843757762519164005820684607594837387407221831486806642077540519778291508200885146113496335321194257629656589871720947505091765584752971446873197957689501446065875670951413300003518498537270595214229287144136496009263703029991751728057897957879439143892709110578271710147994048878273786100679169200145381291563274547455428397279040544920955289119224008582761375686980296096557637560536281044862794614647209373157391732150088333661843673858461666189558706160706779006251740199934688436517287821641153548623955184195820949678346234208890397522190862195321192176668934289235354068026377115147134448397289795828133355651563964578462656222314515380042549326255481888837859435869073942539851667155954530148574199086826721960761449318541008192967790064560603020605201925626755650412231084832663164323006359259773156903497091244257222181161187573625648827959500077487051445856753038430733025338871601593485954806908458948153732097006948253335356339632357340045857866822628952000911380218181640165862776577768664871307611984549949779527899376921244158611231118929228283925996367716238180680821033765667759211121361854799564739844270401406568003320067291908840580618351980477777581849899676658638924816120020479443032503790888600747004386313084237716992728852042939590270952014385140747382725414107278621847126662891164831664755322259552234679382076196772025954532244823766942933728499081466548555319843758088851566992169883661142794093121011932601640788688928064364908665127879411724721324333334459081339241669908435482454365077234024600431929791296439218878722269040013701109344988683269200592773671718650632530122528953532304883329088502204824344122031391412610940861856384066008709979824227054828590947295481886024063852687879848736309771110444921335361423193791634383798833911181076685797172748345864157200739659552998089524418513321354570760539466439020205460941546076516049298034036539586009418923507058933290082944674133755062129376842680605262095366269072352207341535477725287444266634672529130035717544007390060057283951218472545985970715300455657768001485206307852135671318628893753627028491217897870440512243102017102515091921519176134725927449575019707084966703387024104988210478882061737060415868226157127028631457960750757982794265683127597606707347922484279721403909402555943784955786433635351612262410813106296913060666143331811839500847775012730250888880211525526223204773986768819873012207441900024188900555303507190314577279095677402904052444810933930389896036767757463471703385602964306892843145455937369197525607682636116544735163007108110197541167131072045375494563002341123676602476873768863942618714855665788826277939435787953600213714225661148682594630907026181167033135251656657649006939984682237067021751365227071219606657966500863597649167753820482805780589363806431828158871164713300167249697919735224145076723171430904426809365520654199569575869334665961223031988177310737627537025001073430206800986980356224843389921218739135846208773563244533465789224656120499541287223843596551669916028620411185910851782251895093071598224251006813917743304693688091876629745962301906175318550409584664874930028591202127095094887914844473307056434594597914427307441466633247757844254416260168960234431493143726562557969608704079480529915249253489579755200777507623860325927241158667257952506655783372754995897512615243125837007356822638224617778197300608325606153591413576526780100187408046788301113581122774947595054937030853380982922415548113491785642374696091040553334983946036164391109990811470713994524828721010019085708338802520223673689554602749795917969714169309063340135708039856861794616772452827818723405616517733958903381165874370283936764978930997583676154505363630977984611919835987125001192408378874532664117782303258161732007713736516958708470774396243618328725797202954832612927361320537671658293404973561787047071978867516496803541847374416691137370511388918471713119922068969210120932912188294515616247890222238510656845311101426320810967200909244665442863605368373009821465841598827150270429902499566158021765418759788396341816284253668356712897681066656170952352124878597925887496930429032048635429085914904021653973149050292404506936315615077427650481629362446978391302665011935227224157401439942565465032074422161696267208871836602666223292983462790120097994612211259016247385656289135518425830824525288551008838908588306047903266058222303703815559121195763474595005509739839151624523104095367931623941912940050001608152349112046977913044160260790402754010651401071066420853912869640305841609420053313990396839924872732254889923592098778549110448218194771958531523348326135493339956792865121319091939076897485693446084376043976195776801862593977147867404710047454937643283675391352328001530699132123665308673378358058179472107160832209129558196010293489015581592903952273259833468302496689158348912290720742207173755667244368090991945594899353431169861728645249163010216766551357614507620159503701779505195524993366367757668391084518656890409158120327565274229791850375524398402327254521538572746390491224419414815166732734691845722474546555407632050448255970095331350947337414282337828371691657757455890650415112349949280243571149023215344743392135583720291935231079801383237545633203215112737364510747428263650941659020708171184036749477152440073727405678841785957494485753897458663123691741270459377229638152601374151596391207298022288419683968639693209760711110884929643381995062868772352685337337142408085434931926304759159167054125259681627129165425487572309133843620122435843408135090113779634448087851796069695440080416461124845803909124409534238741294482132765443253209333194458989545654321077663693094733474060916020944057965683328823817019239091367602087720101523099886578185503786390879341692325237544046710663254122524349233692756078508595067334161329505778636093029004772350718348660554201754849546711756854015579400298425595602884636092568484004059991250747357627362638024974566935921782393340307020426759193801697378100153767519817112901026983849659642933923153889635437412567146303737485665784512703358004887289165761848756931510292159020875489114899665477282000059229178274630839537135598033111640676520002145464355087028701685899175233248343274184833022101130386267314084047155297886408179538261317779510537900237095318611600414494523073951734893986078138378876044624316215800578190583867655881032284565367978806902404934797408988993373854127635369405286002802911844660377475435736533107899131176548181156331095814203390435583479399150956809120981515007765759597224447374942500350908666284178638146008095455647556191589098501845043271283110684043383238653539025671389095031154547655105894096975861626997617659549286151815658824460216695891950007205600852137003393735855622709194787206222853705474730750901419054739686664637024632896442207885061710984675598370279555954068009804097345396839493952386780667450941995283454682368512053884613908039847442241516845323636032851003889293779872731196684773884979011904498591849732521933289652501218889411258317165140417839574102062510691359365082460726367225326286577056932025113648368913617237506627054032491864138158253857234150931400042430705183050091618770372438883142650262985206158195279632025258460160854520162720978741334667162269724536871015988964113067403796086604660922172585828022639029769462542912033581989176295500909903016613449259758660898027914120980784949866583229100478403611548037530982606395575926367664445546935673113202284095113292567355675136393862149177975431657112149408815780952888882994144965792116044126362308580118784921965051809316855925629093838350435944536295204503422064194417377019934428769532087658475857332102099607387479484187322739335968085641712265008427816563870142448801600868667970434155576861514196768223673646695452721995507507930646431074179221890018485634903472204962220073630126199851609105130322625253767126944435292725964523718822053946389488889604241063637778844416817877929279582526114544701112018273824400056899763865934289390176454421180511406970703200251182461803918510123043301980545547930077224864776798752849207344806839210375337819762735130874882643235825864176198242355673190223582441287142843056211166489283625447304456497194980990119161881478775521289539077196956107321157493880686562975050017574447405717285943185970526854229816275277916345596015669269557826503553772012943163494746699299020219025949478801815367711328914505749911185064463981461206490089063865598025040556576094218468204347475825284202760584382660294650786464828070308942115622988778269425182648807254539200731044942148513969217645158817715377705208337068824258577998462574226313483922077943499533854997649889221165944342566561364408228602924533745375012981873381349717222015840682086685764844400900576797503699798752760719379704011492166862403300439768604496018289509604682012666343925163857181601762076174868045606051763837788738462567691846906222834187576361817877334818430313060509365878832406592698950338119531368601094621164408066786730558072766154889180281268978414886250780987268463908142889311497903053728082032887957597101368284264443263944800242739221073175050158458386660298862962120735323057983375660753271406947457229218184889992540752888838099004780650846892183333389171567505472199460407379730943676150333169541435277568817735905389186664982238451745929160786055625317736389887586235033617033705679542120005628612729930429830769614589951214518998677748182358255160135176100226713124230272213714727426188706876179086426154511358817049129293268538163050363527021357120827199679579220010116440352504782686795422252054054294011688220017319202628909611634635365972343942261974174157051989498450810453288184605707314337998263329899067033315843323617506432093815710464002122382917713569625612995047178056560711535465343674211686293321467026320434344581192979811649490574904162321301923455508854913261213408104549952021770053144425563867678955059785528358879155383553254304545128108666148516857672673992633575461148139341703722563650768803411751157462525245242860018852062932368426771982961261763362100068927367495206393271345503417403689197779563241207324336126651125133217518748138772594800008671915210680486497228376401416318756693401827302004805101249785179468948362497400613772197508002403525016944792558986446139842024803814318465949429300355641524833106270325162037847129062153395689824852248546415301174105544083141796240515325992429924096178025242208791133673967175258963773967881988268367985361171080898984859595753540256284390936049938172068495798481583471887115007866640386582164401209529124307662092979970146168134641982306308376328904555632029036809513925224709670337386242769453245166056629285948152078928067246087988589201005180759235122178651828348587737135146031049977716734265648762253841316554129904149558981539745329952351589905729457625206921033626265553446832531406683777801944510997853612843544671089357005336634505528158575767052388143561919313768380902295052160648685648629497206220709954235144180756191364328803676701046429254415178191518682294478234502170781501620593035976378047821936997817451770209456350414314399677528039369082082728615453706966923482892051803016217008498091168734189574358078955166968564355807037301058548775495507166758913742401258655207907622478363719094189875230735649917881122930083827998604741007786985902708694656435354295929026153976180228089804861420684215093709818253766391533931927188963835554340950651506000983454068166115058791380923770341721305242966560100422443934486549396070969920171385029583981286989672290111420284593685447338821149873561974487713822280756221667028473950458070591500820512831121901158580595327919799112446573424767183662908529002158025681537006929523816678437933675118833588251827166190639756337824304382126378077461720229285702805913747790688666538628903653827342545638232897857368108261989598585752336411025775265181575294728962174668696745864557333585319203302714697435420470434057809849958958177687272669212518239971009047664783886685707174113763416154838223629246496573463276115714819265980221084671818344860760608399553885434225052817847683206330126330570003326919758485572823670284959283727419658445479839830563595254284168987719898927835594671747921962516782142273801120969701154685571898885416860848355391186452557633052761158700814925061433505227368226837719035865419361357489423006612066337409898736304430612488330629452729207202320016566905182048313314302172354170599900516264699076971581207724077750274898807267867836772577613728395234002322270626465625938856924485362785741174675082168931439490373467885530186930408882830949422417692555452287448650768783046626934929714450284502151888519651037246411504249492235298507906039540637628517609538241656153178536497472483033669616511435668784436412361008914027120380343473103843709104979681839891689933039569218715183430383346377697349916430147562768379879324855855892718588115818096439040980420594090306849153165876321428636558619006761175891094515638564645488480991193544394785355432514619837011303935292444013044888672806637527664285513281907201984751321833226311899125398546005183628640394019596644347103239373094425643980401684910929535160015214137874386608605473352265188779657734297224668597948102580938137170291641872757790567505771344429884035846417729498889411060574541365493253970016151167333621007643339248518362826959157993270900799981261208565303653855413379800863325684824788103586894776107448568488705171470614101634132280750560746696978968465976887832909048629073788959651933340692854456541495221550845854691122221464622641274915498198030355233843871460878233145843446595612581205104887874467095062307757312496046336069289513084984680478852871363667823850793747081903678696706400267925390979393489185581864225769089205548165756670182273683150100913798021062419206563758086489192683858825878760489488773880259798086241163172293324559109199956140571269834583042411410065195869857109129541444790425731971259777496407071551175437887999538156219260174601628251700965963808730513003483166970998849736406637735228729892201370914233694507882179322465603247424698355716815532876748347018268087857313953818890317170652643932323864652773918594512560021245298166631682709086637833061160718199195104133528776526267609347348928899818300323319557208382534321949256013592719583268632762495413224114100458465657157689507171860112607437182930147522472325929912957538652548800567079823674367307369187610597461803709225549628037933184362503065627731938523827108110978719261806677076251428227453314393968572968963016172718502635610861960475535924385715819990268878304017411788876576587912822699786181712493265181592240405558963980227882645944625581006244905848317445552853982033290714103148154879318512955828057867847182197390820888551937678757856896642547006568346392158223322388944367305287483495758857237187262941497269004128757475595406168229816030967243102758732361961447721948467350185359616115289283862261331330667977318208302648237400332232730258581063381572404149583692637244896112602652715168646168411192460805277788257685255000899087563722996382472694171507194804177369477006055940497090841511468820825887098309803978782026531655981986605457153812553590453234772402131930971067032463047326585088940578765537890689478805938373192116883582403597777436572879979427547379953044172317171105825246040390034580036242452332645184355051829489367090718016464789724946241144589614082249235183128058552965674781602498138456559341122572563131364126966562317028158005669598967153632183843186486342265019325297063537452014695252364067281715090084958820554113905597527748634170879259400614208600618119408827048814762396465481593473384913794928387730195808025082877802911689309663423176234471879071540987943957926261388954010727829003395513971806690652492447271617561155168132366183489275482573128988036209030581486521799335249469125718636794492122953064449222059632937822486682851433326970122090784430439612336081878596917902583033339103026754293754109949307663038666802684955402263607924169812779724108153795103708934867300699902926949742187653395662059152913009420083651789378954888751873247061693485942936807027105588240594938458478554046323569042505406575693545010800678492978795324803526000492775192409070960977795058013234001023781192328778659110710310480946030546455592440529756071477453004696387018698319134893165092524846960382498791924426231026239488856227772381977840322509447396656185950611474237851895596087990375891943761172081180688136805614693903316932211491148405947097480167748365292748535994817800358922341683608573429056827103169708816780212184200371649626354061314739805676376013812755872051568957919144544019051368342697649367181594171062515909495732363433499488144231613187342394747609000917152810338230416706352796109619049321559989830833160095511731468615392882222196172911861437847721430423471415515621077649071426902977239326679637909643020263846242976836265282856048537861059840843983744066739499552078672515205902463440297281698112306541925418716107547709667831219926630932468594410353101481254028601277128379670253421121329636121667973991290654943454147825924932654066633816661797570129739894335055150002081609078189597334546658111405961496561510330386341812567398716842352567187764292353468775968415501875915958091822745096017610384615719955514916657541302554999305928082691623628848323974837980235869536566954302781175726352191836998154522327483674162080488308849823903130031326116625990821323393115240317106139939248104253968068174442213582963791867354288510868692795203196417051236431624278407848721161157952869554190294353372443849921512551710891807891115950231966094575463802593610212620992289082736323836100333312128935084103556181744731825348689271400543855416916596564349090769779319124128171649947247704159673455402369093275817903948086612298507549285239180626277622758807218293110356961313091192823419144477092234224726141858035625902657798974748734335337583409467414686109758010557557685313393424136209623440049132404391895613483114659245333413217566642144837261144902468717314305555215829770804069671926034194374943070352208712882030412086772631097437217272811574329750969186546430073552244856094374282858040353228196700260489364599622602585757000989884192260476083890202647325953323110933217708195618231238522690700175239660832431038377960790765346436330196804239259707741652396525343697015275676662482597524238945820113025742795462289529063494222515038030593595683317148326444164264208936794451079541860011796373611545277872304151139133849860648477285010557314704371652956302277093491120141040054387185404069445590407125925096942557655787714719341036457624663232910010585656467489832402242256130280442073446174713087192836019292098402334152507911622862836837140147135307292017177315562866189653307717748611919930918244197070049511387685111778957169353191783103546913241604958118557563944748190697250695577678585452078280620706729745222849487832180091419335704919875210035663838757973515383839411213259573713228709044363116459833507211852830744829841973053740789424642096377410370245724963774504304712405372798102651435101481971194144734861883621395291203382763637097752747223345706128058983360398941063924014571638661184370599037446990229693207234418763566777207308074452671752467372120744606453993346806305616836350634573113611204176241220012815935066716954888813398952007186106464850035185181852567940868250104362336062703672177765913867626648143567923835502926354197392541472643062435836725473589513508511976457088107255840609552280964745661567489419898567856933520971687765627155578301300597171236565829914087302198207729078251456599475342706148259494952446112178459400631662629979049244037741175742370259805343856287332883520086660720594157771421579440872129298067560097402471560527517207568975454656604045391468182904757308090054605380570267259309020048435558564700561276097430193332790623874745733190084726916022612277864293651238358267322228799111972642558849675793586863640008730441244353062998715825780835086891326249461342564278312545914453110737724689443537783732416887081481261191132492599290189939674431217068981232408178690312304254834330926076581029199507940581580171836146424050439663529382178296881434762662751200686399125657606457557504053791953468318077854289742552103892691063987677039653796471889218501102322168112617114189405136187121783561786295053271796949161103019097234747259736470301425075868233758361000851498818898279658278184589015908922190572104435921282368924677562410114632277875503754964959981855058196566079366349490056069974020785242141624259514259805910163767680237284462014964969078174705469174618464070970410283044815551596312301361470890135071031698367928775478939835217914858489504558614025529840580772285631514808497420316519028939376514391826491184215215728604710768809880990131822173396538445801440316506903296858659452915488891638393599133969095941879476257697201577258132150804426842140080850725294023088874306617802072468820697033467743302371258433689603699464271869861186144726187676669433296730071078845131693070942738574052980510686705863395921705890309193004416547249249988957610744156800224102865057502729037294884829920283947930851773184604742764695302409067989935441802170464528101207163620089737114704965587002768730959077854441522197310086459283808771783502821416707759253876466181568416020612616487394741331012770601197773092153307298253980547362123260189660957128493673942109721043251407213278240305017467922071149809855641373698812452319613120453800840778771666967104906167082953131219340297178983801257584004464777223919395374521527246020629707823994619633655130588653285926868848810494426402252877348736239982575026172954554124658208708011661916758126577410047628270863967226308389829235083915090043173767451780256542447197644734176724121234766332416290010653312440186258005748097566461328437107654375902811094876384960006436489978146699418239571263524496960564286865804589086318865988749238638688468238867253249935738250143486033405834986183555915016617568255337627410883378692779232362164038629306993851299793231414432157697947796804680396890780034516544406865658929949210112592095213999229928101207638119567595693399855463225606175705943315017517587482080170691177211466535537408267914631196030366478647400877309827665198791492277324109945198503263438869027702169771597103885347532073491363082333389620643294994709111000998533371016043881419982241558379504194698051789745520992867922427052675472476891647865849452981929057806998354006214526844681607739600126608494904919588709279904618337378549072112378399751242753626726667363501558021760448372588577254259129151762366715853388950572857097279989489332672801634779851729471522232598294105702686727721062185113535286432370150505517087023661906929081994888685627259732894951880165679923710155479390585149499385931753451868392979717001063243982311648104556852995986136019802454155046239483263789813649643141606913407892029989258858544345616015494122038515890372606832582684538278306228441324936496118553768302332356101590771099931319693785689193565687094278531448253380851980329914925919302189637846937616788104215833501173765998633170942583580529172688282439361862435506543418050208163399605048181031527538193636709908157917195503098310448530277604276474887491517052929505215444502522041034000121026632525688992970252164123893074757293143782578723567420650051620090778795820973419477250269893629129614366098156259451394474115225789170563156591277688289079962023785144096511421727082265822887078331137281622817520878329141128766542605067996191910949762431430599223316840668660266645373992896384170554146854593589519250426304507102642583327940965534022180264316289088960612796476653118585845535975945359153951232445586142210874895727218745848019691821002998942923337155750476714230575456492649784686554036722223998564576590988118917431314577109390760129609670666123172988485900479363343041773174742136105641208775673718118927465724275000520830155629960176899381711923689970886639567185821777604740771351247959468297838626637105751264662814525646078162647940431445878836356459159861419831780086454043566366528360945252421196541309392406572014682870223971739332060035157339221078063803587296523715722898558757522212438996858118925726052657624688333751849791224209363896897955305716836802142372510075015748388061261968870551245426176142656062105321281311335974583972248788242764069688674266337254048945820240627831819892982332240057735102043828320899245809986768473067909470221260016787045502063392493054994346848114968459437118306944380118031902133467598281040576514885998743601648359200324432188505676846788731990459287565060098026105613021965426208729067842590361665548442832336447457502206370995791182854036062279001387936284687383973290116832800516307992204886134188402250241577770678179344240998535121377364567136907352610059336277084663171802655162713945927646915216481861139625470673597886619231018799552179567258424178786785540864993297913617199868928102921898565675163600738856913842517152472856575743722493736932728012577184970006862046647161374096347219967403558589949294891294231686044974445613346490538353902543544411897693384948492123217588433154674801897283504352080459598773856510363121869031169410428003943081068641224707300678625821141835818916150849912932814842900516298075800927084705982369606882972785996993134440605928277698989505420848763715421052297275792370664482554603827867664266135342238350882692557434921127212209177029106750667845784558219468981129255340958588773359145767995294495907398530548976241479010229123675483876351054017271166448022709850347075186565835090180676877053745318890304209894285891788984301704205170031568528509848274468329979175472611755233972827019159300650967655764966411865486312854995849265857917247012264689569294030819874738325936316112925477111173042760368641834161583579519856076626577762020570707291004840874948083222035977904684845382669755110358525372790227568909565373030623494695189996339229780722825941987037891022866401437979132614400534259938970239186008713134045418257624027330938221788284657082902467121729004577605232462844732444435540752883861690739690701672343604364813781447410041710473129731659440211581901861292078747301408582256160394878162021886943089214675702768926377060304730298100708988340873396367406705430217029703229234513377236668280243148653170666713167828295059157848608542230388681107540200966788000455964278930621260606003079333983990464393397323049463311016212121566360054177894722174747210825987210155826779329815848488005049260188240210721717623995939282539885388819528856688618964814561008119279186170069259841741063637793099930061062405483524119833168493430838159100653339641598132020398552617877557105386717947789646478014668098000828484201896360122044789380586555896165683273737540167069850495869048192991596708169272175875433884578016869613964965505399973161808685939188551099302266002571875416006841499901920111540082140564929176199042687833971934113491094786668598133185659843574055485204475991645492594300993221728707946525538454542434166308638526437035857171958232422663993580207911897195962310858312231747455140944279570721539141308422977842763611651164034647728580028097510732441517524843357893169117600625531346016626069863533108434975517574214480177358207754608386155925389955174950206646293472064728939768631256041852307334351596452659344297182596159761883228380935086767832251562432086591051790209533596088829142531654107644945722999222900104070075008535020202927213890681509516124620380998330119065181614629201819866646340277809519370766759781909424647906589575574000135033014042939030429157295680845528553808281752592776991134645233699813433266065609509463845776562687592632918336353007004773932368967182993914677624634665514350971155723209903835787360126151324220811092374139938743104036530065492013594344867597093548218416288078923433345482292197949031390715439933500247954207537367409842559465180122243886814220659895951539958998689389393789614342457470794836039952272836237334535395652755049918848541442318456833245854590240208518969209515444003372387266063900705538618963286350396307153514866887722303217264525276713006805201604165387338273485539279749673497839411973236535396033077584641015719344617691207812092245618353801875738977406511303402596184363857214276768783475440792033498940629236425721344658786371110824780945531381110320667717307393753172025090857356517178758951989477688396664534586329928125668062341098505101887798935582063295394551003527326927043462069136557034146959871838242615720686414456653901200199996990535976663843943450548978635505900622696407193866650813650236842946645651213894778006050905600277471597532280324371935072333236048975289952445105452939859322146933155427518780380674406425733951115752823443095763260898327245301414240431462053376808215684224403116484573737028058569518444651092731611720776608477937431552731359666823939135443260945265641776824829286510453106133698732651489069887191496339136605041320084049963413807721213622846959469887136394441831524624404174281939326607342681486946762282902295350822204609185751009243044655161610940764026209371590753058626812785363736820510385086115685177353674852044368855014696834460282363736094022357388319650572246426971819462744801126633715265511392592023219980275945175352919462846429021872764324749348569288699887350622987221734593923377370630311424050208748874489062408724154599247257807190482272847824278952972434468898005048246627564762769177384360070455919199971590874441089943960909681670797746259131704541482417507777750808282741941442894469713221027474315004819129823062066755889248176082381038872357668492738844437491489684282279997653489395419197377686672312778094839057888324361034341951264049203249063205183526499032105257636293693970531212678751327812157793790452202346311412581722397641776739743401254916765379510692618794797290139847491410513307771741326196526863836709060440451331236724625265927263881982260453360961110292413992436436445881151681024886334495536097455200651225527984969219165173315955426893303590528639059173004921262689080598633211839014333926028891006889480114649119803083442636738827675118285362302598238955759376886393531949026819575186991738505931015373236390773029662529875578622131955554922950182624697861632803795890541313283183637227234805542526703364673730550866090831254031722966464250662330246717365290447829466218233942115886202633342593270041033423874524705218457141872653913162477870043832336831788007396508143389710221172855717392628148296105751660055342177684291229603457251921268430984935273725681260805559341326662722382872871581421456438385489623473911042945799086154621217797776927676920668176271704960741704471940614694845799461197475848603422818419234152751003481941779552500617612035964255942829823913333967899124864268760879341897629619530642232936946503163197920009123967902025975578562523399662714437856031108173887398268422170205745550091420237961388860437105917823879132842672446605720078313769192462627624405833565015250321553174841670057706106116327888982025074088668466605415882471072691979111517914467445532762810593596856702711267002973733270756501553567055438667640988391591371671393684305943909956567214809742157200084812505913450033874738760831381218997086377964913237035984536333468301796616290784742295831689658705312625187664991062719273250340690851435784893871670824095446986297651918862475794304999184500113929745283778899797271732683390250599039660388402414174502278948021033329918363229767524674208232278049395354182092521188522043059631255145056168214654743668285251053888345194990097806665817208985192014717946192564069344418878247331513746733295778171421797840187869538438277836617118141239334148304198733190041300976904007166760786944197919038555856331353799506712851174009586763457530630795088743519326107970231219076866898935212872162823182547575903565159595923896316457814756487410185247217549661164763591008592026662800155874813010650321377391208470857319925507687080471265451717980440150097795892567478965491335605203344720200833174712019147813671796891621125075187736014952134417204869090276189603129565620177568675239915611563263337896950592710640957446142782513489654506438467287914193712155950053164372964735936289762339643606429105225862574201422521797368437381191027739479595290855515655428217150816982742156621429297902469459092484374439027680093177326950758883553087406981818611087167324613994446960440639825718465022602281534022149812397562265304753122070750813294995198942147162393881374596718127014976540789540030926965952333370328678637490127754192760639925074097847026162336875198540783654415210602514714377156925942308744005964685231684828237617024335894565060796610534078665726340150139266245363405371463660136881249806985375373525913393348819566061418287545488269438628045580590173643432256939708287628227363228205701285459492159948513583279940455473935556838328792530171662801412978780842568400931691413466156723326847282780495853506691649294839341810583883728906164682373285188559989820490303168271539090104961761826454355923872314034846304706961598634103705037911471251210412062968982328962892451704329625236816835616914561466519315423398014208231414339470719348845868846039830513166573845051424226130992024234668862419067498447333572518813418223311512512356766538729661025874963235729109585403298237043632176690778089351377911310902504606745598316204214888076342667009029904594098367712768240722081974898437263254764246692241376100189459669959778336470956137078685345708892884114786859833559388325338664762730449048833871119346928612211209021223387184987299552088875249657715924506637599955983138265744721908226478086654327009343968480837764198141820026535903930403132315750543941839080950189566368673454337751212684045708044292952113085445368655350666765452067919094369947427408435646110461739525049007809622115075378389232746514324106014893888924344624558890310828010816589103877981377057227039449650272676066898470397672514886096785984879981752114732575165330262611347802460763656153806239613544946586228142837594704828199683580987238717232238040508083226936491305318456384601847584909980309461557186408030882670899158311136785317058362725474788307208941967901548853703997388871684824419250636586809597761636414372504509734491414388546497267391272863133533447895715134658025534489980342098114717866113401409565841505377268919445007022216126282120696457859421101459502420644373375749333899589002830242964123980059259039597970949981158315195376748161651579959999679499480472316851838384837297971490513970397261181260242370015545373140724776912680096519048074842238493999437109977166993433335483162604198475764599338937052880782977328404928535149895770302536992461410061892370229998120501277070645127288725899263159226607271535465053691934615957836097276628789510166679962901212533683956302507953555749677866287691849941764693555877892918858096950983925069575870733997779441113078769029068244908619881952497649259658635510843525862160419758307867574164836503409336519000982611139402183770234579106122558935994161055971322882877108856019693208037599024006157444833467611557599801903380098379852595593513075528161769362154762150386303861949363484562339999395358322696776228066629887473544911930852474297408224820585472438950150757318538819221296587040042925593479770302508574544253873992628665379150879324751759835079931196533864459736108182423278774484162955227111337749950424232289471520794771140735120711687846078143034730465247159479877194524727414703964495796245619212430531857546015973055099652632971192004397352597199984000704864272906493622457752935064209878651159389225561673309493605489343608540132473602034504725072716326781883703637756449583366716931140519236219091730565532030591152214905745930236648025248415138020241747992920986583820222175195824636349517565885816087933481050591295105092295078404790368066979983356852646194970382072123260185194463956184055826387867072898368833479484300117738422350889908813712898999668910130422271234163133250683854169443204260291718441331923935332380494645176056217779115343608357677299515158068047570176773955161018252606485351931158562594884012217885079831093311484676478485237840968470688747896008444006301424603188584744031451509686098544504707317518604244209315203564182932343937252370765842480806508694818251316490915045524110339465008560873105869839255953261024277627597306247854190032582776674985001658381108612134405654196026614906959400657662226086462516684502891103930271890809122698797212481112233623071758283818433586441581132479848788918634669947633538445472320870608393949155612924041616970878648915111404072694901964370008423324400131313266585152296360510809918646439738380365305669997368730619260413921111906946868943560672005041109024437714164233344704984543939939433168481611000176984725033706937983464729201157482071107416445191402218276394380350321771188659658049503872624136210618771486148045222229765164026006081502016846580273064713033620507370662727934587375563362368265234081028366290570480782889550011726264274201304869450452595425818339217642917204231683954535858468077045897945342291760780597879369741971295180101664547724411762051005109380084072711599729969870558104288478960148676884586624293514707007628513978111410648015488128165274480597850143046902822989748918625729232982198328170511886900847927184940651772792159651925175448999169568143378423255817453743684011800276022508439183598996254386118395085351895053047032979068151100625047550596145221301341281940457127917354661801667926138129185515244655188951391986748993104077009415750819576331539230755448104293770208188184435819434253496983991867552198926792781984117324285110891360313318024939701947379251276580974070514449797612084463669700475858088416580479766240696912146572889376223831142838977358506326283998926107725549027886334921987268800485598910580665568409040207711755064546524722821182260992868218692638172468158162135439633531245056266411019026567326070494977407213362583200550183162621660214595148497643101118193408374059763775519420366415217079543891553418918713118750864003899248117794967468884175673721082550707109566606893566310296027904482485115719878900722015972123926255524066022205145845093793747373495406083305501595175890279613837100968641240875448114830063904146985271699986475727118235751212798974231406893190076926040001775200346714128105522754802831746036934512697754749604260385534764799333982676708819835979615719050691406107915910516349374636346911493831682421123504443093142785708371232327339227446453511496091407368781851748776191585061936848447800238022635687149047208511348018648428794923342093322663575004952454176774712316451908254812549166651476810637979808258024736806962046479268176293213887345922032687280166053370103941112090950439939705707881506256500357517668554597573402642970247582127128729564419341276591628055825677253551402084190151950966371324050227612463993013798263382584169838709300418860410123043437629674048967218725216420235793017678655329779062421282609584852533317309567617824045057651561350899337322798142398745899435999570107465618008402773358396575663063815492580943921151607313032588788498127740340357096529531446436607689730910491435807180080011427802253744537993373338171814277071332018054412716567789473310598100438543788998662124644948267225438266939928243412193446556414810406860405493813113703631404279089210679911428186692548106521127330564271229888868224700354981560005348692341609343126126874785660086342179620671562316254571948927594386005049367482736037272110826943680441048930636020053104521056460366294423175046469871571591515238551236969505545226787166633241284273717314417489894010217791464058165621151964885948987414705562825290917497578874705038485420377908826697070562318748581083896350404077149875182504718503006073776968748774084499419879560616453892691316728630123442999697626205144617678316796012166488375157080732597348959878157577254387684321846454946055209937948954632708187781930542999034422061163384709169347493566672442796138144742529015940930006140912180683568636145058310242316153573398187724527554878258218471588426323025363718302202531433380665246731563979440239046447722950474620225852839761778935100382368300836019569750686556712056207847244344499213479904084554724374864004183596727700204741964413947392550500176943205586674875809191417264818911188067261574002948025493387549131320097497639396178736614751552214396327401425303353676328943676032159025320385482556154313545925425524489874975460526201898857371679260927327601677637109873896588085384411377743533586214159302744002984421428175815359982446622655984044760274534988443337492995181014712770455580287465138897340672001952415335609238837449087699334364541935094550507620334033741865245409813788307463606971776292759159701573952462921529718831694571168686533829521721424171573535685950670060052878278995727855058808304210012915972837056842907811130272988767760036766728498766766618718523206627788973725344008140296702775420214214785735294365883033464083885054330037106549809745278191767206286073679460187140246610041183848532379850096703233862288699447639611772718703410783804846775908645506063390104037869327923470653239305320330582630900337331056741297404779235921032441015800580292683894354124485039964575590991378187952116253160694324819363939378974298751882798920948380446902965969530461246245991711091957049734503128264508660643390889941155905494977806751701487913510759775044394803827358016879654938509525381970180073899005898638534723109155164743288978535954251610049542882566672774991641987448086929750749527026252410361748325880724503945297534695635568364885264251367240617133432578461596961218639243068225351889899466292115322280987022297345529419920033078572189634247304615834168725988952492599754109560259147986978420654545616521109228644243704754196162156655021693542359227664037865422926783292388040254361708544356294310787296231546098195368139621375321572851534384460867002766446425248064932317476582320615213223290706773395802019446888111156527509946094436821244853278576692541451795868429463726318213079258927098005671799832136750388325655653966668158744703427567267818416335228150558947305152057556691616834355112571449064368940760233348469542920031878943456596755287219782345026164654544143532203735296553952185701736201379704300091634933229359996877231518820894223822825846553870575604775464002386102169463652478267228559648837364047393422366914617320618680702850765019349338261349296934712327117320869135029283548085114519644732822489491873441259784716036013916349780632467392436401149425480587557208080258918881378753631122121473479595396587220302732341191147899109379182364657808675084195188720645922145892030666149847477889618117367029923974460196896403480626040970640864260306940253818732156242358114049682478580139851720652621063043195309914919870141652910282765657353006708407207265279343605049272838345562022810684995356908718489242824029591260718157382202784339824762842287355743392717914102193377086795262446171554140655124427138221764472973357194161604929773495184627897662138530967999630195686057494525481219266345656656495530891183863152433935496773689117996287638054728098750089842138143395683394735908647422997183495552573300606198462090575261153384026419489303097781883066666077543832204393182412234256611061351993408521918938153514995316666139883581964009530578921167648854009014159342762727719779685405685711722132809649320252981104341121048515521296289571890017695198270182560011325949926104196915038711863488306910921664369410876222613567755379090510013172627089166525428516615130498110093719239385735541621952020754777260005397867725994099052000006266630018523446073834796178244289021492859612336499647087770042617830981891885552366632080960366381852510335342800569137439231535212979556251726941072114805454759015666758229892825296624389973683064761548422508047020766432249324380796520399234510779658837239565607350984308163217360064581392887948230699797379039942841549273064898442206361617797118770852982900944907918631391678302373129767741274392155046200908258936539031172180505541158004131188420067288875999994842657258051831663062055745545420922954698409815580199020157031619941773956436773787271902370942666194722126084478140160089800038415721022855344349922862560353110586691788599635070916585645298517599811846949777558787083337422345244030910632941060895601225414898915377638023304848320903772166088573633148849198188645962071718868285518069046613326305441256304331188317185058059793163100743290636488980578641803576499893740449994334999999709022532399026754134472464093739061288227011487113355851365995427390311871114975682749818388290670479833516458508630997550097414948034933738218035061054659764660780895406104026189910407419897945647547871326702369565436807819501177560510647512015162322721791359937009000069120557732606354745680007112561649278944486424665984474261604661356137892018561239284803707271949607946990615876273443865369645149232254916565929653648113272715464475154756198230064660474394624936013054598005170700221028519727282949555815528671710535568429495765887424997499144947313109911967237767018226155007656162996925370829957576375998346839611135761471258212155053661519822634132477970861740924447429034865081634798137118909697426440574083025475309261687422556556391756763457338338428799644202794385191956451673597176388866811645778773252318104198813981230040943905156187555898931103933676291912031551143681613833754398020549211470607560322285415876114488389735265764808555157218405231163569454488460085842349205306954457439828136082812925486725066767344257181416247048731167583745927508831261841133134082215271727257540063408394971158248630266935322616905279164148351446807680631734589567954615347111958260228225367316955717468998034840700474254732887409934498091692946636925500980376847990134959477671728626984195734433695006942086412251415734886776749591038796424411191454079120474801242851719983695230342577637531185107409139428482651530383068251845044780328177526738386326988496730975240989375075241102857424027995151154007954126815447691884698040896930990970280599397816885142529785385207088080767630319731900413497994112104053253508863936092728739555013829480010099743315235367585036530568168146907450659777052626338189512351087148843115388585486585491450269087950103517261295137154133983546221241786748772699837530147777818705026247856093103089443983251175941214863978072866831637974104359432491326953674734347322598776855611524718035350736450389403134555656252780932725881700525066331394750037479377757625999529034364430959854535766397019821029122938270833685175947808256191880187824536561150826067983000782786288580437872663531421833860576615090490058827195167638729252460187625073725446134035755708367785642493841923133216233787753930539026481703381376121368853006191158691317485314092023577610480969733231329607242938564012968435236232861568938827245820956843587045228330289024433608193140258033592381964590735410534831409287125879154559154883435828772852682962450714691884601430064987200987150950087258196335116762641690149191078981371469452322657866213062206580709968982064979470393538471868974960897697860044873054987972102200506362903198777099602198231458458656402571489526368949994810725712954557175168695775123808739439668795806354343207243050537081047449285950847832480668931749662908330232964057012322662550959245610850164168728564390342327081575770136926094933828550194841816695337587976857000095614669307794530849953924007207034504822774678824850723163201364447613022213814666778088971191447439798285815730691384001134776076240113304163576797894630121640949777082492419734382627281070250370013811891351714288233376063520140757838668229667312322947484177381818009105775934567077722378248970231738466074818994279425346409719800186006299008214347629401340528226010417602395641942643346259546958565028326852460753380446153550003602203527335256007758276714981622379123966897309581507096467618456949223199986221017393348718808554293036724065380787522966490581236011843506164876852148332775661309483692630896211315175105305198559647635566604949291344178875301964373060703585549203034410010444428741185519822583366777899806766944736785249342247957390286068165629771540351530521749862414777959225498358232644336842042086323375966113731226341760262828494368169113687027524717471807447475516143145950775433390549401323176951880625689644432633805472190222529698320513052555453397895898825932508775027273298694557758426870548505435967572638297115958446702911342562148877087329700023108815396267780087883050765426800410578396128119716664068249523035171204139574119566329622747000920536001334347636590990096175981056514341982124645198333017605345736602074392242058427762317989807560683496445932593370675001687026007756971747476794557918392366969264004587918418604163857630610804397293511044685695288817735943391770212333368368040170231983866217720988237636651217927219470598216242478484279681637061491738312962805894466504166353152089273522876043511119160480117907855020868462991313514724663161168899377894816230425780757654795623997074290808360009060266116017075439791811414126864451050735838656593497465882654733374367196868820172840911571389362144087162144046440146020665824174329241819561956673921453676361774754965580507957390990589861965721216015006489002620362498409358606222120211622985964751465264906965943074708289229798777877468283172721543671700636869728350115201968735670161286385309887336518383584199093903357719448852182242136965802768248597586094128014766515739085135244907105486085741489970150462988281236833832882070853184928861045515346211033823514512281709188672424642858236356868825938302332228148893639965523466265420260843996216071585331062144715641345978020956630549273289984811031810380412882883844336005469050929179783836492714368806400229314143077045074943015107641435289295135447043333496009804841262653500109231447170323175414316682809264023590896939513148573314593706133037032564147610589631887352783575763392607443801299850056631442528062586956545892612704236165197586403520509759232638098598922105585574088891744701665218861715349920483243355461639865463247226813224977815968403786312534953818590337976402704664498025407341591324313260336357576699792872744616084976591254968460593227077615742139438100429610887963244969816338919692597754071891885574265936030866998292087534266005165830731807925866030251779323267635833139969065965631849869862208244626458734509702630127059811482223268475729312360502552691202688879381735740426263928711950789147183268111364460391387534831016522305463996709151359458941371680688708322949931670751561071283468079228901267197380041630812526430787511216096494570225938991998592419613444942334826255566345903437751397776579335623823194848878376829157075106147862477739346412150969645698730095410952898872656771474508909075113412883156670922887965571974856817532004749024922379731172886744391569140832047204709947604422386073969530619251742905761752056133008649762199441867391626345462942673113650679503249839370699037116586711208532530490226382131684224006579108596831518743364892567559940979266899652925334946514675016269708106393101461043861485089817982904764877562618630481758533462446313270215935451366102051167478937656099756362880299738464625606356635788538826272879912607408760138004078749661934030587535779939354171952548318672408485182696250601524754463121207392384513693040526961766261982479301555193302859944757544305061434415648771207367175634028739165212593885442397071099590945160990711556910166650605530912080880205646656874066328819983607031935475447494810975036683381492449071239614398270167810198222286511117308343363332843758228102167938845213543383691274011340759646323625951868698067982552315924856236031009725950640541411554564839180189243204144219777118230057961556276735671581601522155150266856004259746666581856007351103358642069780272877672709604522137644069843541380161040622593863339315697044936169634749493243785566751949354428636563802063907921409024965224120517360576546154767152044725326911033212473375674361162816239581794540236287127279450116433706212513417022190866257295692245588407910653492062846813838592885778015245077388503903729727252521966578086171625189364484686552465471632556630112911647924251512069083719523836149711382968161767067471514009710080234160099437904679872888392470747346168351030899853907394037510392771373204946460292483668026393238944542349350509360180754133174305956363440639971303161102097196445856145928480953173780892763922312258228786616744677665440759181028796572347039109204178819482181462601513789637004921989853009285814293385000547708933818742427177024254996637667496758277952369263789270969957473940294607561800049341668304169200058634448256509034258026108843659128631449876568695811800045112814113535334944905034940068076046219186465607478003050277181201248622834929138072371365227015367424611086449719572249960026346042531839532002264316923742086170076478024880258250576351484351960078816499794848138071748451392032741252327552630661406904043174202580022587158225897591884019020005446832618070047964997098807370343738879423586078992995720033990713927213412000250921508805867798401411707256916588517453189816577657484755226415812638452501257244169201312263074284848712905343408323124817942394172524782176987750181371972394221021268320475536271995900447794237455686310578696623785792647888557868397791188398679419288459547722198719466862371662211478882768620050132858144894758766108591101033534063835371539970507141925907431450317981882823217330473511744306028827938320404939224202682121330688970106512105944106791848556667778517454310226078837736784576391827182770880566146074559271737015845710720174005721996122206391344561933938813821102902518440946398997399119993990021734392480843374281381889539810597816613278006696590535367561132222708657310143909800826946405126374257827994473208645357828163171721725807818835995699644069939629740899228559044445637473436234619021238434616383433786789422785024948935715125772238588750609195133497764514876224200713753494642717409355239411558939485536760832050245362769051567686616730692125108340877405747161796410033025007963279160571932748436088381069815980134468073568274717128582055073276917030226895025286744583278367790786290182612289963161356605986786026377684994274717774939429734216736107758354370732396905154131916136428885647029659624928877481895737089096451983484461548951158188868981979456832520128485738794592650937542510401121451881702769349608460366870123477690907199454403307499141832004743375830424878457942119722069448140195058874505500965678029663101445054502854758613225512322715359985223580512093771034673317899224259617704026805002156689821005803222156326076925165857393210952493109994073992073153884953947576473352730460145897251291501551586489623447033002607332115271115373673834892490238797452161005487891396490290451457195040420491988129063765021932830592168745022584949903064984100664184797375589214375650286497627960609421285688781405454818320936408126152006361923183411787841638716574457739792913591287528265391339914321335856897574219205089275263194503340365575894692865937669961685148835670581147569515106115075318952608706970156241079285278125186192496285314995005158613524528225558772561702404615918989678541814581058954693083643575852974264979218983384384644565665074400928011063494897111396711327957646655177879463187483201973263367260402204786885628428870567447578735004472412661984417196144176996315040584586506397944074015443316383747701413764267449721672599973463286498127638362014757149516888308826937812245506418184026035056590727977390045157613288734835220543246361102023117581806746487954748114295919830463175007744329540819571280059693233396945534262972229643926854587409577427978848203366367289750374258693079800981722374885476177256099014361960177186185030875296001635378201599328414351666487212826786969958574992177550893037338362642106532782326662144400950348384319565156136684039869115691680368567399297745492031910843773490748664322961217798891542489523665690503190963345891660768189928511409544058642303035981372839829162965518454298189107974310480594792512431596609737144912930136671621531344890867692975256711019193668207021732751041289767005476615050411206055454394323932259226046295937658636696003788961149732966720851419084183764318622411596432015259056275373011330586135269084584654921430951598503134061689158439687909435511851896460510096781550095698570164268917547876084250969525306499558415668885803792016915800599375739817573096735770306815346384138907339688428474189868823504789622281950640424498526871761953461809362258246161917507466872293515783181132580906817480201990668008276714718584404612691633713484251360325387930734982692395497035369500227870053871952263341070241809823772348436362129256661372931807075150443517786146312771171061367629136877306001481848467014124442549924878044307492907722429505488388549329664396161291113915051352498877418821678934795793178826586888051309840804393341962410131062785869893772892303358734194872024116710998730687581914552700177187001168080821522759043781982081292740217757875424853423647947705173426501211579468587207233821786635239862498912221481467795526975818632006564615216011296424353268553830763840986335661144939228963722359042380779538575017616278430227211408271072547893882939894188876412899686152542639811617344632836236867447674539030222314405056111129449282916044750824782739303631784958048452868303387129496784734942691505973060160982913075491570663182457821571243627587449583625458851299465501694723868341272134812942641815757382363328987379316731526707214720461575091343794079549151612101292251855858503745061210121938982627953773608038494847108503377194120759873328444518089717758620541567097394963299365066586041906844764164641988259961433813540656884670259744254977934981915591952464027753100484262529548165576862663336393487425528046426948062860218256148617511871361119215900203997336382656487258736746038438133250218129218992105234839136735700920615940261515486660621542075999080280632562229126095438150267388679603696078063788879856772361942296246469206030803100103887055742932857286601616047898097401869246479784140266902104080857076808981006944142111847930276585144260756592277647095243356928641668408740557720679947808964922020169073777586184348570721508475711174889114786195146473339050564902760248492559891405729062223201533497551111925241763029368133427532833729282147156686712993947644352918080983273304052620136336549666567788251970114832414155155410718715603017642083229558134624729456818268300159185201329452433310754948583482027430181997604080208242320110757207983035989417023076250431675275562864888254695125150549112400032909395532887039834192982201847528263826617446770290103964584236209793274803860483865230141752775288888842763486363614344161036712117534003625746708506030645198860145573023772976159634827821367383784272840934498498769862202745255416501172314666583092346388903278931620019742200399694946966323854698352621900687315050455530329402455194120645447357887924526403568707164510862059258290661346125517920571316965610016064036502267485743626331242051752165818132998776526409539727267120315047745855326705788922007072295541380268288606490733828046661628812877647663587369258865555463188041046646240835341824866221813581425410580400418857769808321849765945639424518457843453445107276251160140064089510536912054996268137331659186330635091466543520117647303455249610927030299226516608879795992004524228174144054732400123787665434013924269822593547230704787845128062858506689156373458184954775307766771689886998439837778267295280318020306349091192920895303340148485921050926959284691221832427664789376252875694535797290762706465719862131323324547219708596350299837698632373380098217140629774901501064743633114530816252630395732425228949503366191098120094295619913881595237061329875431395669915254536977036829123083950181197360227178449213247478140874847048818918102537108531986905481085860279719191269761476151879541288710231053940487464173278910900780156972658115676995052464196673251950632308423477441464349494827620787664349105897319965517599904961430595712880994997410725754669282947247356306820051867906457436863177592102310561565576400510371656016129158740396150160221147154337991682168031238928360542345181988491665203180631289481734203434218516319526842222048998494536059913683676833676035129449043724584904334838819071808939407205013381262367641697563194866746502483550492259003980451999295661935611760275055991101726274093179657799867481525918998127611805194614930099582352178951326771713321581413474064361129865750635800580966490565684766157073621576744562007059291567121161329869362254592198533122333776582776966880295900017040965654876618578332086321069643986227773982117908036986720409257860709117216778053908708995970069198442186164560925697137724926475632801678687537126194573681024250141624781334010245543265095189236237087125626585683517462328937620917429938695481236775951437009772411637760166209743996629261320892702959923195165573125457238391079660721425942291931537174752952430074455961813583236245956945732985407987513476825467707366576678267116549714528713952007493511192234754824001202817381319717540256243781439586169767831346482941661407455604389725229339624243662519882945242227231019249135215032038845414970864603943641742952534450989657132174162220093566841472467583026911694988490101562220360606819723626375274082591188244764942845639916880892544182823231793072438940389248312478396308932572133669216196001719799471522821669954077773354503036899637755418187806437768887732686413264755352640428608331458210349666990663645200120615326694963423418638922507898294860776482352828098932803553863084310825442819489478885634478749654733967795897857390861389880946609863798486014877429854748551936530410332915064197022293774411515421886434199291137113349767625309297806247194262430255191589149420086289222612074025099843799728621965649239428813241975669746637053910588065925718058240896958871919552300927022624275529731827580873341267269342004378214674203496123934002577887618469191218869142056632483620163900017488606788863767586270913192736852214593814849788398475813188916654011832704132550451454295907273813810693880829072803158886586492040946988964554361496815877523982271775023985979322583727421701994782812450320136970567289975078562018617157794709402904924662543443103194073413363754396120632687377934765040198581898992749706647297024325409147877710949423189524871264425592640966085512035971543800632839364206255045119954152032482825559513102058825736328434938819612997945831318457141876557025680094510654047687780512393601381505363539682618246887919744093473939887535685579487859197885667743808293541919685577855070760220392692389928025737607616586173448919925736628606758891210140072974122244368997895564276851083381688271489880051291518840862591615120403953854231835608398541130270552068543148743779905957693900013941660547258887848506324269580042170350086843025947930201000020077298314807620232894401151263197291272600022460871387427613272564725449290009459196573042189555162895962887385191751141640099381815301115817075975086906430353957840340817966641592975528077461788837364395329946562117578091894161030143705355399943032988415953850040893983576166686986895353539553331984739372498500724673566887951035967548378684322171555729710150972840717303671844651494901885935777077328078335163512569866410478352752033794418998526052575516500123184019975968742431563756465019545751938100510553953410190108108155893634219843566355806949281248730774916246281832756846054177755017923810495875806846613865137120856767591155654803022865053780359679654911133390038107244965004371531536796189459444012536417127967366549507660651741686436037307662138618333587430292130460267983080951153955452241891355350026834847348009314343577131143158575535050110633665227833868762836687483849672188322599165943035005655800391254077207006393759578776836212520016190154448508211484971700248929243410882866492649866382004009677762761532717940579208223579797240164866250775409444184601066008826625523530589103474646620150879091774176340517913517703139480372334960201239757538801995342799923066652041858956413205570503159005386206808969198042064577774773306164129935522132037639032435722037220024599998683184193115098588987811064322769117219805455831359633240146107911604620799462212015551029267837587776590237784598712580481064676653259631477917836660470091950524750899918557787757559717817854196651364587275421683215639144419550472093778448820608292632378655832539129439907090479129149483465684594878892646720127306584469708783269364466262557515817887744916331766932158326917806083914263175561441755094183820915256831996292222292969756609984727233802180691162527809649291895091682238338618656349112236310766025691595712400951111951378499541729872640704809720736355593924305534008692513534151047920141959774860002383947814852175673265018597970501315415940211750710616411573323039581434285603472676888080543434944154751593441765407925760822045488933620043051866131041106950865135203551942858031482246684319697451156688916625335077317881979109308118614468563959228950003327042092591231160466046928355145717884217228076723978858726433421931855051294435963375464544195552704737608812347103590970274644207774574331355217396014552326025601869023835113724734659072395723325153923135707002393463380758709584744409215431945315700863335014995276907005903125065155366469400854327537993384380308889145432854520099638334280755426622591076575222279499647171416523922725395037090706787429632089556765133477461604171490883041976107373491360290865916591944555370757083592709540433621052980824473147512648469567120743681292499263506980721126950060953145987046371597208091610509785560158955383398874012756538239244357222769107259995012127480634649269379849708501703737033875700646894132915308295650714742906494230444766347113469995545874109426154198961377299915265690874417760895849442494299798793181507802439630540215846927198783364673641797980607495878933265260943532966549695242418359581396544360694724986126383163726909095822313249575544377547757007850691749902853898894042871643280554482304583380839529624177938484442911198543159118503066999897434254799680424588189865238982005247707584931825194498989157791484311039099744958089318793704976498803193839843010370618283762040771446501138076737198961369808313106971464018999556983449398646752899450353965250911767521034140605853593785466695954849054368598789773746777631751231956828951331567436687665284467408474057432118081521791363396229726452502940075141377617352542570010038801478222055895012442844006896129789375900838242712903898160800262024970254093222353639258183576053475496680763584525459286323051674602426898275432939963707752649367692969479662406018175708191616012414277280778676650484589262274825099441497775016380240917376103672981203907859251884254198044198345845044939905106247820553451142019397698798411154118018995004099006495994931059764454249999914944811950777311510442336607305093840685979351579299348143630633406145408169101142611107031917514391575581283584536932457012643942339231109881603416184444943166184682111767207952897594953745961044434510556533318961179587505008890747236860576486479337783305966279299756368815721801671045165378090667945236963579299288526141752296942634646568230947022466826969707257938456733284013241800086496209900595889527464764326547083839826472590417159220213830149045626308682095195411396343394807988693588436476475418773839452307922301912533357103690016618117478949777993345094436712230216497977679079464353759355956080922150011547360265931017941741576085886546081864613178127543129219175470175546986062734316317263385169824845268071111215428967064750806177333649405333839205137738018057224603386799791548391403188802978933597176384295783896690868408663646574878634463770086702368040996314592690607077754822681056374575743915511880794729597369209708161069098199970812839450078957335709593597781306388067907817453695017980437599933226244962168301278470766861510046467477212125255300776082217862299954268779547836458507659612165786730710665113828239319664787667442757036439752776298247221721017818327735276521064200958206901728922830694401266877946021548077421154967872860595791079926000455936280564686654723821213299084401645222814746486665608054201449268232872270476965967425132717552781826273934087896788725697393055759682775815673355043912738520491085606402143154591492658838939345844538635005528126807130595653339826408779931403226859180930985486884692616614937504852387470659526610141527938035477760643614096459798880001266253879769800941330276445431760690030825064040920654611984381967825254262152122577914484587495990162333202278069578499920722984696483806676179235086075599096906552583172808032793101146732248121486561530522094302270752749682881292073749941400158330176849498725735715761783263608205565319473134336986591843090342332471422851794004217681982512904666797590092398162334910166258021876870582485738309469802560151752868830048624729030170200410982096755411333849639288451109796748570502713261794288038441745168208234789819087820784290927271812098277603608261775855711173354394888467694264876534617956635771255261993396438587546366991558897942367668339802745832457715527215148125916117527031784423771461394039396443009442008172900372044928054983208300753718989861931284217279690226568963986639376619537652105048153046392158216167625609663191293654032074345713151777084416582038249180159031729910179928592319628406207180364952836555361576509600465946650529396975549149870080322192029249571505574521305509085709578932297278642657514769924416939566890767722843335654958176859605727260045692484085088077563051274050775455914420970413033638889526020885984490080859598659118846274757855247196195517127995827855351593009573546630957645466196920778242331139138001978464004296756442191152618032569031825140109732353845313876955377574083391922749716431759177620166114721457226650687441566628659488103965194223707492628354797031746888571415453843687987540180953955489461578725494524178410985314353882088014870150709204598006528501861411217338228465044984673390168052320388417258246002820611338702253411509567279323442414410284262192284237400484802986109550780387414908222919953706856578344954492881389902974002924018444856501408815660703629314764713878304044757264219897564334056361952471046884283667500356406595118131686039705501009518803101375568053085949224592100527496711570371878512661433385137467850571558681223741455605206913344585038919794339558871152300100699738414607134661944653401404950374319277340487468169926739750573446621656687025614655898293365358894718351007218220560769276283520887682745654010366228688902471262956748613802702568959328312557926411586345649152397286760047691646431116075531739959993028747293183929287106939259415441645445381750854797454417565630738917346236949443419543065150451979499312173104857397838070705447191366751005540499755304169820261684633583162840441389418277043941312660341323050183898347246421653237473989642927070646625358396386450021709232040953286079946587402615269660994024284273898255802276639794824402923757805688521950322539930454554799361874220959768831062688963830026889525828130490508521781880625180643161566541462145832764208180863963053985855397229719133050778041105062466845767492445211078422757437849771011921712120588433620750203144558513258107621100090030804153922884693841566394446162300764742669224966418323898093852021809162215245244311721505670490178211379341439414826577375000702229414067570444536745475140190784358573582919319422073945785765024492858417323001880618948031965172462983302109977608855532452643370152484100667435893222240092645011968180764231690697639558158455230654360986188568933122005801531152211265061072881659201239099708733641746513128163732908203231711641577969985283616129774946736949128174742747105430796997903733552840447810539851137699119087434281215518767350041567290614874615897786298774599022864687094390519575975901233716588932422365639160822372760207098656159026515280992901613764372345603433530962765616682630468666984932424586469822839046092727493605394951224406037130861444620340279292119654454319413814067723575387366409833054304731724767570114199568093282162987673442635324886369294426272101376063510500298968495634124434874604642940917489938738155902632841935693814782773420296300594536289404413099118501658708263309306755930057471753007258188168945270781019796666737951947697787274658800843339458851742387321555634073821881200797772621673042881423292828935448533649573837498661558953310267886926053385129902011969996154420891930724730064230750873348011575474882192810298141810302970959530293209090317116603357571327049047429993721114916109119800144250742387513215465816964988207864473123651966289500794675797372564525182874111969271374861547458532001282691661336171227295500703583133806665686279111414944670333472305769850225835791430574330875371251848268368259284034723906713782810197567811557647139185797747421993296150158409100830873697533544041192882413801600786710542526775142196967289824774283715150851200536618217301066356216382151424051306249034366262918732004930094717244989565902368094271031748086352330461146335737915427007498477645914697981453743539617500524643481630257424729979289385924540305339852278217872117659029582361816546075105661326827014998943902922064282497057340127314768995668518163145356122091965909251756979397810917695235042317069063158043324272139149002318488131182955026565114870949301479064590935507948639005189397930256660962744403397150548673106243685974923458766511055015419434905162734826369993423712243318822559266202966944257256891702945597033361061050066595818823135690504246759222797844503125184375352880852660425220638637206964625194373230364650095586034853391411176092529250863969556712457328121369055664253587613847954037014183354267213424283026798222038769852731603211208926052089333666657003116995270275727400515387260437988354299231161347734855513674209236179546051625206109737502513737861028953610443274671575664729824481405987849159821860435656800424787597585962781289241070892399677701239173686491158016095271012504929589714133399277762572622568025762007060318028642049677217465270705140011877700973553101811363065415290418397835561099709659950086622204159000509507699802276923127376174835818748282250577396015691162892552447236624022610437083193835279295363945179508122554415505039677832299865586208685311714510003026748056753450862362659769405927907869909289980609107785976811526051845278538933998255616891968995647470735174066060192910178672045541629551245359578403734780464960046824315380974295665823174569636585697809864335219124522940533425501994040398018536475687200372946603144058210514960525684219338983302877311156981099514503678781141530975564994704490381906491455570771095757925627160046792528502380852841771551300749057997757043988915852697806434239066211290349439481939114318679397587183727218769242274431230400223040398533677216683957308179866092783043428009819470883151997632868682399963534340773612361168272568935112234118883063546933259804644120810600447966959016808582034745638980733535638260272697278180980401110636562273316922938158699023106038784562689548499184578809283002744653674189714834078264269260094645531440294366711380990201210694028374868842536214561831639422315262055033465165272033923121821829267393724522518329526914823577740407247510112238682514798043414352277018473757097338852651952478625035054515176443126693112249428600725017832552522471728255913529274751855715854719318403642484809624432390549896668696451151934548360278213123535649703040054675879497533587891493872185784736943521776129951494553466221662698629010930660102993182478711389821274368692767407220781069847045946092107451687429061959871890961373136830452087032763308500015812029624665030497781031777272406355234556434075460226695805054862177675528197946786412196752641394383485191354354081328420994851508173838719719802794410375280897119985572847403900846868750367030132238193215457743835803312450183220290322861537096443298111508852829258755887697579295828840455899907420876030729090069270466988368645432944345976821434211307731057619605013771873010080417628599792455368566929593488297582501124349264900366075133611833250492167376391411224753661497990255095242262282246083567179159298266483876337193022887844542441549667813977183273243878094579076497220464392240100397053635007312301541126853355452390493177141136970319616737660445013191361212546222286346223710250518128968067794478821110096468596792168552168618675405443973407242161719247621413094780884058034767738111809039166403746127238240964578353885782546521719341181140643762071841531171447443147258114560670965048375209064861635386159158372259377853901773388312103492959867664943632587940095940527310566407115704398251302745229387899362573549779751016134609598600166451665564849016509849739222519970143172598164049752704354386853400341556405964137080219128979770677501221903602318465752318739614305481925125786762426919334296031668870529892889611284385428645920672829135435430466464146938628672408187158804394126860773551116660758669739596662433550925487782311474721352967183763711629043725881056621135862148574183068645020524386508353701053693728096698514601858428806694087103751849014985744245068689973205239575486243225635790077573299043372592218850449848314013188470510057707227577164927057199476371450675228790598954179627305098343565690171951897141398546223220109415404899589930345880433937809312416570741237655164952172252016669702082979051899236764720415604056761333933933642397591800653694131683430979735145324337465996726984783118001812073572458954344744113463200359512436184359892944953863884624794638531683248609616598544270706254825438618918131041114661033779424637919967630889920435377551853918190129722480477166772001352677461097103542615851599962895104777110986845324403579764746368826979912547818764932999853409669334554396060582332471082826191830880495276597102540366839521737351445228246833211619182991633977457879809869784883573971452649305691528947855938660567831501938113853521036600538451595183657325080090284741536237854020491291369858084951465461258938012250962997225530471574153718140678325976146764973264209912752338618481205699204971924661848265912306869134469260804434367818590278307107401918866662232170232470870745643130068823884737257253590942383120728198204427563845092975766426867566176963216819427938998879176725318348355739246643548632125169272456466779567957617311824055540660650969213048581138463610787324577613912544841416078514523201287202882085237310853079727752505213924361801358740154731334098942040492446377086709237954521455481319854557007127237923914920945952350316119687181878287079432410129139745754669800668246569658095884336761976720461503312655768010918662681927113941312899852307506347233875026281999605799364141198658028633362178958534869367774412678065437801980778286677420880622907908232661886517276668603249328583208880271073512393498436482542162822345378367441451922098128529866655751875590914761970688065085173402216088368920567264332294391337184803967787489355305126898859348691457770300553687134613425110268427368959393510565687247891723080628521333647498832784755955784562883515343512523971535019021487155337091048820694263824123008788857546404021811061670880632824225441725875941142295291188165743278590825285945893947833515300748255488395692023628309346386564142831606636978917608928941436564305072638491546853805326725285819459913643773040714720154033318216339085982486072390153753872894478335630206095763977544366176440558491667345596599664847693401141730708153820677240329154505264919244649252415438376493606030108649812261366292940745970345109059344224300235580171997880435557201308679543868645320157625926614639098856766950055444466103245301086381263040682774424936761814807094416416308163117213693455956234111506325695328420414930401446805190268343091804718923174400603893832768830957875586023579041267223321205127764323933956928917938651859669725498928312722804669425725194226065565083943359307457183237904419347005779983387890253701154057781913470366428705994350661404427822743719458066427113821779796863220255674955784859551647550020171725116503034239896122416345203634407471286871246157336148169260246407752263403296974098532841262302891865402505239312866109152609119240190967618021219581329475690170066848123319145663357181373935864931842959361245299734389993361029995877072670493997381075651674642291072406879368102144021789972729458135248083684425242034527334693477235266070367026413144280516864033922365547699790054709203800700065847640021996289065867346977332716659161242293356221885604322536808556999520616968573964966720567626201645165651157130963682634705946451602201387828999144109021935584859938318378967814070655441411946374683865930518329724479112167824150768155109836456028343919321888147861170048489963351068518292968873667601950965312647219568170798591012939085475382542719735717381035732577401287492707195446651884534309565821048107789943411707600468297107031325781868821073351241471950686650366813074463712495939920916922791445703956852673792301687503502114572325534352640436598957417866240211332844543653036375093359605815537936619238745147596954582327848224092212593401636554378484275938353065770369136980252905214201652791686257700813003038726347545896823625068393159459857147898314908298795769332686415388638609404309776255572596171094376446673386458651594315728480084830033629359274403653340757021442839374963433446054174365338435665061584190526040711360368810159777831318581846276474143374768984068627870473925213776725040866505891814146599134809853975178898117103193271521629886815306150635833364061247359419617329788409584831623651469759683097040295266995009240196018458655090502779104564927001167334409099297804136396680577238343883211896701897017359256170251195063173980449366960644063519651177342539505325734848059873365648326280333043943951304101388091148915449036393605962435811206095154438566396811143095277984995357555348460594311166621109036538220855656993566009848468729512260164577378809771926313407818315134734488571201464892489759347855752520395788291562900023625699983128080667072749210631800926849970871908299375057179247915208705147461471587888454236562865134623308221237598245657574663078130392752150220132426972188000485311841360415658354665226551756756217823246483946639196505267101368731531841004907924477098593968669725886985443069986911271153080418841663201341767885754320997922465700015407469091465369055688370828050825986112730060307098122626084332207733799271008871351559672215030992940190346557769109386961112331909334223253237173517710351178885738457145981306479750696766699951123698658754885905231390512626787277606498908261233116712248520783017199961313412610933000939896428582877246015739872820300782754529011667646330590432618192199280382741904902624521193531178794650409406700454607355632605775794284847362375429597770632085782839127762758916720951730692345152030444446552433701496488629347535528340623082289544597783828565753969496796193965788357578770789108526734630489065053580277757978195566548637771434321464610936869692916011711319240954346070715278570337689395460789341025390805521676455441438081128492182401817060952048828108739412657800234904989113202027506341910363694227631108627887070568848079605738022493610875212942668715242777049695049844762619520335081073593428895952185210700222463466358436044340699280832748712182207310988496998777175021973094890740456676660574165995427487240489802800434297644366460248272201033990190997881183057439972778880875084665967810328101383431868278694564364169305294444417535413784909542520378364936785873427794804012165619834534076837650471943282872531873336716589323004910700361762019372864023075882430414234565607653680117982689362243889501701031499392114301976898302484041767903432670583834819141878283119067521329025810309890126714460824999638116515380918761426140700641656732310498856651933571622975337386983205073879994133918435573448569608857964915045477501325810160622785505605517792502529166094331132679055851451469176922387528925266486565862898318758576419703919074340538757987225941512619418663847423236114027807075727129837428272434774754031930258830138452302184285986040621234268002353392178269105860393706279020882714847275775057800163081015867268941988234352673404853942987614584529954834654546954392508459826535533199473546422894680772805625363825561056240734731509457838513854387358142269034042344177180249825830089495890970410309921440815860492856242891280269746757506405966915164568417006054056148962676022420534033611879886353945756416703487321767193484245940429542894725194292343806886203865407369673390491570290010627611777726762373956754203360496536768475937136436957946971630573251769383955583937053594838380979428789981409954601537705317712374039593561777156926631434358355096123876101664496616554904585251764220345907546096491954137662950178429898510123546690294593165614798564077587939271236563786133323271230996157377226779213068883848689417711907772529188080031780148587486077538945598164960808473067398402634477251998364959042015411160400623346178191607733562921476959157869822094098098374680522301373954695266771290019887973276122575486332227316225267723848480769286079506000542000618393061266110379161540057141666430068412655556529149239411205440855459134328600735021716121033284933101264082768926553699510801448913099438943957360874153188446071039968185768202345637016914456773768968456431402988659310436271300762162555776583548572342448726124393772156899108060394955759790471527478734938246967234378285407722330016232537344138570116852323947653955200586122374159701638996532423247443630513450366028620828596006400670769539554352194407246929899738444727254942793842815344584582547290662765117282220329878541976532855279753860514231330985146874302019637501733785664329591644634463388737162247325869712921983877943233805411409449998792983085171578629864982394104476143425031854171077143959315536117187454820355602047165596871782708142036787013478963829919228300226275373215946163912443839611077879762272089295962369649482874584824273709798387618124495631650314285026614654291249224353996395155121078539043999555296683869840248672392133100293634135478007750341848364211379841420076894182290672582632921557955761927394489714635632363185099133659058260443156941563323547180640434020402548840363320463813295762120382168233412671170735010731655047485072242921832815701525141136547250272334319385896326735912531428323193658796556064326929957063620841424924698069667491414576254248141813592509881511805267983574833978905122768723580254313998829881572237160706131634871026242751941425766746251278744989805257964923579040909215381104785695246366939986213335398617782693708409121873469333144257538893700191652975685967709014998500734313879766531569840928869763515289698137733269710680191863127813615831588423687492941965841641185266947368073511901160056484089979358472271375132886949041105978950006468166568368367355862106629657580118671555933588998369218435946283972327473399408621635260707084833030517017306437194464205710678418449037077918260097017097014171762483049046432821448430787141357934955658269065288493064812289086707829766067466906246560288232360999723368253496423816954814066738645737479133395615897143779655173464965329775000799645802469929067152237059612349097744191019824040834770981741722137750916665021208428982719666917077913710448330755414895632001314456706608206510978095853805333144749197259668194049733768451238317383594766287412101646784590923512538017228773589201573658851771908440629159089104484529146158987987453375981971727968171743192961010922589760695557823392964522912441305109511798178951854460066433879637225358228577255436916151948220575839087488553122524860936998010511360324030179422050986724517870949841429196357263669280997099095930344199477024621370012489248329863729571963917802273394547280461188026169695704225246095738792445463966962611626620431037484041772862914956097052967183809091935936902538054600972191266990826648977747244158891617692885719821860407722216886859197122087618482907812611565616705986753467661886162962281140082246991786980927436416760577811614286049888883179946770202287660871126898885936641160310398844160733251595924894386500489644918770507424238837081288706297442121493302668548422582016599176819199394519388011125947070798311198485950774492449335890341617378672142740639437237489921475115497083260220585928897861194928995548682243141344949404508589661466463824287547670190050822414528664353852487957716538602396180513909661539919860409754057147157472571632708596169854233889195843100033694646127555733745617379086078109180275716622840656666026601001651076660079714728475365127669697312629679554602418536906782868263294200016893180336184294851206469620655051053376950268385310804527061602909427625618407021282162428932406802240590094735009790303749246319489814000404490202661299561584977636233560493795790925658977147862485010401857519221394163780013933147781599980083814461025472445563460286420045168975317361804261089718433367679975056898894170863417120427484135749217782667916205101664427483700714566097161001647962887585060549186350274154266492499486849663660326862758283984974261910040895072504276526936092627571418086847113753738460082958733940822008030271176039017641202903165966999162972624839382365056182290468046391675313187984196644026460275017158358139124838399916192962697123221788966289202293299014159894351604496566563098868267556725258470191767239226833374526379427436939052898938766739564992376212202170346686092015834142739047579952103220910776753372723396707072615516137412274744838026601124067317165880974206529507295862176405691521628611954512995852097152990057455329594464266230650575798637924215393973663660044957491106522613157501206457162131217950506596296318153720506573590286346675571365443821462664946265303738561423701146134308177572800537049158723043320310058152128807795345692645026976545294846732327963124269715383736785141551960969518755802827388884685310748119557000601048582296041432041153851677332797978366339072187285689117664988579206668682221692967689688145657403160189437006709922180234027706972502107989979130001803493499187913644780986533229170963947330428788495141913790590652306778926877215339508795624120417826089201029827082474744487784172410571802885599062005348613826523838028442087720557839656463069888517035006029235275934236517933232674261352615960680077382225902500049484511977456716333294306940041667902166167958186862857562507541084001394978738442342923793125065420880398884514162030089671360891212035146504534300894995639660376571220085456840111509925986780101842129192361615259621697599313957704130005932712188342732146368481551670649706007839483160243559778502569239762957214605120348398245535105087070625018257663536119242714141453963610323547688450209355674145731959138763434785345757690705653014041699628686369349654770013011438163717667989387066027847288657292124808374624169609714433914913011329469786836751824812236645511803437564573928926952148470316190316971155227948300273469172924424240340175910131118378219893775779394240471844135582115363258253177993118327629576573624133097197090194175975040761916878289346939510658379880374537496628295856802844644288002463464397346303975239024390997294001127443719349731052447572790438908119870155343648042451315014791679055698975649671716652447557675064344486382976670175785283950407681197960386076952374767502306199218571371875629423459403352976896048948460183977747478559344381479871546432484971391244793556149174238184773495332331407893418114364987125875081062130804194774324115476025895487701536120169901333317077693009771732266876767378783478981129740382441932932851387268694062687021203274462139738777181945543400516455038532505839001638700001636147760333261788915831562225127352243115361502863424107344864593043857948597325463908676886526625518083061963860929507720277968995811586818991616196239641715914163774379318314967356163115739604028784660432879599386824043930014949944587651458478005506170938469476060631882789379816507509003720333766259649532387807481064548575576136756689889134126663985527287173597747255159052579833074311775346421898584507470519556647624555832410871259539468730188859640988309313268594213288764654118572902906814995553830573234026750723395033568579742996183313970277505401429620051545518704802179234017537462959581190200183692044150553241111561637707985709139837657988491331534310730136199709284132717848702277788526611990904389440113421279597710293708029443849233062945162859878901749900589239080905747881801309011784193479253229953614821562565674502845308127684974719226573185512359943086076211160657787467853113259803516252656239737626774016710451710215218852611868398049169095943667985194084497580082705018929057719729306338868813872253342644025237353010244087888026380840366135462848344206320896473284807821242356664234279617078716943642878279267558503735018007941426059958583570902389310960201000161440585055128564234968399919145946196000846201656727456973419552842154221971786439207028022725508939738212786645618654692771499361377389441339249119864554383381213703325651205089457302303446427626505644404152281247023022570467766827259098108558857011124169629077099092355481510119887741915400681811882808978265675108730403322801896592450434186776990455867405509267979589413327818776584671464788605472100343320378405709958888096479074109268957416306196486901455350638860332001635131971239251912544747056758280609229722392231621985107396551494915104468736386723665134809450955790610365697243205842378337190336386765703091512167404523073887722709691013188147531718514812720493078131881711180640266635127089814803596945565829481681274288990175015837402491639153244313844314554201730204355464567823395638449882174689815763668713013716058966490884045325921608999827114268636203491445618891510647246244766681229563581840296860227843636774882526009224105502839570641900495236699166839856053692700323308665003849899853227121126264084432519070525246941785011345586611086407491619961165428677017596403214745438814568262975419265194670933591706500445979667323899226426661067372609369971813652409967843230623711540821881596738576791195334901349603760127534094542909976616550788484409653188364991108313532709557237975485708403416742830503305105239669505675106994205850578864026612044160448288288180337640330067230244531907252691596468507957274092042882978200072857213200085365774743902798565507987872731771901080589392491992511302940157575329611782597560118366492558367856074670070431089688661132413189668307055965362987355336908401293333150447267104725047883370908602360485132169045785856568451619154082697689599038077076545926656893184171007225787284518014925386695098831575517564287971113671252957313817012735091212452172890522714926630132318537439119101296053596939708755204098713824266844291431951928780849046513036010707631959693653067215927223807552341185739604366576009463730002238355837942758587370553593681489480585225398058889918782169778463352826787704247806787352115279082603705269017844140650113468962245348156822602743669329193807192602396438362233666318242797930220601245712652814073848092413981462447876856906833453497173291957342486807077870330715675030192314058130150264257310964384125557297691323503809853198440122221146977224016267849909893324064658787662812142382383749359056711493413833502126450595268344390324040458170718881675079264290138945956435824766599171374676433924317854284361163731999126575476766749136594281765755220415323758943687795602092730054587414123282844108339175276059557087981995482540664217439344762798659852133494947785893632895676318590918828722111565602123409551424533302485359449346620595403146878701012675536665024802321421930111258420754276803129383804516226067634717122072036435772430870641737395528516755919722543280539765938430402976994929427280483072839742904216830525473396758677469878964282665819767180959748143772185614541485156404320976663180339646392799986026043564250661468518861747395964704048276926641279761472774261260191119551044972081032490044919953753834379100018344828483338392277301109444016707910962605273245980523958472166139539780073670375617366444594451232320928735228763337293808357479220068447209503384194769680177023590151713802765039968285213847640877773445789085564962895188100906881458549067526033997553854684444880083629626469890507131708438772708913449467938400874119696966868805414042303657661458167794875326242769991926053213807960886692005869291407763287730303610502751375208681319181500026230840361869307015169574864771922558830053538905326108117940975993130904410192615729796202646946000008037822006688504513299628010918508598100639675498047417781224600814260846960597593564615546150276595545932150405854140825003175544997274779400030081618725059261887977403776911886990506151356241521812214239909650355161545268555497487983198196221563290002031188998413945403525288504984599715313816210731111261369445539516236798403823103126520279246855374208958101904090474274583677711801797488539285522678813585994836386422585344654164885625275394738326812083039132950091953103950729876902910265239260563743535440493229748374349837541884972022497386677919231251410683701498706309751231340850425813092598427003535365052373604423589291817627839587678051357491605655754761443730933018078429429053204756575666746216363303867152717880498831840040466599149742855662188387312615898484766580624174808656543689483292704483203367894789852468265248126423359104578171753392492574677442054186443869432454030480298131428367721207672401143795431775074299193322225974593302054221634754759826341832920091848853786242291188559441567672820162392746307014207776064490619884724530095192250576194626704526121838386784675684906207562214977920881334777619608133536303054709975400210614372004314996365560707050175987696192237746598986253847961931540376238326373677930027845095539470868305261653974852550697211936841481584185867756490980503651887273768620636405940087038258048754870508281748684992119064562759781687167606753910780540620758158505991624720567959452328982072875093035038318507209955786958581458782880782133388687001647872570768615844586521234241131257265128328570388788635005844755477760769323454587889023561635645164569615520456767941981277679017844893614469011174086050001802024407436457837756952366438669337903610933352519203937684610516503598396813317035349255458751412001261976974520851074452526473052528962824409615457941440669162957266128963556387660509821144324852541318623350279613087544217602679527240119310133323364493943602690571584518827763626004267643476503833466377160734126204242429109104496941304033621980295161095385307818396377205208736673766891892224447055182826241099166587645781856169517021726080194494512597227696617373923557065439683233654953911190370013627591020512265838002779031947472161351626709386310909405200642645105730972851861346068192426395973921409338098136622535282449950901142782825724201958343768865231261767739792057806122554529565423553826284545222072420223844117342826357482340282266339833546483144625973823939070177959478631451967296681869683766288825697310271733552291688276778323712306439013968510032802410344148193998039020006502031467911526360141134864857270350094572918314646077787403995643001258869480036832085302528073370216927479286116825196494818915695742325486324967532182915870709424494033476601417635117405864338465177313233044230148294570433306893741292006433642189092932896504544442059380869210378039592905883064677434149850595561447340464098108635968064095114091609972669073537287162682259652404752163570551527119835284400338229842735273217017940021739294668380845657422391667533504621806170970698202640049936959693167539906668365427794202273732841410450718295615796755029720162424101104332872830151078827989797404616295240294643575597307354271510427859945440477215019616771378770431924007892923493234260400165962313081025713760312868054832908194866298901203109354902091287685984505973232118829338818434567832652458371629158366010690730213452452376137114920195555077642068123987755259222272733503299318299452677968184140022072479665558606786972963282147744357201443906912329383934333834472504149620361794290385642972914654573596901756110479639036570808072622143612221791374770385562567715716973343484494599752641162487644348747657261539239639977770077651475705673451590261341184750327391682092933423817964248061621061483471712378848178885383811312472705170888111545120388045908489303797865076566701842809331624564714267552406703122160352387906550696670975690047138819717939004799565393337177972649095468724970325283694138459629327783187191247045234114990033452696955491410296724160020130226849515396998720162736201272213251295157787370074079482828969713122671566847926138620322881031571131061089707268400209829344484807241441254753436485464201902045936118732536889710494792855699635185050651907345415145629908558594869027813045768295060846246505666016148504964021136597618134749024800738474535907772103894375498079597559878625636527792192960528828191008105832217286316756826969584908199987279211317034776756732960302467110765904771116607573210826332857019141353974944222528268315205457633927201128745626506122251029391669832272684657591025302647587681337998564327427551139936661492094485982722500419814039626027045659174064797513497477772458958414314559730475188556759785361027588741966044169872235908430727145622194739220214442154024462197296091696191526679394556523003932236034313752033885843114565616508600672109525186731176374578706633063646646381022997998471256334058914303199186195602956376549184686266279645566449898641870635199079265190975423285089885406729248772072096719060073711655885567649019535688021872105149992597137507340910690336978057766625629042328781020844705549112922200374401026076866389293954603286239186972617234665788762908255436789598130904327541018659276204328567182055191186240153643145080916384526268684298309848967669149546308612775323753229879273010541264987649347186037935348382855997143552380895630287213437954779694077385840868935976621724183866087854065967022289915213927047519807989211796054760819157541070843708263030918169385934942304983412121859709825252289191325140963958480307773901208362061005902339604049026516663966538104973994641323492286110717107759333800472018981911662214599101747689241974615087985501566968846194979070205764648846539414357049170417940338667631703458298405986686766588151086817578834940653657149139978802400502897596033015376061804177684798851845329065278634060828847018100865469736318161501433408355941555024021341834503714164541623418764074513325532433839014821598811128659020451676613415919942643916355164960383418249724433230468983582396349695680929501011771816459318264580332559512804840965294738771588439427355758456714454972168694280844886920227528022296464168012150698258228039054460344748147766736608085169760486275353646674042491079528541252643893559104330548030380710302618084002842384190423059598644948217593192112397256563112441048829767228462548987779625970940170228826304140927500343618989852474420524982428518589192376219665665414401622084907944417937225400095980991663688446546038106066061515809644843998437277442816264033041417219618932746268914453753187703393502765264525728784317993735263621863457094226043286079794198266125696924101377850184915719396126178654473044064090868039753733654379826758888027487373385698304090286096625343350151555603771495814313416133565701602048695290406889864740588365651003472177762448761009204952307124977749439606995628702427592628266869324425223759799251822867108775192848304504777821846405646166750705776133089156656209349881624836405434183345862729288977945558205169061129274262125425462948701869566565851093583802354461205311909639011636158248829362913562000409810353840099896823288800160534798289427289987947574175870027356910226625367883764453622757110479155285283078197787354992384662993483370440794447098280142611177403195468267681024948592920498695485235334401423921613295865504752902237331189350684267113820697894828099319518390578320382643281021701590903196613794160051352144526067939302345934336770784506095461756224263075960985073893479724331698154673735237346088755356085301404737320552385921968160308268749541680786768718853079364366356529315170615504620141369905207198771071220393195548347536318038398203613378615649107378191989282305202561194422869181101006169840318185703648620757209998663080562442636894979805437714185244892133859592839879682871138473027139999674385032337995608045622663128848807960612573453940134582120130341532907940838740100012612008156105193431927337668261957967206945860491151259967762029921862729349286222712503747578448271016365997741283574513105450121772457441923961455837804319624592901053986172286102906593457154592707879713005334198704003509005423591128730092219417851917172468862364889288481213506028005356369376719670038211724269396599147951172463198949297894416271040734017316493739594152417956893117036898898296372139336267894289342703131451591989087600433509727739671498605985643272373418301468148795360276397279757316337193388052587585608354669374911435042233311038139653050105678437082120529318796226196727113440895934014636804247560274992811704798438399014317633116797149503420160062125740057492847646484339523017957840764432716233550924892269791072772755340215443139836977081063458585948891842811136417169027048316648083812538421602493485726445444740924866218201312615437745608346940917122354962889041151608308550370073542462595048091067762732682138565776161025732264769780952472353261457568198461533884771632526959787701431964145821742011463639378511022088083913277922715685522663637042043829371395715151604257506824026818720598464408898301521334106844796046655978190677230812274224275402489665771166393714494187378503805647584351663133380550624956729718599954402001932392151967654778713000866285665178142396409494676361153561141946708868751540110446939294936650584560644718547751197193432681209082026477338793120529790329319619157989013371678445888531511195450030916652809165976248086363805558721682861062104195095023103236686722865707311702021590662547533749883714617003034682873647191309343000620171073671759327912613722816224166809347549338205923371082513984317325831486427433382426609325538161468307751961118638661742264487387271902000026890602610710499797733514407808381792655243312836055894346229040546581701664156816683639717181002941095219011322419325372345224395174517223468961824431340337360927530141129529121013801981221286567284937121881051038812363272886320495720681229956626913814041676776319644599103506643121250837735390548963759809473196591523432764898233117358509022980146981174844603357405511589087749098981269218376911449670847146479224294731868091067160454553483236449845068200977193215134489077328264723767129537691205794459848653910631533841286531347609295831820735855295319620703563494695037464871147765945838836284663526126540980555888406132647429698508474178369915601596188250128273031922676071937232970152546254290213377044737579108739029682139132275581265758785897516159043657612538821307828673011130347747345601427520567703713866271658857847904562481976776766574392977462581766281059150876154576882185934954373586161964587319287349137835826912034430528336603349304711384447411928220109512442997674861958578918230217655150508286718643651551828304017800987757457737691480231751458667675507240223854600788908553194514865050332733518923975870152021896185510060859243212602666810152737017051886598184534128649162751664637352339109356067522266777039502308309057327000607206603735122656655877996240753282195014226358595556689486047773848734977791963618031403451863263356112261513644429388585726640521092029447915626549273844893767741098441247485299073361984509315738807418274223507268528277342136376839053050608309272259325277477905078456060598301978985148232462121826427970671379996681927655421769275856802741657239111406919718222971837289315834645247976504202768909414705911413588922440440722513196002484724991009659960576688929043434401181032880620884562998345506525421958262392679519159822607215764266740816771364551397446082048409645260708318387992018983221355021329486250828636760319680868108669658370539871402592208902884862181276013946977308221396043165780067577617663585924070327394107926851000100135122013479163259583058135426578605682727342686863419438260236410414490755265617731261225609340578684615974778877695736713244089877735924664740723158200675588664063358616287752399856329943676445616231941460963442374923462556865599381880499386977884268644437968279577112852536053700985939427134941945985028474900460201490593916072365874493575075091719617931837710527149917668436597344783099713173186829631572708913691624930773553461181309491409871916002689188026640047282124794133571383462958187367117105054052708913164407672717172021827597288498221426152837656383079815376575052345856407427834066682303941657266621443413974046974571775507218417567709187762514356993071250214282844477699244940031056165167590552538230251834003346146522396616970451662254719262418891356631800806737795291953894971497767346264071957149213860844142382873083007416362282086774037500880460100124578178422303422270372553918919221735704847501172564051683717763218049806604319432254760168180768226311036675990872330577040939849857156393493117255821008546804925114297396244834020275740441012119036951055629175182548790873546753837988637576919445580316043703518755722154991742963043067824819271916311976509043973303504115522452391671051842458084640972584822105874603160585076498358989567617054908660719887027874829149291123007562081199276467284408976556615715432514678232339412261134364510246541175508944170969816487519247954694833287566976947982646140396402918541827884052081231354602233506166274318805278965779012104373067538433873190857019910667653210348095943175679266428050466445787445064546280669812341985746992547422705376558186901551173077520932287526650103715420726952231583756287262634164269840258707039083804442701361804420646340995607492081296111530937156273804192618417853642093362401160300371521200168212418406481921395172828847849843859511063957617512950258000055793592860151373019244623438569985051728220869935524241575690792469835040015531780083418779038903287394649595711794128630769054110991243988642268602223277911780402016648367421197040523346892716679311343100917922144535354519902622754897995503981606175532228511704588805064126132041464874135049875243727451357458829000689948672252418668687240591460705432247828902635944638325653041658715238889863960594312654403068602543085711003740736217105628230429515056875499647578630720534258209196799237436729330344513385730300005312572259057734861843177338818613244044075584954700606534862541329438516904369508598726478957773095327438195535046559225824186887525990689462925743995929107736637193654892020920434310136916874371064309241963534512451593732522452056862820273681036960609121063877670653174544987437130309973263981975714427290537840521019746172998545645860557332568237054901069766245039424683789411796133105944558506387115391607781183758886733969327685782445009907649255173529167547163962762542543430371842312337181472263596899814698049822714107012180922154396960276785472775828493483069000480163915467010109718090045003574777441200897116861410672689910088281403685873581428234443332729721125563110621112434055683658334870395515521328407592612693950382511325738393275430814674390644181590043364545082360134081186374288515081931590581262832261217812096446963230325418524322907053356890948839103521125806472044842529292210499052983078202987745268602719183042733595374877949040510244098859199627535549610472709223264935290277647194233428481426442586009382505884697329645177072814653306999432684803911293482413143214114689115962637305906562963247374115708312083257648083633982056950977441547471468456567274712074753027938562014763929295712589719314040385040784560710312012538978268755318271396182530984612306381502980051516836865594298731487387181632495232436506787530893854289532724157126269806373661060672949046312799953159970247120746246863262430571842218512772654017692631346166443728778644520476222105569464894066246158183759318546935478733874234728154405649087922739360687716103776224273568632828646288902145473927154614868785454002761050089381381882961865869428977634775816850372326032493849264161690796319273671486551446767401604844533392073928644340405111227847346368992716124646663161045426872592697331353669662677304435651927598110194049277271716685559290841150687189371033018702505321095492710138844844053182420121690466583083804050135478646205831843888265979405734282552616989432250563373261172414016845538600071699117201131249798603480720845265732891891626438181967057117706283141214394647607384206294532297337290512557224103148621571374427782154703200075492252006418842152000795416233722386032098167864365156714516945443855094406440692754240183627734583231310494192658341316127534847652734722363898074583062421650122514851728264122626111481473536889872978407071166356565118329000954660260106815531839049340747926871873498498117575762205192264876069721019323565467647136751916866090753515571270934830228095874329076296474979565888001660295298897101804776950008101527250284032955953082189723694404664304664772134648794014926899112376786399668738408505775449475217029020074322016679512377724943103677345324867610635544465917393018298437118213939609061865757884867783722567096871666509807779889524745513945523763178161392894330436222231588716968448824622372457195309844439709904190361857615797024958238411040375366149608248240062335420388850689647454973782429478895992307233620880440957516717031201648259980069348965399691178003463125319182855626100132380202229048284992018455040364636310292741778222161902665633024355939284604724481392602819111392875176052439329113983039559902205317073985326219178844985922888721220523604370919067609368757664325703695208474129138470067020221171235180583506791976054007113729768604449279443751146211986794274342653770169621841340837167801269790699130304385092029634693966709192672885349973182251247680489049666655267404750753674725794097270568304831715164701052071436354585386836262956626628744313836853988979087490945241455495893963769716809189908536147100200903271774914614776038979739851326848506584624631212715733954692724789338556906587726294214829124308755152298654641574712461648895116786779316143418240010259078005146484038302344995460686302078879019541689901265915826424030995095196532628481914858989854495134221607581415883055658399488979193867574155605287798873261760577461302585108737235764717998023021421745056139594904708584287154033314487906674912565271558980891267828789224159140942825024154501190211111958404157255380695954859146319440971523846879389400199834054998798322774568728984679070235460725511812473906912672130977867415036408844711210905767932563055051019602442950560650656233525309010528424614578307382279038200900128561840249705962928080362855112565277039693553246360535774961276630866890959025364058323913060826280319101893543970152877711755178184033064360898574663853476707592260945782270816862399209611658760201719273067600465705990674240750928551128439810364014484168662658705884580067415101394948204225863950748228729048369678806347434947638819229626203934599384536347240598211694585642403997029335140878886492978523194790409182417827145214070843535240908149896132395544168861318759406172920317492154658787998304818701019287211696351947013492006768116398774766573767448952109015543793948228333245839352684686623752573882648404206127070600331679082657695095257073655724037592108862974694034969714024584354139215585546006217780605931133171374079231648033109898690902472641754222900749210459626154358030707435857635179926431437959896624357498348839797579136682648589282610091555341652513947040346145052218809546013247107162139520085577610298865379405216843600119849776807423444001863435326859996702824981178287951437357777561798619096718352835176598167738645611858422120259112737687812518121061903164146307291359040089026430943682899561893488651226643051686462054065293243540508149969698159385152604716861030801994508771398215975135789719540720732570005792496997349955719879216645964838352926649529330265159051582670632137663426687254991723114956320107931547788180926893230855905946182288613222141701078329078437836132249588910003215263840989922763984420789613200411657247408152675894557230070976143922080466564756889338177323553787094708131084610135294785176755808450584129248174207308416362540162379544358229625316884756403335191981301247470909653695968872578129778474461758813422303334998179815361464857044938547718191618361143984139477947472835597773128093752460616747342892904677389739742599802289346694641818990232321953805385088615385083457992462357894722405313837027293765909944774706106943650345921652971394994916064047477401879556920832797501202996912746395962085107252141031318900020498795749789209318600074073638652940692281358299545504280617283073385524073292071425595584881651582792922722099398702033340002141666336089367042158791071202150972232677102848518592700306534736294200986873824137774307596938008622372616250414205391864907972655654159622025131250741947292797531562180382240770018567754012047214263024372254257415964897647433087729269330772570232932780193151463032758044954778936833452494519974877087421653250519177936884128966795857289567011073501055655513167755991963424697324316488731678662211861139482169009684211377911879654338049614529480837087595768327774507526468714873792640554322658552930678109877788765508290710251259374378280137331248553928998787373935205619214138565716050158115103896609134235015151710843383366434235374571473442029299144227177220769619805083923713523286963357623784211829779148078853934205772452841249558637375917472953179268817534719306791407893403324930529832642243308212061152745559043732876853781333100552254754527627397541995729823773882108680725642625505367222307472276741939642862739423009910051681189542248980388371220964672425396954105293316058416511888155329381941569939266826951017796982238433902952180851781913029330344341532168700571443397252311328352830769241419873589355459316645390169224825021471992529965674912430721477076436370261114718255946596284763392138355419292298056350914322755682920707946627810202887422321204000413093638597287458879087465593213875838048608038381420048504897252625575687360911474850585869076610611784061095236190608261202037672520754443101806944520056475741305944675675627883884368608404078188134035342147715512289257321430726873281722101546883758225632522441007394027847464618055485946131239056313048048375590351655766949249385603970549882176545633662492163172767587546200035065380355400661184620745113677273717122758394111654485348097324676409912483114848627734152136592578207705979154478659104405404105619685129378914396730345037146657331508671149029183747845739893622778872387200123093588939667082864701607888778628032938746206004401295235375652925668867696039234988966451893083627378609515079622089577178417206054325475038264012884857414000907943418888360005135359221074351877505384762723600421182279126867124406787899411873548746300533449098311576709174461366662640577821312174567572275763470464560503687314770348480972933685992906977939238464104652971655467864583432254191615864156050469734984609246186387814896420199433930864428872259826760210151312122743659104950277792213528458857255435128427115132603039764600361686804443144593668475936236146447567942876021784668430032153191230727003652005306138113220351835582994851520582614821039281872731090855010755864444327941490954502231504766938096592053580659828039298907668197077149084303661335617635494171595109799100538230630558074933118059350907537061970407399649639478007719566389552421320750131366713699214428490143761961807324750298035973634822349489828562877252350375698109013730376233983654567880535587604091561672479227896562118467345957154533779300646083725796702037305504038740877751786496521830663724137817966657491466660535747792693558967145316131774003802209372169794874203999538828594336978077067861565187841592473725363095314343820530729931258372234064124503694331759389435165551182582454246670489706001471490285984179550428252080099796608415912261312060429352081839348059084111758943863858764341783835951032094725201054356292767792940256092510741282326177001176725021486576745877984008188536198083958511140336662445809914411039094098398664956266270328435677646777511470211500229131923910160691361327966019798502777331449591432729754150334272123171466170685466130552980004714113628879562843372136479195993438762684865297622251167055993617245510554247853569395832426348827143477631788999910346206930595730837590739958255435657320458568412339686810782693651027590756734869031046937940601248845839412329771418495882643982461231926349440972009301244838530225338061394510323866839301196104362563174598426540024456238570134621770871509476653768720593841535861470247660391194862947739993955557226994909248524898515064762318467936378129259038865604489239012435497347477756240382711133516723894745046319537530334838491597217551397083194062901346360130924283819672708226754896927823402605194304625715656058799287179648779767752296638751729107976263773163775189105074566327223845685107247771607998006212192379048786061433675653640878661299845392351083868450147201846051053527778996784176459935694654305646663131301244884749560701007586956338234199379761341387209609409506499951562347338966404666693876095846833136665611175728669345266491319124813093571590136039147370060657449965897888970827376912235827112673954352424763806231154100514435345257172205579431086638523045362339516067535855815297481155745523856472264751260405903509729090060632964462797278113610621738691352373322357374107324515396082009957445114386163755332261897240469016733650285816828909383304843429518127615589469731405624686263459325555113059019554099857185467048718572482527247543857601923564034140479538334829255304480083953321841244562566979725021592487131080528563317222750207013710319976660125445963474058025792270858811345783519858402732506163133054436290545175397258632191258365835680747678826045609080921595582429759221306428801673057401509270434570640120700314079427210501801836952091881493846486358866112664009554209794342840503197342955212899951768225696286544261786370836728819420352179848890911664457334142178397925950154185250389254496073229619936367084764236873779190116075787559241355569757672884537304988422787357623872382137535869408981105378188021422412980857837016637314583004835757647996764168842936970162518126131744182243250541139178057454085233797278856161095447988102457529763151801369652468625999975379100395250597980593761379880740792310963272356859869019234028288986952773146205828958801711869355193701216840335422385755363142819253912604588647872819983916692522991220857542507820052789633227703568998929932554013266717860572361613149316687801080368226239678443127241314272067516119727023779943438604422811824589597246466552351930907188704424175119659200137716843312358933637575055595578244174488004405163976172191678785275190943403435120863358064045088394044381505555395344141088980200616500146105300787737258096588210613236208783583249057477164767103477174788215943522780326272668038160154587521696448487906330821117105996269034663153454104842257454722597734203300022351934692653779394256804289575827774431220200225458624908468491618772039257125636987110007252105878492442102208974421190500115490108688965139177974847442470945207551516357844502954686182373538537137585615566823030559350999744172348148351462024760620678706888683276084705416192203637073714603343709500838919411168061948825152192499213273833864927131840266981784906155941996250999561063233491604673150332699261164302021840214790267664505740748986595245284962962425263660088808025150775843124762661583091272738168807929810860392742606950511050569467706070594579621676692612202430980216879179792678828568443670825129433772876869226881369825133987196114899390883263916926715071910347687434252695854249837101495106288165837651297656643321924928827569342893652796574166221375013890858496095171986368380469274298300207066684314006614058603683773225133065850530239878861119637471479734713903273687142769383475457512891878442576272906004922999116581269054642738305629307673358499156695086710426109467670222457401154473716542114744299002329271103677772233489182346765128206793781956343971190995499992257812694394085492001805478610134761552467183282909717970641463089455679990774518156394857276911273825021123271465387780783229843951859397950772605136100001477720749528103309679568102373416619485345315522096043443835224520835266886135154940184351874719035526738303459496809035666788425711542459372409709577805482727536214178781283615785285393020809098578146403633832456899491801676438166973872612687757360023603770980621780996655785755535588500228210869641839701086290162905574544935241363003047853534370893012656924404265435447455015450330954842545250456404454530193000706398576737998579552899636919913568950557020650564504826748574577683541527964010893079541335235461628036216344941262241925347416958584877392848172372477966715486235361269328128452033723857753998065845863105948883435440255700570694698011722798176581023112612543295574642378835326573868885280372527982964238769393477331344029538146094086337412454168588890801404535938602880929198451157390639108609839974370568189209875961482742147853541616952593987079700480448867910731965812910292252896258139528903416710038118495747912248446886020875878273357363742983212310546222946388520450707814293401450050036609080382205007230307740914110289501747238937350925039859740956993699336246448458164598608865037197281352374473534711261137315032415220111160247969877703377042785277997570695983595229833938884504701052930606906138328928834344412712919697583576660442665491103086249832567367827266634890439138061277694116993609265587204823816410275254182809962290902065995397931130341463269118402877903741549290312894854156035379379356891823219896794940683482024723683335384577531246484643505988398888302027603226852701274986136214058297904694048328922671397490632736219138561853880350223221840203825966445380948641672276244126233057255562337489847770703214434511855840358266853470349894969009430609042531825505223138315287619248348870214477231673666051197359723363214232342140927237364740474059032436180104864812745728119986938729130294814215409652695243149102953612035326304918754633434479802405384570315044706484805921135677101322920209591555624671005852731510067438753186175676923463799173265643831090013158482765595496048946751187223685084527711291730367581440155840874254325709417532889759792573420746705052278761175374679102236874203070519069085692125517307365371543818559398330694166426767113002843282852414606594751293062185484390248586339885475754941010880643919153276662270952126425997734785792370409588063005805020609973932807621076761006722773766102842945229395764205075267781909261067223944605751467006724724621247466845571835465166888678951701156580018329266087173146406290466359721513603872842522155291192091895686447256780056998618231644006586939396432858167583694436765775047329519647118458836525207307917049587751848613254662899190279786065639176792722407322577436634310325954846620889389125485830030086430553687508492854168502881101771102476098952445465822388248357759807548994483443170016116862621441019981904543613129195684789674121701253746890469508059959328423586286122144357569663582120349806837193475402207436023155245831524815549781462532200298124024239738117894509703616525586352766172494810593923340243282112279776045887948247768638791433052300145778193619508210145782173301985658287683074696614735751265798229681075004388596048516097193786707830067495785093056726446105010198128555309870345372740528680399765641865987977926749185235045130467534401830816667208252502757495045058295043941306120631015819647095253689225363329022696877236103815299070835407474691505053168487415173983847400839212738159397622084039630302568696988310288253975664330312986030017399255739478012959658223377964633840913354985930040459915073124301978507333993978282263002566119830265059783919912302589440979330327593583463795722541374232763280358982380745561674611900995353672931888691216387653107113963583732513775137332195852619040106089551972974771543927239098853702372864185587128417036967587057023756188841345321014646048196863397725198314464553486571249901243567739878768147822607432654777089255990272945625637255129047286405700017101089191352040632662385250802242037712326168345804460033779632378267497367896691125296637111606176609017913753626250077231312802049820244618933825286263969233768545949206805808211069542434714176256846430122269797868873127150755152560215520696797314753477377817527410543979626172368168043522803414814376798530280125704958466178453705989495871672789078750972430006468396627845654130315392992975786792125546828792786397496290523227780049520009426312502719136097528162004039541055869420520582740045225351766209011404365607041235388073992138459958808560561839702066328978726051918548768610006895056489191038888166006814562934593789269026265263371393267159036849728343846955958605461973485742828975150227537720352045245241941109415164134154517777000323114302706920072233032670646556964332628990818747613034547342828050603398014097039362774748716187254054165119808451473565322313332516786870712048491858987385472843617426122930459469751172461012802650988513367066399428177404082608302088987889116374437894785993123070348837510782756136476104982636510489447765373432485646108148613477933906896149127919519343121940401791584950657135967936814816418494649759462604246013453014407493155260242117855308807200288077366101852410258278816290581961017729631087408338970819031187674073466120196087606149356905011575483092619924956678240767525753251096083681949283036047278582025445128052386589263401243978463897028977119354008772288617455690744737393589935239094409799751772814591834175192787843503720223864978293194562840736389791758595580650023695051404652265652048984581615674152984339690773382146968656885898307716480587855451855183658312010173088581409904494276065784679271035176282984427731889732827818242987056424710635341963294023321898290298448238550868982736750861111346366942780908987375493125457739010918042823769516508286718273076746827308196311996642731652450454551015341471435067030289768646528468328238553840700611124132152608053538499969141432300284015588072974611730202552604888176204661592729609775254823214999443504612909118668851202248882022349462965657465658671063859828748427883501407042821501904357104591564487763134439446164409838178108958469294867328283529261220796432104640961174793420360175700235163046484489213459518868190340705665784381156922409022897429594626440466897747118772913845312678741105319007723211772445127829132361506493343851443258954281527735193824018154515886500610530809479025540925720074914374785147221945264234219133033771528735418815840272143206991571490391359956219250094133127183418873938814068685271886988288833531056716587672124652922413776300382113711920278178970123907071039035784178439548037988674094618509358333687340763147383379729730471740854091203773901187292871122198484440452114291477719982829353321344354116100062479335355694842093462490274448600680098282688920772503409498582472992917138956274620874852314593306313410663111925862373329473345412952080351221363035057365720670296607556465072151450418662710040514756226209571365368431610615820884712337603700284086724378908821295935383395278375276657281029701205882555639029248563920868965386039559157906997607301019553613595712475828006797652746031013360913722357417282073290017898114429369415556416725806306071336285103201125502373661686354744985629054322510728116989832581647410443127114125835241382610668444532048507931681919600786737512465208445978400915125787587982868017375989485376762897445005795152483494895972956621990282531528417911411554730176128894329766760657037185824370519483521738404510285988615863076360188632195681506658607242096553350492986336508823952307411267332011943560234181011437335985481210915295389738708595998781266546013642381064244653445173457907990439072243966956570631645910602667284080815689735693281024237030495522736582587933474786421622648533299082404201690243702345071503901339581379700201449369365869629138777125118278173600052766562218556504217277543028579988985017567716714745096327153227465672705525779676634376527802370521173150058995472834639627515394952515847211285339648712243948916425493055012708546831315774593221777022315493488826897556760495398174600476834136544614400080185148434303935758194094074522443326043487212654504707918226047466965446752565280580009029290534806962130700811338221522865074950819796862313408400701499345945045877594988058282831113781098011183643249388912255444758730237712015421114467829782780654858467212088725139270786992163175088786418070578037895544761774834779790643992712984544177421620117676136637354015703193956893296592892474096325180169423920169745437241960028634704612687231867608192262966048639410089389598097240551635560013819712455380548364234652555766304542193332763582502641413988090495578825769306817218575182571041961299696201089589262810574335740013720283432814481958565646357295620833828055464149337437466593661537448749977443881839708477125708232480887838027079549001368771629709818965561049343571342000222576374803685343685533964938668869784452919673500796301819005240444290046004982735063668950678642090708510748503420486709081155978632935211676841326773004948061769635079331636053318499788383361549188188206269541818997922324213030000224010468701886533853100446383811377272263874956506039740295526474284468111315262496291201320775526968605489879690285693605054115381966566817712388015207777087843610997166334644277064747183842938968838902709482512782915672475840076470575504888214373043867316456983258961843683905722859093332471650473826777409532414674125445909274333007696160840294819868860535298189439843755960870707979949176292565564116321330356571349296294552839021229689866523262368123348520552997724138149108285122676365973649833002144624505588420682994244752156956892547382289469495285393274557210143284237711769777150490163526035622774804323854048042487092967811985011106720071204356737744127740614963699257027573621188786729020315761671194982433940678312210887083776989473206020683052567850951097070803120801923187732650171002974887869677783322012807553399739190003951174897463561550885314100814905097107114021171547209671571742422735708100816861828503918723097024802774281287055664555314709000914251868497486487951889626628031289340125303616696805177824739328580483593837508659754719563412288438755571008728018437175995069123621830268047409348292128219353959998693253825002648687488324462865028437568503729920569601890706051392761890549102193010452368911990489209967964938966745447373250379686510116734555302067992262346998686998980556289406958582256634150973360798675609648307176474060347301858075485760589723328707483540030198834099506766449418916601926063160457673628735116482175663325450353165378430496888338104915730255990895981013485216571407120083114961360551671693542912058873260257426126094565952625138596361014341067926859901569172596690783951057774058688528139931056694548969628192625577534078220383565897591076177697830673973907623424646955419822022879928196212323911690260855885032395566026148263404150801261332141996802118125764330319197285976769111438200086330294800031762819126656347635164853551887634461714954514017404783305016866057785219193829491144275077623700500027059537831498449738798786471994956290720584616878722104523623780897162175926397040366798643330960313598768397814395688704848390923890595712319441633621214083276973435508832484316630672060382116089102566857569854374195423563666043654866153958313029571546962010251891573953778631968075149285861029908679062543473786715346914338341742851668113730129524908588115385429503076950100593909332208229797585352020450485337913437067698506303628703416104871161033215150937934760866877183694123292947091083812984290245749979612609855572164311086051746821804785916121136995749237198198282675919953113849758603877449268066599924324813357356943136784844993513573516810323495259766264255894639998555648357601784447642578713572161690089782776782515494294734045961105956798944823868148300900688536394251077716531704620671810238413647638344154530410367863962311635574067262015752427698687007039575302855637940189317788386798112623508098997075863657722839544887483569779237391836830844235419779672914226324833626413421845572944905961054142764014648569123500649572664730427327059026533611540083366403266588327287363159703543845298402632327422600114226636400067353034755374791848697628436283919711384340022823550302451460822258491045270138477156806519008598591871542239619257642183193400750187213721424584765370022376632046789602110480582574929377058784418881787434333654007001251303854993780245824200515197684274374370059971060623259360130238930935204624618136893625433893090587764463647140771223311585406260844002969098970065147650702439102499405696979471327702913985606229433687692395108951786439339541155320223420803454053676948349185721360162983788833419095348686328918448863287388222584203635313540758402200853343624871440455650012077736701946674081883368853803519977720260474257918207680150647822726926184178002502235142138355348620868774735508526757608095433148729556328312604946161700546656060809459747675319647184905267860204114324266044990482365585058773776084745335736523464406387155045728351603870660830716262787945959689531194908887597005422729509744243995923904069991570912591542729071553415633726981193706714247673829235001286281329473751233615604579731243922554191485880390575156421429028836842181452026658512110806293968170091986858889560305678309795810490620594046525834201158858024786328628689328387549805849689206359105810132171571462307012924035032112768486452780200560012249003529526968004842994116846703593251991968330147156814992082258648937341571985418249615585748532402134379591996265367529440884159069024478972666205721586690897587991862197918732761329175659009740228693381546154148324926198853561889045722235883001546746980788744804687563634673257144436446677205556829994662562510334977966542175338655131425123197624073665877245370895143452851732672448580701626040563197083668964433329270322958003241415379039002041075061689200133238059605450908400967912424048641180093599975661422469047403097634022472978249897643281821598219462170796956997285776084295845869027381140928440172235956068408311025740557482428302761873996808355246332127641553908429206599279143274833077452191779081980014784722648475065836629949352812119382575284800583124682556173381577227923080291492678375273426797150511391990729287007311938891001715697752392240694617044449014316148398924207765023706832204801289029108052631406232119465905993178583963029492795538442861503810173387841580638075259840757106822673287473855176665892554610942428094297203016484419053825428206420525532352576378617168163502274398733972368745773818402442048830984408730871587019097120820226055378162172122238746921769426294803436408618421950076658806872229767446541653076152498924604438266685672822942412952713623820727363535880003771359273640293605304494052759253353718438532448883295404243048828516790621518159689423241574768595414878841976944813107676446579770572862028195928050805316218802875314597871084668207279954436234664728088437469416691139459309027011925382381178385348923469348604862402053944163615775780207457660881275725955845489154812328719654684459193110442486893021474636920405143188428215779123768841969275002993298297997281517481425648477396868288903567999288272505424956709282096802813114789075298140990030807092100072809607996077018273757909270477458803401808406396760589334793306044091263657616803763742645567962079028261224640547751259372978405791307130489125025833410341295019052437978666607693026471139820649686036587167741787188538996449057474178466286147354803813363271170025111787639875667266591418173863315469338035150010534488261053464241320876851248358040604761870989567274954031921582091660950685816378008710778993906958853532446619880031505353785529401673934616840741275947188658164062053690341838072252465536823847067885805072990945618643278950654035796968293680398738960639581407884732866484083275594724848056528485729146743395703284388084331411469842036536902459442622654018797050138427276851603478293862152402385682851443160626065844646384608102194683650102931943299078877232989392032854752131503556519658792077407015947965225547988276191110911169352742442161682337640289776089078519518813302462603359073153152912021539335606596179311232203128589315850022220465652947231415793936289184626874965534309996307146950882331378664253170250586633428982064990913495841669487169812402826831909539305600516653085746936417836167586673123560948127089323888630839276910763840667624843892020370561871526472921102611622465988680490935590223360323207780954174163013106279108481114552491576435692355465372644388331390152548741099164221210945339971419921830602051005588639979013129270692625330709117362870057317858518116917245158282740138198837140825221696079207735309173282179850961390761375311216960331474261547182003765172284717907439141576110129508203516540220150548984686338282890835508098175006597241049867256812988314333968321971436685167727220858170774445857475137259650448481513489056668514999616403924231748413886465681182972003632649222227553479924492221313049548495123439593915277243196833522453935074837726303108139936164024822166713465155904973735765782350129783181825166682273962538969657565359948119751452478605874426157530027068179475646753084116908295090728028881174485886500485477119151734305188552800412736065633890014575747203054008217732392971160572418804714884645818114579946648880215514547608978580731892174976688805099867332522531629783480813487590190883604796622604721831426271098655669071008693751664668664574568511293803267505192608405904808033497283299581449998372750427485336444324923361311018790768523592370505996683961364661910585304680624280584546412235063306898576727751971047569430708658850396452356202735237008515428266253400836484002856460358572376151012998807095609263771389678192018867182118483269832796846719734594109489055262527567051730807478884491019025271605827854473748028290363272710923281304093678428195171288970245774152845186518565707599259971086878141886102256743661494486160228655842747182123614717854391997523850068044403219187111024901823418564075975906486892314956454231352425662972316809154715005866100059927899408384253702759589358162591038507733487031263875265756424231763324297994771206805881652648608856501481667536685020404855492486218119437565075573219596922488829118535829376831166513343767918310255670611907372130910184014984072298016183696869849778228490480050424425298651464732329385982050529999501308514962821965021196538379310201646931554198338510597847220059624929465056333649026403358318295318499193952240592699929257851258955741558819317844869120399073868184844531109897037853865991974983800839152558062727869029837889276072414281926931314251020023899382209809733195465537927353312779913520424555255453229372927390096948912325470004049310037861215634903820356576882338871003452567760063034056174017365654254567495061546727083675653735034154809923683308676820900938425007504042249915196357092729141771513534093580844802018810928260571782098616073247463723173898232619437100284775870462209459292962609859398888738094934131414064509195928600003344288756687495486736835208979672194036423617283814689701716004609488392871945821427766488133605481180093364209383107401662325138126911648498979521118537939584512865207995335720455295282207449810849015662584248040021271900675899497043109924960300358756452667850703886984414416073485917533948196399305446301722254194666847469918164006985215167683518129920178645307014592274436688140881539041879334227625822283819188568804660806822665393085201199452749593529623899127947701475911765324724625088623513187533864483915059390610897308475832878675249027753445537633873125633333041693290838934588441304341539272706924821283168430489033855958027495942647702803670476936638892365106659458907894877894632986675616203825778102199486956058393704043267018900155595989678749488351334941878199998539366561084847885287341126335876133531161425659147555900911987103142600375873269535358256313165466967290811893126967785234156856169280972435316100968633023735863268773637440011400901893789966455024459767641545859542190313143764766169758563463742344954612094663484513465709099999477742288500408145268186078172397486744314105068181004704246527941156109943417818847372062453393358580578772734893873507843425636574482246787954161569469437326739257237977583653529926691377438954436595940638044358279789172509201595050868463132335634719778379405586755939046395255410745112863560676191631630463198360818404790802031316139562068560171702506912980115571028184192864390356423618340157966492304868180409385315685877613557016590990089267342403997606292636766206065552370811145433227028237211086711177520223599254582959102919005489889908116248562911581169622864167350141894313556124547196591964245500564530782505411962048669426896215033249163944767017718115233055719180424779053898388452199076189920047579025385721465755080566475212142416196230274016724106422914598922642262074448045547191333959600913399630906126690413548286048732729289781182612506518323147418232800178633568311501103114994585244228938084220011380055166182640422394127395666911844230090270752038900921288794325069117844895401585349867223450002732854694690325020315494187988294379355082271857725061266811221014102115548744091479309199241267680778672901116789815503347572316548483873172709114921007116393918642035252609826921589287366249501553564025695906456941159675910929020353548946320245793460536001601210405577695457284493791110500014770993282914847465864425140028962289457615266598780145713178861650380343934137528913046956709412360054007449231113777121180858418485431794806672890001792170286615560352287772092066343337903042600556382361994709155299349181104563099437537116767399634600614008499903012072912890463200470543144110686672837154827311111977815662481615139207616474334520345972067566750188914523198910051756647089510522735726738407225919216883617154398317638813889250060723099894577998611282615382573273265977737100549241538347968554240054857378598862084655730381058578781604893323985895892614275776701654624245860982982639829805937296742431591048832855259693455317870815887248170556343853588177631695990929017943844476817467521007354688407885769036150284203370653878165552486997914090645262795165257587827601840644955850995677130385812297934172282421982924348477642511709837467281415125553421154812936340984916396589747675021321800308141095964979348183343812907805184975691661060767061194400322118232253381766736368056976056242050500367762390958933135053486376111342819941159262699083847700848590588933424063844473174304434592810140506587642314867637246522589200352379688763940948845624596731706983264768723415458432957192119433698327891499971976494736643596707646236552997598014743009213766712773899239720549384497214621140897273039641526119386524148592990961466969225676111564686164836561065959626912720714083661497908930592760232699291820785225785366815365538754030547057851511354065648388279150578859175595512249446705902513385435469772483659646063622572456102472240763920399976996188894171373155806402520648535353560885640482078653328987094383138383398736640480387408357564448462373974391531980155498817403087491192985807860136928052916733837039562923496712698315623592417033419466748489156203094409299642431265020454429513353425942619714215711029218094115437549226758194650882285063808024935069979407090622301497413098965387347486212039867938527484005318073672936412736907254021594821574006623304177196530534113826002093420974143301936621266776893245526558886968219779859135389950150634425293387103971394155293010824872053398806647457009894160488141195683322171155370843973654395347418145839620470187212696433784956954853882608038329237095185626264668832730847350735597108798457363829789795180469823600092027842952948486951342881235080414464088695083273107888544291840286555948192325821422258754470509558925499651217611551052765391675542235464662764557958168466336089446016106152818877093973138887963164782210852281437669886291573099342532040691160174458642892992292286260871913316394152273641727367559675075101789035356014951513978666997601823192778298139127375778498455950557008419487664308615285949831196226026734941819997653460340909672040532325656558504217340141811484543047412046941858408072278976722356607900704083877091185943198794391252190815815606530643743248410580521498244743717171994282610044722979045259208771034564269320212850029049128752265006458619526153123520800240474368696607638787893090667620351085086402499804204324663915872937795273946302531929482429007576148759516378325815523021475205873193717901949804572172847509671977270469806392272858518939568396656980872920105100723697781526416413168717063735929032047198707251659788302902574728541187966696138698964897997326806848960671502854061393472705817677299039383983432685112410663214193721648422106593979084825136309717862025283776934317419207667173608144131859170754700290794135765565544290535162884860482518277829011416750096104256382101262245955276717061962093931947817191705485250824927894552038835654103691145390351324591978654254189657276248712582721583307769584154624542550038344264592274693276014116280816179551397165763771893015447557865337115383709405052750177153230235545083037875941467891123390872999226150635579215071608386018051734904055592035917970209183733472263195319424495636577064594475067919023445276268892562208289331790906714707665867916321783784583399857253276647579065030310668661162351698348646226802527607945948331524344743237593509084993369618272921762763033104990360195794488189783746648908615618583578093628715662778097962641256683397439250699138313482079703654432568968886801021571975425150945385113104393132752977673784978729542021514665476764421503802633507857138702081305633307244413140100992704305989713144659199290380203069091192340234647710995958897863104797341771353530679147545110574237547000087886965780845838981033683431333208063853581397316453815586098357220368047727255042334011496419517414253816559857500642519173687975427092465453091324526378850097235465434913203970377890738102476718233634007475391827448468267966674043430429278706304083684089430152733100736929969154196076071459424202710165501625886134163570746468478048558344872922205455688315547148828358017661037351978568517759177232087217008647766150204288698508701227345776895505615088266347733193745439967345999875599600745360229791242043107711503817814937934031777753910453251527399399327411505387528659648607780175556126185825096641199658726148419189395176779627225179579116803887520423416304512564243561027427468866528695707914185497849665288190224670755739193053621105801214538769124032704576496302109226393948289956711400722824718504934059101564094759382185951393718027791910785096978859351289945859058259633805867302924881002342059848806104595823839673558384772118576734993738991754263578710494074785688062596072295662351876173057386284370025078369381258296615997130170481165724996440915694371875132022985098046964554363454472323097837578094041021875902582264829456102997710878006294017378039045311334847683554673739568336879304057135715571448376914317956650585261625212022989897638180002093564386215600195518849927639206340503515641214405784238265588575130587217367341956674054315995041998767622785695008580060717781499286163273859199146408287242955277989801945443934456649343286161406638843468505677027254510498165000976403950847848914621658588957677414968967223460480390512721823637090121665912223716462490368981511543406512562518212123117855336085844670610786354289655005777603663426057011606174600588883065238843308265283074601450947666578714688327178646110796082556004887970004736209694103352051273737730031423211217917778127873381222014743075790780557019665598246087615548130614210889505373369305056297560119156932590823553189068155785826401519378238590748047600638062523717816910039476133529350008462059175023097611970287643953065880687523894398288473931840620327563582633882578545122000525299731917261427537771853059509998243415841404664852415682223519825453974677071287415108619720493179249427985379413489439805589944900466325713481163454275518534384782641971687527494923104121451296087660555389906570080680162541251153255233475369941694091149120721743834098685114833316870897000674153704057416847996979660554996261751178834569351894389968930950112801846567406970355044988147166537992792345506007573497786867503356029981652082815134005262907365523488718804468557901407581909492456518556676170151223576239332074298661805098321765973907233361278271905234581735988373709117899490008034363963409520517996074261280643972611140296568952025462361660652784924630989720600052602551068533901093702147447377696211869165828568881733836603779750027776390399209951052074063813437175350586743868681581304877805362395886241067439307217269434699274196594492281394421381481630465864132337374118694365656773879417070335939435115391117975858148560320693466089000718940441441981202819229268829286120314758372124081096759221701896780000234155811391257829227305249789653075532965534505642599992525434133662091590789502692060415515772122426629543460186958580128105798654201552562206001049411749025242954095592178616077221475646759023190258616202896788079126052266780008515697510696608385665437292673921520444670816519947491508074186580600500158887000800710012272205269492373981561831484520143195645118442768986111336809022034160698862016450854854237646466271700701525968515343675515923969886624956159284026725884819682156941861167803078209796197325700342447757247009758546957070619342410469735188893687694091182688520283973001325139156377205935502661745021568688345498379479196638087719362740253520491021043262269536202979630518411427562156282762433227102397420038168099397572832437552286751630816900563917198122089423531974904513866236802787355725948424569943868142551905353533513244862162024482037461554505137306826484947161584245511730380071915940187925837928164721499099064043411506151905237333642684497692513921599473924052357837170798580041303074337654948200268192630109551401261569365784926462652435332165345204227185676895016831265078965733825855753469724387805524125996168718128147081428484886643730828880807581133539587671744162308618893497683971464011713543687409500863667520660754757129292617862028195683976447331776504229281807755777321567019070171701402704794771185901107039791846522715770396138405098289521071569008725578503855016484594787067852884911395741286830884353367365805441049832970597119800157128752278615165902385692136232277374379565986192929513276871278375496635156969592182813406193591517450112039961497898868689203220504639118069016396267497662893233984566298614853709453827915438365971917173180712077686612007858358937951615888141156656597845656896442049156548844662151932017411908850813347080139272480685201977349731456948398666997936089981897732064876747776975821658503959175474378117836792750049460887608721218466572934206742394225203586063282494874600976636962735195345582254277875504313926344633870957000513131403106562579261435822851104060230619789054761007654298240253037046257629149094992649726142571753512405207436853242898619247432256035260932340263849373271020586523633850781215496657257504254184061137778870627378872925443632744895613711019437694797838696505810621856008729645964055326048168845656556195753854036116774588219615270013647645924260134992568385458338720451803395138109869850258063369424567423161642057096183503624776017823501904400436560912481202204406690798941004997339144542128164405179752841611454225251660264354277217052736702505698500791447132236831142174367006223839238768089335509839296437717361921340986858593328246438668741413574717502007319340716336265615859317334615152674985246299245787476596676304831508189142301926180719738395492572022267578886806526527089014816928656063654389576457365727353406809901185829108626531058696895518529032810547005987317382373259656491448620051970191472172741975412545101589051550588647123656735984393727660448549969972712503155929969057226625417551203684377913217734434645332509819007816760431142987041157062633785605269048677736483225798175548742884914915713932980581108130014344271273437982292321289755126393404712884368904489658616829140100884333966104844559850506942402866606844599722737592883565534840973892312238307081044924027963462116276660561920105996010863163522339901322449348151422039755717338904108672500169440567310190173732736594519733985613102415522391717356328985344514394845561140193274121055168813037083871097628484068158470735588871150507214844781978623967537635175026354010727079374926547760470307001346477993705884702581034675980031918640807734706573590591221163952354293369963602352214236211395051615413332028390321832704408412377687356632845877368814520219657867814833515556638327272953609089014767157887557765149148572083013330464180680574177513399883373288375579354946413578322741435823271508946515977082045466850101344283838520529252615050907296797455061001215338000415569814247243778274384917289528216305564143236226106535518381336786233875188134023421950383669006471225976837908580073805449099173080177120272322551146571018775951799426928862842522916706115929641500395191028838447467199940081525072253897570840611997767809448559970037128325524021511599355242230114555859088814509099850076373180565859466575121476572640376976548785905082506885060786879948832717998320148693798725740878958487398725326987217093123118532758271919653115551327985747206436792840758252044915268375336394038707654330104418776782094193755650916365916230164176232185307679595305925109612562117962093316443834454277537484823229860512707335725030090416290586605059820960322361528475405200949737788766101834135523045046282188066943972928747457458209514672556527960338998390770161319079653908276116426332337655655516361217086035916230621957177562716720056980286503523057519024013446585083821740007511245299729319451308787389847784055887094241292975458148058778228970801480042630035599153112309516643923449016041651915058715614786941266019642151236916730988923330885773214264806049698403447096138173563896773618107328716023373613804168971820992122161482068543753098855079406339501391036847842875949207164311331471685636858232016575179021683477672917290423942995882592688462715797857058058380842188482218238221599965325937030620933861794782086754901457985911855515831287441919653049412957974636595698201463652503362577082232447649693953672137636546163821446450111602343243177447736539769939703184941220036491542827420607542398568278113362404136608444267720042937651891688152760111600776019378983169530462722355979819715670804512645989464562826714490392615991151942822811433520539171866121142199513986015424638105311761132858351547710694001720710697582742141929419590374948127389832923378399327726710592611215717937667762828813737672893883970918352059932876777194323304472835728085947107335045021422663782943998078129901908123932161304897522784761357437916735444076007358883107178031024848965461959501326464611022359427340020587820967293745601747876320895189993727214912657575206273857963787596551782503139467829819014095173549363156652353837411362612002909012956903604533407810281265204752788822085280533914172513851957608259000501810343437431399642263790618120402671131527205087366580664605819571906412210350044922803981005834296946859392648588005521740730412556036792044154084660757027781245447647966724050512813170541125299975626533113165298119981653945054397372740652028576436467557997974494663469886305676648987061023438218180545921300660890287801745280219457733538639720507157201930305733189558731691328792803078868283155907104963862651350188763638677841598144156049363102583299263526499698148520601285847158308881753743195398473640454520909140912012777573791924480522599254959877539099986035015049032040852112539885130707607611805298890537614726776031295094319510401581378065893451129886672161146893649729034193984548161481085333515371057179568796861994459269928028407550026287305641090958815981674357976256384858379778457451616499657125306699914302574338724686359280882537953751180925827829314390098305533484993625268636587131004597592882886044977974991072945079479548423382859053123132740243387820985938122698049763339810191442210341751524143882586184833934706593766191909578991487270696967301810562701389804843478364557682610568007258026684130159137350518491318633278507796573119153007653527056201426937808709043327752132005037783694509563432067956863938821771257005801141254149893178742550602950214254085795673329629172836844073591839113999687811581804175354484355230389884556746363111301326905807275281394860439240818844106198759593152102462760075445876639557099376743714873554012035853196069114769592421970341140576343890735425297941863795135614969161253317601939189914921323760589992396926868685944190143755033699360958218554295463671553262346434613187148237737078998963611687474111379228467078879598297348447941190221561734683677817697078555321533449759834444871708612179834245000769972331882283181243661192010635793489675457093480938598213017227075620843329418961046987059043289792411803742171894635779685919787273492684465567679676830560567814161109248590018296239601528471144507141287875253197141215291793231101006158556864500213871375660482902467195997631449677285406159809931407269131788763584087701340248953680412288713434996915602459852996773624353550441668952125395176347089586504544658895717567771253900863868052481521718393937834320759144582226210375893654052943792631803213533386469672470766778123778325689769520624043695613495609797625041377249561992419592697876713513877037931300468442440371509004735021126697932040590114047253683886259303251099732589488160345165703292167453624827075185395412276527592816821446156279125426844726333656638105471519741152363249401418477317137250345773240859631730050552696406762749867344134718609088091396292200812733428927121672450674753101988411654870427481231464657041260887011581786601783969584929688747633649131254674168909999545109757414109598993774574307730551008354835394231911061575057988395879218385109208705750072613018457322855890586480165442615277131993784696959777348952888167911799726914619214697576637370020834167842031185762622066080402105823173016706216006891998447395466072760394708028190737396201751462760506688578005703632333062707240089150497390657039305114065546595172639959636264314217055771581206244742033777408278555307039614531928505531967888747599921415560635666095997257803415233629747644362159664296745339317189513906085261114899505262730358980699335818316848068724208215018050150814502049873473830752865095008398421772099800701412045088430858069568322153885425640030722749126146497765441465049271370496349326047809157914452973626650349883066620152555348620350611139922652524987103826134576507465813611161920638627547049419922599435447761482458808802452054745102536329542683306387127480001981411719468056518704645580881922606498844894454092774154963467609648433575642471203493792521262893813122675661338315072299190157838815922423884101961264328923779032001699495943919854791425651238350928576554052082386330241609669827128838127978775191326462244455291183856254188491059504518870437468318196832837729437497526930675167704953982926434122935947764273742058589640329359052176804842331869559411501424644470360445610799243080667792069506181866311138286666925232396151808238252369428138895303004619939699868934841000579789225016419635741755046786537386428960228501851364619229940826517334917564129151397025172785761147950828631032737622966962841621015651062500593271328247353040943427341009266238038726511090797648098225963374659912819245536418499665926861001317427626422917459267502996076158172211613805533498760228475551483554758465556279532072444670651284045557790793156491736934309545855785535901948557412664918955637052411656380607335675070325389665507465738702092713408668979585693827932356207206638535510018545361814870411812473932094539533781807283850608978489168136880290826515822529986626455308223574015366218880918213641742869893755991692883187961806366600017000880533634825706645562833398742651826187103650896837628790720203433813663020218016955099589894173157910561738959002514914030108737124083119290614543004632021321898569900555957957302632160808015429975100032284158238107200988779125516959825794946465152478298968978703101220029595324067459082198003582855459073311043850349984043392310094169667238954263916925366016051532640774970740971421990310590863285563754841582450996741426654677441548895242375801429521712782762717858029263036489940427528778946140930740682188914557243650270331843997580420995882494867680973002147723676920448768211623406453718119283943217265135328806000991074820937777230059122385202840053592310622996913966543726744432801947847218272904790883291913496635557896260141136132448746933736651693252614392929788775313498391276242467542783287248515573212588301448520830059376623254302268625392920375015385553897792988325587830368304999834568416770277198996943100624253511172126080042301885117760339517112991060652390126084678992387496619561081389660814331273711343153422827635743493559935140748786425932806469734853786223479642527405502470158215423842785735414455779444648443753800624679076116053450925640002077443970375545945244458580816121629052882597369571951684522716837214710961384087992470426941512979380354300317805902707892697045939554356203771072833089170225188061219892721443285808447104652996895368194004234795331446808516994746617395696168688170006203044049669192020255252936058389232064976665821673645109488398883576512194823336090388239076144936553163860791709694072456260500763059379522375886632063929006621856237687208099556391919049112648215787205731804447808780773735795860318938988387078600228303910109064819850436323555223889788176423754447427943280065096564216740459204319634314620696900285139207211568351852071376018079767143698259991256958650343809296855654840183562812464244131895436645164629127450521812462916208014639593340424787374095153908324417007535999239726202059160048150204449682171099458586413571070261345960676060439426717757204562204814326913687548789080902149624624451007338254606135243129930064396118370868045707692724235671354630153562858235817171070779073438170317403887524062904735333118679691311999102408332484508784254561151886029336651608616814259120140352605666841197316513162591226551307892269756343087412511183592779511381932865188502433730171690092493571767533651867453979985123353328143640399002617371501256231647300669408500542539708356626542547911506938411918074739675847408453997541749238422042418827903737508995883380382473439951866989687672040132465666670866529110258116773134888208792770478632305897653534632474383258075488846782294742056138632676103307749631157245962596394030766936429346391899113316310346178911031685926173965049140400351956963426684318340360473875641615861006001459189294239350097295765312951406921315082202520901373724845139275751167839307073554641860150739323168326423621937670908555053805531028262250480943640638309356127027335006654158032902269177597345856570242581382214230217731232453466103077769327557480023116033092500791527244638885068875996280507885139902206192476346669234803916811743217924761684634528179098934380516288792156506674036426832367610693634425693206495133337735707063324408485172961123001301246754315134600783475374255834244179184263326559067867328883511818362402239442829827502803560764425274461957888849762141564204755281548063364429409469082230005739778113168663195842239078756022519281573264835373707875843016685008539425909514279224463957310746817244795337502845664426347854199834262598058624918347852762488205545209288679309692831716833611163152221914669969761962482296462989335144088668412172306690066750448683852273831890735061093525818991353114471414138368193018628969346509458621343521031756439372649430096254125925507682645232128196448998242639913119833222536576422909656811202157358773819193137552866687844591808261271035358216106360437995534556069174413440603169982906996531081683400741592492126397527020356848717082679417925031445148707918610265243560183839437627190008002506754575328551685728528737723709406624652712686568110989044361342947378736175753492310148424962272714532517235898368119654657351813801580677909463355331563478412471173076728447135715517758214061236190643192526034649534727325027165631515402440579279038481226486648443355207373106249775974852001391621892560018590689941400549387561630663867815146145349215493805628240912282673855983483296326729742195739061757001249553949328616286894294472824683703755467692849827271494470449595096460818929262675915596014413092827065626351770236841489886756042185842212489304772118649788527541846441300098439873740564663598627318122817482319168650859736752296137028281964281255229120465982420906108556931098605077918280126888196130193723342714707760236063146034829678367611984759709681499166170563667223191454064161287886497550339700854123436075634935411502250930350383160929012085139764362186652998795325131041910406607105887358459241433893044738570311886801800025858737653367595546743212003873952556573055290500730499363838381594505143554046899344830068528368309731496182665221171370571385401571399706421084241667055001007900907852450241098058830494136950571457589008649634110397490496934858341679648838121169028603779898772500493016479310005829488866862122819087861300907922471283596889063273300644804386233524613973644785918068149166254320722101202214587703658207362532310313520029041427657826226365460023329624365676034115223545149077238461480365660478879060307887939557261304120502905397128520198750725382048455551083422231887284665387290171304815157565670373110503569040116302677766561462975506845056198191762214081722638897158192434455529102922156201859899423313989248868094997054417917276318729625855568528133558861584525494025987378201808323829890199672403272270629164931739936902150961315831422311045704376847517730266012027446312131696503767839881556652246407594187711521138167617880971857419265543234046984555078088136460001672306335963558831010342880834209471868668158952425851732626675725473657946102718399775946053769401574403942976064143797001544639078237836057425363340173034213836856533953216460867430623744797444473829341291985816366337730802993868786888024304101960543472834875297995192760536261640336423183173548696102757092751109103049435534909064921505477684407989053756454539278955066230994977199853306039513358481960991240674927259723256912213448962189242961640155640354512460844986359416230515900361610464584434056686853894656403805358236603142054986992113153046896018168820412801100079326094574402123543474491932617076218408623900652387940993639028573005375129166965339695224842828979415854643333733263678709175712603594948564951962899990845254977571051940170233853631035344194455610033797725072899490419853716355388999903576455439157183645168159318973897626137997739567758940181671971973062527202913375272874629934809048293937117899648314336738879410609324750670817596071841452698229470333023146208651902412359696268554232636370771597328159782674812178337105654969891588829202445770541771668238422499760517258859980125538020575328147690330903044432404498731489342306405345956486483905936502308549719725958604030662199508717439585092735154785591983483726759387120833296966646925877642972279658041930930938344615458511130533338136052449392315076750326015718384213405745290028233173508103815485510302781712734662331870122568248268421531668255267240212949641401918574602948719216178797280300421375098422861169057398611802257420726229647819153902215429354655143586492467216547499740899319220099350688821391557730987998571472593113867349323318040223626355168947163322673924241882749483312659072259480839797072365251218172335927516931689286373261869014225508844565816909252457048660187164643410256506264922078406034832643430041911798703676389276927786441119920474387256574996118395085233958749404696505687032329655121251244880231940198288995541190154712537841158434600310274933029999612873080116548489602146828879804132497911192616233252900744186470116560428625657144929108545635473169853203271125789947914891099756460292227983808671115443141674146201400225291275288988195108598044600624735000238498326925146390103166223705625849215786113399551477314546051171479130450448076833495300816341233790541565883512382554046444338577956459292775798674760013246245208654183549838618061016750442827191666498737041910086971091497638554281086732197185789536761133364718970623396746677785658951446400836246014441366114949152381898322345864550738198864196121732325464742831881966182959857137467248058287818180760530440157441579598442961356358487038140801388763961432936891896822973786735408210788669073594848646030049031341573220692424076910336930963489186431905158097473272425742981872731283038428531891549222007577945539244222147547391813507069992938605746945576372663741335910084290760386639363344990875018256449488396605504848143116256749505510303089729146540483386099229011398178490005912856735961147176246178317181384064783834346337003957476818371980033516576042613860879395131775002536128171136315921515385780561302365171752695105900419308519055731316014320494003692700743254608153518040946164758133190799381370808714336609328833810267963130022949022412592164995437808850120181605943939378667299810755804449046010778200336782530729204686932090210473689091642531345883415520804552516415370730510064283829825280513481071375814723286885974714154953390960785641054749696513292425152886786366501938492360363695043359694966162721404337002392793041351498020152128448981262449684031788232670456155883426503843217486468537532572073772310378696811643778094968188020067823622557994736979043919110158070415087820023138554672056844392661259573387046976912234765636644119098489066806296145065000947128234141118959900326832412296332549373875007950674700093856241097601863789963837617957895756482326882607483509286712824691902623058858409825245473871157588404771234288853663149433701174475097848701569055273774874601464683475699101095809773415931329134547123140563677925257193920477591408856319315376602863688442464924554867868167390012982763653189682551552979029048293812222111340248376879636816088539747259350365107673802490348917929506348238832755370313824160982725681084417355916100663518798006507071344768654868001607404212928273431106036945933855847237984258443387827337353372801675143955917885412281887363572207918646994366134807219624550686985336350215039451871979558969144347498850074941837800025239552401119089767510733868206518383178486288994501850743014320061666798296772928094356187616521056049749091227197365373093906315431047986381542119953515228014648003788157863582668537519695354826688960670263154073028522744510468818076796906806197793109583785826406727543959031239692704769268063057301923660414815586276330174863471682345767414542639981721178873625851068808130155716307220193851098288924951611176300183582156078251574772125309850795678987275261671757408082685168471153736957303772550857044637373178588512947911832753762003099346087178219115081553921928821106871706624461144884323484730994463500833494421896877604076752749608146043200755826145928590022444048374454616519902204490057290208261360309464301407085941298433691791591259859188100802792126211050371273505722850481246826225702142530151815934988902132609216332214277625193791884298917202515086524828880566773322797717566189825021037360856813255849311284255742594884735090853717605558273071941947762127872054599190065124379169192218270917952553441877835811737537731384158551889901526666472878320807311563828298258201903714414073244594597804332107078928203610383367232099641090314772941288285530133097656700762628940349025993729356413094680600689773178401586597425658368369869505650129373075885697197618121950672562878631397480737573016541415314509673141480637296703656611044843355269683730805427648845712165839798461719604229342969737960238671756308518657890498550846124970819333577673656286087460537647373333251054002279011327333463745257022796747690296320908367005134141755254508991111403956925836710060199052287996685687422315755429562512500746607931335580535646741684075611503973612025632255205433368396591681656271803379589653366334138702277169866770120376858474978452854106273680635066327699676858067432367511454445705148787854056411033014230996564396823868034719960870297293206092400195083363057456140545406441401610862552947624667858872484297840857236446397988234992683494007035601296772120005909929778730792436076096385843260784736500538159303301217749085990166086604976197332167622435433517857101221897208306062958629692006217978656303706192517666497252508892204163749813606837209370707563146051756451444299255939206154293487475915985732907580796279092863772551767158496211485345472109555239122931929776674767723320090688410897369254292067696909443481527229189463691727746539107607499590589750685725571899310414514036343768196518835955319805330521433451193292211729790857868399237318158218700187997450397708498335846877614082631997099928912321700673641991058387664653760009215087679354614486308955306151167321719788591927596666908578884992874341241162201066167605182271948646079400516102550233733337514103711872530537264584447783239556479972379155879716650727736981489320819473610042702354696074232468533607849698980501343279268573929701174786350349610037658412329736324424535794241160286938546138731979057006437726529978554779929668593964371224228245672649757928606920136432050575554672379157366457739218484822197089672245337764310304270576444653136656315725340858727780735397459954332462647463121075480262784021686805386904497755300425594399187280142223792295534429839632031718826034147340404853395503694048147716969891177833457095784301534252314629149163720611785277024878262527735393325514730575282449070365525784165687451697652022346029581635955371946975394764455504105641525897862756973808903090283537530953351463275957202922936575098398879016314493773083324379023693438930262675194205228572390620664221144208317117172687779497732031557039400186944337431787996391987086013637632149111937374260982349009813435136627888501752851439216677431242491063734802823903222335755667886572616301848630685482832529414746918511076223947828705342449466950376106517524603503530964332518141526759582866153847446627177183969664464540312400954329515430508135460773916053431971690315213698798831483714663997552741426754437286099682351773045402759791124401879278323155736114462026248861109905661587727231933984882129495444272601537778701637003599909736679528825111750130102597234253119509763065306325443716752860619735639346635506532970852360649964584407278078927033048206545981151031919493189260721063261466371428046129467924580870225696821204714128305226637294922436428793387498336626793889624314837046210910298330249148388511946815481100177270661386113474523275681832056317514102707144037376209256487218883255877129746603635105981225574663442970813948197596869299710142288945339190306688729301838124444587138035209988267248707435089959511806573513423001820590227015151607352008334576020430208347125635365011672182482209312981089574042835949025068961563326681858050760332829085989429325548158213189027278999149238389893922464553365726887658058476972596087431795389205743554252217692241530716935921048997340189979138085061255935815643383433262571578373303388604180837835644391730056667178139930376544187253252920890150651060139637708073014146717753424847530268888113303056773424492846678088961574822593624338500743326424343522307873392337721824151271455554691832920164092836458033041908911401776540825957375973514543152736019570900046026076980092756030061746235936524427034513376442478956840477494819889502214055814888437387773379932339362568965294493693979413112790579198097166426161988648521849673207041070915718627407875120493540029876331183054114396875906551536773786914981728464021133301526886757995817369640352247096770144178979430430968230220657620747420068175604838496339056823663341135824944167025580598200213756498398287674217196870677532733180706375724783545268059131537666690705285910772163717039438192258802138678980067983191667531903030457189575773657361682612802891648572982115932372328818471014403020795229432004180987598425818452981790031754756609196008317511546325160053251334287216468337497586544187874551953047703228098021543894220934495971602694483135737436938191917136500307398934763731229144677224056937531840390669268946345167439080207395764685421856877673964792630432384795546553395914925942657774525825992632226120079334877727332496012786556848440447161378082242254054671960892825380948652750654236217780927808416040207007027988031334746242871820554268843681073230398877359831641751748389734268804073796976224325372018523256623804835861461112917825442668756822254586606602548354072432029670318251413347096051003414206022716094851546452729150945776847044959390404901562132099059619701814960263896969011431566343696473219267553590571576316950744276786577563166467143139625295325069752254597584899795563278155294378329994345913656757865155242404510484978469740062642187079983908279621003334952852559970489708810445948195198943386122955701262807635475730107435460561736972484764476949695054592848543403575088822026868898227429551502911584705772716077596440072656658351118023357799883475209202091488586735178593070042145803389763551185879196830522110828261684912065530977940871728621284902369454789916575935337011638757167626053209475139037770271543621066649924704225405186741599415486158000991725250771110252607377141826633691452072676100891124843884697141083046535071722860648452565106620690178176156581256731268666790359991651742776776106290721277558286531160297500713500156307323021823888906607878591517870128191031310913460790227390007360121090110664268403922077202834027069273452797907408419379746173137478920409212433644670735982707950272232418602520198941367648204344369284019898836558362352887152127530601961290106922203300274402587642061069568717302992623158501226469840102890105325821556452118928893235724434100340284141781579867160815365157634322293188155266474528017094375621481314578092507949779448280520833521566039204478357365079268434108580486580469821182085449916409661722542181346869930358300868086325162522560260935395536612355735899011189965196838741292586377809628009054568123151152083176515080582126512438738404488505508866497874611351236720046717996786812155648066083024418426511086599883977458662028118947226030217282167443079946290739826277169996345762545423060466597628509659035065896557043297952130951396220332903935854108639630497836290650773043606269714443688954836171636009203392792487658460454566380817543839205563610972473200095248108818150826594946330900333903965514600506484665961297357237633122864687273507072755221794956775225126531458406736516433842383203833679104235853357976315137680039810249855113365958252333784871087502825442069864269907887735866264763193579585915106669027925372091944559426234062727392085975331467562667770659236233442362454218401187965244127804266650192381170796429008994259377071012562737499221308009497069733192713090937911130462529689391029408539318904246548600309913316813082613358487753113166100396389200690034396952259481247429482289298773060351473871501877895618016107276601293965710954946674948179838094525572607019431216505625518700026639560748686780652349105848138055005922774102147920207914484629406764743456751616565351183683113499766766450332040517117073611541227255156277305857962291993540345917444174806047741615924206103943829630982460636579566158136123929903454648526567768550217130333989603981219400163181503851753617124546916975172435490960454032622116900218695173128106894768962641415686640013105558473575628488803554884431720168139539873475096721431453381386142601648708240302757603012285867525181843301004675036472502644500243237697057140020680870655048788673613441898622977893434169725673392248568032287423644848237222944737094041949807111175742952923045686390451290365172856869129133854649446412059155333961940743727253450441996604774988032283637155660090682993639092608280226401781522351320407153310706572624853201313033298674085386601049391845004158703493013773914137085166557621432654538592601860040902731557721421449873683131299512141357018996673824871978775821681903672162915138849250986644263256254906984565229860777736156878258570405345553817837812272376532502104834506418331886218227821706282220132423164301249730219879551852045920255296701913316819637678606710971895251139623354756936997407711804129020362173710310080988889781282419901681364025755149306707045177386134628585563864620271597597517828226196715627960686276138942804942739469601796236404342527042946223327694405729808543733799612270511674785016469362059244524060309934700175126793274781881677303782935104161802681800370101725319111792195462400131604767610917498516756418680414362374410152229203667022274572433449898377337061031076001073882903733514097778881273226968847813680334453208060823504923985715658105344304619292539605761851386774013975031224581718675290399053337288308160311191588587698731569910209545279128750142911042223604627883116838737785013888841747242181453852755360140980654326595195619387644108423345473836112565082380916278007380376633057847951185347662440154287556039443368403459623549854258294846231673944990523946341676287431111893125609611526480489160208554524528167533472671796543095123418441138668518765957973065791656612650950674747945463038278741304622228775032003852271353758731215579619392040189751764161345151398963572423433901648026934938095803089215142128900518735050145264902558306125497665722307466196111146921804834421884017132427296841793132847141083460228997631769421792209081911218206208096752451603285758421885192258772741278336743563138105695438143452949349345448673384469301398939025741585247560028720201153798297109551591064100230292838735703173703360150547513686431322743046770261379844381235243127300752948365960099706203635116616394012577945549996326515094342019956728931203789111098125261148064683339708697092421143854694603610625374610059157209529832421676503800381244090736305772439769085363835072007912990159825141031876795245527924893693189274164200840764305781923460321086434766492449836691143619672468062452140787659273415404186370073993084546271334321044266097637628116459487427837662562933678737037108687217117117127981235344915523966757690674883135941976243320559334569488056525748208121436012725886523868449385443077278563269809649330173478783745093399078476256869729032369012734803311967787324865045997544623367545230270566298017124538707826393314151705843364819273952957512876299684224365368948732355594438251592641930477745913363337637262268654441134751456711554658802893403252792447244847043471800899703437690254268362371714658391747710588148367823110825461753447898636791174615248617618130625281796777557437572391942165907406804828647820151499287761007987595683363656554107034100625090586640182478531009422385981964104974617717275850487013338637166024641060953609594380706398347283310328780689872552194414622295119405812896629245352530724177990121532272534342974111706963944239732221405289331449596488214242073198175716229072348189949242957614578923809466379027294759660081267641100935088037531502068001759781772865274980537112487405069102591166286506593327849164494106463377561532704510387224773321563003308738952235860436531977956452032708166791440521831838470398958736346001174393985737782933285064638598841492953715279758502986001630238530574361867996363442836032126344537022113654762149831757308088311153573932784006864310217404886592702748463609797127578009098051989935486590913235084294346726199476525490506529262984005228447172955127332401056795980675783984170078464843344510711800991361012974502561668003859892935194686375690017247961221403947283786599838679990063156171396035841578362005237629006233022369837249879107664914670946846773106870787386564981718740273361868248394183256195898275983156028599700420996200594550897617646297512597856482858533857580072133855903397267220264228897142537671074545853115365990092136237771761822965968914278702106061015819432468201125060903777457992414533439996684036350331812803851846115493091268627194486783502671953951093299470773760569753067107201965221535181125125193131155116267845700823419729573520330431239893788839730769397821401107267752135871698041700558470093815440400089863990841436181597328101236889586049394813866582830644659588406000497835070219881124522203543650340516764819769170184620701401896580654405584857130393698647372818169995328542357105689706844410833545932811490666092492098106324192644549689811188713793576826356161642971929732578985764638261556282628100970968619069158930076865073009048959792110689752456310435484217537270086122996726171463194336211138750849321102325701463949392745786644718491373632230562989953699334006761213646745816111937953766112100081628958540750045817385284407838642244884704876540901737122868891741238223543709431593645193423204415086571863737630023376575848476388130233351784199610739479352952734453341850615054123913814819937364672308406589501438076095464457790637757679183682536064616908367128733516379759666501919378859294873011584706621487794888410149898740418316020966646599794938200546257693231913262934490368505049768213802712418555699233336795373423610198961201606706515218824710826085222530803404814998608799217059774285326894667413750129106001993626242693968484077811286094346356553991099463514759117476582039714135053603708238049460713419130257519675473952240290742434819483347982118700234699572236794126974269311368990099689272526718119420093628212287123379541440175697985328323123353665426576373375641884823818255913182140040495530503260565756715426636988552759065186828166006661218531130001667742572780202438614363644142069267934474255295880662460809546806793669668737197176792320411995071950833690057240906778893737670193504926912701278535939430574573501353935148204794938599206193555461203681788215208400876398103090458130658622768461130110973513765176071152648457737597029814564409184749117958094150688511570250869663335324237511428014796318494408836276175206599990578352537704936941717674766966908018318567590082280047985936046285619246755657209570972626674123593217902015685776297131590391482004990013515860742658538087022890661609613759884705922691539706839994477926036407648101985218534160667884258695548140734229749533586233717297623354012985496193167644270622615893344492437931036801422443025590639669786338303283949399347378791152756760536291851463367592603384259859388292092521868990598810109186696597054940775850484270967436769792025015477325956298900330772009222344279217890636088844600324074464752702594410345364963250482762291571213966317117623336985857450535243603784755771952704052473019743893932014599729804226070619861748382968831128519895208264342769490887993079058354402696263464984289554203083643335651479279385152978530475873543650487860927870598874854843213771193616073303692679262130139567740531537846189349110343404434855815396453530742234722028961428443207503864991502680338219452696748849287387611863916997362860324287698520178103283869940600591804953096544891147603446976150731263279161100360008532766455691577842380917905080221529770763975782380263797459787274158373740288291051600501560670102640559936280943020311036595607751575878051078301647002550958322977484665704128434363429738333965493356277738818457494639527689143445692237688866032817663213092461432755334729614264128082879951118027252296860432881230424572933067435514099697105088028287904398455197515811948851994201552134612787103703168539512369163893332589507014308135941871087378236565225329951697494173367034604687975742747181935500413211860526833307120782581468302290102314363259009037638148657086909443258967452610086322778543395279064315465730833912138117416901456477158482347116786833779688355623070055073088987363274561679887081960853383953919383913624135899773888750974195410645095824634089106948556784236422666060218051592195864097507218389156087783910924761322471002089652676621772189639599495075396340962119846634206829533377216003196968175489307748323870616326408167251442734715954082611029307180447538750645088919569229944029428210068917474436004769496048999683343469969708365876638921771180804627486375575291073018443084463151271569392608272867795951147335532026442352312662937204621789656001509576748222097591249020110829128125997594777472458227853149592907371098517787615173725592786797625991973323780772759715091247130577679411784154407571945374700022979084592942260466419432830636186430817767845668304155312024714523838602183276950060604735945626236345568099235034011725423616896517764729146230254511936058549596857139578687952757886121523662520556293053124373814464658107805981664556158433589927348171461928120198484658727113090218606167641477069810346204298653647656790926294182461156377675191627942410096579736112924386266076645825466243437260378975798274806134399180047984757658212423895898992186946418090344692905799001121602817790026259859310649147709913535664043219959733291735760784423622122288340852798101449681266295236160589058831053866664582027039793956483788540255282162248121987561819894077739054164162169182120946698921886285485463153302331160366867940850229155618810157956659966808073072353944616633524607529665945082453604648373921623483707609697795934336421916045279463265053243534342517101241206932050785511395599921760764982507161792194838956670963357809568195646554330446818751457025034724099154031719205858644635012735565826275075510332703489394662438235858205316223575558176609144169991980840023046681347050751592712918697273029192367642284683902189421804382543484867803257634042264322796509204095205291007079725956751308682701380304119345452695339891934045092910956457592694185715799464393519534276343865167146138482816491598332516748078909397717872287241020803387499255962841683400890234855585141875667694623136448561883366432588500136791805621445010854830145156414269898002113284543986060842182825632185308771618909969660246369670165043140841677351111357947658970139659701762292550998149433557917815850350624016113855631049634769194747130715375542753776138870740838373766658757241414421926741494349759407414459386961337104095574726984079987881207325370432250585218642592403463384668163807022775767285904440006451330172629795430176135591212530825998611550180138564631446612015397795570322482483202450032490909770562666835076311132946109481081183193305747581177292278243188591142494125556434481589067892228629780701628436171819610122615244382680125257303153574472461596758411970549831385549841661559123721821585039107945849058813757274875573781188538766619273696085121253017154072189363837284092667458646141949091185319290614221855794351189211230510958451023954536826061033627585068450393115076138455320340810601031134133264986452252384109190965088860199478821551834373258364043500098548432842460069335854825575289413710911014997545096537197718917051166550106396404798751041875181558781191959429899647181612680656390579733903885212360496146521970718795364523394995183832387685305980640926247748286017841467552694371892038375180479442913237826897530859813462125664755913155189010980335090973781466860546830023137017144024628630920213783199314004694653706479309136545976792658048180851110057246563851709728223220409691950644343953281981273079138350168671469485392302400619132037605470456287575633533191214273061580323921757443727068799475661354123849280622230737394439958001502796128852024340922033540869429973528211202802498282002526093158912833554492123362732551702161790980101808072556904326351778675514438484727838469201168097615326955413044868057571409134943747834497613117423955309648382519354699222197505663867464708897811281746674310293898966100180856986151425001443767809473981704629389165797144284742325274907140887725823618138817333558418675601164328488379740084606900329623793246327056963780125671502885718301573758451567122163179282788254156780559010897421968418595659096540929776744000558596612880693982900348404085907383919930932703381443643348038557991195517258794921912573881819782875012755264236044080172921157491524789822069950592463350438002370467008702543821405073495721721166644336845333116970625351675434425787130595626272912913279827179867842158910881610910696958065977820478099721488473781940960452993070656627450596625696111358535066612816091364752278730488699195723142684951601591983794342748075911101077302940625412049528692669316934932877797129434982772675144817000272657115284468087067393656180236443002637196916300627970175847926916220902855230186975177454569963518471016757308929242018707915717711234375743202868138684609268533086594438871463560698636942173121117804601234662166167320767925275888787939231026711692895211635576137544612115885476879334533363808471854688969110836000421678014497753834170219543894675012633095226116531439284171152639351640084384969764091495112620298997025874662590712224541829615253367520491093028905575304373428271161698371217573284645117732238602215556710948969807378245118396068559237111122659925838140705841044577953738126722678801819095731829661538794553766412078512501842404159113079988532755442097984921142594444838940679050474838490833026442701264230356075312770526658860914311945368002846541815203853256960122240327215512343216416829711754865195671318693745655951126569873443086501044802889822657286369828984257043825140579555507685898348023935864250294238810563808684544009975481686494535331070415033907294641556877397310856155028384077523904184689360897839563418384314335463159829533524970883360257610677699419076291491091398051270973207015563110426859765327309561413245008039591682885914748746829696625575714335381908451223133635388901677495225981969619736374877224941515409829788624668192038231536318530532873001109135412744893031632138119253227733226083867566010113218488604724870836513595467085558908666132135408746503612075796921738100107368503434069412588873319474652270401226759795290294077411938612766196198950049122291652854859390898966882187240153755555378626614232317397068296881771602643061935165852457153996543586113893685737749122888873945017245514113327652011702600369024467866251516868754752067426630506726732583651579675187672097087622612936987675251254918960907629168185310655497153250624119391540862480325311542079772821894378348879096656289451310161595852982959492680715788358068379479145437504021929011623937241463428341584249176126788885079565425620792709181138186854062928052483634815798571723209568225474532150004391222896492512741137247541651502242231062187417832151788561588171096592339663192776615878144313683223365532952122267657937700987190634332026989267883374862605646665639371251173122363977844894582651974082242825117354286043403510070752768517803973668691727214870006009796131330346728587285473964610413172968456161093932876179551577766293262724094348586578875372314242342331867315071506219182175073883365039542817637036538956472738074910945393905358603188686681368589076110888418503909004609996046466190804333157861489732349205815931682513431415054932826427971252443767758868230744708778210512824036928610639119495748225503669710638224952089041487011915097537557765833364911581511959117547461850722959480839212848857321761171546861353462870202226271801182206845929693364817705797492571086710415984459074170356814681495769842526969002760315836370481246261481673249619800857212883434713869186327857822963804030780195594605018943947288873561260940215534812007586468364402481262535234797422253607080550391208466142151943178001383248819714310410511377546154647977464499986969892352262616188239658637180509327592136765190651613403274347803955060756142469183432610942353903859311857575520299306854704029627535313044415516709549029713645907308236485548450105748405437188437614797842509465429118805974831471714516707713139367896540420506068454101356545469418810246685639884918938830422058267999130226233511442957379358576135390959995852425578993082065770547487847480936550371096643054669785790127051794165963292581361676330552329198084898042285268253484122675931668436756224138735818440928650629085436407847405136515532306517433259594759321021383177629816356568193528228514403856666776418453576891769704242384250203199245559080790932542820253387045469818512405467428269078089981954938547546351621781791237845990198123679303906420809853069514088475301226135426809058353543621989069014677344627100300548532459504739057143413720463262656238621226015520511461829556571861092723686878403524769535622707603897855007735993543831488057111467780452485757091482450972388804750951294832131470818744601347328617104818318235749011380909263062388206556491007971941922184947878563963344376146498922810206674062416682278174690996783432974314434421521865856046741473101787270999273003848673758648168384399392468578422589419184888524729706575401139491485639006663035376465286917101101885206525595851689118836861813878201327418442743922184789892732988814122196062720272664871722069657019190901906409955469603266404358901589496703544637257628520149876594522182588448221744066514292532639305547122506134859993225584887725289078744604489385038175159363360233736761501451424844729185227051198662885931582305565905544537450878479066034869401931357508424551747284897463562982409744196631961657947493528928901024229404848834156826878331061242843122106160870675827357408932792223914491871431357982202944048347020724093875354803561553719408754431968994808065827254764049954752138442540170512269598353635305340559399629259537254535149815354225771457309575932327779407352168737645249428272064844863332224915839018713455640920700239949543578646373070506358981666774932254324179791180175715912555305472974859463490219826769271996685654439682087309879795202752481362381663020474724618037139057275382134758504511101963928315648917908731027434969691169865631506482570459457943472680282214814183340910533745927138081314512087429561268550340323694827202051663251298973550618107704022862282059815892862908611139215226194429207606266406188214020293872221589084478029914355242258434545844226145245332066281793530622355576921605207314124298985572089819434965193953382053073315073622222464858772432754234126762061088525992323223928243932951531719030814635069488517892771612636596018719655856151040915295449134387488167811452027736859691068915135791274320520237386503538841478235803677246387109610434592217465070097947059624746582035944997522956803157659693909962851363266497237153238933397327761671133315509242682940529737612376114359297681577780330071643449111716931600906548573360094833732204168414276882772990152837072319586926053805326699641087034282181413498469798011304187170241576635708595298040127811768486872976911832779557558610140508379081271173815910978356675768259786913263309280364411372447665110055178619863757964306473029674403475857296373295336151321068439271348078623539856779912528493375743087531592225538988455507103459639621021114885657355677848465506345604796230086741459139509965494958980299353000984184482406996289753427515471583161671738844745628905746666539173399285910942027341053524692755860235628060787481560782660581792542456861272710839651198162468138453309753446419335848330784233671148785242052185664999025973800374931687595443574856282327881980651665782258481723396193443554631163034850804004997881677928410273395276186738171082908474231064264608592447784099325187990979916374294547315749438976778944223087315469056344653914766836981320316294983344287807937041832594662593258935848930612884935068554717829374861382031301078339200771064634343033778946454740940889186976348440604396308579274799125750642162910859699706358492549623576867090628228829079332711083061410231650855902306732830780327341993619165400089377627019555569669293463204363113483280889886219611977892434398706682390545273108144660598364988756651296336262575005273583855742505409684591388191429385617784149788796749665846844457452841328598104731642151721349742353239913327642644460458862736079486166025786929538093784700922757124193795527470460959314636101586385944631606225940168102131283188589059332697013095224956157194248869134990775457866180436688209842953559410526753033644853873325174142818405500430762026148761573167139318327057335014880756287186407183388767815742380415150331962981625712282436292694580171473703695376088589865597641899412617185019589416510825592729415085277086598974631543865117060045923582945135108235848496424169547454971483234553935057996983528071390417747841425287513399358920668941371406427666252884238425276025529680026651944348470818095276004637905896942249946122583595248937288206202921691933055922631082745111321749989963161148555804374667957068655984009351514320847086510567248808454194676090221363534686414944217067361638415733569300192885536654267281608250755757742672027321030031684207988088988687408989989914190099379096801404403778003992779331004768916814248153577957034169172580929418312615346678560647053775078229701966005306305034587020499772872939018707723999938367255876203612612105252034001506533504598619550177001788904534763093319363770531034865463970340850753781156690510224786966708898626751274018179759212578506843148095341931560443822023653176578048123409608017108294029545630547803095719141839478896560812769385098421580034197168278818531531209114801402212048400530981071018265487925364047319014358299664679081866891521931702503549552420866215140304389397681151670060313640149817078926044195331350448341590465987863468151860960033302184172066082444484806929606967150117494818498359020756304391932195614616148647681094061829665885218200386093155047048028499540662636621432081027274967690211161625849685894791149908104244116611936937219427450951778503382188947143603675066216167391949769121083215179485646730465387312897996966788057519934046998652125809988106708549146859681635121766586299586473220974843527335955029608910440779140439541708385414225790000269848522044529169227192446834075615325740429826577520955254465316659133490402040681289686436782916462919975234604244434144209750659507110390623451769375221342599579728265069441781225841756968484999466893994753737388553948219355367621128663167161129946324122766387986997979344779479620348580405489773624870560915310354696049565840794060530855231283339435950392265057462878374414198691974920418069662307198299951530364087875008796090067270392253449539499839650175803095792298094000975804706636191138614955706923728102478703097233829175218161922659779956609639094452266074162312449543023923290146560222305326123764956300662076982729310257801575509555861207087050809741832585862023254008147511661956126983223625092654843802424740993270251509296258483397484307917480878784656791369523431610452003963525628052570003504108429979004843740610838380637310358742907826456149816242025849057182098442115134479747732898494814621569670299333671084506004260681581075214445594061506628610527672525179434365638172133346142734887603916239962578161550940323912174360309348137721203226501437631672140560599346577920121488773746968886546094696487322139887876909727942056593358972140801729872244750429293774560835027966601901127198138169867403252073259250142401225597365277720550002166874504111301833489479562993473507330203459269516924356768667053861923419644103618054664266770766589318652486326680545147105502193114834844043877312063844760540849557925408161993655978799232901522209543827323512530138743970421996231228752070357005849919428861581898960037287753540292846104281770637620971678216422914609253093197639586310721697143453694878071744629943645866496407508913172269280567202629466624095302912981327379375901857514814583174134212707439533252029730884756430541129483327815766325923277723712511004618372095765208011843432695214312951021575127991156993356657704924360495321257398872902205573817545360948133818740547120776547392946574415165259618837418154178351260370855352541202029801858075865464023961805025386907081669115467722749927556084431185249158885050257151467975364813567105315413634084901747650381274703521489417637392386405846676787603281000428632023083181839594099019256852774622136066670044390713084157560694635989970494325057645417456692736529571356764510757337489894687150600722029473487713976716622204385506276239796119321880958185107447197118993046985470276592456080289487115496044054793454141153652485263454821407352974088483842081580833152972110250094820518935986824742507710378481088191038160694657519147789006237421395606508338002696314488902961840247371718988312298258226914824294151403724636820473529078760491278308859614040746327290077544436415198061689334256519211262044695588047372317247152431214134859734136367571116834596884694153810055898764420151282855706737910802307397438423490057234022619245851960444147351627608965517275715476197446628275082486912969915146118945625680323865683617911205199801011421259648265420089481599650636971930179478026695966844916103460292331929997540248018304157714288035877790111257241295230887413270196839977426523686446821235340196739869701414795962553857086840571130099303220510998891482822511346032764947849684820685417467494981774947886450513968068951817394165173935065896757478317868738948044035359483675894988097618830684978286160971887413205296437920730372874993479620207610279464341298477866128370197313509493549101460705748343341821373769583913995911222405818932631978281801161159685891098891171028090062308435519778426624574001436065807387976587999989257798705704834540888667196893213846107071357633347859261736497847572009384094485643421940873541069235626880354193086479383559205869927929808873227794915905437403859233378824223008651228806203065849605005054111471818568081628653896595815865245655331530241780462405963553972057488644456776896567858590895515304529566150381039880790300762000335717652526415177254816865791028287482789686619517393210269343076499773615925309386643808440096997461317446315957259823304046197366415381789068061744360518579510584546625475660558759470595717690289335248376453554669977096643357229349568649369458328890821561796603615635141140634282600209798770913122213304687341203559710432404771557108815981155191342000367797967226275515701679255528961518916815050615095750770261477530118132926679226994587856389813463613643062923796506753017415998626456176942509771694850913402102322401834658655932911063665413094127974906775267094081934778402588660783187863523530033813561679498231947034316759182385322881242838898349631685944289235978319158659060514790356699024689440583837639286374173240703569330370742015750867780135036784652724099075738550417285795986866929007322656409518102153000814721612506072881061502235419540881251547517027623211897675979173497712060538030354179005193876552432166966408503511767174351364222207200242827747991705766669657761043495468983414734651092838271106709428573146991054694522578271867014775290012563819703479401954927368572198361228118620893849656482791587534264334970794810608141287164639207033338862262433727641047689985152354436618125030969746626981710157353630136929691480637079829062949000961685904100953647372238795090201190934018422008897974065725515563202824963869262692319106873340820691930843461149839634065517952763237506743635610176951964168232456194480704427513634143113283524754827922436216268235536830061807300517784620399677757278868857369438213923542237553432372420062958666003480246944499809712439493681592918755403787032728055118553708206715987203989028780530207206790575821764339147928006510504450379299520645286204632858227255940569762457686356527796649692346204218976035071375096891894275987784794874551960722114443094299489610354098607180840101210992302213676520548705647719866768225816622935456928032969470612824602913103613310752339989022337379477741654719398818393335169953801720640592907728588048512741782594449521231188392572254347156047364955097608896260303609228013344357074384492023506829875701485663687032629815429668038682445595189230197292637792963690200564279314031707549035935639556531158511593738926886819010122881598490459530768211719126921400610008832618738157607198826417812824155379759180043289772049816265141518624634913630694018996988933811799788106428868671288998708512547826304324403815668263585989234038691327730522859107752665264190098343061824255479959964939055626958064789537373842251554311580843978321138159172896199384491971200325271661374636632752028188666952734763285200122731850468846752726151286424155828128210451844104604869033268541725444196552689509567854709982655177326407517398059045322379510101950479963427481735003740862373675876670389709094432294889815547055102661548689774098294974275960523136820731084940102396678984341208298190803678482147482991568728755980383417869928620096649539952199245450814882097890831242355483460625586192647195059169389078052337175682896527328854819502344376275108665992564683009899835877351188696254201386679310192734350615087765663413864832244041486830112298192055308570520439076303599588483801240406938243747984971057227867240618207285512566597532019494439229941859419136484385903901754959822505167665839032309351265801015817718576203135956254024878932143501809475094404528822803144969075270565497982428942420842475695966166860470420280018125607611301380877567777621083847354375752786974950498164040442218469647630147427166376610222143345421618132267801583203551629409649736227283951971401254379876182759800411517012419107450640507021164656464083021028784999227220636429226973154731875578993626981438922304238777688229979198237577085157056176215790630022068647587440287953404847491783742964989695216985175457467830097179894171072248278081164237749844148281720384186780899427269585347199952449840749236286979084431506678428324280010662188142172409292423936516274274569070135854406207047211950559633400445179061351176906534704289722149854355082570328083676939028906799355681773250087495218852656698947809274047120358234890948679973603284072704900883183935238786536874582386592882605381376016286813572460156784999936361793106490515152630620983236336745614181464378300484546221103773696579112679472389867002013833358751930539267905393133936198258058933834516221071145880218131898274128428510745411812518714729471295103266479022190790518467334984089112344476086343923736433636564612477808147016049088430219220360968809091582229676542995456303410679412255647039839421999585150676858756507110224510024182177841520682932426732075812148055588879700938498214651463244769660330611527470924675008937601360190892605670629830942122228405372771929387247544430722015174871487079180327067226553102673222463877650691664557630250534335603763315949711555474796028579638389091222660645636899411248759540932096657606284241140684927730347673815133118437483965341159171498999990785531826489555168959959588093880444122046388938221032480091713484817973817161673326856472904444687455253861432176423815937746797475161897738428853775184597650888260107915198085277211571185937355538197483642520772574517492416248032198854981570729485174414611924702747772050316192891455744363724644861815071579259720946252833059612710401833150007151505000939372243840909686330339368940584182729226816749779716644464579448197735053114388425648260903842950260149305012530024753291767347950043812180905842972879678266679105374651638944693494912524620778142088908969090741382786765915927792005678036800719774614543082124601697307610052988256384591861850594761040866144029192529974400743523980245957798212032979582835996105104820938702314968222989374606369255989769795754244436744380385087702141763374157510619462405912551736371271085366561441665308926146958370475364401640475327061223070446444136526467651241893974658694447324628907333143484973886480960086429498618488743733414696816983675103324974991987673575562813256126032286238911453415143434829183264114825192041527044015652270201718424081498153405331556660905321140833194733372064239349995369415911546391571467033512035843291626537315501523763484103116931433610185424709368569818409185992930939599033020756553918743484285951998367161489675266470523171975923704654669013097690848963930904833042315478733164683641676187851061499304346740346926843054336147755779110853995005284493880997335685591061541852616877804411689330290511029355532467050640607513517083264219749116553832326994386611306632814032239922441827915486414711004544163180316388978136563103638861429423102371615442960491240954909842131806964538844979855679174846627791919299598744273635950630297275662912304599555391630013300902579783954289637374265219221391013967361519603495440754396999704968292190860087728426515470870156648333637079259463623078411069263998469942385675518990115112174764423321117715200729284033417496237743690075972159496761113098524718795687409155005721585699446505150032560245035586204719829503125506312409937166413661791930343003127029059754123495477761229168605476617237532242590750811266842205357140167926837232330581935542614217458685550302742710780310784770736190066393235195971234321947739096484507655864371929162033767774006903449535497930861716829229742468962385213337655792492220076448175122940347302242051867019266883251844487007786145195265443682759982327896392227055651781451438670322810958931928610072102976627999233966820285044650037112571637091126675586295810847862304273402034228524665124066242764259421887774610462294753108504875262214607459127157343015242687981482744693305979238132143080402562435681565441752184816164832068833229173944937268180520748755264764012499107474848694149946142749194463483584015322832860232391380237130345868880546299781674185721875549242494531072429318575703335295029716679319957434160873867923759492353023629991061622092698600174931651440357173967569069737975655362354035919798774540682858619418032907293208385425796505391923409666974766729476925072958324698827734781061871371604368041631437607170349954567138500821456602169444291760845851741895573607034410962093185210289312932428693162080114307336933910885690709108670057953845676569200987991633138623997088604494489710446972175783929344020370479675997689388569738392595436104421306067203834632353993838681929649090904846415754513512915608547871536899870278287815592363250348896432945642607115730115341739500673697151710823646413893095581550690850741419275809975365194470286881159097365799076950366560952405201091286346293188137752461381081829591787069386787298288251272914149057129795618266098609620883693536939814638793765005158002729611495667291562672419035297134669971963970124528115002459067673336591610522107757574749406890534455131093647480062885991246434034328067974507654290573773960221569490672884541963647039859805431228457618556980727158457320652408851064552088304744757967995263397544764580342508112893537120715276384963990955928201528472901959461316765308351575329594666138369684151452185127587673315078826893404176015615310208406628491107621582040570487225767455002850015404087756178078416415014078519358640308439335243809867327959445860488263809822111790217642785798035274086986813258301741987512620855892161949556011427852837100599736657168327996247224135810134575856816789970772337511735439967865734270215633085015645653414028874970350708054648142775463958055624595674421583004355544244207580683720238869311749900369302793843361343669620571307762801359649484930798870753911697102631543166649466656545193859329814445631528580139701081027795164923452081353240799265432957413830884299843414633877490307395923074289633837326131396391234483916508258331447749467869822852031779142094674078563726660728571110701045675704652824534665480857046743988872764071318892536658377438956105547010397473998794931902472249897107416506570286034169173904492827994919141552734964752322382879355223565094692279943471255660285275205925087895457232191558869932197927460919177226588121494247026415538477393514045127393986059012171266764026127537614245477780588892823459002339052188985990042166573810586192647947747971377131773658508142314974378510381216695606150247093989200826410732649781215340190737573966979488944261086817856241521006296581065632677272745009529780915682864843474824329446310486288916055618055253502726725091317681941572762190173178800044834429083117146190308157483511603095240322082161003995298238538290656526461514364394459961103365863336568069694806889632432643589968043577443701451493157187563629017445199994670724949350183511778685699036661478269368081104741802699914832104649663878378327090157723487449212533152360247714314312630889550747388819889455181557343652181719548440290391887561464259204660086979952254804419660630042400328128811957382808631755060056993874118534096848737201545043169905921950803535338957448888620542453589496637761536604884475338157786241275895486919134741240162655674594969022532394757716606956932186565771481311423805625479161928000035953471348023116303983639082575421930982921162702733925679227185218510308077770330210403555630025414950101531974880109144265023957129584647625749974848610470313186570737433322117895944816348558997798813857516311776917476737520395365031316618987533919794746826512788888122428634427658412301516905713670945669494770830022303655422674161561985489185066204637077582619614161692914539806122024896564846844604188019935043138212784768493124489907496218766734761221404680057457678798281395729750499945638477579383485316343581910933424302416910509812661459507290627406184924586790545627893845927923304004479274488468261581508812028203270139769297943167296349188651728340558560965625265635380589148547397949789459672867126687912657199608066356853739277107596819985585845416075016056725187412814066664727099546283227958303723428376758330674613367957702495540753781749884315442888185204146890746662617684834993110484143019161666409961765823469296474317749707226032469453151398141164387646189955147578599263873857160104510702766741298319777327706196347341455183812914742087006872332575369438033816814193939295367815507705535003743909774210416233977890613990060897218899306245337269894016052854057452142800466235618637875657468942799948924092369725406066982928982896891859213840353812547726853394260161197187432902245672009608086993948176619183006653356700680093550257419462537672741186929824042779900698757150980225949386697009723694953749302342539864026929909478374974565262979776775515206421100028729047158300780170912620076641312460469343687724579828163712245638988114798659954109185635466838974331487106515140791402381566790694077111590667228100162548596069671743947024279440518812878854999165566912404362761290244191118021019123733735840575256799686087258504511683392575167047862449825553035881502009564794004226068806094996691771145452986206191934035179018744439054174226769460062180639338872104911949467414273302962526439199659170952288832876182129447644320304661163361066418254144443706749281947439521684878151116897191352454437604634202569265393475933008300523090992444958287345268473472566734096789036280851936979701264647403721466505093239791831802330650632849942670802063710904760173780190127279552997367338244360900127719225416088491668879489990023864301147861518756982306404685236761767505997317863844858377059095760660993064401937757715875683774119960960046303053777621197911324830295429206108695964310687199002060787462833264956769853026171508823287605972905039718929612157482693784179768231886177264519529197817038635227937561535893017476500481959248995609725248461818037100992940929937571730372222115031911807878932892058545752708910635868862262533278492347926778942553991520165379908383706336652598826553233716902676838048358166344999745947804206839335022055776600684112585472398327421863222572172513579028070058846935716520030066230003062394062490774297517152172709203039107896696502562833315320041631786054104749401003652887156691197221998281545246549106883111276294662965445587449997801808147866582578762137269504152782138166799309385746865658694610325909888929706418122483532620576284396202836235289011666045174278281754013836628019026674919889830806932693628141459415962156822236815751417931730497792484571067911127535353047787769920386652003603374409003072289813780772580313940541911194150305198415770568636371745879324976586489483687250342260487080749111888714559546249444167610852577099631619237379497445832024536657563733790777265892828229843236425360136293750075024818667658643608745882285187340682630642573904769297832460269844325648397250900787170284297418622271177163838763382374159272871705369357136341052592840007995433298647967488388564379210279965733184649292608312022128073867567715018270047508421173520584248337217869696025759602415171190946385201323308412416479902511451603942313121914542580376303288216266354569326472229180094809291805264166333972819772099230296812989796253110199162494442978749082854537275372420002266585137838441378776324084581310722748489291507085395780259968834377180140239496325519762736430886997327594952552154546994250108993680074939059619663953596662278045579885293417634203917843294966644017245718356473180859122854013858119264520542052929809678185931773514526213164039038015114877639127371723970511768082943996247214830314129533751760436980460883808767199077907277551526845968824780015534818063320836132722069718640032299542479493682417631242943225067390155836135179146507673306401529250309928617716872522331168274524900973757378036126906177640843944282696432384336151723369651401383957719330191412079068714092966716054384696699105317915098597725276995549790401264169715237267112132644238091683808711904060725306095195446888831909679043843741893890680112634599784536328331750867983496514511955566524791291175938436622491191490210809513560153677680843185865856550301320621175585757460542357646138932461997259945338208599121238499566169575818524422943793328360732045140169586828878857049408929187406407935603408361835638500688345784100251341137509027812087844290507912391673242476462766621989465183113509798662639357890774679809720982170015585357519426059300501886515277103270326891546787555777888127293289851584290108641566162194728551042999196479201520207819255974856071505399768179322827369707955397611188849603381485941928658925586176592087204234936483692368280437046544938735287313255744715417913643380090309835308860642815779698622885810440538702587042069113155964301828021819606577702414205099965868311139191490470195592310035259526941686709682962883073686859173794475688179803250433600334925202069670255307724338659283616016102470589431018096446143975817326364517727468073098832668611252836930842344669742176783986371285426560999196478585144925152623989005686008723163282248544109342344643251905215978832959510641256448482666692151431572123374394863662183150791762596641454043630848159786152131610622654719356874878817455518441727767556917054311493646882927486575034720302324141633228300451319530237203461108475487682493187683198640616608852069918794308968942928202963557734675749513301549498514911119815650292149911159058014982520661817111797981289103297549934183740148899230229205948796751605574602613285365958157394905356622896379307224709214599498406056735497843353086664013239960286975210706640442778052082312532485236266932339216021767158724250884913176338351792247002992932526772788798748577378223765985994370471894974533088433619888370303622612266205025852995291026061859330838102094007291925892269541293159354044119427652319401513204866080159998908522321692089939874355413843736687656922956075550496682725914089302800991196780306346711348427024625333084402584516045843287849828194565553880181323177375253079280053875594048384042654027217660346057628534993088551306376686652429781235105321603904783301857749539738396795105357075281624030269504404897899441272628260092672539606398782382080136640333811474633578066231464166354011937743192297342084367025532808263672754813184905340940130007197273636533319428508762606630498325104882766614252775478415874579991660314139388616516247792882561608549873115942849687153247676646204392705409013667613318315353307135759208181019825874241227763441842081275845402483465813164566920389313435695536005893609620157904879968054627040832365568137356960069542881788327953780363238956579023366350017253489117793726056873989615032129306294300756198978533420929480937507015503406812261167141148746538236057351419848960052718638440958830437900190751601370006778274014242650586959435216494457048033817909696682391106002051121358031378007466279595685260176860241087976926713667208665887418451648595298111479078650575395842886990899079509086594301821953371309354364208134185380983209762220010704070045295301191439012445411733745584718561642402351115525178255821066509195304252545018020392470121202396269030433554104345641827210054568332890795327949853757111861037548362739579197174392607864325408400136736066615174717622693633529589940745826366235068461923312820362175713881271455564346702868290805751506212386823313415654737219627544494218972843195958448103196336750716229910271872949007890114251900599722733968643825124475276457251786774383660240358628875417423962338949093755385479597262209514850395205409990757640222036729054373540807647148037220297226362109811565971301437232166424218035525825359274221138184740392494096572489516598173106520838361778610534227291039374731731461882653269425284981751084848872205377723222601855820485322997703832912843650256485931908210550965561444672599819881650263918024579740268103231582412663241964303712780734810089634630108807999731896206525122798451262300336810178868703621692170873516028510300698502046515992262183801562981331384531489851192442907573239318020003201611353428512363319995976177718000400600186031066072173177237755574788151864763974370622175043510716588121593533605924398169265725086268903147267038767866699454433756793093707571423737874259435596152318191038949744577301072557918241532116804406285167756942292973949431383228694165458587942627083856839458261593082745888102162179631197915799127341538127091533420681797034365173804936557252844552544962539548644064697280706560236300050818565421740334147615196615157910279612648354706503127700150346808908391370979954756608311642581420097653095830221867281071912399488640507904280230239110335327744663544368275618956709908702408437865961785497479911203821302144067141806138298703751939506615591567615133925788953072852979434433666439348600293089614883302990294708318476819660593466763696125137612938443492467640972685562748270473541926187840705784078830980922023876621449773763138506092213654257185477139938330133675096048738533725434578426313651507929195982300339889505917831418020792300662861483404752940262760814706128105911551477098835540137749628857180604899919360295897386927243116713124899319265102616472894959445112877612433653161083784260648505569107488187194784082948209270842589105645924605516910519096919883781528562636458652405896092949182523621717892003180512279144160973405059005075988755442029983362158590221239960294144691888383168163673975734594882956811652525287959576359095108407313818163785508596835553728937043116872630483045821810785289595842862715050051574906363282453645280921185441594599804098849494238121124399450858373004179529979319978009653867572063116831817834541010954220663634863512020686026806946203656691633786169917719885446986199289760713981430215364509837009391981527469977273300522953725635141682735174189856888975031380586237567300923553016878341148375132807128632680651137269522202909792178560871387889216741368312380819616168542729134846268829315430183749112930945840170490391090583445426292459971422591806321889939550704125617640229472414403300217862315023374092469533019941264659723629048747771411848357844392753252316142280776685055280389616090750946187688904073065676781640391978338914383493852396065489696946274093864703143462547916748319709885887863951529182650888118668435592535956066141213588638800639820509728848539788652414907973352953716553194388753341273142198677173399674778485001840699951760208283930606181829190435899515300254909846152941812503918641064973206252360947773278201560476517757443971084027736076977849093093628786949802505129274890565601285446704579224794621918333515571823256781665162865875091774714865967524309613658612135224554201330436689948715725556717148578681417919009953616649269116677313361225597149893255179588888178650024595707405406451826503181425395848230198994811478312174536551317596284634782539701964868641298125375209331855020510652027073119913598664822040600143915720723725191290968570643658067216351844983014280784283713517743789651083738624670615308978590280125446843464695666772900202105513200744448840459938842147078885584637185685176185844069851020149109638364784947948402113673348350774820889975017191130773353496364950275719242942595997032857795624167431666482645151079385189364229123877572729457571854866523016513654732855335785767106854405376182271156250208339137668254166157734982293776501608235412415866764360520929169056899946795600575152429759972866765439563654194783982015080592458147110354807510435954285159132931262881877558565609762958478264188140680994417543277789854722623036198965995205038329383632440939982257584852679290122551194074900516361929919812585682736073675278544650564034494476423712119646074027927355995277773537878981044623170092867545889787659632556976594401555794925563237477728120345904325165896676414529567849441201889050921495836970586294401209943718489666382175422774729812645136188965748482929152144070540098164732941379592381432949837288609339391284228399715197538338587400346921842933322044936748240259066501625316588684970960232616035466160300535906992115677701002069111134362399980222355222067463161292788225897184154847002826959499581384859240416311855623584509749800865107090571946760410695431557391712558943000231707288007838285222379560597342478170740905351672237174424351881867655731638246753952747731383044795558460774707201986077162184765526085727093687480269698948575932504429938267357476449339431722524108941190510618033492881620404798052741801771349787787451777424223204521996074013584273796977533837696280332279968357283235826284649726814341727589974433799316019459578483314309403294038529429161100222039925504333178289248256787083451648211558889186450827546651869717179113491182484481277811963608744143247820210178740601446516575992445905575234423182247413162923489846435972811025288596160117666092896531970992299182981042810577875000543270429034512792197780621547405747960552287109518874966307634900046502182925247545641334906471619481173578132054529817504965751874863077194853196931598582816073346856321697921804851183200553937983329484554936612596513199956373420693064443909040888747713544993053005284826005604926822490194423428372360142973511907756484683493045394354368766717549308935065211279341106048726740725598135418352170248906736925129610332409483020297274877509353323960414848273286216143265483342544020909180586853856459672634747003801578166616775623940730850273280782357399069285683246800072647564514475797657990548866983563490638308280466136448664545538527166332069215694442034965299813557223536728948094665396509806497922551321971095913912222649196399648405687520953665653110219470252480343449138239016950150327882875232322245672083793901402603979490576999488911980683777759686286505525904740632882227803066291360022059465484347929702173991934662078847903255122029531887116014504462848748966489656032327719689326335839379627137585996130595030260398615991138158962891279259596994527714122840628041592671211255016544365544784808516715844994337097169500190942775576749081012815445310929553278507367313530136021988089052517338291257661386012633594927745803440506290240558288181920441119479347966619573495672452432946479281539436016550314048806601880304889590435070931889240396208124278310485790703143424939782139252169784121368727042774626458529287243094795953213115414654744806121829914582115167350696707665192398154277805980473760488930121382164345005939758094050077823480949900019662055085286999642799685068958953453945749581898185116764880658808032741372645120094428619949755536243124734822215789300556060880616367942999371917985626534753852504521332682679848687839845918528672983333495444639246045095756338521756139784163244508620994771420938571223001096852236963911287785761124567084691813479837825674023855522361607445186663494894812277983380276475014339946002727799047628832174362979211174081395155068866720774155889291994168553623080310983568998177302675960371186409662372967792018678522319602409011832845786130472175437871371744671205555943260355385041247109557080316419728806404832708760389123783108920975198191936689831641672587911387735183880230562340058473035907428886039447652880148813950105646196523223409616968051215639912515858834158250981939112514119646271776623281850923203043618671813960118773094360343255599242971568296246706908928376250458895892902937680563118441432457226149423522922287488964095194005654451469326637109030167478792688801971607501181443926665618355212250269478797643492899534217970247585699835765577435003225348059992256689336665861159198650567260263122629696272141768854406887093504288444303242130277052613116012818106510115700969032166029667503703180822864326730538351021984834225651427549789646028989257752834729940010427398054707953801370562437317162396598665513751918477992884958093262597038363489130270309774679303798036008345104846973978994343721233360227850162888300273246837766877181600912987997498663692560262969341126551225354921030698864511602311992143035163008578136753937878996964714057736226768592252220595620399851946160380255074828806768860231271568072936918214229933491527452727316336320159493894606854293967879337996451255527077850688960513272384037166437703326643624657375984145485315011616796474334815260688221472940556599113928257163785814539326212622812960673404156170108475473986174987281641409344598670033444486715685246892738018353352683763802676699857580257229695608566821318138403322081410381562966245809002096356194147894421722059232944603712183128595381587276643204817686187534649556885026506998783058432054921741849727766841318954577247783678434324056193156065954936895549332592467376969596666986150351769982491438342230243681955353423809353789254644690272189577990856840209156303927034344072164507252061837308875674238729323126120000046677136321096638992086454868777842780358911440760944331192413890636674120557244641328476773589677024066146322663462169416017615552608053983675298718056823904855385452453211178822672153328162426838019906167422323290995710597399793457629838149334123893486700916886866143129921320199415561579319578516897702771770962072245268483291913229409671090888159674834621422536418464408368847327051083520948694167979825223594981231571504701708030018043699975831943932934609409803401950672238192680780666708453191410559570899718487770254792105126867270330242343604221374527557058616742122294204393492958122255293895329201954627207540713281126604582201484579790230968085841633768248474530700116599702038728838372595451903123577151917209240780548203879410896373249548741361169846182075394040652318691284548666359757340544335779241512187319418853753235257040736685319156042705018239027617020578176407555740004058181539134482768889004197409803820363877712840559082391355717511633372741278674771583924140175600051909309861159556744987682307898282161615248824863799722883180917797008875278921699859771747483530363137726476629368218067354422776587467493702462359927993068137871583817189081661714794383979661425870525197003164167007624605199114501715456821346317088585300957878217506740702137547977663778365506640967683042625015616176069746077631865820792960781685996277924257754122786633772905187363132896928811662562854923364032657830077633065681730280795151157460939393891540146275247704958270122580600381518773833584414420803819105990466840533423263007976421623066093050490116098535088008201663021219731571053024761872158278408643872380422348881257302187961311404390919111623133327297910716416545820201261517118369525700013595987775225032540153989589331331030116540376653638967786571255239138418334164324467557738664519637801190052793083685612771893750586663714830775586387935445151282357522792746792806693551926345402797562678881599361276930649879434229332020280801439199391106265673164354657881722451054438640743995092454996070276408545914213546782211663326137964309848940701530208330828105938772070163909013256918163423586234727667882067956346236140546071278159285632562995487919820756811486357752382943979530606022882570245590246341384817177015288480524060655453705175577608716635500844166936663039880907221478198688671454791574426974058779794959282971951027585252635185251951769606561834618913071568848670964566919885324188018047028149278103717853176350409434771867395948521649112637292942988937696040982028863065497918307934603643718110729863306886781364999591055015803430000311673431247233389130696444428636306330616352565043984686337663879307215295542094251670761682881327397287311304432454018178249080697373036478467397556938508636206770037765029797551461209488687173923893083588978663247460827954905135692027284462489316189132477593434691384078962373052841938873810256625424022689809368075045035464789466642809936258656703208579567756857733863651073017118282929637699760255703337125793534741471885713742438550485858199945974650760234702127901036018601993495406257055071016298218229715798632556486301565812200396458081116383135645215059452354819982660995847067452714730562273714601164090358967806895854515022321959606375974763274709942805046218342660200474505740009341035651690364680784141461114819922161132178553879905911794291779712034885063210297755174887650636432307074981055676727235646537018385591441629987496175045213578358276868112585211540269352993706946704751912895310933605269718911177343602854022064946046770348499421823844276223787517125447613688642440266229604117835706918143288252612834723874678069535905843970460492126831711824563858819685326341859930733714317345880924587524158930049267797885442751082408827805529322452538977781784092190347155928353720645144361629063101520529848881387570905108715281638901833668806240870674623091451339544376595216384813424561888654547305076846765533088511145755452067332344985869062377704730753993446724119799361311605076086690463630438853312917675083549223394483420103403936826028879854899682599475068844873885577779559067166306583625877054964765713016122271913452275195056133728737877772052276787478284965612171714041734659022006690386883256003654486308091974312292972913315647046970687962592812428935100318955393377476513662503828174719805201107065666520550611759487324758890784484982463359012116839763567230836600616896402237918331879026696746334441958351387930673059444492403328774854092269130308522954589071952383331687096956527860179622166518465509261256925272456322787220952590961421400989565453385495116384015143919462616074560638678080915107891431821436093308115653323057245920509984220823684481767496868798484632009204273512236491575565715674786888422990222606808665376678243035660685681344655039508629976954114337673508886799426851259534485127835839349137456025176947584096755366780748904807580532796396966409902624058868745946616619255492675974068934332986794573834657695970743617584644852450647833073514710084303362784974971629548239942582354561271686784256678927887373737756641242885847593000108911166919255641403734958604968293658923774324829982245584121060800865518087178529633644437211547449194304931293543885538181759804081105282650945011199426853790991217025533644093386741327557142499703417407200669646759320333227548581150794493971701418625310748250694406234898483761202375975166456817599922818961350959968993603439819126586920728200189268292930577818330216741666968890392942282551718476263501105374853106851851259624231947937907685250450782299289394107289643934791559502662652003912133406682561585239576945253523208095236314176761866544453049061396553918913193631174169701675058314857149874108941391314085774155823344985874139875050880464177839676210873444757481693681605975111427246721170090181947134353076549371895657480917591100122932197503231019665774600420257602452159005733000299097892084685379810773054024236409558588873674321477218468415094009310500112761618780172880834129236544281950353862794200755184719307269153062587699341356855167089605832150716863074502800660134198759107299405950355150366084889486791637968059196636909510584142693407801376344013579385710132710827315667943103338170271563531339770595502860754116532804997970841269263611555119606570810098081938528503400149662815529180223890313248447707797171599075392702251916240947848884938250945964760933025257272816509576959496639376901713560918353680209523184912152847966662983320084248907622172268987346515644398727386368192867599877799531337089526901442873647234681802780741853502763361918631773779553733626579327931613868379813394346359579137001680629744331801506070225584832483594772064852924355360449525954022185394225194203334812421759550625229074241996299439189782748003209864438474781379160084072222229056923004283078869848592758538242240854006583826682785566313405616924526497104216209583982559194991146624410188288719357739690371986616664995883107195440346062082504760965759976111924731338524364276706790662583118913929962329826429424791814317837132253109622202860808389719001860736108072434730201910788621402705570715011176750096654478970618929440125944505043675009993531907346926178741083079718632307118833882527141011756258297998495055869667871058035077073541740965068600411743170371061778510390459462310077006695945764370262173045282575567006428982034767828276239635535202428008074016905760574964750647545203525692532038893954806163172766284783673417455312977810035787068089438985444068299649609874580211658374189454556609234989944316404573751864780799338040591728627607497310661398189124824261041895687562601661988494502981086846679792234421371846196187451440484803887834967622784912631061284544356616990346021766385752843730522628758167538878890328201752771873069858553053910120803039554441612930253523618690631029212914782898580319761050815846204586271352158155661117209700117012131356244295003361862478231458630114505368271411588195369981527569548223236846096209145015358052284462597081331916224085174273696034416807203402380307787996410496945161580874031835697674591216410941981428108200516739435337189772290353690071175294847494231681844042550858367700581381966221343515693051928018371146539277026556583396814822864733366415755887313946239285788973623239013623507671498743700603540220692048333563114286474721684500873204228349780016820026748881553665806250757844696765673019417176686971665517867180340529618121637190230712531063446823529244125397758015130289805489218452615421655315315646996973576621567216478516136377380127992224154970487012419177460977835558042396626216229492049609381835533336937334450215765930838766290264588088479971428435809557343189272863036600215947292838840997815308361369782204653769798339631917482345390358052262866519324312503895155106194764112424435261777277530554233351992352651838089822646581581596273405559567304118115172590134236353132874000778866442426957245949079190126906054893987211698082620768327819929179760758347499755055689864129470257934535475282073069119769009482932567190500432573049946391125809372305825343872210632763068188425433349708846813427400333078757398310635576412769355379515531778156953930712069584690521993907046308620276260667492805283125292199831005273881290206704110942680552385752284019540060040551350880662847388343881371744544242423303468424544002734301367535479030556947947172562153097797766642470963058402293034393395087694648520962187648116400168202157390115113726974372973212622049123302262236923168349682907444538915306820650023964899842122241688160286382429491255670113839757269939567540856141542166892701861484537509892124146187528727275143925586661963619631500073651745816571485352131566485394238910368412274444114707877512395659944659269414729288776813661325675817617096497177756287114841292702586797333891998707998985998683746095192377136460039549578129315466693229839027393682293501797385608251622158208302187443985280612348964281840522168036990563938337012128924885185653243572312631522109925255398470746491775209410245902793833127015174484726155633581211650735011483468868643211565515389182275871682647380577636975564507493491776116053465456634454328392284409652183374686175774861304289495539782205082398301586403652347139148785306008207762142532560655570801556191875845272188429622882717166627839014454297672822405572668235620555987711451327265553167418325662455184761721923891689310535202301517102418637318071626336039198802598962250276437736854349756745742321717419708189465412309808857283177664467835212479195784456357310519733593219865156750244573398034591119714168945648763384124743336502143192038995140128490308928237725632635078038558958678795959022805659307030786939134653213429288862660188240690532569900558653647724966411025428206164713923306397932467499230042282590975140086179999293408709855719083878540083120706773202870609855670765524921895372767312886266040237426868037948857384005583088645570097862776371031070139337223828567924787619370660577322340120750047339596915745596304327622206795934912000726041859101225534297253431690553592030512947583733578523354837820532290773627849558894765118680298879713031813241616380927760926610927061444165963673203141412920827055543653273351520898430147881345987386964458124803952711706888464894261201394274240743638464612208853282160997401489671882491393177200858525969027658056408398966848655006104371706549381457299977024003252063510706378025336275162200160104854839290964761223932395155749519760033894651524562328011688817627348595184232023039451020178590327883775777045624191707692421407327808184244271206190657309146090045560776074320787848773549905010436883675915853410608381308157111835765417392137758587861300391333624985212849689493193601815154532103657003433461964624097012846360431272790950526640870880360123424198642187029768141613052015666993082120732403852326786691065363876076258034365318698132659573306103359762659594753258091460788885845439380175935682193873841944449497955707919887745858368792892955217438335478007806739717767997327868475575302462737319573989440768642987195964605219717949871834804764073559740029304940985695446541170748862998016223267248145747068132006137807053373634275698911964227050171696772860337662665419404262242076842895458332075602521191153519158631710047943793529477804324838302505586276487890642372953087075595241330913639492433438990185946010109186161817097197369049308718380244962130514448422325552494165923921695294308892775399925837145120169358074930839421005608695251960683448652125187158505320407839236102998754592987110220788353832054495399582420089536295903758222553486066720358077664706734916640818359232266412865624611332266177205584193875501123478104055955555797229270224965886093726773631701501353573399825385556452098045060721602763901465076089608545655417858511431217639077335405188248892861269958411382886320176994072355020516248750073817860203379747011441774902713640758011319963944022846483999993090862994415520765875919464323708447864187769021971058368768287533140480063502615555516292858951740038319133352309092218998986055291678977642696998532471775500931700213182460589437671717271939011413316244525836781294429297915444070548532265712108733671963066141600484303694046863279264182390231877835297716294214747734456670507676732414778591275621678735577144497834590424541281604907221456920488934618241186854228023201992883174199022768157992111550409698075943881090247277655270090653729752861896146123164223616071370634361482433155784313146277151300568006518202381958982125900332192943776876475983323177853251528905294224648776295577385880685269865853253568640009821885546539139479750743863965900978770741743126852352716679524774286257667397989037420310647975485280025339902798364910687129770334922690820649119760671231139400741502077055415700175640350615127444332825789054999780480771763121464454390479780373043046764364649560727069129819391828588066225370790595483916215196012826879814170420898482501129741620166772033690672547328842538940824818354556933133486943102471385725524349266003602716658511279693805676421072297550501543596397536236319788650299771040845271712814319227721540820821558619164443583006498817190394712415858845128246786011835520522052356510453912098016134245945871522650530964254994555604924797550314825697168410636637913029659477333744855573169540790470828097758714391067361424241006503769499471720167858432283167328267428081258220587230552290204444481555791952298769784518189088248358482590650264429609121708239749014326209879279572804185459801092353309162924555262828327993602579076479223789060368211160558969967441746318976275652607248798091267905085127100757619455307586567468289448825862664791352971786866283417651266751407217622353759727446381232997115790969695344528066582571724894072618800036667419412913603893947383415826111919801162282465069082573731899936606163193552220706342956105404199609253759017375801815815162937273512873703969423620688440583075078664961510769522319223702545717514076363832439988659261256376535380256822796715766182925554847771004332680787699955831994266682771417029958599939199885060967712656074640092700681725554947710533302053230318305171825157578600020397829175979590541296784533034798612208074274839319132004633598700375378082013453967768968813776025087293487877550676779098867189843545198092773468739344533847365230608598517441840997796628086197513286410740395247607092024549075895256677162871516544216889669646137105302614201885920819320205818660169930164273660370458628266239013809702144592983519978572684999774808943046460972582646669123888794434521246613125811174919374434748912967109655898525547184463901627256108580497315474256579542916262324326570648450403704966914356782423918115560343284893931555136172384333522662903820815725439366282103957815458180734637516486674988680254097410684790710474266267511591330339115957297167397659616971993672384449786255672520717980664285676664092023497280453723021408521455765087735209441317348233450036149287787393682491395011137618801588699201605116093520317011888305065128721981044075304913117090364519395814515041603619211895893190409727373129504304916769746814755956661428769032342230137004812007494644226698212409216682991718732841225887828042939126849410012122782810333914772292802019951485529131057469164582849877318923774152391783773931494393256657495031060356417796682123689543471311844152619276257125956399130304695711990819742349982454576395046982156518000538011510552751931630610238496383173271611291959953301849939385278269218096546353246269366505604312247506234295246819504847283281354072934296647843987743497215044399927419625067914575202585035509955127708845075456862225139861460547364749070089239200929556730416314620388674628031883636865180202557516307704819073806928518356078717340418754057631719439652362378627716832952005696235503519219652215207936971704896754856662267727745524090153065343981815938472576105977398850538242328930410497853155718678974738957383421570794779069660754097180350530937836760702588115985329291397705477328677755523419434437971300351769912371983085583444276617825677782278372981309125750766588386850442720557726319213330583963277701102000828414689728688057897260579416697619865220592752004969214970680308039009831883604264727020524700382209163605889397365349772349705232668583131744513129939271705848493625603438237701491788019525903302144463035824143506714961073361587166739014369699663229892317256202201533176691274577048059009843990338078932268189899657813450176534951090561634453708845872189168035092006516811646431098387241446490922456526188221740278319564631742176397718683470538633182774889205737029033274309947382122023127767576714248450186714536604859797316321466924359332773999245305547133662122201464164941478772000796541224572282129988255844927658829528635221187237125284190502687873281483354601052165185120029215353726025390588099564115666414300317686507697281449316392443031747212286808616431325635070194440634153889621686660268051227828051995227718690043875444591407019336035787794407714037387921036834693636121329244788435356827212617170404109202517323665631665674091590333543118004722877811853988874182601555392345167580283866172692549908439245400018106750962303976142019733176150909364950175915917115121788819292939518001136923108067656802274993697993759765340461600863819072448646443989549257057056152581966453436912433753755124753823569355218494041407995824008224958135926203417670033155471201419122125403132042047276988391534529436385233372489042845280048186829667069322816045661155452865693536264077285331023320324961914273509526257042283873769892488493273491199257015944172705048544222065067429555344792947546018575326308721963759943281866514808995794402732742878719421279215481434284353326730969014586258373913171976480948360410445108956122474150508182403642231461748065698468470802539962370786195467323641129156867885533588049216929661436956682498789579088028395517023742257722627414775299011267970015723295298134087684787729164652660652166180490249900431580096564004101309736224652821797685841282993537090339145915597884815269476735264801005219556972658938343748749044989148757353357840872448812414519276496616704709207256076576368230835635799771030509713336199301440968836894712579589217608008653023975796306594023860685820190228584070392662949808452757941895107315623440195067326395039327268522814019263198376466810848822187935695420231675053154445778417894774370526860229877719440876321103714409620198448757822292490949304342486791283894731558691214827045830043996203150702770677434891858996080363867571628474178968642591182619046276793779067167944908027533318225963859897738171135454289907041903352983539379486844125528833719966748328203449138799236022809690803091264030795008013512821345318083830537676979511812205954268909570760282099965421509438936625475093449574541064803065345316530125050151957718471371851367987626283422010065833494174336789270227317559242880496185422156931753097490315325390552588628453567795384104740686448543950661085958846709148242820790157796177035841965348585754620221970328306605802679393647881286587143248355289361548454071671491675928648822354727863452761569067455224675301467139685856819376916970950981416200605380894245208962131984204955415263551855972347275776238073681512875612317411275163179141250367608930954798790333178886189313537229956297755123177731911570448309013893006267141861013787465893167402612753505009274802572727691791112183843343552924700931498272436575456226217032376525243632480351688909724190252894158499876601989030553419345036828645610735800791357326583812716783888523891156687554909914643346584421164155046512284687990613670470546391126821608884168491253670391836304848588419453115487225023135160563670849438424162777193743563464541132133013137476517556074312231264219598868492613617634888078405420569209658684014387533860841456514506751638878975181513860986848854239538726355654873047823782935210227758906770649052204127429748189371415710541829824702649294799105736394921685072695792116583250326678245600556021891121673867968526700577656690730175245854015541321989849665605227895216873485361480863828645567449702871166050823275064011404281015006528323840404207571099119800456006641525948953304188564211737714719949356427079700903077379167669813393516808060721527438352959075702524436750769848290487528047666617982279792821253077714372831051118846896796064462173366382522264714408158080431925475534999927261161929743343971135861833017281087232738604875888378410585671815129659238210095074934056293121346138475025074360096882549609430189986256553255853506345421330372959120773050045989482602360540574069115210701723523063784841120761716395408219996182531650871546928434938680620414191698613786809587777679668937009811934508005088134281724437908982515865622122448151118790935272472621726969445687455104129203579205661527733068678535080417395407324566246537147200063287314113068732312043655783171133986862418311681562913282418816779782139877048560392910199902054236850890691727270022590505783567425162786421651377952467732896214433285983770074447861577554370635315607542415562262049976219127161913927160579186573214676492592190017513568905860137441904207139622133587318654024690753919375641054688065083274417903428497749739951869490682855796039594392408317309836374839015841755341809921575180590029822060816989027010431541251521545805166579994578937847058082718883383316745111727439615273925386827465040474916888777936051943918747744721036584589009197169585921069483725059204878850022367653377018817995513549555957427751722844928973730599900660159445051954776600211711956252311788444118250937866067291211825441178205873115744346532228696916042403716338465536731563370378673353977285815258880393728242147293209981741507484230553526893925059220128062376836899081955904340225417451021459274536821795306110487376825230750397309068138358935522066824698903134581043806354938804901398996552510080796640862775129457796730218704780031866783033688532010488625352776766184918000858942080842434885496380153771345425193670892699528759654487485838037179686749336365244229678504850908334946381736632198107928154894511714435354352493001636978959550414353486018460664896168687081731111144066409347169834254017865536944724423184548843654641561578169503475641705521951163021457330128928729173119555850294056229119016013619137300923513778700065177059955846212201547028344971267050482489010226555325008179879857905277448550613482538774542656276410173036922298114389049186456982830618382314200606146201110757431671287432110873209350564578902843417043100762363028981361201634538718563584703455838727023401173489923917778217059216950403142486950180172033100419972542932885527941474141404335585649081278917656807811757090610897504413345913520600224476044434279948315809454972219672565027688745794826260055303813691069389749043052716939605080105414479407896755821412382995272148979282757344402110825747519124642138245369877440137166410123705109402701893558048117882942189735081264076354292088252578187847900579512997207355081949901042326939982989391393807866868745067318101764753847135171914274582474805380990648660354470134635933460785076275485296998454454322852323863878498683788101195284004948967984900906276852775330717284909910414826840428485470714816183074442728929467144384735704358077664376499754905448576237017522053755272729879724460971861989650747810733449476469644924936081928693398967862756261801814842229404224922257255400966022680995474827920420838547110002388218264099180363286247146850264757540336111025506897543008642857728734245322372048977057305269524683628283320474476231633896626912726512493912068599729361561415218318382952795335142502711864714433062655582674654868426180541956030290528483101956344078225074920081948776169286312330086416007238480964432919701540661932056318489129502769478128437109127241527143003470790650044236946597940889966161614056953512828759218645255011782252710047059790446884176935756067016124534881076514700369383808655351872534242292784984857272330442153128852336044001459961544309366256290462860683592146602435548879736338138384041356912678743819912847129972104765774496786767215478317193271601623865335417882481351226969055633464627682605660008587922650610555266925775966249813572797008453599351113424247703284487606717280689800318714409176727266319506819862986916476280148899690514407984561100260648078220190817508525704294937256320818663813892354926690377856140459454530480604334350170682722248972189339313453854555659054939127353847443594640675134941017655142645557268775037447254791505889832338842537336640178007596069035063139217895980974336587407665246706104560390186431221883749599717679037812765111215198625090122924409777715813583842293128384649516549293699557192200838429627163864068456825279453836540407794647175361917355774154085448879951944527357462881969152027848389145162164808971045591481883481717051122875805065040538818077260854866237414364460862010116596499336597645506788214569045430019616523399517197768127694931912904684358429133195708503211397571111154240263324908293823294632868458290945435796749640054677143899357137662123764595718070689688316747051375025409909805304027612240687183100763482919770284318783922194610619904565087972263881936631017453417815496139925473681130803638426575919003583739419539147936083651540499623894933323438801885750804265035953228216693606638417765657743015932978712476418869292831104193254615010008980079142679971993398126632312949504114845477310185821812709789979669348617275637343019443195955069153063463926724526123975320150815806490920311641657777281411442819069331510278576255364305643358445189851683350084556330232843802945215546015417474054506980720758727139739684402195054912379410163688150782967475237715877996737564371472687662328810451372206439752952608313101318664766953722504778300020761259373988859983010367544104984502116106059811156211644418829417589686835974482551132820141888289956948620550642571068272456049884458600252581303619856454811956175771648778365671005237040945655828361815849015238879918529853940127536454787101491870782336799759105203731258912386139333298951303057705281979439965965665887401580647638262096384327608258314972096985096614525738578454772602210672063144840332813763079751992549911381167605049114497116675538527943471757637775679502902672694595121691009365222193192244259595614538451158322543373110731542332386657901080558030509641426621822307719051815181940336210931574470609932197929164192623270342169709584004901550259063005169021753603193244447002774592152586267337685500276533255983850242044190366573302896130127172093428846093239138020104618507138041424501144519915434268281987871302623964517669108664266184685377570102087478461481121200940298491514063376612158491816896164048564126170617956878976194489260079221703940349493431813167153608464095493331424460684920806635069223952550909937005963625148051841260922479862896609453673077715361228026374775387103225693258225227320853022424817035523838254739631668405239320301628355076851832810786663882812388670677305458830654750978763926459921688226650229828251495062420588231048184252594851300303166722724210904240458165754488467350920996614547031262185993094687858880487498298317626932752923595851135006433803466629280581659620662973088910240203021271060630481347512744867812828266415234472474280792392565649879515015805777580626329115986787067686547519756243239195367160239451408158441740454984819018871327173672562352711033888124097513949939882319828994984780134200740394976316440118630005357884645939972085089268289211904380193031485173491881285300338359217325788513590214099185422230841190323011129528816689296059492739742091281230506822150469818232114033986260351232382373912621974833276206689044636338898195575592703955030404062811841177111777106694980046896296850928730111609685897004879528669384285185039915889238993484608120655673581405799083797170174730906696016178096790620956663247812125008452005767634393116943473956528101731309665402577208219294902012001069751226856667701058822568673152872145881138397413290125270391150168365377615165392457728665839049832338218932545341198785359290356467791985294661620761623435726963004700561406244922937062737555317505888097762297690005288800219546143360279912398857212640541044901050628240645843314629888576177519676047931420911027431974127675930420065640952152863499620156106638568526060881324815742423146297506027107887915302034235572907684109387150609207431269196169170194434021283787960780963301471167190656400888930156680985103791989126095139831096913692069687878880721840979862758558942802520727485632706281396602245875828791086101061004696565728175799364553111218464046544384653975197968710962283844769617976411882978236934265779864859938104115192661734294867118730472653202964340113324318318154535573106223820737403184171417576461367324959986475545290168444680828879701305943886124891086847290247310756993851489885686347454194543759976776252343057557564200410895972769983740165647161647397692904060318691448679396511935756304315202245992152298391642103924875093316137062062593461658160262692459397317871428849440406561012052334762764343491882335484090878799291702310756730553264620502987966465869035149300813770008993076172289818608741666320377031408497566928769862528932554379240254604551668836242728036728582972428627460719208272001209084935811201442615455688750951129691148789731084568842843446277834032566467022666522455430371001848845862115611331119435792062675013867525470654064753090598991182941621244522016463021578328760701680620638584518334930833588824505873889036268819456641771345046884728166990751365729521914232608014357334282027986856870494936202499584956031455541034761610808210518972102993158458508240881189389095781887467006626667590076165387125663077636319271923912216165423161411881617596498004983889612770127052890617164791741827634608102617571772995282796361104423020400270496633673311194928414975853205816103714577796722455420362096877242988744614815376330052036205021267455970590993664471864455771800361369333416395008423320919144817772606258159338955156506376834542638999807478651058722625374468249544844324276574637513592943908665536814597459462265647776156983227191284195525736873043529745262474980074524545684166640870285636400946922371042923372453284552413878059200908262362906225949732152473316940677367439738851880445737940621038646401733680770407441465454924693052779518520938158261204187581716367877278310302644324988821061028176298050685666421813964664909119167751404989659790112985715987216156908769802810515770743641347403877267297340925725033783483098266026696995959611693817325800084263657408490211241921509446721197813305013126567428714964625924833258696882349299848591825791105395439013527171338620285352825575753672839416317538134310918852921210186025335525870479447858251924808589410074809335641306635329831563210976900985209983890396187617538784643282142506927663681666081594744474813705096014169837773867273501409604139992930819253035807391586290992596177307090259261039527254487472415731226163870244964293094205350306885990520748191563760194273849094515641417076498151177918144220114938917659432695674516705902621719553505013964566767321354864581028089042180290893249276559487363124064811666791765385730055515349720128971013790993503568851366335716252773394042760916459394901926845828598145665231639956262811996287835437842683712220621163814366249511085968424805571845032079280054336419866051056497701109180494306725505012858707669456269341085643670195554958405191184990247923921635766825906449671242371065967310437322201413584372697808061025000967442813783922374851174715187090682275014880781388604743939020235725747629609860462935315473123524368633469211500554086392357284457183320284808804859571416354439280286746557380219982206568905180474693644960161993039656499299098987336967581814130496922695276115630464136732758556999621808849153311722818894547114118725692686586735279534864921781102720985288025586030412792647831832781778534087457635841171069713800740522422087568543020174742953169061081279821073558525306764198293577428030101327469589645081673925090031574503144274271299730182537716719683956764548266582846620929688205152925353053764857436993475385453481005526798969722290228890865558759319617043440239210237966775139093488295763967888247716532982389147888971184531274164401035228934078581107291278223112842290845325234352713931845962997083963829795706457520566130199456730069928729848218854986646418216429686870254329679829351875316910935842962631491982065983791794100934560839561081855732381671253640811768908880328382622669188008618596393915873962064144237844576929075635895379496304533211920379151942218622313550130002821807506056092914050414480905096849930058336495549290162716161965402396146670532565634961778107595943474782499790136160525093763368568009573907450010270219440364980827378566858771000820437355823167706575170704144716585580329840036541550475474578788270687951073408246314471483051237588456367209859082310420849835012078186336166344585343816742491936011134716585584257354955973404639739020523078167464463057767360645369898413528585207365512814997890420826845063998778819020412511517301981837263902884760134783072157216208681989926600857800613170481871565033453871743412687600397244976955431670139840857576188162624534094383581055152740235924348857053704880758122303643847552568743705825609394074251138474472895825820081046291734614062979267332805609210917192929869005873430360952295797610495756680132613761523754987441152555447393597774359260523670053015266102426837658263983491843656204012417027119966965860201737675630865712073959381568748588138267641678879591107441401877435006275357172211371196823324949876676389900239673908980585370418494694645545596640801151954608372100285437065661849127041426459888383076648427116782391408205028617078470129069217714689926404537287789264668163545555167668703203920029061672249614366297221019747976825698644574707293310985531070988775500095050327696383695922333444427630143023423758167873809400409059789188309134132850718349014461857512199155701600470862449399384637071134126220901422750918232001110252306839832474183197812103714466603678150020872488325506621215224462336522008462348887196164012670150013353800089748676321114735043894484927633086113852072927378071045147945735665894129897518463910682426725866966626277142613188978312049412845670332191950074807266282332779726548739762548215892834178044615785068123295209626719233037428910145618631256388031441709491035774899629828590595619681285441368713853921198302332531216538513910696378797079654463635047478881251779463579121334186104764181746779644163690386383934524884729088723626978419731476865012943019304820160118421488636583420500792554435866268079135598296509824685846001563667490001217406016922658459652680187077241640222926969047017523354161195652933068867448701198559754119035665113468300055558358462739981959296178980347257727123937699274368662997269686078962396709939016833215550435131455960887537948307245182551583651064701554075503541809070673993900443645996817324171968334877664365170401900899858313095419804122093831435751653694291088535208165281767356828039004557558296481496493362351149084879351027831200581466687976010966639678047740813559572470355155094401520587318661656164293192404533508436929737080981106663503482095251925128486852222232202143901845902578044715211946532868526617674729058451321679382622235004058426418598663403594179217212767370631349241053787275577712245561540997175583613451319329321787202351197695895126043828697683731927916328500526465187926914279781636158904768441529721576643968477751796320611656236403365982085192753169756893194298196115637121787707313128162864362293282339998839390702173627769377188572655469489647893470783357565849350082857946871721935211415647572652285857209314327118960600759717472347262026749232585160593180621610130871980184411241978261937669269669032640533341989582867402160928493447240330484574434536273210478170212963778727339489930742835007505784289833960505778702252937400414719555445083812154865927351636611069326027076001073247477425549042776229976202011953562318030634306268912505812512367035856483661612533028882048927392724340878483088486470380021364056814925676204485264339029749032502407720721004756381861837152637421368400598943703678335767150191341479372779054343869763696802602650861582172798115662991512911971074506546667221714779946563075303429879519483785471474536594647231047034546578634156330580737672121162164611642718779958154825365538747243559603972784577809674807125158803104813568184824512652405844613765184395896460734723776418900151608340233332208475692361562884316216267555569326110191881163327655846452621782377272441140712642383827388032675283167601166367551509203773178432932267427910492891095652896354054536069593388087233465956339704872592656093784687624097449737105242041040284613977755715292725834614020361602040603210693968836835970912862267492048821835030997352314682936100228952736582071656538857290303738682817250753018007399542441032304257042109438240436936893397825495208631507927093612456205817797500522951421529512457311666813710898834470718475908874264047712712841702591654036961050672405606736168643663235886577678051855462194962657728463066354095165655112291724802095899635010096387073857118165533818180358976353229223716521255008238864469457823190227429439205816005418220315350420821236324791367484660866088967065032014131424236333114399792560961976192344818346612078582976905034272113260969480459371278501151899654580158067433696292193900064128267845172447887698930681522920817722734464194509769174649875506662321138211592740312076800722553429518147360623133058355215651453311060962995757300790579656700440422715458362718883775728032448047216242308639283760978631432281902645096870729998125683937794621897502311894646957035052325738296921352328910504088301260828866515438590864445073172219749966344501047580056424384732632375578782822056516449982261509158910199965656815954744928198410908069010032869404607800483208259998750580738177865497358562875822322054471950188455161285248725542981304958014712549312401485556445928519341581114565104285216401283223272637848983766714148915245676327844983153579740333335090361586950235355672438235981303809343825434215746836208651508056277177014324128984112025459914894432726104085551408387466690167131929623965973365928516247245220552037785600578793244289188409953204329124294119043190014339380151273109763241385638655646337634268587843821769394766077558145493831786333191628412433156248200614297915580406867896265104600665072522677325812116369291053562779016098788197996391523692707826323047431880174979131837217908654120424458433583121172695587851125727991301857567071389200395430252635821214904484041846842418568146354404500306897078619138408751858249905537359594333005188588384743701393312567517358877465474272756143362660322182987447287133173483716982806535464881220996957952278290818654294426485667417566456080981624348541338957053329335452336308752993234874768461227919490753730411133765392801521866929970971229688361175125783238024551697321920869929165170032358567345403022290232560103559174689295865959261750737576292900272203710075492590160388455396374477079638538961169652363698003233503155417936256956214124447273912432589444704403788244620439199616624146178230540746433625527348884207445277646447984613237824853437543674165192329014603209717094682433468774434861102589562113318594726347015237118022638568933395777282267329093892012090355768494905832850396207563806898425705965366672038223556230631293263220702113016360321185668660485705491719417116538005390454620414134563298099473769928487872208708193699172780692957881019876993924377887372821780204094458672608787407948883099742155942821769512674370705997457109717188761560110893376528409327810757222661573077025287881440013914357920588490779889402524072012922320571258859989203067924995692243485660219970416568009089383289801903887373233450569102514779792953845737297045504746547819052271102567793670947693481991680472931928829762490259948608028272322599843002897307172531832054126494916666342174584898642814506012232858362743601986738095734762031098205248992806564186286086940381568711296491412371850467334277917353160851462515781534868267494484872255080323122924328958377994103167544343067678623617566836462587378030647507072394452282645599113807129222014233909641440525138009324116212913331749064081154643428811708449608071821377815025588180259451813958522195081154816448525647601926876143193931715469844310396312987839669095939280696286914372461729719378211463705113236442510534027819262254618232307327753499103140288472036252889234445561921633655801508468979371985941939221965754060575873348164503319127329471919686515431715665948103828766210996740793438701491276703024473849861622554386133526592069846701841748929180230304288626095509298549061539524243271447956375568344801771017174106020511463992364634119420794538420127678353389337100921101950076620099640847776720281297353596938319551094312584349813211364801760984638669552503486676249957911193028531060299702433190200839038527870981980577910659188724547002924373279910711043138283412337879224204457682688761563113536736958683759100123902377088287459747750645158935127644513513775249975671882247770939573772276419987119691663140964333555916864867429437801244292259308491700113427891047924230647057946725212914364348762688660405692724591336695752188571352428283167972708379612700573949904844855784494123170021634606002294602386583654447269822527122936689087801228281615681721664868611744184516346862784853609796279356278502337328906792177843672442109242540976142295142897127101541868878146465685332662674361461903262742026258064257159922015540140898573528921184523689175984191871921538130788100598174737769827615404898340766144270782162823757945579795861726137386154459943437862457702803250770550802857756520580456452511563532087718470077893695915002261787647529301077293270909041756295271721471394476280412806638908699685029269040889064555476149500729613186551506541289633041294765907455644372105516079040638966187680108389508517734718093723812812779315627997033221375762410921693534617019366553042259014999798240201980836979235381267979915236991973113172076035120052784237534578065644163556429250973327881359605758771468767064656420161386805892078791325609608786335574023930885129435803128516493504051493942416326884403113998152076846561924760285804124461223774165343543010718058470414521936664496794414036410817047385858561370816231036677069085281162318514462222340351002114641823239999602392171263978917908089275744525048265562191368463540118403689695155967901101005085200613579357400566668993199845018732418761225012758555861685670889320461218564132100023864872840451347560455776475765669328673808921661836780220588855969644522651744568124289775876681064214741276790033177165706004085194197778238365784193930056851020389084974861973642627821423051098860359886588396040045866611877218143109760878059162395070267378444557296065058190332410446640724813489563465123231911623176266747840850449227347143828425614022869703616783289098366239511519592082977386625973055674149538807520900101029727661270130172087279165628685822276555238889328546694157045394316260971228033058587137370584366125853243107034358337563485643095294560065439071918844070207120540452005067446708965180778444590345653948670211650511547100867979194059759453220707355878113086312308798407086980209986202091114209568232645180371722619991072591004086683900486793225039346166182119571978557268091468534324377626420781332923196530308823598785507284676770271055964361828174058381875468718162185192709343625992468645553305811904775516911587593477775721396761531745158071461104695941825940240587126176471922876108088907237607038325106565243193908165544030848569737782157210615297592034492510967643683124791854579062250726899064173798990115875740419435219200541813069869072969271371887186559184233707125828764921154775909404113502097392599106737224058032032742445171198883238084755997292180638335852860085823943894331953959722894265059514368953124516305698137558045554469619525642905344751667620130111046241610434722242133741164197338134751914556442230825882729028148117936518251652751723943020592797284849195498104845640102204911739242892557856442427989907932757597898703745941511305455732060821556875881718620641973761469455672323282317754232101106836676905477847650076837132422616470433937196219705528073864342741668302154021745961249428388053719863679528817297078870269044261735727520012283713859441645764388367345620733939702941643949052090238242960492182572342311026608384091340882761376925154482455456797041028118417201939841856402264241764018765087491440666656413462986628889438776997163613981776558361314976614131715009780779074391754276608717333343115388447475758722676239913423866187845440710940014747786054401293673594180490497798738810643122922945974487957591647516418252027114509536264086334971508797925298240416479184113191512940385909112694114248887798177922736124273708489162501263951473819469716062723787529701319976132839462271847171717862026620490737910772314083687816304902904978402412140815369598672047443948840927162055325773295029572235333858613600131388601716349860566466816540461707973078225734797645881755734999886999228656909230917950295912389283083137277357809570931014679044014085937546374738824827353398261220110971126614168192737529759162855245997832964254119417815674441521354065156114595734124012321546359189235148726365659636521106315197136683971299574733564544528712378031574684852356410784396897584016140744489324836310644225608308777265065295442401021020296417841129681229977294552023837455484372807461396268616860319631491950917892589824965876396970405461949960382538817320687412114705704001164440432844589933284984672606047303329138105186024751393369030912643224474399338073231587155417191504444957464289743999115299095554592621534360790808279550008347631425572078363168458869261675821180902229931203528525290552405971629648222109211691010061587162105823310285236419995659023196498614879229577043114526995288632382634152285204939340043056525289098946729702437250171375635579985734430000953480030093136139090241227365708823824235364681481731560047249906521893319942451652527481426945609529106206860948284211285670509491260698060966898786868917176577146435153047917083146504313072692233761291225139966799603165754453135825633188093436983051313639053348832282017822507714046288091827178614392645292390225627607116919272090102667872178421666875990934474070624121009739247001802248413734865311506664761216947442188580710474269440004999427119949475856757457933478329785183283565258437560583212876207242445612212714241303057420160052946006631399648857875383254722241940171392795998884737290339905390485808408553695472034520295397531153940095572041137357717308806023686623148852865911853295127894829251636495476602973919184791808753557848814753744983135723916460758881231346892038906923884774612549280095072473895003046357209387059850125883452589744354259525536736849982881602317020827151829161484531004276511673442531285472164030692802916278905902417695641241707668550211301534975528540214919697735007099567166765815774688407119178459703473566503395559867235092602410417524145505101372209594625706858712952176512259998113047344424402874882839009234863255597479828359951874816077515827631347239847877071721443423192011949034153310045471778479919369976834976644959310919788632811493274495551942174902628015774348040380900213816400601864038754842508477834419007516991538730527135271746774936603529288754507630901653246922400064814350611079068577979857315254277122916433967501613614077854942005266960716834509968877025347445782591644976221681030880361071400251005470485787970615278257889272919576972673495627115081730681187322465753385485767335523021942508472292966991690180194646862758926053016625580990237409460993211478554983505934466617559129009657668450375582007123206508505028197776712162303241010115044835147588292335715958883428283981934893068172435814187123470958395414741463564766112174433222924041906266330939304629965316677954907601252295493662393287804229753047056169324825069823624914436706800285305003226903142281103994804318328744133643442491203613158248695668603828911200134312547709685568097459447069670727710756047144885175435704843471818703176929102797613734491758105763027988240082184416271760888385216596640888655232724100724840909174328799201935918511869179437661981567130912690569624243672880278160364698428969589466473387770198140807960314808682439625209703737794867723515177355837825798526361796515713646346830292989102860402103493876155334924967688094250484737122138106434233379550929436066834900191908314125647350259541573645330697274772434309858234791614905302795404060768709978249086239796642739324633622282026193790085840139712071306399606369254931208128938856064847926855515647001921270710147999292065665894508494166614005650050842194562642277187584486159333762757823841478850935822809220285818694238358250664157018089548609942629091432187715026022979717085792101612659267118665554511925012479014514753152949088599280505759686095343398929442073788080292526423333065295891593915284942020564742370417798024436859996513768110687855188608539298320372438527952698194900924730305072295583779600405336706381969478167483877327914809244451928122321148664284275850690893152417391545754327556752513647414113341234965026384507676233379281879406744256117416296827660725378039269231641659177073942617021494422171747798863998713277486363441791630218121054574685198815646428691231072613614070579650621846511098305246742447512800286227158096078425766313966255621531324087822235375215213547018202253884591023433306397032114228894665243111263264113815147971135411210545080790784618579113270801325915701448492280527989026414992423142862765435055082481812086439906407886861223722424575867804549646428277100301071529788549994721831478625131558803062915734948272760561190158962897983753557310691689228369263885096326975862436070474767978002541858242950844360788362688055908455973195432153633342217063141796178284876281086116623700656748522844573875650679360294179613779308826003060526512028072924856063875169339025385216787109662619865580686533862391361307153845666149222669431429907010185081004694757328860420586352804508042153571047476992755750449364670972350068873457911577195825544339098626829867366950486140916605706724152434367486203482853981093429782500665833530780666903849166428729379465420794062589759324705767151500717336592235347312973804897977172206754940651761779123329038686571413450198803737319867600130456879826969256785904553802816014638222264789263893362339930728864353953670113546302376518063277334598419517864178122463894232656676217324482900045306730532525667372995801623913330748514171535633576599902347575715085826035048898894356288475477728625189980858186181251772477612855733329338282540745717898497489030598481467070682275432155251500098821491739236866481949847514266150718136342429139857409237258010257285602274295609700418347857479113938093785622719984701150943113677207620601430241606715058697702882288571350504698193919113920182718825249210951433350682105929453535861717076985381334622465487567709820607834717501299933527061355087422566288581922366238878877442830184000258197440392159328058601440308069206315231822186828516074948707485393257267573297192577108430730794073218550437093332034556906382054009786809210812043258032884669081660032685526789948152221658904267651750990989963247660980721812803386259064750039898904093534295923988940534854836890821782300593851488760701706800120943801242665385015334867641052580702437933900331307516878160161758706131596217882310651776984778919932102323000171087053973507202871629875632472193765945097739788822362162513326313561790384903077616593035082651684009663243344453634321639288724165332269280325844126864012047991438802257698795316312664347136486229585674213876887076645193870023007416671522039367654407707841109820715138406020064603911749869536860259566403204565336910379990023238304920646549804861911986921977644845848071722167751127612086338911887440019896014637125723076340240191743749656304509817182486312758779626636182480276637362387023647287129706310048222775689978004213100132778775400527444448981174099946154636467411685692559782382812378185163542214218298597389475590404393472298332267832520800754702448780990238739524091879145559536710323827647251958728279374983744035351700882522690357098057635732329782351939251934243189800763639220819604134482392807610630721676774764401879105706124108494641817217965241695497104537008552535788989884677083458203207966993294465302745094785421728009850846819215709834415366300057982145927990578981230988380223233390040497455883100877644838457575179615923353198921496331848323755708203061735975614438502429063704424013396675172524514833309671051611833267555340364114580164430183686729345844915556397467480528729772321759736215783729135016659999044904910907970170090914516868205315248423588154687812957175143751352128405466898240337081479707123158045993625133987445101872703737399595063282574442029518831485296198655877036579777611283633950760037892579105671185415586022764801505783625274177179874214606354389719460767704947662152263745966315546110548541883017988584231978384280256877280162110660342388447059900805214686703385225403387402576849681322450379058298110461494280918372869261381215318176318594962911674109913452287579169473794335101414932345233341933510751250980924580288161605731289237171614084673285226143244338299326776959163303345212682879405466118982725429634314236002000989920784490398248914770362720410832711476096436575013131515501401860898213204557017240341577161845717231610232648990434667236699353055044235188444758758644073924966169325771953459339442215059115183248813320021654061984904690005718679259986415231056960503996365674181461431075703958003250613645801792777289207303630590773164777127412356910962470901866769190310619071668719405617904869840983042420528653031607963176041872856234780737554728474565869224062698696768840878562491912143471099646553803023762371158083280602127770019863964500109405987494629203500175983124813004259093276545628141255544919229061374832480966073306211504147947684835813573203129907248954971244782178333779040835597668464918596228644946382158856666913521374420578832460031706152443275439587052642081986985332728582275532470143503202252239515653329223976178570552396022472806763225257957571392453570167868965086614604282300328690591354921701699649901574810066592189067789427840610465624985864515101041675119819371394436100338942832072352288659404834923015255867633245848468774330241548307008340611683648123706658414066382754027385855071323974717057964533077518300154212650006734194737378167007292502833016917418391424523961527293019271186337093671768643182332380679887720075518110952476310407104533815941086173880536048965868362260939310935267943214603000001090768196381841709456458369819162264038139685508955027037926728103154415207330626612226917473793065206504618611096362859985829780967248662480348583870185938430746881159055220762166595839690105929810837108033716761590097036804086020878170301147599786965943124617598239091552910157894218204713445225229295581671489090042812384033814101405645825331331337757095100262438609446580616400625256696732788953773685502125109519147038455487966865505973073634448204635842372022891143312625297251059835144475822195796378189274587715971045104208456197197592618549833718027294118360824758282141217369153425380789282802003851759501499436470882940692103538621697045347647132558354467615166080388877012751923796320262967841836324890116231548728163333632831627705266348315126360864557110758980875081507826896104680147859730288820214544446688913104902006536696944829135124913965801029355934223189433259466575242337960323706893461067333114203270225949398639736634908121852065259156833388136146224737090502394712977705368015351045809225087562644253481730972510434008183306192654067300617714557979212783603492257237240680058132381115867258775381108321418612941513833931213804705480562043629950254194496563580910121033651624814593397237829406474322777207137390462336909350932778258270557085232260390358282531124458941753805231921602017198049136231574503610051718679412217096156025486949128961162006135757347568523406357839935473371151095175594120253862392035390211382728368692434779472251450232946599887585036801112844172098360087895120106665568700900953140821557792379628587629288479140695324124997701403048239949299853862262031553526077056556561232390512778312798898778322337839312525282434542231741967752298125692117932914505710196954945937043236561872803098720201382335133812950486883056382351009016921874630220370787554206511886985673664349032319264577077464798180765037993265318581079170144954138365581295710679340694937003496837075558308811078901246700497366964237835294660176952248141460958784563834243942452010727772830816010836894077053058641811908911720748131020198194133892258176514194422920617827541164735572113000205392201207732511280016457903683650472371931333872554555668531897668656055102529750891317708102985160844846705470152141336029679099992448943127708516436789704041660734450284142991315187360615496550734116271331737698842675585741363113411782607086514798876698102769760589888142103416644444862901965054916474785677664795633110613014321163885586120443257498625137228612095988412630787865080307487039023717188187795463169426880292113264975446774546756624415731200779995092202736435341009793783601786008499716090570287662688963621803028699579910671774510241022503593285637790210697031503568313253183597824367695229947907004469138983102295512167062397547752500737117604754134209552673362632939987199615377374963848282628220049160483457864960551101806024885569505786086645185883087807506580605836794197856425343925616065018703838111385893679764153762879241598130652612967260857356902025335350188583626776084846043594740091139887616435133812545974758701609025934922426881697046481127358289900772773311723886141795761618210072010703455354420225407036542795657137946771995501166624672927025232032748563953479398199253363788826200579720096020825482129842276400240838983182403739885696687181759903911516760573781731576397318438689751525227349110632197219295428679185819423612343347027167284177402819870282555367626051142462841661443653936229125384860283910991501061889837467673989370296961619281187863022830570495028443020588860183635081647054932687627013331098261657705453154257387925072900494647950183330586912176260935960522252975752002956863721316178358133327783694988302723198748472484689844887169209721800816549264162283311995278904609977939769432590171333505039316295598061072642316840139540490304454831131132816767750804430705139420622628856164636681248029612044203313342331608980213035875107224359552107146790999361420045927621573573756579060227105530260089641720748048678991425225581676897296095877225237726303182324732214032819670787661199809301820959874640152517216988224321836528297662297187283742670728785993174673615436572261122342132017315634191545301639805710183115120010294984756742498613952423190173088464274991461042946570562245688013338313472923512866045880309277631504755539662813201872538322352597228214940873246733815523608457999608633963448917732008507215763753052910297470277840462828574819995186770868720836823075937797406094939758776506612026767517273296491177839501077099763250897532248905733359146227443920911806426014536348039714472536995395666283105715539472083399186998322521547144172010271439476469102820159258706329548123961509072076790617176850663074289100146953895409347498830017748338190326327698629065073799357529255812723440421141478384054320340304151620388753314655545973085693774574792512677983539264032857910562137061625179104533442782123636906960126375269849532877147253081394872810545018273135821877166943894587795667508152563952463908177182916332250191375426746546625821611802459637467000981041835143775343136777693273524541594401592431872682699781348735430159771704136711133497575383703371501968374099899395950790694480596491003543467130319490075206898062674545328376560273653228298547033925365701439473770487917622686977019766777841701897585554985265591097578022448966411399390471799786431434029847786120808064284903807587744317523434543363801099065326968391835760047853392962164729309650192909022250896539026455452466045456341964042671328768507394974288841742263156471635857807557239840191037718857608775688701176635018858401880016103093434157333879344911461105348122508937741631369475972696729877150439479305319519781836736759381323147339856832967009973848623356409338371126857648949793432119985845794637452283287407342498486717053618054602890963917417669886079408859122369453702317260187461965316375871700222278690933491412529862902484824146145020713816112222221385002504925500143500711065966627604511841011867729420078452803001171023661158874170976568661047761528789873587674843972299851770518209412791870868155239210375696681245118186762072947910361229562101817777860820821925258469793116917663750429575691303469835919650891766597000713400380717062333234057768322978084584090253891805842521686138509825447714665364051699933915750909590864571432628332717006578591572478952950758496297945115860986729515627409309949144655265907620374861085899265527089156786197357917474528235860300809329462237089617287263151755806375160721712501614774828602014625259483276142625514423013310080516558396897263031577721086768968516091991264802404753469957647401915681967870189201400367980932687814993850563838975819939681359829378368560559676580134343584208618290562504739133014058441489820462425738699184416325761410410058957862143121679888968571241419760057257895703268635257026438301708799110870849031987216743189372120452545715631138827782159991128539860955203025256380991655321522813651631738784108977041041527989596407501366746763948101128316464092111218411450787770340412616120046114044142002451919326293845640381563929326531078810383354976640650627749763842157763019855308361160243269020659558863419045244964149370991807017135802281357580741985134106029791666028445888627493681457542909082470926875148446381974862030592568660304968425125451475735067907231650931594620685473720288551348841533504258777833068072545360437714471776811571103681703715742505428916219489501648314016116517657167880693348797592878150194309289928496351105461791166749193417563400715854137308384171321491096507153385038375261974191446934347550262865114918259555586965939285233806295223311942169763969008951727101860399660582224940159466158159893945575012737498808561010303902449714600392316838393587387901689401951546100053445614120818964737876462688846449407922261737172251216841100239167303037645013546148477955271388717707670208427054554678789539226840664493458938099197760327788119932714901064842055165380318511411805528309897354034218206624350203506808527848283207910757410478128002308241431293127357733070041977519762091256961694966809527211934599472064085132641182767079557060717781952084322192342062911573857224061921941291310197192593965452626539899049884615899577703094891082184869937615716997956078325194821228681983403464241713369430215042720926953909594070447956661757622307637493637958621756101579148694335636177387074243930184875741751276777709958608106297439107466136016095151562709387668558326884593318994803401283526913408843400328846083923933993719468495797968582800822339849342915614680013901686021732066769381201548122618559757827590926188854534780087552131291175179916883874205995144461439102248704698934519371854141315283100990061792816822682994252036107105889844935740283509075025008977812910476929953778704361887962140815170024853273193296017466177661421805071529349923123392718514239417014863751100339370878107384939662400599114203237831816057974918158803813641599813364021654057452422638837374880801444571842351275948981132877277342180011691803424518262186542154743824383734703444332329723888815352032617665010577601152768640653217506303653893181354652383568744897250950378304794735860708581474322701841719146692872997406165544898535218350353726235350278684261503434086183703782879555337548850716382126611179604766160137195907645230505125670461352588879153287393265830727534700289685922918068177439994119263850151428585151135941344304531229923193519050775988966274683469700120578402021541993204193327478796242565312106769220520027952205437324907987077532933984856798209478961272799035340570258388782254174989310564094376910872990649236442369457785389770117310812191647631678622114584797766280759264177304514149473923419714566996169966727505788692809712815117394753439666541035139903021009445723075067991220205134373404547869992125563295440942584653399240983046511150170584285739815621376296757595660318542353807765965890900995809551197342770711030092049240948483277851232949758054070197722869236904094475080780185883305662047647759058902245569382533289979720805083721226755219530631528643309633286020887182072651182456141537391010812006602318653342197226519337395122887541296100967297832047940459109970063728557390465340749216214634269794969741639035764830415008374402873533530781000440809382916462336688514009885075234609689877484717256587442007834938776443335772947982391156450289595538377179219229250814055023832603204563532634921113277423714169929845495637016623033993997146143443899779720394715109249532313007643042559063733021618005582528632686356444999769345776311555802183774549095628092285069591728533078033270610277969146376681529814342338676753410206457633819734694200390499040904007828026294517973967560461389197925664902871774371873894598085103996496693788969616974491834156920912735140151485987169312370164749557078531478225032457273934415171730316519208459212555115005336577160863582013789762864236547906094289641472170867916479630136105552744312581343663929880178563155109054218316392298013238522626390798369622161546296913084390536519778102597315509232648436123331592677526848978553193300817757829311759225443498481273307168263211959295716699141795159046519114980634306285502559542169766165984414388070558318857597303895112922865888468445017293406098349173336980998664009115942594215499684338661493944899722549818945438919485588981376779233558284484790949670121224584714939569542709024414656151852735597386850968330579111021178270032850144847314270575247955476280566495287947483811977981025530631456143836842686026094798572336190460194390232307648656695594263570064924993504228927768187417934254955909453791443576594802991759790837470556749609319152963910607367150883756342974748039686449064735326134625281386661647427122727508684704549030292804980267364183025902672699702739647483630625856635207194788048437000949958317664341362851261726441051211090721854041222623583964655912484686809963540130743732441375686784399111743909483168557180219330686717027961169574640993987394938970536991699235653472336404990567088981510620531321010342520064912942225078495872957296070057852170660765672749774070946469850638930469703796497655228863608667474079149640880366726086520544986908663388760036247420669761927838415863343799747977710821471375831563320534963684264298679844796966955902899767690907908369319622060288724112763766988789789036652169098715455029776626823774615961311579153710842195895144255376609608714426606392773499997645523416919896381490687451959901252791303902550922019993229376972726542422957574273508479936214045075265942395156557736390932574968960322472543818358271294646566462078454727612902497426759934714432942004110414352449947907734128600306966596585182768087026070441756869017047309238848104238881488368388864751796693327927485700082660412375047106244368606553150599697123760137906872225059772134518069332655820891472667120016790924693420813558110504809123108699924363181921583269629955254606982754182918714194823226708866777143944767432812953342646904475211080976200180934103893856932660787146651167906796298268032050894719180620766668113210760945215504591688159840556640668055970517790254959465787702193097009841925929549280630109784379151265251010377368174232326720591061635686556754060393566169997342913894554042960017161268980157505240327412269832373742509820339896017483747077003670602238452741975015883765925977754732747311334701011204693940212090968167534139482709505193141321205033460636784802316317433467824357105070572985000998079772121744839647302083814698560826946636921234095617541593959336173947464273146402733652448951067036502433299773191373527952604984771812705585120485357662728912343237065750954821865638195116197389072562806753236298942930267283866120649039542263316021653974458614110144925485848615024357633466527746671383349838167899598127586447998571498855338605262397773252578745258735643833745382610144634534788757670461142154377474112898849755383023942069614401370988854064183802599114775270058595977491233904069068412675070243967613493072793101666060296798204630011493562184664139880158660538376154043531801502889368148423443908986959432222599702209717553181695449716139290077724965610905009127165758980453358130748044309893890278722582639277259424221825704676089914239492151842133043323736319909426842450420809099486920746985314722045581106417580080860271021028482494663394371176776760863577794860929535178784516642724615823867422391864708926577867704790925044069896098240346492289480073437945631401190177529430825395493098815765344229648472045541683728870281176303426643758226133092353556752880576479268922031499980253070639225893271936380337780402721487782353026800990501134588587660987023025407044281803949833430497393518161652577965056754528542811378147945647804785366288763672844601247042122800284317657771288580793970300776589973283910556201767158339549481567389986290268188773086595750695002646878108385020970663555237353385039899575550231130700178494748867441419524994680214344160636592700539878990911142118795266751247741622255060475090118026563606049263606063593344366468772392640369202353464387679087163893719019431679207625219962168682945042898445653288941108506827709538265562958632453055310973198503232543044935668069767644842911894006687357443418781816282213007625618117707457025086496170175383212298426474228783077936355732461192456023484897783453156526995182863878496586876582559055146521097290388131219590093710912327541258803050489023358569535055046337173839427349148820772528673148072838017448830995806626956380325004808335880365142596167231898789530588081753903625783553621091445759597034888906380852465965175446218823850943381093258269869037004444219394209082164578146208337002345578177845991278440630357272954071802788052036229155637775416948671081819865324287899701260616289960099666875318517137836087174955091746207012679317131106213989774637778267253788868473030891109204995865440980650392618024454238553270127386004019769830526770330608840021676946142837389184804393433745402945366517457779392236017287302224592417797472587232402010604231017917303807131361182739170322027790078116771876706272839415091641529640498162907085517534234140016891385183594432948586608256302907669540399645764820761347909701300448764367692983727597840167127764157205618352583955241394166853934134588847235786664083024758410368442679275002170265843196290806836624267871760103660899940982412909316882924329618388202373060569701311452916217449782019999149511535116750979033394305604498695850122023675443720730874873123299609094242052890481977257800915348740716404584222613483131848256494498876006185661759317082806864224720452946597381726580158388698419316030573388426049540388895799249014207679483870721822230181434904149110516089811514114365954663826345433589825785612851381803899640996195476229503555400399693875438971318820933783820772828248268233551551580385821274118541684993503623575046716278023714802266852065071361072171591621471291067501518874066019836806952112447998991722586984617316620229536321865622482222411303498768850891916770227802325901641567146334611358489763540463859823800928637326851603075251760436373665986365919123923470449330392254369371644063886309094692446526950167985140749177818160129308400451953663905548357497910707830797705496316837374459215253573768466170610497139700890299084910405332208867271976553773500333543043339001471102307806848829287199132732356625881300640280133978924712841679499142209346242389606797496200515584136549775980841374816172561978193028185251687691662765703559254588756209987313733440929496662220280159293017506036403169188531978917638940065931359691557114417029695473601054581986143821564344025087657093940453339903458382223397039588781899296654274459549026542675888684734304598101760832904450601863664946773112101285511131992102717570665764869109054271895047259500849840364260659810002230065769219869135423949411097267877483229125689422359420850306676007950818101765267650480878912178034695846550352401526378672306544710346815561258139971277893983563959165603180569320346577653628268456046189685846688310665221216374756714756924718224310893626820431489999752127186163235577989244296569550287646748053233139059114241564637228557201792379059964650719507129881898350891633406103224081253417959892035643933769206404095074718670438537568185166484401005654197604621203682300512244681429512621836444319509520244410102470417852183185748379367996628974168421615243003139793349137230833398901725221866203142630017302699023844558762419697946913342283829901065332418982510732060204093774381621074557934106181130519086053997716341625279310079759109778630378904314472015231478919188054038237662916375836785265022416788304232932003342052012683998505913212509703514327136201504983861291569098114406145766193909245500837308184722532547982780893816852190692047795791968329605313500986105117348892165967154073973841517438848237558248417611484299138381502869915607465189938611859857416499976531409826512590860027165661784015602266026371769982378878692298421604059641142113909776678885337100280844047739026661208512815235801630898050828342384229327627976101577031049400947567498854599186992509047180661020663494374031875530194489492713189946101108904218261054658818691349062307751979157490498836439996579122637353151298294867063747022679996050762199387035347585824839911523656475987300156045798035910742612912646984404808645318603233377180555327557701760233039897045452581538934622297766574183726265407991709616782912215748158973572855711861164493234856438947736088104125148914145677957118412181981667731654738347880614748970141159050492009064670904767549536435214428396808092719090853296332829262305831316888901931345791229718754698520019037532861488703269704250277896561277353075874569625831100807504124157308212878461849601859231213593258140306113823114507567551388545917998174504931197908037966577995520001905243423292245888706545622996081776819773372057980156974667390079050108313225923177454500769102844855809218965773620857278854013253100168861143821282289198955931597877247530897401918997555250990436820598351765768437441178766158495553879793539190454929584848908143121290535409659232835138013360206839457855829582387435590512313623844933515302598595114761992678670929829343722430384726838054856069046646369893458390126386764981631011125783098334086303368409894781702140951715340562238901773104617830851385936257933968659951362786813070095814277112660686020763137236838540351348207511622210683324420793164500662897680390505300937323904496813274458859492803809771367430636603486257600803706577138813783595261970787787364252257862958659992354300732917715666904047001523985711855391546803110547764760335681126962815719512391630698774159199171659481095452430647122570712302507339005467000882382749604991683214048770150205171981961049811036209433451762242398894444644134619058235211595075556547619802168103142799417685086818098925036956622607311708445931457068348635256766123770205256144050323853593357029983561255042823579064024250815191521575830745355416061588441909266663098783108257023448492449508841360464997108576506085610244615170930235865427705070305475355644635794099254108925790807605484768437287651960907445359672036729250155682801626965694249212870032712783524865920953966601197218479732543483880637232239619931551495098484323815985742836232061439622071764932928552946982923298488220956758607903532956332495914915505572072420546594521949050809740788183571034627812099141891467319207307387092126228412802204801927752711814712014151910358493520103368129425961735847433707360910803641690681193915906379115587435028577467521183515315551394545722703582404436983406739850388712153852156761600433937372800226818094961714779488652823883793028781177498766913154194353308647087408069036596806223102505624159199574983360155318974803683123101953941927418480664978114639046368267663763864706556226800942968563982957622432307572110718273880419029115662042385854559009482844729803683834525794568991933040822191641687378316385300328943283708213444211354454481712343992978683711034327716461164242614810087395755833666511314093378046510098419305576906436473431216314748272226042067087823621282840417350713889533765016228919394336372434964084632050331706052630696638556027794273420405359003889977486009110206333562756916046565484349146578679879207126999799864308872340894152054460410540832460850241091781577764513324869863332646373414982824548318029218632066245795638085061570839915177654977122048846849974812256346644624327775967971650229696856000641784976831807984278216396397477409472187359421934449108938417911117688700598992901804697764548237804714083196440704041212097521162940922311534412201621710104590986817929700065122819350626922492803203693123678745025522883370025102069654034189476887866539358135669794823100048827447650084237762345946937393040014692957904831856609437589808364201553517047913363830446856471578645828037786528011931430787640371121626427707277435638514689919385953805909820598952909091538524052841332533193975253739225111810626924788005053007464892494545854629706615253909329372496404989804910956748350212037125931729142207529746690957479635390413698281740236891915990856576123844691109874681931574721560358033828165361905908893198947838666718537352594843810875878014934256119698140636540074047756880996957837010739323032340004498733368728944816081302141405880894633127154505622150224264406566081791742092021173623703353506325564447026798394599921800925704977353395116924181322053399926509958261144904782664952888958514811854057078282307131356047188262794563007484908445184440739221048942464052870144522150025925624549807461175100472890391173418510256187316463250820644622430844218929555504698479473994614065256142237061598668452492091433708190465936803727561366920024743652828793805601303430944659897886780898754150618076232837104411002156374895566912885988663042735968773946046884160778516639561533974845888563397956351130730604622309703569481517860900178638820749275372934063390723194183710270101333948070250619715118815537724210868809487830281583041208517102160552817000901373387998262619713933580840004449234971825776087653681169742881957686987494191957691038785102955660912974787622803437926949998439599738341208460133895315650049900988578004887735703235118114320985806500787396464377757737962936534196547234431377327658974397699856717258725874055538825161608976314780206012705203526565537388453155897426442055854725673796521453397891406725764602041861105037078465499486555364042630582107419484519652768215187390490872761379631276242522617333111404648770139096664350642445034592723054778916294426437456629965403144099068399087076666654721911261784460302525153604899379452757780854827688417377149791293928885407221063296418337354663344250505186852989171537426854178553309787272840864224938749414131129682975053805157374568240075509178978759698647852831862033273123994190366747149751808115867921598570699975504450766965672253973816004988835904285493146133633836683947342944598888948936194739318700069527171599152970855097628945472945150069600760655226350569778365717164919570469788265870527131343942021154292711922117542200658288723763512120321210848780026325379316747625634012663672606339156302054495427905803346591218043725767218539058115218559478487907207336556800589368120512228247993019283571935404698967765292673947633020761443782373896445035016841917040801476529536318542315641403259086519450727423658194204403818572318885446342956551085886720139484157408665647427014286522047164448004634103144480908868586029341024768714517718639405898182037578378905767007268960687239529161338953069029984927883052672994681577373754538129501038180339694363452701115149233513897914715933260988777616095485792737822132261081949372673736733736735454778202511636772014346133146309714025998195004248393682931566237395753803888909137795928972932520642716633844270932257459505751786485218230074873472384938121296632176176664800281256802526198317688005260156216134912973730961607654962738615010700759583141512225452118906145651489613972857985305905233713333729355539428469742305378632894865860060565935882391410197006153118854198933046049059713121641792496303664055588014975045460179275021715475857361958521343414562122898950651630771136942878778069924188209553326842070818648510334711180751744766668338175679149641293567534309897402788522362530128234085294710152054288195731690874630046304201063618581464026026290153068690256202733931256326622828321267037219860735518871026484924555839878808697917141492475742150226190980544663008425228710908192785811367285990769394374547559586846845231874518496268083632151973595279264380338504750222228849350329678339927255460538602549842464716873364731804018300276169714189263350142013408962132804100245682162075171946817438145846200559415058063935178320786380786122632029026523901904987267778309164527817625881523996758292742906476020943153581186536743650661601987577029264259424247395735162141412134367750479191689813034551510970184862322553658497273606614003358860214854086136205175460968112513758253175697352140836485380602021632187395239685549234070082570110924907697596082066308761221521767759942213805629501650584581931509456539829425377305744236740162375186643302356722188003374488802841019883640342979210276276373593995082920925019306571081325880028540443881740436010426951830547772942736747592639458517919522534968850738142023900367840923147197452353685961776120236955003130990851735109310045401117708967928280783307684358070169081099334161853541249230666170976320933231169264170213411090088647047301446150274278151018549338401231894447956656671993629369048839983290326042054502384713020605105324764852136813211375326947545308810422557611058418622259279284587790554859790400480091096641543551476934107806108706334988438270549152317100265303252521287806646494239838000164996257123523179140162298040878951565974004842190752242396043154823345514336531736152943822578839591224641144196501817216249820178395047620916597249395987367141867532660572737088095495448863557125221272381728106307020778908571715560937591229874421795845541277195940294673179912775518575164515804275819839857551910156535659343523194503859900522953522307291051444643917763566821643773022043365066953525461997465341341040321288862283974075739562011493971570563016435175965617271850530440283279370413294876392813378422111692084452746200589461271621032933333866585188537710237881304925127694817968655845512261975983498749131163230265753729596600760765099127370040937630474378401166078672174382906630467018526563606109332839011322816381961924911768509276047914737977262887826092032896738289676862002683239561406304793862883315822501340440763532952275779521026389238378486481472045074630078981467252098337207149789747267636443847402180134208351099384136611722543836386608977064985500842669752014706881936380425130735520779469409885639420753617506296900541689410997498933609003272481341784555470409371132335344476816214542475203464528194221707702318321410020259433851424223595450780503941592848801169253499710958133353657406080823283743597099151866137910735697653705567778063774697681319125040154208198075596868495795415365714085130405144201567686145400614109932315238765424619466286961293659146856112090119454880175705770537590866783773956197497450584944658360074524874192765453534533779115904831661205609281504019127844320094805429265436286529209381803383878477046377035172219109484620231354205036406585374050266260095488955539029914900692034524073466083495758646841293336890647869327899913062796024910117341537118019411543897597060022416559963357157948366730951855981220048901401423771008945199014865128744894644810474646959899163262851442842755742374299854849208669911836016240994989122191599569881715309752253281388083743707916830516121176527257805192258400918346774468440169400120656394807668283485519142308618658926624208659403498868956941085724583188994558031692091557044259402689529561504927682580971929208689692756613268552290744799255442075225830973545971040742037894576980946100584718526731965037100215535312908353433780648641539295242252474763063598224650852633052016347290399996851299556754272916807386890425556959407500391599669635613714403791717930648740421322033373466274694882556122916978017093292353065165127611865746387645673554185174245190376985113388461797210279672860512659770172512470574955944116488581816695311510566350777182486682507304610668702098872796116730171566363315181589033820831172136265074743141714779452816878467305725307334207066686674736278415508866503968991693297120780697696618158833966899986667127896521092429977223055480984550265088757702582761143025550714007485755925280864614356815606127816473157842682184563399990742778164792324051991743153016622114600657812591612879179423633579272336170037917667818003059129421839422430662909404479569851177900374634545175728679285692894654388045689776988998758477142162418491128078063768785802130685888744065109824256615094124632850737052147369318711379211790393543805314952371924356838167896348445561842657288178630330915970392316739399342145876839937426036190276917281027453291020852125006208390315973182820265025791938244008700908261185782325455328504352938562059831500662677806481227113335419854048495670843474458257056601532409190966361861663174255670405461040134733978528967348011040120875838396115527766857489490435142914967369486614232420307753103365190536144397023215071046057357039787764861604886552709702393082336687388595963736019391305581105778607054315197799755343483665283495624826589431376214679145783695862256083495100651554599348096367451517281712351092063867057547013887197966479444880515411337159494077147780601131436078621507507728998066472059371850113267203816753161352902900234282993997093895038090013036767323849418855565151226790891587373046951086730183314605120396518305399256057889423422990823932074367022531893470506002228300499959822008893967584234871403884412424588606086362123514803914937801992491819881908652611947402908440115636930056936567841884478937124030005724459181846298619495453861041162941032285150619474960150516073354544944515685561000178625507557706369439984595820904377620753719052734560486210919231480478417327091595470288405461184407098324606851201369054937570522535950398513152986698390485584000839263005537923424746313617895934123591624499446864984827198467024386125437139288540388324138098108171511845258913530449485403687284643860856039449895096730534931560492353463373077238067040110855157976891222130625635631272448090851248852501398930494779914456351633646554243908815491703007961918759053453351604508961027016728920142726553806007802893547596771932622982864537552309048599066319234825965113737096850998636800497817165067894781664135937567553613573006035052321100876600939419982747062176959314410760246169479365019278591441191935914429273630910696454512453919788373991175785923892205269118808548915304965939709467395744658187157035053646592583395879026992613748480168511432525191739603539373787824069706765906574906938168076829658185672006874763276640775935052289777524577976579407847380922231494262299649072913879070124169993963084431659341405504129094651073261114791115184036896220805496796883028962741311479762738720322033864127024359507536967112939294115065824819053091883071980854219623892608112475461586032772015616517665162035556035851209129801629927352092663019085145985985162749763475174467796529695137379628857446940298929586315776214046783840956846800791498262717063747686888646957746342869485177691583173540345204782958638560878204723921561429221535191385229933738798170821376566721084421688123311961779885977817892386768106960161428001017254236043647355999083101519569276411300349490202220003569255342181534365607294999880766306230114996111328996602750145624214876618674951979999487032760834619228428471152096132380269876898406619221936059237363948050328210660138542701411367855169354507829517832677703492182021184835179897720124842713370793616818051260770174740562058826458650517411924833560248507136759143253117924537726202695646588968089437208452178652774250400644285822675203796080348581834783623284199365479891106852138912237058487435483370316824104948145803203523546517692481635126212965662587811845613392030454813470470489747786924602304113192058401010240173789571910285302614997442989982251810977672011277435355392201495273194539947975957046087895237092256343953923429693825853742559703360702069306206719164277942338052148429531438636980434333692980573311351678119091591914986388173478674134016577099317789204848280130872760241169953053931597629771164360943772768637932030299846360139820162751658882189239624194834923556853058524685554208986496376321177394179786013793171594328672241104579737705383294149815988101130636271393433025762161456754631920369154486223862767744437862182707240802183881508054045759393146348989528156961675737694490334718648802229664336547631934702114901766595777675379546725947926095940115926194388428444945709700109014264805714850046266218027035853386648093162426204370614650824889021560904240184037924143060042603253361866337215425570779698704906446642913875345749810263457448896593807676117688603880917190747019351517817670660035649576242248672246326264792878967233840101090598036999101326535965213628760385266997962708239879352492912754919064278804953614836456615130128042334930229072572443906897141495106282049438094573888299548591532322809567522552921064478948909547041579446127895443216107082726438137041807108552028329539935236562142290924031145482559052520929525709305651009750615856895619867175484045735752651259940172496303744311209907342664301032881603882970120987453617890041815272581838522968106623341177072046460173620912327311799498433147553156332880235590646962496981745208812927959427280495219545807330382710575363698007686442303597856737376651969420321640744517844726911066805660535117835124610136831794983538185404401292312594118532647550541078276564317575712689287577586795261994435770303828195002525635467376381057869363476424375930749328751253922091486630756712766261951283753463712838629747177720532774334439778753749478299560681244201041898779459420011431197483818623337055891497354675175503845315745158242134689622212745587787894290379916064259086877169441922260218260927431503805524291156839426413834648895007594412075172979257019414411760407211448127674653677492643661687455762656671517482150086082795779664011736642362812349470284478307280524331806459902270617914088843437009138041566442121572597081427530438356817727642318002648208204145536003000100952226842791055105542924529775252693837383441642089546500624462285451048665047669150365004242631124240235844009678884419329214352039025978274370848782443116076696874586956815516276131275832666226245756079418827160863329273239745863269233821307017274769747015515951124239755366217813831431293565022165617787627107466786589210399058152242515594034436389814690003828337636474127641826119673527595692518521761185452960949163278208760246465262222876121569430218312709303425251072417025108539626306342892804656709707116563316818243771761805061457956874969130417340574712453408681735044839312534126056901153883129493840212771691628453574868447875923792617039439150768263100447712960943307843661272114470259243545853541895337429945262911834686423814337947403711635714922227317451142582584915411297640935209658298736121643720477313210117607591433362269608436264747898713277918583359481611737222380081142251776444137377866362815183989282248693820342824688191290508642556452885622759632329454360609201968160774349158366257477829291657747793629359092185150630579983755887612518425022082464652494612829652452583432598374146161180087147484056832059519256283589949935657451966731696686921601046575504144948105446295965509543533677830129978861449749286829800301999388897055802320162373198244324388149833302095990312259891451255560584432437855310687895806213109390769999124549969655209811955572322185515253201180681448895617162552910579525216803636021390347771045888587838044565604441679808904445749181018039993445560796725795049565240987207880937530636165929336111267152522127727202721938743533314423570143914034189187835388195933160799747981300372960725164238638117807686620350993442952300573132975025444487808824669107693613477698503003044291872070250402627511688675980923939055526601454009705480820933144576814325857795303529696516449402827974544948867581394837694390278945415587270421585206420208498846522716221295364347028688231195175339523131461956986474726847872233167928031900772803176147140458719153200421403036675545702018362050081274522640451678410346932094193659880837420766876388807881636072788977411279772177710126497874958346227999678456592323893835775348167164067320646533311115216778568126239796642812425322753794586156119101439387734928795393980029232422648529945950668174304515913097200023366486044532777607097468283707956576610035628712400157035720033155661013874056112656485850766705597929466267327379524598729007800097517977919144518246262106120149301807575474873821628080449965789524328481305668153157469651556437941339052122285826658382877740000501611759224440889911725338565300907465637415810118377760828756391497211410425453114360295811975171697711514563882560031358380503199705654745760018997517503159974465678522702632508981201672614362720493160938238834708084203666395726535940132548287992079999579967616641238802248249698866011342660767086247634573549465603830987993356931950514502174755671123906752187711154710095635023809562355618518363848303217356003491169599226687381846329864956336412828660507034036286297220236426548011010738084370965481650781008181286399076969943361974170044231590722492435349386416226355197717456733437308987805705478210929525206234165115767175541311070016372817077681579419328508792434709635257125287317828837348596722463230425214867238878949474155331109648007060796585719696057917371308809709516910074122506184370438610515670483906500915032234032074198490522884208073358405814507495538868634683531964957248052312675188285816642608782581878660460130899149588767643323060644609996266555759278248191145062549936151421298781782877064748580438699731072079149982366354739799875684317774841336487562700781530114647296017360947004964452574944565355593680358213108788512073100810533691068212230299977523160868191045990059280920285991078932766935465379717429393773176194268983142364171382378262953332137147568788247840325908131797189278652065168699624878567605859214585704218671701246182041089602751979609977264909276750300539637101185511036552139707287599551845694684888725932369704964114427962557040426080944620711755655002747525133010078136318201257912545847258192691181990570384896673860329677175296898115264801688696683691377321080994953398366520672972479516840047145806400748755021413237774953595672137564382804704439405454188212935553497712549553459703824802624623344199350985580099636425371842901881474442796877089428689497957444525984840264962195923056301361133699333767446134322422105338343885618236300693548186747596586533830354960846115936575616403452286038756417089020767894564768642031551295237036885923961802218352600108363099681196405428370808144552424907303056895141024895625340152198861446241813414262406474212500261157175052151327350342174737464920862680470359278003453049498176355187017682594973667059403370818956450943309157444876536933644388203853330317854216194857022958324255848067981192339367768290997404312695936885758657908693227135624899982543619539549421457243166688298502994811610616169440788061132062464976786499638873610688188602001886085389980306921660067453568349792723885769532973896794922063280717719841236092915136258377157391858107202572952931800433461997612130226405694657934309469397224977702774465265230721005220151222236003490498511177297364114867128903596932625006365394432153681325857066529585402196586145278310454627959270651108501375778815402273885587117757716476138075979637684550223155616861837965517249552615292375795264511494513702942117098268328972022055652729544618174126084799842978526261525730858860296226542000378004034263194582650204460275850422346170257713490473662083530692148644894066899335382393819353243217833541923487950579122423156330877283715104776774359889958728380445125006794975465753552305120012530208453589622978815748577316180339176122621700468734441296881529354398781065746096510255251117736762799370919467330920901308648090613739750872643253074810304681033479492620767394541262643816465187865673102745677701741651647983820934903659909612839518867725423338273573800635549013257170382913320253431341683641260582723509024478787087647857909826915172695040904023881168748971127131440054402706450398692003009056117147550470230423456767761504209699405905797299279270225493971158956103444695274255834738443583045572867266443965546350474918735671027145604755613233114683246361857498620974264700821619311649923125628739738139446321695847319358566027047333124517555011134872189202023061433385632553026110165292211016106919649625139814099593380076925152066016717917391065132843040923816467767941789368429996476244632830017795066181160647207021875009290738240296151312047350576705227343696190352238069420524719254249094018050500776133258507020321841492344515726170844438868006857647632564527448971281557120245320236137542559379729397914642484363540883290795067448235095074981204393823856388254186096345319252441226357758384592634917777933597618519299048658049075417448917877054187314345816017789907707798826182780833263252301211988208227502288833581143699303613660699441276239333877688193991063827953161061496633125576494596754939463277342145148899636033434412677820883530263670919144034206019670852675327704312958194808749472806814705681341967923859832123332861286268586488991385205890196003902809332052474610759027150382980747023430929813589961992918949332161967951866103996330292356425915093632786228736969894629763137442177062769688015835952158638636873076506029670049313674701163998611721485425781288192695400939671677620918160723236641001690182705937771389370667246047929356757561314805466710719149821645070266408066995829441572377659218578505038621494444187600020142600834255980697961543186901542761530335575239762092322126968674072763682099130771349000049416422075510213415308912639181908372714002869265219048124390933885662019818541476312412752739776062592423002712776587648266971632399987852682946289370929616815378523905172175232919939498834574393515028717513649421116839694736982058748189767572906781737409264855267584835803821379992590561431813113574066729322180235570894990036197956933418330912860861299605256046209602820238649407023228823527178427086912425845661265341546095255249684213763443624374518177713750672538932114448486113529583934377133511660347308770007721872049462817057165368888082066559548068530279563027957860752213666977006962329981670575878554610209086031804045886367755559358820697136742115467507865396012592409057385196796574212070538841093242347569222819590498147526814130520600874723267306120967198101277837888021452574513753227123391908595951763825013965974343178064267863139681539333724627041160794077389582438708718190575755983370763599633437577864699550897182236034641272650629333505408816397440784278645759616564361324940629831385909979328596081415891102711572219023184067558811679339629387014082065165354963708730639488201857569835702223858201635539042461361360612222484217273743221082269360528052737417624073207907991887037408138248567686683218768916487817406704461188771405601612904271922014696539590736227190877918252140100355749348981792481252910926158604396031649294086913042284775585489793116582566207059632139251596691120194933501597290066163799501754432206989168420693262492227170430184095205949549528665097392271800884870702221193951238077768271460065260650811179639063132536971164300127609788730626221185093330482104577600619626708186910615300331944020120731444713405867703785448514981680330119162867121339264998020724184364334164318722711056922350405889049126075837814422013507300346035438566295823344479115255426032110853022837640324723788813424289649352136927644210061249639441487586153124961958992960904012891655076326069577593502386385421842142638171802872685811577593478775674975221560973156352306087390474849952322144320213018630364862068790305174311060007397128128807730624543281014325150202725906299417796520918655175748940236123364596980943568908376882290908405215301387369818687676464287914721316860428489331409287076983031993302744007792505374117816072110020440669393483757769844695025441519567097833160719725270474799603697031455785228512410829880238690860099488489555915893531449216933175021043629868844649192818189238755260814352289429793333492864559516178226634264665562446316308233984534463688648766658667921004223046276432356520532998742458631850444765486651145117495302021338388238132411947560242051364750906500662338694175482367977370874685689991653560278771400237659030940907659715442279724820782186930484954117606995122033026155683741719050032940409854669584828122981190864315476864471890839971206406693667373767759402463529939334572796546198747991714582105849894312899933176418466015723619945462384571904640157009888308065381694607754656306562387185882696541340192531949675500872754990426457561306999310095236066446593104770482702889164085267757882558545802708794521467327463651180907936915713548666018651495263316697179725887427491652329234683565888036703618834792667383263612108362061433891337413791223486346976581992110723773582760716922136460230061100706005517696044306182121828301989159749300018406075563343265878932598865722317037719315518812687845354989574870463301580581081911299776360438227872775629122805970785360058388000998838156283980381948519823384094853034152403537032355228272419912782268953534086187268090682934198314926511665039511812063554923402758044267061147592325228296486224255730936807906051793602146547954877400486862926384237053188676108777036994314957880658604335438908357170490097332658014967570948549313021976283533012220020893090318646633674717508025325344201508230924696753554511954216896500985228953795368394709242063900143558939118710092276319346931375663758771654363553043605510983311961114356848959096415468905970479098579352443340634177808604307768687656376760377204265532416225902760613962244188887980006960753699482949355203719504175750156649883453659643501862017592851645864087689147849720561682702628912376363904004481017977881746395845192135550639725488907266386310401051448736634242965659484691796940599345166466726145046266947998098652289610661306862120756503876818589962018120482372492338215994881248953463348509625357263769906250980968571453162288737061245804768505685859542120611217062016991457199791184082699704478690603057183411979223388333574918379611057366201071655665893416182641770691570360013190641672115468992609029802070329897041698308003196068085646334114454589756941025259989162895391377019135177224052879978862130049082639130329617514935783244097687343097545690388136645854584230969512789542026847566364287615292538656816374129806530422625277801457567355318002951314674855053552706946562423363116425470238587181782369148895223920727715218934620503940255964415899001885502824931209791903337711184941761214682980761295526738168171154640978508403832315691959283329988705122275038546807920257459068828574398063299868630732972623861561782663850428824637640932958081508346309661865043672188306254266454693273801219145508292272225955842871079568750364938263934834636222127493891934984026833063023285578766983120984374228659145472334581833893205403745204204745484036058997545106941418533212792376032490907736451626451826533337976848576937645251557825200761188146902266778158385955904178270192291187542076524566964439800388454287864930384794302462789196078855612825897494591630378163111618017661214021519953991185619161105824541097968321847589069326663862365348593841598596625850548713983968338814516645054332877063100433877937827350006842183713037894746938777229196087685386611249686810416115444838731045840704917854026405850508112862915743278686606514273546465274733838596127368605360368190540977357211853942231519388159990370338339734984729119083992530769347378160336201193800306444498659021375437356443122890734460678343461631480842869546537563498922120791257583940893833556694641001383304999992406739212065945457963171755248699225382642930497990833701013967081893357559661784711721313365514913498929464970944999130985007364674002759156653820533262630220169810498184240207541887042588317089104617791180167588677013727794469240732816773194275130314751415441728008336273634275933134150377346434424543492817895874333208435130811447628450087871181678985866516961637071979537064926420472020855986963521449401774591445483003587269697047450338399915875975482902945069944030750658250368327658718500242558562079018324461679537965933571149222315104276415610027040898905793309540539558134088663460306738401084003387207296789338784290888718338485594241171523238523065482294382483384491013749301531739043088112849400005890945934763932705146808443189568425754712692237040914790686512241950286438055126728590334348000784616045046418646650477975821531301464575229223199150386509762942870105925186305808043802980344971703135250476071408675730315985926293791522671995638808597162728389144400881801902513227846172094156258743571076606331816731451190625962910103027396118778287702102090781280468385492241367423477390686461885607503092996632760616933464598664095855708421863897140262249119921274024335535958965599328788148414494706333951207262132815879908010309008227520750114568089698559986384584572161988450466779015016933203064627487954906601915508613737365241309155927177904196016588975286298920878131597954166637101141869025751553452964351435073255569394982484666876175049807034736802725367836769900376490093176332911804466965340298627807253872361281675994708122026587265560326360757678765805099702097480806127977947284428227877007267675506229962500701646896898489997490742263646550401720037864618019574004520457069858701778473571439653093084891040559416957484709740089480585399379422272797226844048242336779285102812680285578501536192620759448752277404239989977766519864983265652683152889063221584980091493553951147832231347070123966234874168923270103342217838660076423946033180983650774430955758111403319189067932662023917474134571915458673346766504888733728754362297569862689279509636495050546478947079724873614679116362837781128784032002784081072247249359017636288093034909415363257364531020665079715565667316278633182945174537495741483570543533862846453169280224073174715928456681340856416163764385993424731972422632220872613352889479452311696317155847231428028789891494786185133586199689676411662209415195841758659113872667163365348109213161201255922446363555998814322736875525949655567823866941716442287287924963498436738949759554639454201041484445697422156182994840595124429011759767216347571020387076871042088565077691014182552390448548659133354605577159623574411102344996147153835022409683022227190821736796984335635363423273283795406222984300231830951262940893648112959093503462170610866986022642779372696364981726615400770227789544282585360844211022408710712322749622580163950406419051094915810653775227026719438821086398126778986511718624350497400196605934609106628310506449154591241726292173470332536260577904855388690751234353625528682146023934848429346523131362658844985914553484002150101749964512211773875663705060525790288246927191922346363107093136548443119806267972204301852757265132097541569759895535698036119699842536595459682862504204236890082193544672374563575555002902934269404441837032630009234357626356743937751272682528649479666149428156060380496832779069556848793932908562228650800836428816833976647168262623216218272767099213842939332980115651958658174518223201139154103490683420321817388834596763710291482196997656907009690370316969293154477132931894278775638418704876529524546082844688144882803166759351519041679254314875948531976797537139193498845805050247079247338892388071229687428884760532588689107608173446742306336001060353508359494565177425902464456079491754547088278240450659741215847173947058745507460725409772895550437584348236078398611561405084109525654251511575313885443256928860326078303157540718942147022010167031658486399492672463726917183389524310890771344333344089810873371006170432169920500099130561089433360711966696519176579092485001514851239923250538304852319502271289112408132768960019668601598790009836104312250277983946584869632346429055292702532699015445337410877200718822841861318021884979149116337416166971366167840883604713152530465027483246820778260198616015937185152962513552423642588716452949548719359103424931293951128782660512778404807942373407028042751903320181036868158322920785108131744370897253594946411704370692168861576884314490686440374461672465304179915688701729721322499613758285811443609453078851542020189204253708236845723225320146731737483757061941500324993236211942643145593741844359665351717914793760883207786066947685091844089064041057444641273321668180069740035630167056721008852775541225420162278383850494478564916637661048690693729814832507594422784862999139787878807677845753418716837845860677676299965802191178608734947391337877925704389896811608351648376764112879571330467555467497982050512301857463672467596119547815996718248816796078163085457612795486057237799014116591316113320504252634931236608412486001759228974442171994625995187482570975371210474036927588550935828998893828586033655552501235382337227623851676430316885323817465356604808475176032224916903866003588323257856321155738051085710414881432863419836470586478409816221022249884365061401839822577060207855649622831062330184856451917272979474690178161756416213773313100001834764944590523956978829598630403284071653061035794058634127466618690169581534406057686684110590073451011393512991184731334911007671277674007092762107336701710761891417687434934682517172288456589286605149241725776960186213240991796967634272877043099937065109731303813790060385102191628162184351414307331255003171933126908579172587642683481221863235140877753719604720693555380823925660118988041571193589011523834285495726510387207828540226565342892264455232402105034537021415872814433794671964913804893746404161495643177348918539664686312929612737290280245370201636933368820005765974806494435678920022024301335507407351833605045386337391329187335861984191500928767352259814513917532197549694477960657912103924907940864509799968234694806285699301535870686889458997856514642315080399103111174748406741859113925663003219547436956254364547726814526690281162446194485255852282884534009215833821157887408900423708601592373609371700522333883275505701060847388129312728908383057777453674786872058571462287292130640290869953417076264249498388427743553075008467567289037968065356598312466745867854087992255144341876641206738538737701256978100627008849690458644884751421975483415587447096435693069947092697160340603299858650960324593601919340086980789028871894553857781163795965515052141199005181366958142858596694754090816008939942381529705299148755019548638981743074458084615548032259029780517872570474893330813747602553612380316629115672888081653031883977392592802070738306535522444444832957390129595238930121731542218704760381614855600570831550503284004504226607542411418954785107772646619576089041766547773049122359760733300106222440955361008555642964619977741367331416827823818902942206387051605288921754792361227864445026280166085113798433400871633094013800343502487386164152173772252097576722110605172043462055917068486322322380332572282416367089662043380222412016793021166439009700735788070279189288371789128401304646312522567722561031973868389884826206184830820638019639345677100255758617811748964073467560617128242050929320744332020908980388490258784843667184491126090786109321932026384593729186995847586799911167147920041869722920509242649551351950550995747554713817334011990151666642116466206207261327736977519197551988991978889360415485203124471380568043392643255242850788931695907227815377311630431756071534351239757077399717230250715085532186453028418783984828915779332489887306616046471889811545396251403135267526583590442794425748384426724807002001034448582061473216537377610004673717129151027159909798277369476322097403213938461622679659681114855433346909953032404251455663655173502341535100859948888567839603061417898575491780252756740394841544139795551477965373780824029454880943967959443673765042800041986462140980946798522033183123342973427575608508694879054143255745661043614981624369381371403861508912722778777469501528807127336649828019206714733338202219032280592563693790245447850568382246466969136699112028653909645905869946379913179137761865343256418944787077851373566114213636635478787622546050838204208196703620585482628381217072606252924923144573168685688995124007987784364146288634388404598862148653775053897922370482323100610405440455580460330322470056958855086765997216112189457415678139624362072307698294055826629178411581384525971064102541220530567755532838994401144202027682507995214660910705138711798130427572588786040608100637515054418613594299186265557553481557539627605295271235868318091498589036027501300509412750853822959719453703770002620512508735919757126973841291589279837015431074983599055474113391996681352183042194150870050843782077999212478057461369889093663583942918419546196853926367740011658873315100610438072130229423572687072420435128168907758345974215230496833050135568856320852099018493880771902811751175527183027802244528268526401215099936326375306609849697235271328526589803983535331593155323486630010747670806612434376849086821984711109903456553366668837107130322551040322373262804578869441189505637287272258968990592484828790529126315148832165756179842393797880806628143864269473499853507750864866946594045694905065591354393881705143597063853534214424970073062871525851350809090593014972271638242767312009965523204601398831589762221209089505965676406734434839961350801475220722362283485206251171930412596280818903372436398340069496493879602723734801695094404130364591178676914283763337327860521579142149896643943613155970854062204171612878553502055264479543164489011316566379143060886470554457629007199291671608794057698557801522075602714739710365305178925352750975072533606730926886593979618363977538731259777413976463402950011107417563051961555954124792635049425530911578977440714520093521482740670775438006081011268139376890906509072250006377096680309036964486103916445419941502618272346546621059677707554443155320335240588032431350500522438147567413435457293742348543357514757211857373499072851201958417568462170795485643278574443034147989601722317842023540554732172390115108123346396668866107355264796109064131892594034762539411955885815599045861117988559271509572217137581499255971184866783822296534190625429133777036915007722145924892694753027376106869364002830159230619895172792811341715240477476083882678743042272727189987991700976070835033866164964558554626505496692449464246085140337156284546523239014084798200542376639551530906162310796450956750343254115992998606255201281373387926074014959486781721203807454120348746446241972677479649531182444379486218878444528847085549352237594533951124028148011221029255107044906048158734350329761399600226594414256531239678599863633382107340076738098547894346842231548405533104092212450088490847324732282287078417962624463745719411443624181425456025996220003875056561438618330138611542308400528739224208921037882308816117298118576948663041881603985996762620944767962784699513466479042556142250447586401706907292001532880869290851060400556681474910214702642400641236398337520336963590152637656481783315300705162059013243301561861157448146863485429731404795613321101696242612029223573748341517179652098540567485685819036888352717431479460406337023225896385888622030490850925300409011960487621415770221335034688496878292544645106166693171496578997915708698686404154859571844742843503510339524964969637319017648101833446611292837924208995896927547710797011862290052727527706527259166204339052308385791281345073103544692061544603866667418428010103692621812053170739755414907513375678853543294526480779362385529822505096710089512151293155973476190218922069379528923535807094121204211554390368375096643489737219347687147218761784404300688541907207532561877639110241819290719883400899112235636382210334311664003383839857131984037064537985653585712279070469271070004917277622429431756947140559832795722929841232268258612026764339485468571545327050364446958554210440242951438339762669874339400856500255922443614385760982696776770049348762727038435067717163934436310020494013801048996375417514964149681654053890579667085389390928794556728061557195729997697056880404329429120347008723232737936632086468468375549252365062317151084135523955327612779848137697152984028786073189014017912189077092881431272481604056896574670152419925594018072696438034122379896085063117354571912698402663854987395809753696422565966477530559127403271379718032478512018780040971319271803896730983873390979629448511558488816097073393052350589002849493863168518209920050694846844516781676334926325379700948380825120896702595846715444192112131310482917009003744879473366812857206179823152591785319328549674446450068635985326060636066399482572414657627640254576934466098034469306640034587546876082498175896096761167938672945982769644704018679028026757764566046812551705988254003006565444516530924584856785342231040523906143923964657604583121015883251008182876839039658873166546536574117426312239856575408587124501008608297301114682158889809312028642823207046671458172075501059701273648074350476293498675396062780104045282627784519640652665618511267339627030881337917361383425927502991854760197197181119011807547353112378958632047064237406906498506132469095530615070411278641115330522298227012558170896052816938466422189765920684917105046862777967191666667508771636016346794415716864563597732403265889213890232327995362845905143330722459370084537368990783463359445063214664384710746822694462370588203700152227756719054651701642860775122333550456755831012992637439658047373066101067231450360190119608095649322479832492532287872039892286945342982773478144813781060918910960366490387861531107336507237278177165864644423332089867751772688213238269169000075600783458731797502603869021603409470806976974142284842410150121409294340042041286349160249837821900933749129331965927185196751874115761916999257813442701441886741818691234831238908303842399442708133721883732433302702814409525536382445822940517969303605009915184466752510891737969851746552446180459166967446192566787034240584658912119669069973025526102735405560687914180949567227038215064854542220206293909262680140462733630054947041099230387385785039062904195299818369485253288380390402774137995337365977288714396322090074063290659150438573438798195718487820985876639230656084042002565370262986879846367936041911427723604726643879447672726011109849771846146481701440546585699881103750994894129849462065004170972847751473791641629585580552316091706472435862315903052331301406621162602543095073263161577337186221989365771446621069427461405108010475736487631111410680688420345313826574104235130994604922660251276600446454971312036174777332436721052989437666948273596402127269388830345996367620377031273742267891999646656146135521573257813373623058040486639576707613633796744313123948043519919244800179977955857525584282932354425772247371318201244918549412840705936696009354672492268769528979417895798213835296979633416731513655710893122353386000413348938915583287416500213940084251174210829955739912776366282956491059690602504691848378395439819350746738567688460345185929916972498238410740360273449347380407018200273605074296730019538618246250919586819751701664791449069844046214056012400010227303452015222347975500334450747387326858443865573599096533700156294029327084615596322857035495725373419681719413654046286307645007517405252994132646367994424070028874140676369292607355486189090022304209860896860532470099855291269078409614354103317464283941367114659086117731950112697298089789588134543479200346986504993423216386117763804277692383955761509557116351699944594006870265445813513623791800440330229547926877367290428960431670078951708327582746112509104166083229031416517078438830382376103246666996183751820845492538778210651054482267237466212860255258400095247518083130261604316594054660643023241200215134364307550650089788804141930973165185129598413156733274850491874743508123515228815575162911787629829711368015932098946340493675284419557409617502033713397100766629507764947838462473962461784171630687057152963749492254725231731608463405882063589795394505802469186952371714948974133893413553686713211093905183311645058548788799212776121285901756864848336597524897611950718549080057467511983524744027598574574398419782640191702986551272560880946205403268060425611811876787356188815501437273078594360404390544295670080815413286308139689323042542942498276633018467452467605714268489212057038913491940030803705145415380212903862278905342268872033199371727992880094352903600711794969996692817120356404670449034338403096390064583976655822024583921873907524361678181394967513809074895977873455112682908937545599460495500250068473843272090887975128473543095833156544132244763562106868688104642763621703477768349701507994934957163008425494195996967341782147723092126714606330069881489615351152859073382340148470891162781177907733263065720960277941630303761904356826156915265979911548351901342438911176803343123966531787853618758919786999864659203065746591185208479734120717386909568121256124160127500671891242124702761231124924853038543081335240795893982384099110744045729122507260914792310258021937351320261531587461359016131394607197170030626211094903560366979040683703620343180390565525367370113403408393881858424314082047363961314829267508476439997236819475284039816224839623273281582372915077301463040851325913384453221272028772617849548716900727003718749828670093782298902936751904536490519643897287971111751021691712987477759561458075336448598954468705592521842239677497305664567303261591940976989812652709874648557935692177876253333235138160259678033338861325671661365326571457663285830029898579392877781511713202081224757539962450240086132623946230703013154456517182573797846060352580085413890944442836409965530253958738818729342993377637402246672187573748956096490303656744885614051716237305481742488614179487888669094997463761740618726822999521578024756716753109733391091882376242846768412961253610346588129933193298069134896362451086729937818957988657417772194973072876579802023361991751259650012151695701952571986563289102611487282552373427855766300927062375685453562479788336628492215139401040696852091475652194836293132784287011739366134910436323041781344467893878736052510646045790145513284797767114144699841092182399251612132150370991497594922241782529873111251962004521295624641131171990423610741386993280252097510550785300747160726437360329827735729494043632777483343697544151633709653253000178976681227405892571297605173664411864425046803680842785395279723806671828981162774686225356332609377687947710473137696153680695121974844440802596634143082839178521805218147504233367746997362906752449248024558153332771011148073833402881670625521129803942608552162065288908864845062423498419414536574308849510071662965529797003587265935356723558719176816535002448221522313300241914199114559188931241121437350945212874660155299341905838369059818841630418374571710841065960991726053988057128022950946912365590646072547672858463169454739513250938346981190582013793509095272700028282728005796736803991778118032739745319795146899141076013914521529969266415765500257298870148927919092637155683882045944199069648175523780110452407678651847688058795303409828796896310162733348569419055156224569030272206588316787141054136846789132824573926347918463347307893232142537631400507588552051914507953383687640930902361135711334579659176191388978293727572240248556080977909261280028241697360053654387208982429097380414419573702025726725325774950248008564200699525629698598422676458198016212052123348476106822965997745416124392968377124893782376603674487135636414934046009442240925566426605997947616121754500241723233308288593947699846865920567979888589060891012688950625067001876871417045303516798978870825579061975029268395135478096367758491298064437084508451789958274741690427579474140451726763434693855753316131094418320022152028478147293855992541221365637710517093713025405014803305978470538609717490202074110269731165290499995744286019530527927028484871440526310077866274273175982191431528341162554155480702676807898602224417984363243688997583216507548326218311196769535332466802611031345609999048176130652059756846145888097134874253898886493975706970298267295429171065494450361731504062596556546457143182005161112238610462932581815890361559207082065406338013906008638934576788603840237924389794003990674352714691963221565335557001377458393568067451210990519493804869719598016129462451352700336076928732219894302841968250328291971513580551665506043674202665245867644471505220937121946367463667106415020213662461618308385196144515048103212046896778447304640660190083886169711841277555610355079417625106224951348199275864618301134683584433825260863621289729766280106320871698337559813425616504350489589426446670015911322131978305005174788031604017089595337271941619243989456522321112630174884832581283407020552957781766208239574330059212315707533912234294880863812605643018872342147206840116945438122892968141175246178757529994325337620203817018487304887349793196343209513650709394834998129358380056586135100233516014399929471748291441241280926325243740111310615909917421072200724126641378436433457244899781086118857692099771265088487361379064718209932099321721247622516122292203872075195205522157888332801969486197584968671394387033400825597022346344075009062017582554591380171673530711668695251652919381346541800138536718772047321685339116469858936080382846862978903122578752274717032454048297720836231066845696976440254624356293394370084253190036275634664734274653564542779610703970116759422616029377998267822371586592577784443675497167817503313968411361100439608717609596500035286369334296066747259420377679551271323305892688364233918607191211967082240845379661452789225939836193215182257568894500550571107866454963555233050385203848889328121365455310431265929674971570284008056578038191898668179243120491828310517841406187006653545088997962431084343539020321942042702677584525708785729198965123367508911666330201320850638448291679753398229554101761701479113897157237297823099358264174334129002411799270112608500456892633484662070149972848256405279811616177464012482006231803439482023158989780129665781719744433705687140202492937448038993487466731868511033684601735624747495899543747263417125732640328521037621421696753905805159348962331905375498268790322051832552492692504319099196174681508142178169677132408621419302622981911263603090428119219067410455359993656035323750498406624138944434003698669668921907931505003542191512193663143493265168276272480533022567975391164160545361514382166608454854501313881504922046865818153423157143213166386760534703074536333569694554391465027374375271570632187851479498186375534035237053046329698580666272180562483496791227533917286629083475134034497764342892661531751682253485350167731794556384417954717805782614324466521110312690323898212846972214601300082409563845373126115753208583027850054971828110551471884687644349586267807861504816009435382454120880545603492117238313593882512930343707944574142158730773858465774040509590303653165652407683333574812650922174466906248553597486003092179077397987771531925650134536679987832693547515024144087342585875642681622611866655024459084525912163487016006774061658838011628256228894354285433039989431213329033233922439752676057043739502853136534709569774682949267853432566373260038665895768842019175630456275150104581447688726782141220409017224501479743663228662479276550497711823424878688330761738583287919747609381827884288315100042689196660346627754862925564753176186630843848155754726698024000298956653962673385262938770389239599768497338691674347566747048396126890381218985864152233204437929265846677317451440102001278999957768239132327132370514761867655462924289226946711723208453112897934982083141433105504098681889983820811932343006365420585523807204232482965679391243196578035842635916721083724575837685649902314697861330468366201544499708960731272707005072851864153612712903890474231850627154843623505675545697077219650551289685195745915033024834996057907026298884831982905554060021268305016474783364152732272557145519677150125205395543080987830666223062136385326339859440944956841566365217173195960422259061558599425021882551891431216459333883146187478149258374206520195118145735151238322531817984704856933067837249788028988453360919662975983496725266350353508486061926280992663784718334542204124607230111068629243320547116700116436076057899789979149150535906503297047314332643356764926371842780396108608090382794659081136549506589116446218552532721838990386763391333892738201791804797931625282500322507774603683592054528892798593929413252007759506912995852061831450398699184357258926922724791077918861150492917255049355780675382849619552374448546818751948844759817989371447831702054038287532336008485688312933298722267633725352485495481912541763734355662855485814802145089285011184141247518146044436513402207358771834844877595096988154812096242213813220597897408550658817712959268700461552576950631317875611057910922280412766651111026491518349859484675094072512140924221900868853744136920821890438604476503898150985461488193843212172411985756202181381613823804555422496976027821258616907761806733105631869781540997296882676054283978633111585831860145921858445633596041640310098905983397648516784634120391074994721885928041844880881539090972921550359861472929638511072450661580646407980321058881813897418892599202196859057744647382442873973952188135809003374060784978715059789237903921826489997149457064331776700949984147491879313901445118169951037022086373618349318082177438252670449926006509589507063218509337988911768432594842703467004805574637455591503735083129830876657416660668670368565384525562435875636331192755641573041570480753375014007946062736350583872726309778332524572718184015380137267016123040873308902990210971344869283779853083402681726750032000331955587046898540541600772621963838314603022913441344952365685490466880176127154057163188690018300125155190138662104416089026740976530523906453438778265782580163445929391323715269635421765118070613669707451222291131690650446252366970043383874307570399174164452097286553067803282587378749764230477496675623959261259961771426573772874243162642368103857848035102144044245900275774806624011738817531516727976083909857660366455272290046604921609036816002023041070920566590195271614970281191009599882849433896860303056580608192926511814453085487448363618205425200832102045722637772915883321151503118193360687780924267884572530169940958608515578403504231508079071691266449420413742802678483789801569915170338870103415709157630591358032216640151774894373131469329481186934104613737060446753854582302330768993460914130607430783908629976008563781765786253464526625423800391726078303575502460298937435792887401506711035212796369002776468528564005027601174352900904097479538016888655680037198337869305541625355228604976193157274138273555048945823655668716397139198415598950436667819594574252738487751521931355119185517510204359814903016182613764088441159181890770116065146929497028524738983571455437551063606678981906994662525821331177188249916126212678418959851074915052356866803300389190099641000171142036197679802250639705369746196386345708057718815570055248494883388172653499982893268809724857255336108758059815677410832620654197937448317109278150391948458743978135426356729953998007869315628996569066979243448522672359449775865857340625804537896965984543065475596729023081854565398424125786456881085969875073273195758679409865389221230670944352255599501090865951419256540865478921668827312043818610721635987930012202508517438703385400339140927421998442134534053228513624531445687490106533850489398009503281233324868855086588820909430061890128487494586237433165881677364912347855402668336919237651057063207069647208349075133875998284083117804989297386098688368708272617161969333449654509028156375659683855124951545156425573494563701376384355861949830503669714964234160120347344600727835918697641851479253487687268133082987760119953330073700818451382341004538381671530019838588234844654943713879001872426579925201696516073440660849388736317835573100020929781220871381169223053890798351846573984829727822332989014088106440253473663540257706531548332420969354128647495585525622296699836634841016643875575159369719064424429545908177673799075681024166516102396196829418533463164763257322211438237836518885969265731551908780896432483138454555844069971660611065924690403779633211627520943053179255984449145763178520943975340310838511377035517490050360142011503656084620062739836919967191738751458083458090278677611747206798329566893922887727073309235162920705493353337711086754322843749050778713638443201400874194715552564599805601317883430779316223958413206805184212726834318409309746613922141238687302461628112429960575208237164650151244832878351035912799343520600493753731750111497827920129160859576420446836785900301746256688843698926482119951200431862206246214952954581160741079847004427840247586256656705469492885089329349879654789418124736050698663802486609443686783676633481442434701321743138799148065455111787145331518940014181766098417078713719160138950663064432153482088345519638848692926325334917687921202643921186769071720969497999339383302656435736351016086039158847740356208056420075552264869556236125097477656107997892873882747181656103162669213586919669948141746968333053572986789301750664111079060494754958315862629332618561648563807920722347961187538646640376032706444376955578592108624820021897737025602693760619322034576270165374650607909850764466582474217465383382443413752667245183958649376523493115995575135666172490405807718132103665798922345613967101222598095219360366179965868287026125029409176408726426783422577113749518885970146504583844236003822558344337785670655922077104521376023744921251884734822472185100625378999419704647974993571002466210140587327612855839627817041834335703186215407776471065500807332968377964499135550069992707965314453603203243404445336351580534477173116423612349062141912529310836428988380996798256309526407952849154526594536505327520024375663821174115056151970941736598738925024197043432944131458903533076733324012481988112185374589605664928695358259620923172777090813812141975085837596538331793642431697501230216458816280148169253023501328080371301116014962759908655536827573290450681502121855168336606409031648257463660547269468785928738006006897350902786875318888940056222375364746075477454106946675518615413466710826049567482213287298032846306439037083451631559092643849109444236177442333452113869488257400317662364133088674766915189398181925315760065464750518813666964648274487949191784787301170791104580358795666690585028585018716408238466550675410598892867156488841872453988828602418914922709754395010642113913095704960867779673946576819687052524426279473976094367203484453481647872160360588465678594514624118615687804166953272205417226242160072112174814563539009297651657302310721212699998135862637164900627170960177876279942391716915506664311302922228277134278511656300181428625602801019424334462553176139366590141410502382269160388068387887180262448218732074301232793134662393185176892734904685213281356073999890688358511614638974734278395109905507047272946785793622056902242768405742343818554370458714050398780552298170376817112835937917140524836267790909832923187889644695294626686575981700928103233990174075686334488015818819200638188273204747748174606146371159392936672879624704916759404231701246664502134977473476209003838661914560019243449713802290567605516096638738340182488268010362675157090418671650063117647925774707804744239529935104932103921965909292533725020261564462071422825333753251450159223911358952179989248524782863515716660537311540588663520189446026360113427584959326197871834349704203995547812695546986969159164928948341264297427613167646275158623868766709602641584173724500801631820600200093337048183932183837282535997785693065520591397758120883519231383273282864672473620014443287690360157496649025834976310387153427032447344940231898230971719768417890670055851824544094499737160501579613520530281185707216073270853539673900492744700917340457434370186766264098798564494914209428464532633797955167600644917484332065486774891720046821968942469862149926187207748775065126837409228195570726152928747038597600970369286828925315916407002163943093755906312843745818750909715776444455843443129819577116081757858615331219319895767640246152859074304264555083871514833427350202803936814877815280772292729708773833304436914017395311633929248504922897845653053863026808159595163636457340986960071419704721447564534299007020080736440082276663271786806036575357918846725295555896850190397962208988323918156246743761048001265051750417340801084744314908728570220546341848463840624950804270872237782481292484702150352677775039176664766434131010899221981484136549926127018729197109749630823723899005949175666727566173971404161828418652620934700363492030894051042016878915988026090295886831418402465011593727701587438662570474790055688747339063099851803008752267436406274275025278866205811696056916711183865684332193654202308814736692891494107074852390784523427636338993889828489668072471721535090566141115571227355686909263828719941422189061650802476022285329332674085245611229668644460703313572124306660836470258615573658540937443596057124476124751586073866518047494069040832822307423084155650752525936099871647960419927576649630741883814653776040233017173696195918534273749520870993752930123971091676680417500874660319540434599031280834066720422376991939068797607395083847274911592126778303833772535154762643233475518509789895914736265426603433870421907569515002505835678520065845525695294639009942722513366880575910471144699670312866027392472929043002813508590928664213113091769163495799826781738004237550972365805835586552885438526804307552795613409256221748429980878299147772169638145138173365285698090784675541206569305752908263644475665069982946219571540215596993605275267100819271398242054971398879883137507033131721677866718189079148517014158824553838597012759568115349436772259765768297481533832736839278526047014728078734862364584500083326994192658307089720388986778649706961627400352466220952407711539579556560182035077667920014612251479753451434926726527255118113693382308280554380258244415423659713855398784219492784827339222775481199402535101851418941340994391222406605212499237941133441239025790766960392205521582685727669383394360279551120230481547856185900940410122018801161527849163691606558466039054099507907116389589214980127421078987446241894281194242839674243280742106370671026630430502575321081884488498290309399758985369927494435155683832713103509401041052476532852181250627674606469514788337275069763355210955354847739709648920345727994566087366379006443083098958710660823857452235565817362469338063840655623003152247833298802510907251388932756438438623525847943243054777754397083336707246056310476280273607416456901957121037074457781852663145445352174729361729485473862342012945587454782451502909992136355746555164803369613256495397708448275080465132843977312164044290731468829400815065937140449146389984930018391860837181468390711657673498395924089674147622120120268430007185259846810929322836286385998809323953521324190776165216535223475462686141762214582286786669239038128927563373110518795404789758058752909092065871975100695113233310784998534116273115074562825121222856857779438036224681490876325389188775476421945257514619920222546154394412043165160187867984772073180786306001134518049498671919282203764374306874932291180785233582849396076019704894985864126553321455918456606910021475662051754565681049187205441571011414879040213939927847786962215129117895184461589999553186628154868527850191371191362165297259962384249885719317458948988075525436726683392029546227933551828851024821325666325400305005910522610923657322701376825235477527251451598171150215382003083348511528781725344986333579840250205508074405024117106464452679078237201593337378356231332887053664105652186679243266599471343759494292303799870795589336228226156026329358670235287415492360915360425381269710776414019803703063176559361051896190612808505825467125765191536011369014659624705760180740056181190527991702937891167850692621017857719644929348399676515080732851284815125100269785231702501594795333185222839856858044067253353485172655880767507983597787420131262337052699319876782788248707397370262609307163951023216065358814764358475324972939443146192168121464881016456105901893644085139874311430512069779351493228144136963466934182210266776637028649076138294140620767266118191109016296148157563356030642705758443869216099537188086089570149439679967958587553982423847779959330581730308034244123955477098627947845661822929290400084736203026779833852406869718200397318902874683922051584196137313405442917238285553774985987614396469749406180965714437158206627909739282148823380430049688831942165880629176468763972002997172197198060914849829162318284454314390305151429898873032372293207993463101679846325998173473751995091935655696020972292610861677260958695947102115792804709500061062899510229049466911256176565092626629584940372428129680927687668114608895266171490190639157056444953420593232527862092396073566736494865562680518268234054283422180994524103633605264763154566066289242412862823074945264556732584722490152196416803268363599303683012550052726749269088506403602557045919485201132700911996047892993914239225931401706558099397048988175821923188425284938756636305021015494711065153396742826274580947268266001675222070134227473628258122487619027236581278908716232400048845222946403750069908624778692511300141463494424657551330059129929764176056068233524698705444924327194301727331751804724235245655890241780255464287491163206240906669564910645473290146537561498606843254214306653298190364487760488940061764252511871622597911041399681399794720210576697017346256809463026779678183504525554560053295206268470937920878330580727028754413722737000663034848166315717307791890944223568237248360590078193935911890175773438118270983347279726525379246501719811588998887975121073316793286975623120664767534498903116713445155037088279562495159825906305936482048389005645941257656872749681449941291849690120939602266419226439826562611930582790970155004706225642588663570412756441932958610239258689859941357372165655608201237544720333037747272705874053054037343646102420584556236454052273089684179044977423318295955380122394447992157990830434396204499730916576039161555836678896315879636239578019859072134904004003843433783369451647213464021572888091710693332246262745920675170945527277449916121304627275674929645119034096999163269589922148279306103088994457843642656256603753056882661675309706822517284336129010101322149036633411465304297616432535036269810728949399169483583505386418506922455658999990813701779490955927389703341813846088771259291591714443198103884550209861100748153339543364767283797581805241907451390850705388199524462776392347405826223702853399528695470748540019748736721743936503398984317440593378860395574620585327553238826027028332197543911366945977085734539316230665816793722900903549924932488399523155920893155507816290610594996292909361047897664145894245184518260946640787015031576085842339913271397584024786552379231189687098937761189795573512434478171084410328179400396330089696470568328404753528655641115171424715751177949759318553417784103344479412914318062469905807891956946891096607329839848922825562383441800539888270679540318944758886183982499216410462675865457371187594818208473739701347535919095165319667622838227256584008304038613821580152091730045185705091104628716923639509007761932334706981792960362153019675328601579218284431193984192447500228675764228679555334933300951469596639955077671332747572040566824570831106192966004858845301816607679909116024434370671316958046873617603591407174396864349639862944447048911566403803271213407829891713718102150176396677459369028421872612925270729475931990856907953914972377337166437996339344505559927857604943326707301659293321744432861869061475173056487604308388406784626075057827090251890945485701897575625703207051256520246903345001816358820225277429273389140140646822490228526808500967781089046088297430080759895688337465829555925060903758701623025983802993270276742601200451318157080650633930370442560047746424083816104606886437440106818916967344191543380009568236922563556024790441231897062914411055557075479049289026713516935999149134985660201440232367049357423999267599824196775990234108687994859048365221988372979833607862023146929395973306830866208886771725601908403261474383987686718972368054642739939550990322125310601510070120226959323243374310737373603170844799911850839107248083655446145650016568901839636776696731693968772035765030978170041589640385068124830101378330655311914387274825718571150864019411504531821416186823312527941155398393994327982630173453450892272168458826042152511742214917799170955491247501899175152781541370377161187620178401083853762896513692215881531144782848797185791451187074530512467415455001785918337040263763975214557616623277077925041328368401363762321101099722284031271678091107731314332299976219563931461766059757984545753451247000598385491673454134009023562225107866759945011533267504744467205191177721239342943485862036100380739177988007604000002038496869962471932163414713110318712443039147857096184776941242551751800501863239511705722361747126879024311311926714329125462233207643543819612838025958385690166965071143454453004112802659054299437543930115743626527233427889353699706255003845551990277809988919178382435611602478173845701646548472385441444326523224021718921369806082214755194662959209493550322307397821551321166030216729807093993369552880770600871072365909974979248438447117001183780831151192459113153892468336684381252328391169051662975678697745938751467975602547447639463405170035674768059880100987836652218824136132465554103566061712830225670213399329120167328770353720872405324248719904906906238569915535874127233575526347022816577250776598255897295591359667453142909994339180437059412489767943207019185153869004509608930229924880376115632756248400977239623145817929800921627754255623640847847591596665890260223833071679140101703382062695075438260087407350975748776153479196668557233413789383189213469421135447846939550750503335864833137226943882416795024000211897201686547364559144112931317338910100713314400652283962314012048862358673666846033029286431841300456760040385747424622883663784914692386801686160135661303353440317891862225231130579219135619802083453717495459717779466305611720201958156474935772420896544688088921599546822420899771729113453438412545423158810803798028316552389183619013142283984656926257890958157864359702654281289464783143435119148526014111282489850583212124490656385472994772735622520550295425205773714633818048885534563686911265230738009142228065091241568180165411894405544561463789987785833613585435874398594443833355409395895178708549372397313740959040407080703459370625139111381560550245317120864177984118824724496749501748701950385146022991978415718624191130084022138832960749304310516024749929452970430728769163441609712532855815234371763079610875714482695715642993050947720631568899138269601458575850626198348431926713252673513647866369607692737880109788359763009925694150530502052200176924873820861684070933179133190192258879944453698921273178001311559373417174276568024828403089662013388757899208685291222212589127861039596906250580327142789722055644840648464004615422339256434250919164062912600829395073718315570643271206004032634065897462498086866304048070885063504694871585671843430004843746816353162076858837819306714084558807519084322941596025038785125039536560806787436372398048817085221692459178407461608737588747713808819792904334136074153493296635322768239959927568007351173162050715687435425019265807160602354925990488327009747917307189920630062546000658746809448945665833577408908947200857499486774624909022160945482055879188422774310734892443430667097851967881325892392218060291674863248294701169835822207408249777035702894305346191950879086791930329370349431471024901116899497675615940783862908718019468496387759994429701298131313721337628308337420930950314150048700511239069215292630581859895012789106774944120479753438869554078447273336502239916171061916250494534563311402662489905367949199433441502124596645726475339863040615843484056578374462590093887699224942575009053594378394129525510144056335914402061575751850736386104652997513343388168157173744227042014532676821104585656413017305095861787854289759716340688369495500761224443035771337758629280326688480809099818849921993658500056141234113184067091486230836287104011617776244438339525382146250051607509433132676980959289356554573020567101151287890432888003484307935557244022292738769517803440647393129828672801362475363485137812875919517874162626705201529203745893607613500811674187551174376938496974993695749212148881400789555418893600151085095993390627925992150042512931458702526209114358567851788828230742455741612427796825983678282549446709323996207816634638532642401397363023251974476853982467358850255042596592638948717013802447460799843098234156498368228011595600184776512998396661636593654658027239614075319394830928756811952117951971058081861312108112946255905811003461543523241552113289196684743149785089452685043651479076484546929170501747608518802705566806750196422010180271207088707639638419447877384801834820257993104339107544430782825859454961972037957063033288428748039205451832898214046773395405557641213625596612072121462367688937500030511337621915179024103020726769825103546797681577933102194214189993330268641185897246228599617986892499733492168333524266737669426392331539532147224604157634748265771923607774924228884356202438119577759762773288099350263492217425540744893030631184038376829284349390343673476260822080269287029039855180792819686971325918614703921498212764274808443291419005905423359874699404164827436957434510235002745467598385424508459321112688302555944649489451605560506231597277928402938248234703084819447182313433529382777250834071194894214243976451597661883066072388209358811621452847399958431355172455652551853623714196236913762174598297942870150387112712830560213123597931817307430108563732454148522430216502157263005628847831785359115596478537953965236514760583076783332062668943915466463690491216557208318214826324239940556048058424305634710925663142256335045452568738941083238664624482560224592305526844218934366143186521459611866765573130205887525700073262923440342365094649296765258899965604614572810107477243768707659204400432270826105696844604266336372881978981233481211041670294290534918404882635711776531086673326299418337310516602928528092091536046723634055156399163503234388191401851290338345243090378425802426285193533499759874477920417498974747124423069280369857294406652081777686742926583565262477090486918762751928146281892226298510979539823849923600016036894662655696762463601636849106288838243688085422456186843474929067661927616099369668285710529545485787173377719992271319712683393215458881974968397706585708807949786888111847703798577479814285565412769191476364333839565969408024969963849604658334183168885556738257381028370698710425172958838339203524128969936161385459857830093999172145055947727060503615865193569133198684925902792718229637498000050516805427277421093856667312024781250626906240386854535171080124276381810534748717778374385829163284280208194373722619140703625171668052809703295343631421587363603451624464744045165611956656777512487712223257081431042717892627393265067792286447237402759333910994493927623488503903199283781913385397441701169994729184377525978087422664227984544613646076273999962374169875649429698062484117920402855276271552650769958825504678491653206209875675018277936678757795554877633819570348386220398692606277099147880160313428008865837981223178047789185546570625397881904322600736916123240371760285540774571891641312963918580425127164379149320884132673018237422119669222648930006845836113461134721682784759139935336372383786844543013510832572012343694368286484879857588236343772468533125699055986900325879982425715718462440221645514630219740560149927329091602214384175655986387848268275718137652323442449417684516748796901419418324335807783598833077515827137166166795091932313766738004035303505674909697098368389027327402370770519642202655739401484974206745606246461883810459179742085027741688656827846734596709557394348274918095506539379926049162632778093335378633174441993944779433345968201048507072995452662645977225611530109117782158478463619757235381257921004447401930350989154117923368992979097104536112148445888024777093524771407743670791411198761521879486789476650305197402548717451463545822783044291535199527917981136527603532690981269141951800934614023496474027005564420489549340866044223300914648251975168496919066974943394864555510963342517714482743708603341831188490536076848342486789692158052642338957271106962465368682302900748278313065003122611363951715143958879820114482398022901862188664748275939375433631681138615024699627854781190792509699638726016784079729524355996468054055183833789154457827485486895069341454946867072827783710731498974312508816151749992123716662895515084327971298000801010296664537161603603054190891146336285304326533044297170821971165809119948471241943750601317049134912573881073956072446244106652892037692562464184288439308335511467130081032844529717171575583474945163994175429552711717753904191748001320592441717577205441367685149861326537036708356122636762228699016460514806706748156050725562782369897514556615420727193393591921254786197487844090383659526206426584561285957398943856914302862823724576089647816309310306627734386379044602995628186931348293030106977046723077598931955309643819801394690707372366881428180580402114239658632572377038179595426334500269812871888221710873767763739752449883060607796326745164892645882096231299505178737542706824032220986634812624146347341688325723228446677671923294431452414291534804506515878173161304055793345567042044494239335498286900229141163263868063246636691408266733431995802517605034166022620663572554942995789143737600618728874672139005037630093174656997751470381801327593626254911434403932303778003433076243700419255301297399285599660424594933086658177575068905341582390256859600429296941385006244601809778485908061506223926371572760409913578989697725054710921170145698213671015609865980738338481582590352696451875554049928529239557839025859121434621775186043559929869267693239175723670305026345376582631640478268297348423135787745571459602963649490255404609384744484349724809968914865246034406209567720679609310467286633104038769166321377493001980386050555183001124216612394831370305587890175875874430099897634106444227293602123060595919558284031845398742723480748977025268184020535310303417440397393230580395319990680321880384855904998071568648059581287305236058276854356862142142895174709764957731851589144448171022974303957504565511138762983691963930051086390449145728836081592756877739131635236132844711852224258370245640643314123042531561419148970830820042773628094684339646723822578990832931465806579032637884936917179185489231398409585268488525830782135691812071141089984601435370380100037975723502167218506840925440684067558175430100763208416713503951019052903785635417479087855558147845124761041798757058659402293420434657785563349870181429370348550483396396423154722225029730840711292854005270983919286374028893943585747382359237993696848891876661628718414069528640251687276796803177012845215545041859061817686023741025365738655256427208391666763242716393488365311312029394767853197748289523842801005721254103719799251033707312915233763807841918724900625963421687226041805392185523278458733396270807357042678936511353712798854331490506534584944318933728800741383932698125234824912139217570049452885526693080528220227531149007855725473289596779605126838202003099384190755381267072019882816896456496223124887830709554995170984424120768315467867264430872405819229858545522830735006138835290180807591212450086523812566604738289269087730057457914151561660313116535093636342536564723450600645611613815424022448631294437707104587811758746823359021455392935167009311032500888784214333564230460417189185094177167536990534955343316906509897124172750660731573112449448969998072243756086907403318505278175846096360230989814641302702819676161056750787646961769744083795649695788653683504373519915058864357275688586404101538095684009896928638149019458035300028873491873389781398970016118668428282791720366476009791832911234872542359007729987693194189967121708404127608626823260839927662387064224814920437122127812239489026400900010012483257879192601340753133412196384941704788495170349760752262026054556725185328046890141645975309010405290022844559484444909552619512405290129120772821575852214710970715981632088057007324799421416883216202122097406520515325061059039034655864013629045653306937796602921861460903275924571757078693220831253051935445201215384728550461398692118653960038537332599066599210395560947071371684510106374552096203789766499853180175605656387160213876705693699691042165925809779147417873716780141544129030657401431065885291929324180254955689788137147356769751795329123863526012063861908900364854906697229637870458000788912618393428113641257856903439211647436592855451427813797061235443348555595729151637135110141472896762047474487704243370457928310657685117260783270810959314570698476788487774788235533715416416293144151563854535277638510102603212489103386160320814691991946229223003857124061459550924416093487918739079440066339362215781872067779691572064822015111877210775266102754820403102925121563866982103607286338556303998685273907704166649584512223093489891968638493892521372067005979705808904646208347102560542220968740914086008777238435145673413797986501869869775434111548200778591139310698859776054913753843531681500234817217585942696590610206611293983028743322785790555923777345468056216799463619233479316838163961862401026799990258395097573965149931909145983622439863755938662384203442762691102253448936858396179525118837529823669349490256376984866615227987792054362210657227445041047618321672732483959298362915006580199099350139292842082381930208801351482545644469816451862843864179253257440930066595347413950685390199973008352574526664224034770918507243207444108430387420805198875487250299323665238735781334251973655078450311291712431886275181003204648473471779354745025268341021076626532748566215196534871409545640017639100520673621009085381767557758213294759796396584723318589534949246556214377284677677658506424901079824388816606889508240153414778940232706552493806449518879081993755364476367839826907634193700696810082726786969754605883704262391335615976731268412740127838084563341305476022185527637323673888475810416674663381536194068074854896465535103836001489670664777291832028035197969641954551816369630561522007419969606836096747205478018178343354918590514220786539935586217908950584074055692235520437397421219363207347583987889451945130015766292666778688755749620495917371494650453748328737847531617418186028400645064412625340442978103674723909251619447310573458107249591177368108290071246330389454547180344336275710370149719358619974574865713373567963922719684089668939629824650497407410457378793868635063690936324256236589827769058474127154163058131186360622327206619150702674043528197175747959611120757262091318893871276826227541887545492319828101177268430557182996932839812051456265323664433722665653294005175859050401427099076224985880496157680163926800000269463089709971337217000784387078286943905910527516972923424532172522247749008179409483733503317301560512511321140647600596153707610164708509760675795694210798635391069602214567341811447734656612223540974939749510591542185374272062653576834299827884451970956226494638361821389988015887691627251403654124574625906537620562319866347304207397398831269468639879196191848555830949602038642455338473234257540607573625059973636094919572234104133275854502574965856263192174860266113990556459411937415984284055019424884052519753749467006053237833690865441980596831824537161718939194928752901939068013735419155902458756822313024986067726716525432516562687880067336783908645767859559073787563922138591570024755487544861310410328854809431889528027948763411045365966606762203615923062357597353200682187401438979270317589606598008137871388080603649449530270049500659491223772993166775559124175849250000233813176318153159110193287797090998000491954684152000762769795388009965657623571641280415670747443133257985175725777551774083781739447755984241922047757364503383090970969952160078383934064934432433721047918535260507016893451944010670175090740028651414262188335071179847541042615828253431078978420197325481593664627231118883826482923354204904398239022915404712422318058487089912197907514207674776369095059224754490685631744681989351525941240982537024258045854173153436315779361507554114900426961784021742525552131168395774975796719226229508453785525606903883740500902596535814323654469457278008764410358749941635556740178749565699258261454617992214985826256761720200395923016776268375492028530597736255787368412326917717382479932433999959821866521135631922658624674811303107597241315549125521067245853885713198016719905358671174103647498841735270879322343188503792058258177715052616139124561647813795607174524368086687863098470452847993028226819246235589403877888987398123183536554515523613928178148768616515445574181717338359770099246041662913633243622103293518867593111303702369326935626705473032526295476890198016860844592746853152412920516491877178068289904838749451385839632360610222793724411236616414356583424429427401044190832454224448581533390355624007772690281086470979694057830311161505207506551786862168494284082361117236430437924790316376890986234481819795478139778586842745905456711322636285062639707923452302851769157365536128045437767252539737438888086538125366763070360411168354628618414085533540577612795055316947133169181274034482988693855423981813710560817901953068610226713464758806406249303392177243615638617907591459962479290110678940693545792865201968469884142088435011730806634272830232310815759662190604744395905768123747457025943266764140977929061352060433434247908761635591338341187579556598589256517626325045534675401890377146636509798723386319567621924241824154756130029520826694062524969296088409133168604882127096151065925039401530242313173762944462118860230352770997060431962769097896032741647229931898428745374100887957003598706891331852853350417098100013950930683914229782086488611532110238908359572811780579299051758435871002870236480264671623355691336435432972425267215646196159661978415698882438823376591040196403108951023861375389419996782127655889448412983210367364386087938609654650384332156693117269900256938370160157064768145173892050221439704397800711458599902257467107170629618916379870658580021197572816524240886385117648487070538133744220333944769710916882422911917669003274303389874867174677012046119402801525060512993222720387773663937443260412889408780031970357712747879761981108782426733473458497017929324211006231011068778562166374137182618651091338063155890169725405590934291333846420570417500265448068875913603597295974244162050806793858763035803313824547553091286336691994558847974047928227286385821365049178419384235622828967796612246912742379478959841539889755455165259130569851292050151592932147632470048803667263068692735943484313618723624873139677292606075354438491508109204789512216385088033435044840905990626496060534554907930000833191704143382907489142784101201495416923738136219033097664500503920120435369343215254840915297511032434120361726337285385469920113589587155100699050695869184694965092251221496276983035218909243943371736741226405070893199291782266015222826647966943797682631411905024505978662825056411412448541340529699940086030535896586052305562148357566855078362052707149223015605321585694414425651684137252298280431298736657562034371890246956776360298189565012158951430121703685821287912354274747533011155205444901509301286317345537133453094738799139210137166464549849114837496436554180455674130248689475075123307067310246586471077316461884242179776842799310418886115440229547884780390443878468002014900607432349113777321859390033287518467865581990458234104685348277560234478997301541768539205186259663585682016793022603894897071236364029747082719301639744338822574222336005289091912466216986353374689832686564102076878499580470624257802130164162223320490563952381205921528053093636887203119053435668084504622110015180253119897618086630717782385513341350358998071810703139160076123805519757435802976010376843096396743848024785059793782328503789582670574466854213567779037508381993054785254968573114291200151080799496177822476707317222053118480835680897500664265677122314548627325283743309372210141781489933509418806269272060947170967611388277626890213754458761321083063301291081047528508062543872982801686399996642554927621295629281264907056063743249343362549208674510688095028566876418817210733857026679119588829956217385814886338848327120998261570885452580542845454238100403332016248646466035845627820987774769100273749458984781797824884036759929365195817187647036162861231734908573842129644347601007584748977636169261927905690931055253311331884278285904574073653407884339034683886003076319347973377830190084919542932287099321772647039791273392945279974834245423720084977069341121094225927278338711321909821807685016307455120458846826892740074670858038369528651131353207773803662800459464432705839028331536252236161075096653546145433532669125989094019579915814485335426436546783924671014605771157385253227044026791493670887581273339107331963829620746874699155992088713080934490471734425539889250437984797440247431319464794018160973580637615393480856686454741488505486018881058795492699379054230213854386333765696093163360467040027915335672811927923833139375406531662292267418213095342921430231235837435321099463042369042293914654657702324458296095587320918374715879013533853300439292744902200253434897585544584926671834543801343547545497660311571033573027870315804805319432594016339571660620847010796981853073552033591220034599021733657460020055624771451811602284630000023596791283772535355379990823161310078303285210125764948597153867467776196897077091060917742730839596604717455416645462447466026104867419264422279940392353115454560897172923193776481098810265526323633375006619300508595561579846100691046464842709840599785783314612406370407445347292899850484252367314395494695181366253973483393478288103197038338572967846146346892304106260044830813261228931947093392219588491396771725877086372033759805082997323521905967736995542937544416896310968410465600912363470796889175941532217527157999169283742481174080697814402618524709907152766509187612548020077639323408934424992012976155322637546288604849765247177519240592902123313108400517710292925660371886462973840460813060752124878240019425476107654123426174799088381580762395500736055535225938404579146559645651132004896345145585363358432979323178787002758437869983841667637098067252377348303893110183751575324048864806124990911689828253939066122853748237174221501598622066687395039252541236600295838780644420418734733314258566871763939251934703624082041809708081507339846301904388697501688995465282975697925658880360464885178592236302209616233076555170352539869578894429068426795813850537846502510782366993313923482686919266260405456546670498390872402053095979037623782346382668589476432159717187384677265902500561611735490241118009971529751098514916324527270621118429897451900087777737008387808751683238171474488703928481878149735049718273568878575951040109508684565341306166389668415266942174468446017341909557918637608598665149416204799471604740806735599969018219105411429002822070905334271192994650341459421120247366095186558494346024331699508093269660573300432530795081770496661425573158929686949833030774144589298328845256710461002078922381022024516970962356254907847492266080598613122470218532457860700345379933927985846306561009960666081720276742707731480590450638495940688972138670016742882425393088897515313492506824266189142248991847573010249840572475679656682123052213739852232883063296493634488305310423067835290865236929786853803419356045170444298384268964075920199191388362857521934170623618929759202441379144682524624565442236515614742822379978589264737824977848014921769324758245996600594474744096693570306049721280451509678142809545295047488102458133317272222686194404619831144106689122902347423700749194356590804935438363489554208828106511312425431870711399738130009300479230422843434264107620935513718667680843765243303445182600531602861164890696213170848432203237557937924673787022824775427620458133471946103009814018760572722463669538357248195689005030399315774353133743591743674692436797376248044032815694129636211880120321193916446795633524374548676934719570597042477104619615848446641664227337352585102385999978876930430422317916797368574391290804505259971370591236460348954823602134163355159388673969995341782182620646542536386935750425711849055781560252976954214919764739944429169562259030519431667412807825239303205526804650959203249793638553167550675526498761922745389985390597296872034492543049822264316358834856892563880251221718424425710902362572349532741546551004943249913088081901542122202313033623552437564813808887392888590178092244075839267188259000200976143116487613180166879572728609365730125001497159930506648769519814730180715972466107961371711002796477470533176675248776672339197752593269512803016689410247514736250071196454875262798049306472234276889669218803791672001844099271873599444225761424533443807652677564625251123472962373960934822157060704628307038026806424587602999678870058094616277445176777210640487501471967741446608744698202554252179693725834834260479466749474852407053333033232996513604044298977928979156509144571172530941944414965039257310913299004730627525500495971600961711647920091884776291986154725988121966060270589099660065110304132450098373259710369607497475414842853930472922945793883955095861047069972433343941582440333772522771221781364368301043248151355509968680542752637629616483580892398369131812200930477464760906152706153876357959160552176693176320948173512271205680933467805623362548619252085046278939541834332842266970452601810043820466146160992574806733451100876230240614804026427989979111577478871180498120343634562453090342224945986052258465921561448958429592378896761800924713440762667280387396119383147300271465894579374678993726585438289492918539246191562694804698989472262527114277614802093576119795146259758955888534850309551811885445123261184228562505129956739616575230373909893313391230287234883917283363886024195916806964771960615047119912733001365544448540916649352736802862265801850502867557377421892815038762375353955086462882597137400287045793765227201939462108926185105111108327005199686509013070367670189186745832705181855107840093989646503320385666773186014668464400509698906827689286693769045380412385633602049988040152916688502312879612608023126783820221653016976730952269309337563825251891533693625927542352145167284430935523488173678937738119676538461248072371341526669242185416963767949021636770297167036966467527651173734633317405986435604895636522173227619571406094818827774499456707148403540211937857091528132041440935253962088148890218044542219345803099558358863257626169325554932492561269289583220137887889513995629440508862795571352807116558992867511947053216954301251915533790737932598234489909837269153242453648319565285932213424598120857867976399586893638053130790790726186292312469526228976354939512095705962280408908879034087023716753356118764497569800945006006399648571060983353591543703574962114146174809768381711614474112731016759759251760953321855466702962282858379063093441306022845706270973441857362118936309878545582527392626142434824828996185908799207867779392144965970794489910000773870985834380221373018025640412884137911894915067809190674411270067261191698605095442085707353109341357938777767420576394498348572597278405239328802661623773746593549009469316375699521210293596629353701583932265315396816752168079317344671866773679025509896307963381485367376555490400562678105048527805287581850207502472166951783125191084805545273527943744276609426533817095032330988198559309580707334035211301893054404405125323722101693902801407190701072213799143180376355456161640598984157649146434755613904100753483794709257212424898827394319386365057327656708639961069444595246657056879492718895007060802769633326125004892830754830415207212052032068311568986289046962345058591066852494816738341441977121710612493759324417026146989942385186607920899108343589355393386652791761408643037126621184351750503269086004854277719083702917801784722613042640807660828590299910667366444072961393244062437688983500592971599799737110220739395355248026266041681179014421819581719537950710833916053459069651140165140087031067394784117256525724228112311817021443292036071698046983671847756756063599262357432182217641579201039134565029801686505221388152961995797600425513968689773740075240180192523352948000706586195025402392049107708709002342029018634460553936321715143256634656261190490228897902405410560962563921208892992823818188156630393753022006864168794336702498140454281960033346354610007951929316919414678413577049285179663565958368300219749874167744865338247283948791334274128981707691252569703592315318280296212490348585739386003822005106363526596221105061678877703034441069607573872955489401736529031499811426457932531663451316876978350791528273569692587184955133732735333032301888441059792377318843405407801666890058655097011176898106827422099728854167027773964737299994589045872764877622577406092428752703183444990284954537055313073548611789814378538573496621174606936935207161569919974698240967863158357394785041517601024016186093999971538597526768189223118029459519201520125870095278203046437247659485695366483428596982647280650360346602849157885380307845723549894967582850498547747998717665248414151911176172827742115549974938963115683400413648828083584269250312949679299008976843054266901252173357753361911896127656726561334096249864998545715416748623147441458924006358072243357571983969048618077754059447478628642581684929368887989318508274263688441026918441314308366485929629067743740596021091508817981767498113235069209202042863952155843928126690621483169971832588950738271801435262910486228007089591501318137955623012454346131817964105586898233440788705794213122128968794201602605604378095076281855322535422842092545683803794390391679469528861493934729713618392699469617210746877892682339314300803441545360304500666702752704820248357281734282628207528996045033624030628199522106580646232744599480172160005150307938244460859147279595088196706471312694319251355943583161169594076996028330138664425993555268250749884842654514811965507942779180979096048297722917212975571101799023316993023211914197544107805846088710768552885743837889247914068002486094553091638151348725596768010675470290986229338240990695571302624469297099927642932443133758173358454836571272983978183072999155475982031686357759928883070732649935629365451155169574640628857534386016204569267461758471325525328355414782254546292549384335261783228532286304069742429189052057683967367902608073980019143146738833331117962951412331643608192942679567524993179344037611877789994413630273135731208637068503462094438178264300400183105789851273759214163150494957346143763816557391600993160352313630858356659225218607457233279125810172978859415710820284723132532777921656911629505597764052338530956660775398264429463292775995205740284021797066628728878142931551590122929902351971199467893708703503330023487098213640165572493470217494723114389974697890992178545139079161102716623780377192897722788816713328305844462094645652167599791272232593809685671520337348984277132528794854432792150239831996152678965989602237025628987969405779379983797338051040628449137607824443452434706493316467964194472657630796066233069626959761128028643801239730777988453301449480744263275997377819747413324916407968333310734907409449380253755537383089872365594824057045168939103301650920725039213457413374924874050942287437858255764340488681118839548938123694901365709488749012272047383334418796085686772930695859838868842197942513519555003731058454139845424514338561078266266238420886879040278125534274119035009818902897634010857776968254101284213874506327427536890470074306804416548111841108659785219542562234220734967274951712753316342794031135038979234367443687136251044711563956965575845020740089359979255479698504211200199882870842297449372476695004874770671522370237468103987124178481428691012686666240433273498270172236518306497639835404583173179643095620171479166830682280379673122453937296618029116408945540137880786269235944395691777586980458040634378230909750997036757026470426830152749833447194841027065721850702269825633470832150506390348108585224485669150833881942245520854266345552005526570426514074142314981693438271883381337721113529894918986887049049790938174584949028526035526771295227286428508921659531092052705387746619147181370396207494213559755913173233138551777157086246920939039272454699923353773654510189961040527533336846646851980484941218340783324727880213586968541780368944463693555468981800689992681158194264474318245375105876224680192358462841473041579334017118181251384079453715118136294278918703488397020164467048060738837739452105977458708230169661165854914019325562375186884308658453025545442222071896472195190878463454854477693061127548004072607243611912623555051648056099746391634584294953763869899805195498691469532971580823445378975864889615161256762295109834908751855194260532906515903809483424602523713839581295719562484374476484678691937796287535429029076601545169781137255849175903357845464381473308223966355389382620593846097513143987749056208139670188058223358859110232588742251955275612282974164258467925474945730165390438112168022438428591534862522400700442040843521629761206687012966724590216562717692470412157799036938918121285020320090185565989159398369223644382562886345832067009622238397575200989277806481260518356747105717770028712084235144269138816815447772482860083656392116563630821289479679192289444701345245010606386977728697300187307581300716256728243645305327781341543863740405831716521894044069366587886510275615516580755423235084738543257797627533986155602729179352554188155573511703113324357355399763225989788216249496840420813623986312515165077438833973392779663102016968526489595653354268358362658254250618894897544024846729598802685507602749551562626393210766810131483070161815522520730153234786618046945321777255481618905655698673108807260743585073465334719400637867621588533893326271179663218259648368720859798213993241013999610882149483618266316831964889014441495008434991421806980457953404251752494000882090367144994132360343975866332456528957756550845882095384219093105304524871151324935918974338223645249678648523427057935738334991316741509841894599231299162560493968132952963906995073198236623441463968932487831247808202899949743393896325930824859344581346627757926767108758087295195421749424750171192917766664491938323246449587840216361329303736705308197892360718789014000902453751154865848100774146522538252512204606951006425844657144085447223677229873570120132287996667311144437436642607021635245867964416648369704717206240049212868551979744824190781117104544885819954241546536587584560296236238796992081181875595880093226906789622205684895737208522310385576368631217100865823287395160815001435536873771538565029357393964886750332593980001449410155596311477578446527829220860167525841118267518985842590265623300373756482449964632580381620164974884116187458097382421060490822440753747860816735659840198811169017563933153180832880254683007858418637880291929354911122882689834776102796084819336231042480896011300633698237546126287875362603354017096704596850849584872633935835346239638890855719263815837162376137947571092716558126570626660581014999100189407270630046218958143043194738450815696833857507233083220532817989493684981338846321951294397394615903966690623188323364389546260444904929698298350714683216181300275492041146815583242583939512777089944419005517326564997893956110615743877042682145044830192375646948216684220531608794283195967072951545913350813306073636207179807938215203942115530330165548155931336099022428874674313265572695393956425479588241541424860523244881991828421594585744030334080637807620155725852136910336034023671285200973266509551321311440394081743523612251709659762212639988572632283549842904548783371931678972937313244005506797884349386928311654141784891948131436741200446177931042130660047984985499349258329510808319686281206176080223983396988490408340267239836849132947767921696379320414383878799510388519015379001112301150911246281972250168550329165721145551720546800840686287314905788353162259052463777959389357389436556443961681715038457395590359457728033634709202147991887189036767982709295602371618778168315726111760731913538478565938798677863490890826627776192687386162552242152986990653287532599194658002481275398249737269657318726932115958119769019813621642414004858488743578242603037809948800758353065698588724006553741574560152178778153147417501943589174877987918499250680563070332277415833944447134049963009465014346421913291104140328367631893702573757389381231113336723023344026056476210095232664206763612876104380289803715728295966568765774129120369628656741126490500804441299882118153952128576111126046465529380940416377495040765046534300314489430943853167287850941749383375020823324690946348173294702347515680187182302893817524695578767668017244449108134328897714757678886205272220617937340332087351832918043772906887179186980800800760612945824492529476651718582379977647508184174515375571722858286349301999215815102314113221427787464330373502017135808626167826641063808779714612918667698634643781633915679282131241751624172759928639938076391075390440375509868559348304409660769476399346828801892832211160181879740145895591190424489852980592108731679564684225961155230799389689878334692117630813138686725306371180852960211249434397068964443461523435555363969037019044446111538477972725762548031508916200623384305721230114407579005571622005729083411790318097776883467343739362295079161139604185659039414371917456417783807089249958028363820189711933813453543351148996089099342873276138489625732760122284088455656522708518580930576500387414462350910646008908893174923457812143969735090934911412872746895922364228793054202057611703987905319185528409754437346320798964467484454139467441091122875030314424083484712219397530538873276449514471378397017453217054366459419562174754412552894597311169564757622754598927880671288934506229129766699765337341103631305708196388423051223748607229971233420634602768710569044690448352246178470147039021024003736773421356964540498377510223537395073433434374089144399495322275588678218109917090030132664390829351140374649944852570897640791748845254973367830341454737863319196926182220011768888384374990620012944389405458749402941372696615727574331710363007370302648528979106255718369625079293079386602403619397250122189145854450930218098747502933415549989555782886140158252412157720591358587580884459415779016229983959881592106779745847722002413782568453215964796923650991781306980700442281534932885714791575828341581593840930742538875901730054891863810685038039622022206076831158656808114449157125105232779351155312482500600629782459146252433773864132500243764935830313921127087350366758050327177903928103456496804050704936143570664908024443263766681924357833412357206516634929445989851818891509067298468742249244667844625504336641062315473294175206727226431396274086927528148005673254387345416847539892223995466984238406921389411782247815993180021018014569592463460689462304930830973238261223970000738092309745718203436780153693536455905165943139473796658548185334436672023177416767013919175149226734295273505472450833754629029774505471519837093606828258594968373310773205618632575875640333390965102505367069589402227589329451434203673498130493343842993692670523277000343853854902615853847232285293383437081589953778728809476704533543277241530667702082632978914233422101279743131524090411810563738402273234886062044297125642085751893564111260415298661771799801983127585034323544672968458117129312192563334415383554135002143388719515393507220047008837173422061060088416972453931596137784251806514423916802697850997417141537992406763468584770956613001853698160369353764263104986404348964434412469750836803882818926951387413714432451601125740139074895858138213856331179603095876220408625724848204925130718126388691260342802385076011548166832467458656487975163519517902281631294077300808595264603119601372443427390166841048735146677739540942701989000605097355232850577304986581487168137556833699574405262548661884646000240392574907747819219235210299114765254351671325474752637407088559160808013099873633660652450600523339773080289157683875466254796405021818709136712075398927248098329929307432793529997488804180610468228470389287736444908946293052855862583108222351137790228319303610676348618158336091363370907769556192221665401065319648151949938355636019383835645307629729720115817677172538099349047944873663773273593447076353766682419686716175991121004535948624032653392748921800003574263408549447708800148412251329487746646311780932983432094974807045428067927232843928282076018426681758141380177421586168515478187803828287798130014894573731479405371888056437345769194557423758824056629503070146624446659900681202005006063605133137158087236903577542617978201858075700801650412745409953221829140555757751080778490433006448321658206953511989176271477047668191143185067704875879633191696918812940733694093097744502661529903478770262853822651858445794741377102559876651081935398544329957148764473923388894981475532938728676250945741583690558825751550171812691129580578830554862605442770601904833509153769799474692815529751915140473506948038207233828831183105676985798842821089825933563103079602170446060057019285968425923101049937152470344812286520515048044929170813831595274597049459105389124352637216395259837273042924570774275504618064483037752302796814268657430004155041271792427223201354793546447224073871629270764567346368097647077483108895721178768535494956736374877597326242830037618884760194713265591271661112180661709253539240174360829771877526739893722152288617374744826265230287675095679562856551300132290410339821538993454894485480547775915314505378092531210946011942756794282955074556068584010035828045889129686081588201672820582256834757868937203773592418948481460806190700692848981624617710455646929617897849143239587997330960632757402531177522033022812652552501690354194161951110527105347694308441370974114986469127693096425647595729675218155726790717615030704645835154758993979540814469030995947567814564244052454256635836722066182807022384234893497029730990697142924573402052072398925550985357919659355662304018183666874557420633912422416672781949267289841372539458431849679325433966606401791689959976821471004194918034075076368857340726360302294942648376976699441523914200608533602956275864639004408416091825632518735458387063765416002992879687994673413687499523943982579457801188359198564130716047345115309368559116251130160412374115004300668600926916556687841631450950703143628426376977925487302894017528594884022532927924967723334330465312433799472127296092980571531325162705402255869818401393825933602773861821908616680489823813895748567018703572033777751319404485126500503576899836699614424336895285087734747115310463864657012593353602001576945814008832430276421017638541577581579603908303705477584366721081321926697712846823527671407491415277794730756797379401877764749013925236644702230831506003532201403828092322171912845727599976022777172791289401573254423673690568474686463739515586730900153488991563416693463277882667085112312113401943674594219513008792602089159739241882426529058731025893962508043227620283316884137052082939836415512267442718208943494203474025206261048044338018595611831833384280196458582449487648016769060659266575006564019946616836730907615094500829636929726079584201198476704713363198804796529218485924028853909901647965768875465262011924687696861502188593895121188891335422120043888180044239446911137769795825992267444986424432650745816468435876070449511042471321391935144167424750336389340650121310430963049713893117217526011724806805346288165188249348907407582906862012842348062137147929722789032295605181920878060539237334344503743059283535737579170949249890697109381684304112235200372431198818483923448338755869778187201086727790914814699358456434233489654903927121433844278273555251944501086479240377500880040804912385503322512436399889560473409477920828013660112193482269540173821144519979782682721975644413447345845577463906077808199926081918814322269218824998644818194841750920860888309118331543957216904691114418000808373918169673241636028915872906954910316268002182670657785343871676251699078525052739643384271327630412227287782119528422787797304716090442337279037368238957399471311143374652363597527788908042276828164806565398324325643606905896114910926879199199052133423771160204820290156900311497392355608914972819347681903865117214222729049965830096936816936389095056284480770735001413405420089735249088408870007386007729210879526430692972745725841571615721919957766872800476991378853526417198999419205252646565866673551466999257247329833899388793173240905047549943612959551950722759406166887594137848815488674306807019139404927738607242675345509002739816999820656522424645098628881010089715394122993468245787840046424252703942749286063825864512771351702849063345415292659026233124980383911699641604215474046910621535831763409673996597553643698596846937660228241681508883729927537010459673910132825446419747180867391683876554140541762016505222443054206443281583675043550341582689663362266609803084056845021115201383334524521836961882525222673798256626994120758592162724441965147565623382432267389094592997928892630382044502109882195312984016514318862970299270752334387266315573835811881441633727732121725331031180311924903175121572148739604648797605647293866284994606015458575654650986857946019198243774534222026742423096930916053033534012378930692137148998593729272121664261326241898091526809708994782564490776994231410584978629262441937050090250236759296476630214396685851244775842373987622685318312721576216131824049476104672949028139872364779107964503118623866805415879113197072156231402998322542672076318044425688749187210632812322355378413991743669774520146414853413323520263129326742843133757750649580024263690287789160313082834114662944179862446276289276680844959578464080862653787347949572421777598147850650075484683887375392473682081696552365942582154166605038405298433571967150066822570120895379325385046724673795627393276952802703137761557447935054571050429851016099312916816286912461656659331326481140945788075173520355503952532340431111413144484928062054415478041112110592341240037761820029219947104250281640277145844559384517092441107196327173574271134975648371351480396348323217943675830748897005435326503032788534973493398579878242826859239628182812335492130630231863963811621653936571877383470151091539889460522426627591989072935324250885063993685098052311207356870203481339054814308341806765595994851734885579165265503128604470348435210877658661090397225753880339044015799959537720426932696742468804470103826107914908474556682167466816016294742514519442425904747705081229282114765066395946577949642813085698635209264853235330507337786073037613995327924953867874799122575718656926690626470539529188907184365513464499012464561573227089447755400978866261846588196659868155225678380424430757433567734393106340549500719719252152543920342045268680410096083984334961668417137429552555999832311576105499115032541290729752507914085160894934668777302828320169305114766188958454119057160503854731005284322590200200483591735834268990495500550186591565155208399099138180917873538625540713232812372584823375130068984574929913338515020460753932392119777462478748323997486193449525493793224407390394520626061498147949901412185116102755985473397729444352508727772810708609576023242029362021683438238111414213716265703265244316754470456129661261168344356840448753746163121661150928599077547955445118015483062624965886757592206226064193831345265619258738393906612789951016689190015883949708633608563459236856537466749075560194680710311235442341299587605206346709070238906766280955924006333603819595613173114783730483388921030249776745537946098520888116771797045658245225622535292284280390559455766358422369449815609340427250074654475425784753460681659367596538999903748227477254608120871237799287361488536928323444764937314510291410140021397021312983202534310930303366560419568376160078717780120701831257580464656750286285816306062351878610511624349334606668922930658471328490030001552987657756711719559830413387388462371644500624967038800915220983804174126441971060702179882042204512636600166404138424152077007195331241853948386037396264751567151863099120604720882184673803744898640285701174939805398751157619083636603016921221095640419070292414561802322707528464720239002958219237017296050406482240564911605305572590598960967181365006040978676938016713527849241403513801458752739469412224239937338732539264254787751252099216319565964489147083271571242330674706736351698504673747074895666643667846869972379883402989441557490204444663824337671774073141734949486960637793369759997876612262531166160496419981904363813747911593318588283923965671607021170236517778570240161701334348468077653474277613548687576949387998519696969690095515528485924995258987117153071514190892690945401728830471515979614329368317450218546311207072453989632031913844533202152518352674837408661373095327167498724157110366612020414520781610208294385625538972921076594591101128715699807109390782551852274665105802298107129826294812870092378675854221189121350271861524176275342621454297989802391762512369298214158628687294784058817124912101102061632935238188858142160019120299516940010076837237870630134017329822330915270285600109929703735813952148922174619396139689951375849169623176053825204568129167324100166538661426999175099489362541370918881803082696481436676677593554637112547766381258373557444170916486419464251005670304732780074733632407278524949355586787567712683702291567255896426771234637384925961145525914776167756371395465249481064576677744453872848521738156722828041060560131048257315588328527858745451433908400449991743698780909363455116466231580328271283581149899941386500137298278216096332782000995523654738115155069015464602520827859114431627365331517753196101579539825303159147728500711540352923980174701974779808499220249827171023099562858332670858409915215476437776390787589546653760555936723647260935629358814943872037246361281826594345884119502601579959320655065062491404655788473136956545881180985672212361060502203034725609780287737867096234588550859478864566323189440854821291278508157150637099738977717473875613282228518756425447795119732793969170419302928061282807593393295851328962117561238780241986201498856176060823013987134808529367199377483545180075564018895907273208821587761721123169714264630367534374477054558781984498631055096198883322950188982753602130614924557720241030575600636015653213947319192320525939854083428643266000993698389634183005472293124518189482298660197033772676836045908577389066241824562672566280058157339649077187656645670231388597338852813517033935846250772747420909422808641608750264458200823106112010317684311702568976088026410613980059099885578229473630641233555172487661246386548963527989829632219461438571177674552322865734409791231329264757259753148225534805806405190519507982321935581536150302859778254977942744062685115764187256530821589420325027557682231217754115392724720326943298931146402674718117007477146970951545417774318055968123504662025517933003833354396868887960312060240124676463065034980114826483610110657751462649577549243115044646926189387434242524072521976086458854938961717653971070344223345999385418550931259580062539020881466851758002843752541944949029808668797437766806866733997210203000337080543881871678756710547442327419370637085034048146107387137537671975093424230453068796259517944225498429244147751550093514037376903326766212882454942283267805945887535753226855498868136330748777683596946429094109343515755479898225894109956701013430943052832161401202452427747310853749717914088263653193645326806343963672054489787617312467304019294699559385952426141193256635653496599429294274326400397942909229828988877884329259142988525199512082862315883763081083081066089555312594125274563158766710914764406003130935398582985777984289648710812113397429433744512030587640580137301888569666005434165568174105851297421876788253524988409267467128343159410853359741123153806747161492280344736920963660914128967699408107109541197363891546115778877473603670649459349721172838340377639305076043763177974682292241943213520529109327512605501143708044090036601055192645887568462859318406689566913132920259901617679214583706786915983989741376883099724281059518905927178592986900982963698230776806991572021271104701768172172353738702556279349973362776060961853238885297888409287871614429118669107292306055002138869620094157010483240507900967276842878227169252936462026373284839471065746793275589857617664745058936878807156542556475076325047852200918954852405829217327691092409317540783326471822219223849358151856340027720778661394251136892746904067743591688645316417771231107384328861097941661627301987251461813189461683410155364927956481069040021866154919072330877837527716971400619111475402312260393358128481077545270250827422538371699389286302705226205583935209452438781335739795954220848353758531533931232697756294215881852688596365993084524658896983050755498602997429683320929533063374915379903184390335355804559113759257009447896087273219638118051406977500164831169241235959483805485481343302010070838203190993551418941518038125293967359581563751842169976518845786032197528961364734050570443544272949874106941262199485475395634854367671505078701852447015978542213853238072324143589057222491230721999715349295151820469832266254028689142350328714703294857011950423067606082785516164816123978108448173342963540292788783536568558153930390361742260097529766315480104487639433424778053992418158319813633848512392886306679879864281329325964735678283602690202175348466112238435497766069640511378553735300056594725429396531374223096666823567924687167903607872436870551220217850124152418159150659892450638498239407600469517830011480104548561460871045468613873613705283336768467350620593735374401250693370002095358154975771222088855454426351645247471776924333982386796463189102232103493797434824626161443797758010063816710747051276512804418660893732565767731285110159185912328461731245613511541986471036697018773690302024200941161711997581512033741179655294055069556801587231879344415209707072471273136264535922896668132665735852494532832787229823915424498162764090801494420655157432904450025311294251519849583325171396558434713190797108525741214730294184478390376251062032487100662320069548144069616119567899395037050366693801159129913955568881578206609892598093512915747535013930497277479377289458367207376789519511052025257718415404873820502339814902242498861366446234901567682100286188691808769292712364943489444915325201330085677567000066390445097826121465639008372159021639930229803888665600683591420900184518935645621456108530221736289512220130398877123158738970662200607355503106466958966446191237663690595090395667378507814595981153084447319594437931921885576536396873174458490880773271541224912907535406878147988383942724903967365163166833709852504172284423524360497284186492570594427074936398209670259016262388529284826192235107241044644597321774550990828355848242622284365192898399745240739171042494275710216491616810007248205719369045777914917014871164178178176715303215059068889071958075716719703741941868974664086851244557689763143439229364260693536877340663603231195261354182869360487019565409065168581972465120648832968527649322553652312491003329215004975040700824797931763074165039274489822298091408464816792555401958602469719144430969095157192699401192830240832005222045858333788356234498348150042886330709540733618106556484046402476514069606956263188628624574899180480143210998067523102566959974214548455840255391328395008459887009202200975357880674414360214502217272899908231955914411643657317608353839820711254964477902370879056083682853643322678181011191236098056497449287374876901717377008760589660956147996313901713624092568995820625524943928579198099241801157822282806373473761963080126328509178617560432764269280297600536807313288679443659749983480123350089774733229683517613576877363977178667463249829035121420121091219887784537457871000428020346826810584699641159340289735957487579897187073029956295217347335026014152822360837062281534667643599334843438286162473839462834485208573289048898646145182255923439023233039767698252919219386110676444085550195115728969966016176835250363520927661088395755134082599275160106200890281332835024184622809903824977081316219008472997913564568982188133333391761466606494081719326274937606252035811321824402001604613934588321975258441984329041902278966937484905762479389018727480943302930824619673487454276258460472735245185125541631729850249443325476381564146563396526272111420787172666810821573779305595259131312144336597488312453432623740127280643290615010568552312505122781770933208622316130024671370418938343520607383735478450115434870651343957503481294537743182445270810719047715645844453368389442133608817841208545288453250448312062491036611531769720080514226699715030026933958794321032247386399176545296529525279967180064208688664708102672829810847863060301050386266382968792124359332559458848342561682885427995202774206635187962631526386828551912526611374548648481379678558684800874673993049884546071021054392240233856537813268833384171507578348141847945765129205889129427311697537384521021532902803156940154778721120029898198947669714762134849858511744337242337832566034873325330543013806040668259647266909201753699710612603837907993079663577413945092089110225958102027638344726932728987696904402417071698965770232721556788630967431070434558491511545269510555182858387946697926116601338551921560339821267297139693255961144368144252468584807639658930880624665117899621118076918526455503493758233399531575452951800177079761553755282982549277868114015471832802356733578527124364452328058509061248871538462592803493652669884162100759324717670652370286379530971339931311080187088118844609608177640389997111590399587617085520367022626249680590143503057984336782515554278854059995613790736929408363630731467093582385959827353695061144501381614167269007149315521676048028380211192630468327525910901761182784846497218337819581811658332792815465794145676190361318365121575102747389299175350435394422144293249255334355713664415427004119361817565816152585496831836980618305338519518639864289182296011799991571341488660833709693124592534122816793870160700995233256452715424575842580593272675937590286544456077936425505986672947566743262999590285306129225238127006415624048027885264711243040183532629291978731994084350090622599379359338651910137081578170191996307946277500661036151292233326978658795591378486465323095410574359952830503206754661493834688942430976128065362478804248988348039610557025063213388366940512935701163700705225296505908181553893904845361934847584104298417722555204509379313192950308891812704570807707351624455977890227803269266185779897254844144653371906359286576264938571908732035872099629895064178408734888084578766585086024437119474974073631363129264118153936533458357264676242124978702101833208100373423594100866325005288317457861245984766877006935358492583670007382666455070904526716899079477238243879789064683622437696524681410518999886178874463389496107832314554969397123092369792485929069617179395488037879231872389784351900470205013034146646891823686566068057569099277481644155065201221427889090171823137863207370281828711543885596438496938556592626618256230282047754458009686628490171418116668292919655515662583631123301820522443532253902106809324143346058687867241509088573560346686331670833592457563820448664105860672226865950346408199024786091563855670658590904286455285431915885456954636524361396635130272120772368285806334628926676627301778840116921163899569351201919749892539323435037135702515449839205327559883098064827915622172013986964323101312594291067373492722283178767487856338790307062435405212396086688598754880076942868418399255381434944932501522835578782285845876453528504335871346464182774280219618777342889891320435927649390610105395001897507241223359993011762042690219003837467555475127466265841775655697616270188891636912859557073059884053970587828143209351704924619117553287432667248714373590747978142454286661435574640151365640954207695549603028687155609327302491968085037051114665024006884872511319675257622717942362909462088815920447075238718170195103946547428560479580314660165407865434466501606544936388237749334113308570326050720579290036871952263111033710305705984510504894719613559844880404491012667818045515833748453714524209371337148631369242658156331691437150452654331386739664321205432404059142705975994762150285543621353903498652737825038875613763763533643900089381565991155037745632537537356318052776305284393607586894510660094800261858506150147217051705571239707481852559920271137832558019511420982932811874224035173463522878771257476772694653513951985628778351889401023199697532538886482266350483422619023504579439457285277012549086401336062070518411710160554427380496752606931545351544469396469422855595697257338969169114054919325898849064812634437125532475807472793143918463909241897087111376871291777845221909851901225288388899548946029067683418125324533943242412833666711641140443612229918083049680043491242948585276872919243718204979659734470135565147401095181148789689676205571101816170984999320158634222800861145653834207490075092584367199174695602235315964909221385764568776323210367803144835791225111844456298489362589213095619985112673414954071037033920627962596486167543789211022077192027362409425333530155709295059697557210235668082661495331866309169691982996043759547916359506414814133463059359598418792324055102045365623316094596890102947323748785066260328812151056647828096477178895321301186394704502419005048768057678733207592303401102700537196136931302356565526216893740722512742356846614510908124534501483190973426728922230281575596992592921102095908701946022417655205855809942059228216649929416288590292391725438034491668582662434938958044093222406415774186844677480308164988812318514707135540610684933326139726881835098691206949268533108259279073235806453887981333092183089932313421010166151368578274908655622286824061882672345599572371118515418243703757299529098305622646942704099095708846693869800727251713880215587743051559211351518034469791063584197177173476463014794467151157909100472767324770177228286184017221343891483440096961837559072621194935045460174107319889147899924105165775828823295654509382146895063425860654111915295674242624703070765132968539518423730000123808687966225708487482898842924569964792974541239440137120790601910116851106036657652531831137651386430343564480555112830062033954576254174118355202030413432469453110792859297602483106557586329124143135757827289006504260996623996591668069362099376745772472475555936883897804727755727757219009512145332327332867506309652220946989990343531406067848099844423709607732439681253783395613217703300240908382925087947320590478293247517527625165979695346137609047869236676611776111980552704596130974395478919903106533234015409314836980348136053783165652995196794243219180098396807502219518735773284246005151733237340226174603799454615943270467695023321501991225717935856227516369191810583585249797178876244175880455192052212414653123986023867483099908921780262695266395617538674722152283033720547896993985279484553672441484475403820674991361887930362267270407254292249147253794640947861470969731045545681791884909057671568923441184317694163324175431503399877206365563992813431681288892263306746366560063632991733167702687568320530153087457696270456775331518578291909510773648953483688840387542395671433064241392735057571724923432291541434595870894339537111797911988725577268830657253696562773450628995590341629885895053905999671130406179656497530354983967521240440416244567054440585771270631633702894803001436690821242509928946531953889487179234386004629273056069007093524843158048823715508850224221944546008350578066372818780205470903713080237296354890394798451175497504613177922561737695157102104670812927342340700808913258615455790598491038220727802090144883428682719294424854731006727521560291461952832623027487040260952534666921067059393022327806075293274658102159919483192514718546827283285695092296278990631816948431386457505087602947707406531089936870329683074027681312879342043138128214794136779699364714030706019495157204870324493304372843646847297779184697920844051483490797296119174951129733355193578509330058038088775278454489575890243755594947857785841181690041882383824227251652623307562595674657957670638263475077998712867187927175624492145666549148331514314838146360051028751209112810424266226959747567883387502802725940314518311627562409340711762402443582684268030548168461948639125535211789378262592076620739557759489172763985213629339097523600906022154929167360331543378699045285349895832748545007959841783721357774894466588864103705383987458729629232767930457180572556520273118009385596024951595761901409995972916767109446613455795299586045081991686686655967582387673480651576657941666937244052857317671297366620027015785172810225194121785202548006603679335284311313324582562073090964038927945786050908587223732844148368953506558186559510507656268419570435877899355231631690612366581399570844803661494717646582001011344175186684654353684953644836357397395389130541337756295724500031029990195605252476270493399305375855646665545080444560667003243723658456336158757916615674128457937903849409705053006297770209714183003233602025455784284571932093441406712264683867126697208750072962493859095244615811938928095629035526941782294305717318402219192630710521098737915949934819159027654848357572271058654936674668362475530446934876740904931521619727795589354617878961114235384374369721490740381590823020773387263211416958085972425280173956418683290520964984772215704520952675313285540671167167159657461866773317915923574104962007875029292902206241394889032157978481426875707583448258074432050813081151067317342054535581001518282701349908381430697023214070260523293930318130465600551815397748868301114035631727963798444794759260990851060902467251591212688418739463029273094667412810793907182750904929109576964699762842870304066625717321647898649587941109652158239197270212767300368017770839290918264446609758175212615330255643577938074649592095480619588513681516235118405515456004252171039804957027956245213214633285785742215787855511150377217164617313335196395772065141343952226759910740771196860119676311980955116431387104931422087349882142934405657166196903764839641940157305556120446506336183375651383228716985915575997116110513659660538286914802845020853370027158777922036556087989602604376237791870193934306329093514433364896468107157938637238924888684235867401848677950642423474991322385708456033511764853749965782172565039986939773373643435889801084855370650811653642759980344480368406048016246278891187095414797807159760998715874325500515524935247227229445684442673318114804317581732271456576875746183473386251625009455904529914057780084494011009428896365680678079686979609876345154959709434543705755356437668096031866768876813139883037581637962062641102018541757643404875932544328701423753883461445503983327806255949398051158298781665645122606916666561181902135047916819183586598734500056937322682730426223523596528473899652562550447497640802733523730164724565199672850879827241183631350596484276459228283919763543425918246083912332650419370415756031349449286995942463446765438427457730027088212825825128882839008454931100638876181603600906470173677563605858413141561867167012298392298497747772297406984595875881288991854388588554747326049451838077507308522323769126927689057524839402524943310119001545773618273724485538857452033858028358383543853032933212374516807480709162356774439512367266494758501549198022043719155834149920446916639366325479237445463908357824857387849325362170967433278968750563581384948168478575862689532669369743740785650245704978180708846319684675692246491586249287145329061213550134301374525199281896640308623629977431551392421053104374533127601861264416518704068478856273534272174784961945468621568743246983270009642643758359808720858635467276024972675956713148972314225432630272531181505832822857299361316218250971211363077624916562691679226748058700471528061306951148839791497148392179946924220241348215384653684485891914934980997997035800420845178442148444869241488893352039946483387977697753709377636891185088788102718311460963891108640597281145706067674119376171835838893855521044063152343046977452772750257077510953296089422689535982751690885995949739806840898462704205262309723583324664067508775578967164010294408471510961798316325839028842401258103316667442881245249514946396545228834944772978714351575671186542710951394569332016507608011648705527180205768374258750154527472327587232233136568801134483879220037396695169667455482267368034711339963754991398700468786521239695916740693930482905765006435021754575021451326071216518891889346521638463138246290807631064575428015009899698304262946188767931767111042400770657981686507528354837656235961606456046646675717001970309988186690912365661383027769959329272879391803654290384856213871128975606457650272664069011799086263764993610803651232785733538242176433033234168577589594262813093689639050100751784996795679328394089633445513570758702096514712510837103921134239841486481766909465435603177656119094626920908562362486526840208718039999154194320738320475730408452873276190351206535909396125446064678815107369115606625388367310926527210287307589352809129659637513902133937586684315306554700982831885051830795840357721839223124746462761692156183737024117530886638181571179291607037728067824475591755889603706134630297935857733051386435325292306511940611703450932300086847604761217986232474642061565606547724744709766637345324098074189920943867249823757973307116463602954667893611815466657334653318617947485604002339909609867274859159725268122675121840331027770224971005494534675924798313550772099245255312806256913614284349074631387002269921947689518582348636231643246857645766596549431862915119257195459962042011549042285440556693806853002953382141092932805308047233122402963790947274136833373164959381727167878537360923461051304183449168202977791790172454597489218672161702394013315710522551199113967978396125488205009331704612697426926128820191960333249215195866198304692491629643148608083586583620350947213488246804806215470266231957731919494679102031904965193291507002075390507145592214705641708863840245763113815223186247350631386460141863208023238075049234985721227359177781663046669507711344975405665658123516722918037675489499431884812937599816924627949140976901746790384928465682589214197595486688807181444520662175641449461612408406154842009313997530235056143749922509993776276520693658278312771709175441160386835155450608072104989572532519214134828082902359343204572007026289159708248877736703245201213183070143667850025931235607494994186467599754247199074068906816199034901470348409869375985318117619400372937082930364300191648655881654514821071641665957628408531838421975270423000973435859311037061558755514079276506298203955673506829598046809306319011104178528502347080729955330742953580000679291708174725996183045876876115359009433384891845626390417147121449533037113297737128104359275794140967208340796244641198213493697569000920575400387619142628338385580250447653990730188333861626918799744269658884091281553788339282719661575599093046347265649778233428193410656476483539701325504298586132930101849767735151209602269805984739302927018532964645049998818259802291500647326552320579555001127791274279383030827625617645408540561761905658797311651566276396156268074178059839939967259918716891540079042470685711180019411342416641879157439351675847715409247030107822980956265743469811575224457390177369396515428661979836628142361487216448196286558147286977836550728122936830497617562624589146487572376843996954455511717269495000265407737256781490676578850153378777517220898094812695479895959428220016992781608139962680498180732335531316394999134189005628328027733092664048387268470683205992384915543760432874299887420816491429763591678224793612249462911882590560621653588004994631115737274036641686724644676349817175495772468325918419409764616384728995668513843409141599895837884991786327947759953993556162481670200876527696215210893288515144223435859410694310360400016502039487467147790743302030681853071132617248826958419831500368999019443812995567515386100104085602258980352152708873539442396544964523020515994305700611116179862149339170822142244916819688184557129183132162040991469319466366899163646106745900141323978898265492782749228984592290055639719717281916689835816247035090955624988381949507959509461127764662810030912998007869171656839820581558485006242376298911779099910221553087830309903939822435568701545301865413105862605651971981192032869522296516499708470269292575314881964368347477229559051096777594587317855362493837828198968178003283613881904879902340717316284945122024523608732736219354060963425985414128135688186928274991045065636893693952792045984545406741175852155763226034883779063064462365581970454350766388424422498539998106783191817744973823396507531118596269443908632101957530682756245413143767409588336762850888491596399062337223812621043690803993026576663942357491920727649573821582457146298696272014807530569848727157573321904379761723136117762049603663749979825472890615049143499961936477773199368984203361050948805552560989786122584343651113741933826909713099543049376091734063289947206583325195940487551088001975310461732207886427094383391923452720478789986347900284610607596082812158380781940305067899348420711007266550558096247230489628666175042690423269443918124450350714711737938206900912413378293328314886106041778318864877789456029352487636764693919276807275732069991570450503100006917951307678402852271820403489625232397320485059664666410805257249537644292690715944335203874121461240415038480353681932050313228840400588928954852157263254303004939777443582216981733210019291199639454789341351224359468879707078704233814188970661842736418851009874243287407653691584907784231870027373388631773144846724124358756048304420348923833213478322428197059560286596783542043888674391831768127504500673291631526810207217752332173029707568472992938726816956234425904556176424454237906359543691069388188630755968244436081333722328778431917935906447795999026809263422543704883188643805108905386206631115816650919540737727319951056489154479530956862023212020771624391178593647180014789661973227961113152969126404452018078134228743421427095665738745662164811947216854797508142800045090146988041688652359864932623512232841602143893092260510052109376510470919245894620730896253611300312401038162490533620015248473484979485168328417992888593127022116489199301214485022865814494077466264115774366259588325126898655898331879038745631497362535186915085716884232885028633306542848489365103114996209329928106430458959094798016144744353014942324184271232220499047047405052402009188874166351828455739106447240803952416302302377671884080562806845729331426294864795344626729103478019910081225634651391041311044082728915226719757513998167779657009015074017795150686439642350927332847881372983489379345762880320035492157468349586643966841665985324247826105441927480456056107258841786876365175079611039514577268545730436786896779153810025972316426326871742378162009517526691004849232706030868474431737981436228293844391486894677989517369564252618996875330310329907850935566540318935167463505773575816800064352837474941310212058107588286162206442569071068161099213150867698024061560942185584728036462091905804796277258078483397597523150156040432424088122079153920985066099866822413714337715653157187431799257420426796565518256571994886495918046895703866476457219951737525232485925370439819531569504922253251101596128932496114625568050787924984742245663870475819211478997083545948595970956358147177680952137346826884401530247090499062726550381468444103561181169616214822561211844828948921860950888705660829000082405900176864686059231552669139696386284245833948574037266467467694745043400547795539182165356697227223694658822527426648384116803209623653413272620057982694342560755855174650506109762975985467857333679316753475583518353883992430888312853614914825151938829415159891691455066929519448201806118218025102956236470838390752612452895434907140370304258917480946211804843429655583437781709437619635521553929936866124046067474982418751055545131633578095251969626507509108358305809828654987869697705399246543062213564799559615634740991040291755285778183959449997957760745729343241399594584273472273295616930871207910365503389711423428141428552625005871619279393990742378054398780256440470640566120677818745318289460949559889757968322929931737983716663813163991362800117761270684872616720925642022194522471338701253443370455963369959829951642171193775309095130339064217177732552609660133333683753541458090829194482724324401329323583121222103362627974671385343764675120299562666076815198939530245162670352386437094872851805928074432238244260212759208248582344871205857098207046859193265741011888861917688300948522212698161884245020449139474461586691932929063421178300650673878620701527155111633167755036650563943428396536475894568372706590339375707004345956225063444623790679662444945802249486716615300451941665010867606438900463479100561121345437111585053372496836528306334072547918916338132851081578771024482287245981577495916743302165303879876651336882950068127859855350003632149027309178582641753316069489249706115607926161093106393569386759691435511999938376121034601534498006103557443811356935055985568098613194006755108708153100283296256955610093620010596218770523392658216948313840425778058687959861375286043227755594160119564066149475617597459127427103763186852171390914389538847629054442232938258528304946672964080251112418633835649257308946381980074325940709647025727793658580802142913790419227697402843812363465882246445895903346861373978957652427921445975667572540504296549870839184811715732770090206378204643099676697080469442522938626172003483191569591612152503115806814706755005819802478767591578337310172400550311637326371333002314203350559582743035378694839610979110057584320589297556274731374563806014215488814136648093098198926386077253125669821967011951667869566612413454076490814680678533759628256906708345971141008663404590009546292955234460664721458490163535219327109213859957098082095332159540797882511824373146379293516628315109193196035042804009361301337134234010645760314694391819704913987682444587366224079920316677447813823839855891598120332437787204145428040706749394205311943735476651575103688393068087708355166608939217379678048080660153191126370521671552028120574122953336983411302521037585303330647474884658581382595664778163500019706187936507250026276744862161380199385175898648359156836467993052250287406202021194761412977978028076641576978346819248243381543888984228083966007344452362830456726445837402898952767808770368146486532156084112863634065984783752698975942636253115403332976978278171167566735823616288913527282721064368559145363419437104723788277466736750807507908262989155426866023846329654059792394728219772020483821229288955505025509475645293736438705917091467516425694784538853669376287079098012811437454767532908611954852995629704444067495578313924834659389567776326186865014469115412132807279117079660449464721572332903672229693839323400004312224805549551034665890188100489080721608509118624569322957104944529837988246888954307406590927097884823114617762556920195636156476430857268611596069054947947374283424797970649327085279601408473270323009406604200726963868039476210531910645835974665370517055156329283520915194697382390667611322025594782080547862483178342531411745617233063274931474153074557272946643155292033243307932593162662289021874000939813174601154918481917563774126268407190633738823465774796538279228985737565184807129036372857819377931631553696422321644176599156121110607881213214963205280666530751005356684870979471760105686432893693574815869056342081791301182045068636334900042005460363866454661771763260492987943082541250076393676331563501451627546417171826255520348192412444731618198508016436619301421097580440840296977965602684887278713716636581452332914129659967081139215868432038011809137116574241603668019799869171676529782031856787353898866136043121987406389730211453099479523604080653489545827042783565702598743310307941952146980424765734456506540739807768597673137995181392928539147555516444687396952536035656125696632203350284028121704197486698937011005336884703527778734648114656761250197151604100614283176523328774787834759006226798459681182002646715550034202476840529175495763223694203827977244192145424748540297672761245788294868852862767550221218918312097455616671095902699123560636664737045800894514306154855403652914606610601879738059249018913915103524193098185008321858886715867310288768702069899052013090109234373394787921962178159399483523792633215672392407253414444472326345931208396627290257393843320442409401595673065773159524162556872568677029441932923745574364558974856478916469815727335997390103577288501957124985439888850152649515561866013283551083552032306756379356007584263849828978077239478557821935251036891091783238586186999521431354906886212940319028406733652839370643318572469113544970540061458492715145654577909887117125733451422025341378927428760910536796172698871836535309909834295608476186117503856848585612113350987748811924261222044213477453620772778710741872566743347131956758027228720462220244839451504153487846739442119777033178378010994115964083446892677769284814412246185592678400169798477284677675447266813413517502261393214437220223773378010718051692683289021717208224074557272246087760626648727832844309556313753834022790931366843597162525781140201488915675302821103178423099859028940041710860303376658514415982341512661217228519276805849373050974382554254093783057837220954753970294641847966878318084907617879229860031542462529791817678073150088825433231379586122770788068996286901439813335193788474967314609459643153311316216084072409300796563579000452493343372574245063778261553948195558308718464392838427331566280608934239614038055242475817357637392355935298008348513724656182724657283332983357372965001847059569338045152103949494080696966676018061220634052548488770129553045732361202379376882952117306277831185208608132376473554758630419305809377793301273445756507705269935818607451627329068954012629781485993636211556804810915529407059706601966554030176859370478899960231901455367277088138260744231333968841271355467700312252287602254619924088981493004395233329301174591481660122558132413489872746911336726262308408535518067674635630256465008776134750215608314194081416709481738805850678241656607223786763174183299894376298148758987722052559469734647545543443833664763698390981396784324514786258174974293954687023621131019954448876818409812785220329561718751841778887074212454376474070555975537044095108771024668582277565158571199862750192353151921244372466689590022277130530204826872506937123622001391351353892921525406718238999895078638430686593582426795460473204393468334429813860111871936771904768145118795529469811147225796284805953426530659567646836127455527243558121872887645186237629456254388753452061462757802416176911586082036681482204761813026045408095524452885230886088468891506280062132272275994125511931664496557219340516349135488902648345325392897310286544308492444054324971280488344281525006323443594555129420613533356299404503177454824057020612830272243064884491595415863819655308627575594987510960008258896668665175850440155808192883381338976000507137812156222497409511688449522477539614357410864534082228714888214396725612239088323186619230078234608414546604705065961931309354625938799544792659082444711551402257754720217074204940867764608590576371645690936219817141943861069269832528740416648580663172005677800777268409107934388642321049530338098167133634241919778548214516505374125199528177885791722712853872763457585635243474193595262717572114104612918146768793835627432616890992959487201761812281087456410688660788130084395403778467838176695713311494746638538073780889469981210964561029509491919476349658360744731676739782847929704628901697817959542203314542699781582162614441820876098398769670915833736567338174039078015518361585124680744520013757614169034411800720446636233775137914504570828283798131405716621127267322694318646995670646409220082671172006730003159233095698206662397207246064418206991541774797011318280711596148974694594916712228177408506738012892315713357731521021391983084818427874568964665970467160723098126823132257834307345508972134004234747165221589093056726536538325647580411938217836704029724010291249272024433639355518424541591873971555899768148454467354800412016557344937295996522288802407136060490173990050149527513814175701096604353185271463232159916153357848822084984854977457358008328233557438692778246720759548046604139942460603440173930421675355818756533422181328231305855881596892136766863367283635005064271092716717045865010022514769794185517886275296283007146211394461204447249002231913488416259814217343712884496029404670583763844845440110832872455150637633161520904007228517376083606312751125083644662445701556588985126515960804163551094674872266286006102710115406977583419242611648895407064182643193873459623279642065375477486376182004293722062828124931176239059474570459315056963847825029320610060255377246749481204366111654535734817940145133555821349724947672863384017884322492560749733317035513014750977344643115954334213324704659754997933043415780159846621402726684563611290188543895767985486988241363441490955756541977437123702072895469595922349576547581567271702632754885815854971084963771061119135056385003006525927952709666110556072835681612687369946711847695497957292104592669130272651416693829111632362461846404964934613045709622137009374712437172169639670049217161843236054378094483477889561526065266820801848856312170810891699978995612734695891551014757624777052479084017516778057883675741358615903576738081038434627407638308735899478807708072271207366280028615359040125548291993050419888857495916498385913550866530316080914456898369117467363995471973650089129756272118068126747308725289684965285145744712459209678975258370193621354149408920316515936500392029081274583687575109295841505732803220354687574790656837261626930838147748893384107431741500077499570333080020670817369326968947877206405845501423257356484518312373982619778648354159451202520357676100420179837523078633038704273896605370836002166013189756239064774970470133237276397699787241369779995662770666956963440451218883911475645921999153783084235476941701036361048652647248059867848702368602002694495421260204539672637132522990650866760479158611862996654260334858443186943629560085958426573908378203617783731915041801403744676980516404677230484026631389096710425202122874092847086302703000513593961549170075707441952679752504113419162107695312170524658046241491836677213326280529953731112133301637764270568121166120274449462108304664342029043227341760864568614467286087857451407118395975358876713694249181972788043020826294980217438212387883372026040484660065650210773202972425807676500919703183099231537787569997849227106214678835757020123041482408992385836564030160572917406618164950714849847433113978946154212962017889880401947725775559784147847113010110711354899987998853801190845783645302776918676224927200947622972770067323595022185800401553469251059228875196781486045595210853486378782716148878905849777144365263289501928842037326638379302946929939767276424368033675072263622487657007919207776803512635972301004095679968638580097104796881310420918666586298730134368334195927230521010575763651727724841609553652397516666759108051250587291243542740994762435961652258476866804423969890722906339154876652796442773582398383038592823212723217289298973156405044073658509163059301930435356577704872138049971843810415852360133977314841465717297839430378877190930881798476474348972094010508818072432790259290873559700799720642608696425768315357265438136361809146319481706904587749418094760202354636895103765181284400505817048009489535107311666320790668528015209271270097019778387809460162295415549365694594115032028274018594179574172169280166504253064598736278180195783927743069906352618253340064646826037316278331692366215620891318614085934106549066749394574074610144757188656341888256939486560527545135248628144100445562310525993777326232396881203758890419309108220495664223377364727324436674340948249256783885148857448315067786033298240694181677354703204053727534906085603725507312009534823428251967743576820830892360999122927593082406922119913017134563644513050596912132576390067568610081666348902884933750846515373866195869278693071509984942003707497849177526777488613060368466579397400240029357517955586386697336016946838387471393305595142377574478623069088561368866237065922955253228298534863132168903320933596714308308690819189526868386353219897823143078548733171342441295073024056821987274623186442599954972286218685861008542393293539420348955525347402338507907479854566067209428808481253120226603746975425204343095822627049528412864914684832119724060299670553029909417912376482067745467001685180375580783718637299529675190111803786352392603349565168913436738810005467009893072342313212763387823015865736476637447430472202831981355517650520739443417015418129179245196414541504403203729991871464131171357099844697395259036721563658509291476304943649902445470828679291519040590971073365651235834157085186358005046377358065713735464158662456879495451312093838969603782864709006146074099246984641009620295483688781675399076073645200954171839099658818035595780905739307762180140534544542285434138551160754097031204284815134447091936573832805866922344985726346600631317831004997099579009450235696469138053144374205941850376475031052235931382289769885495963031502098382649622480451821655703619878418742576461769781051280912491603876050653132221374863991990781537619533378171532524363436706316738662209228230657341066223668488004472846920968387400293514518540575315203689392281952202045654197214559672456406098999221768748722021560902490458261893401498684706245120079083602074331336064458067318081463050339445693450035392660636546324877271502865019821387321004882225348885186668310382371808243290642220191294441512679491987929209670874170810866996941359388365358082577026178385026910140489696634807704898455518622591203142028992740662196043801935373559610688660958431575528465617271749914781330380301550393315166090010154057672103557243955883240193380925633592787956735498457531397686755804688338393892827919289711179886065036251501139012326181955377890116812528515812422597244470548108077136102710684702860335975590947632564536170111556423215117466218965809329855133880074490510175042245814493451585716581209357454135827102240183161975965126013842170231345120509022210403573305947298858859693993283178203741257558098371341519387084554278452640509726575432413682185113661385907304621456479606462544325869125615681128860957536863778848298969826789204371181494911211498883559761342827452362001584480666944678304950532130625342568991557968914397576555240710565653463557698247943554778275284860876664035765294006692788623025382437214811364489972736275958984275100842177798353127383870506883847727786368538615970500307457292247353788169478649841970606323856636393069193368348567423566422764959598857771220147199732614260739636097115241493045828297410162280534546354664821089571060818569589075929139875443413147506072311100012236179103187565667664354410087892775168114828807141239263803420480309911373578887927126683360384947393545600492388974429403497660733417070028679740155635995278655305231276325843473089611418044527882162926012384657986654478834066114766961206941503820344917208487382828193978392168692419390236652077645834122061630498338262303515365459137233666659678622872318775783863261535293556527422797624473161332173758880106979185414817385527937429111990847328482504283172636511923313490036005900146456269587527002367891397441984358598840096264218930002389808455761304914994433530862010244005660970882640960140768999119608933176914807760133823386516576184426496693656228707516405316040207879472932976932481194833918306785481150393183181848813377559913417687963143816270046721376827518499639779990384856002134502281882556719492754496647154222672024763982446162888124565961776363401091534618513509202452186943501077795823593081697231382516783091233956083769758297628062767442430840927071896289301982356549141086133593787474353939397967258407777392480755652206338192915106707794302448152351971573512761136401896157333050585828373250433323900265941199215783673007582402387014887054400107011832204021421570593550180621228850569878685757425398603317383285226120839237006056682610979557872763345551952000171726048464419706460975996075144689258346433105396250266792964191605432105556794909232625793827248413018201976031643698734326822111045968425169813311809379623832318733766807917190476855092162303994070199714977637050295684469367032134939725716087668833133758230207853870768819104183497666336223579536577313045445167865339325917632972992362136548016771881484371657233879667085641918755739161654665240551675061514770322637790489708561020139683221173055318636653583791904476756381912412317030476495440688516829173744017990513911572206548623565446259966577868633109248157376107240912025090320026302244665051600566922634339420064610030118700400850361582901939078536206111353863518785492780017018611252095326101491732634477555607108329603855192342476316792921669043693816960868248301255699779497577001636067056837831705776205640513575810154175408446685731710044523041013165464346283661381796715703743055161858698072879034244111094236935104598648014348540908739349882731074977717485364151866772136120282093467314588803947588869647817967137834496289737215057333885455195900599703310397090363752750580428137929312475427579905776590107788863196835823659597182188783110690042375339863210600219023027102389468603853961093289149461327649665487978784177487029231527703181260709142108413018993952828179030814320662668523944028352972086031981557137304615484259826898469640920847501874111568484338193828924200463835299997956346018981338650002696693899199063399848831172908537502121432205899993069900053038016335874366930163384504388871035230979100147646195308785222900752628810212485157084732675827153833081676428626430668311308749824789209238015099999200874834783222216895613026739024547127518338368905712657900157272758118526731387405022353735763872737412126371876899860775993050403154605855249075722074637951223715745677545971864911319702744183213005566477307056938603900898241688295451935047214395723631952121997199017051319313584667375066086628997680775106168738435037145098778998831854030074397031326264384322123539247851775253415784602419487435659952874055669036210872709738954476329259806834148108471701881124402004017525947441526386957685376012568786223206874384806478439708123413904251337133019439658101728860846074234262899825500408985752184281735353989231926366972194363054734737739803349951556459561300339305560996076469728387289830365900862546896625875159402379521478802276793145413733515869972379836988239301706975493865082758739389467325138291605158634689750642078978085519903973226992987224258495556102338571815356475715981705861742765115184088801736149017788439476813280782103635588214502636603473954997361972016294878982494353401698068930681814648230613379295556524467356696364337968817257461436839741011716160004864781876447228999451211007537059522700075542564629304375857205476990344470569808246409534547918599327034617398664775794674466408299111516655415900198647743700839802030391041364992540216809120925531754867524543579124195149537106280813418944149963050734056149348557140921065906049650956781468031309689730118617333451829423212825288282664222812623267811456420288704623354928464458848439075959514634494658270528862254882245168696834964763521037284771437468112440187153062404543259028972845751894995701865703702278228163297730670998788518440816531351587455585257944812278090792520935026024053533995851954007740379439208962156820347351094031888973478490187736252294937473359942608285209410276216135941642092746088142935956151054240951518444469122085483178704577150955845162210748405235188825073657875894619279935682270300798003438288236652870149601552064862822504270133884887032493588818505109134359267623962913398121735903663829909656108622572605513697885806865162264481791307274655814968308977998950855838787257684259193177829899658592006579568192511323911516948940064378776553341239437554500774622778192597343799031772934915133013295345423338277474796512360362828421627347019423131809856005289465908416314014919190398462898038474439971020201378630349214321719869395609834164323453821428503563001249758171907183182502811577436798918824661757877667361498064240111682194571159377605177751758940017022131236173173121716404993127519949678484431541791093001053293243084998146463380469221747225985377205417660782167155572918821535355165980502421897820891312847189227188549465892503238627056595172288285612878219093153936097669023882859585667492613040316076502952004044779532378717714537185187868108773586765371893559187981568169405616672416109424949092303053012284106930122938339459561220840405120785476204939413923097080452828915562520503289719150737009201944351230888336540502373763113641998176672534376851411481730807321506209990502501974851310016158057802631193359293314351768620589542245630861479894720815417649690971730119813651164013823880886186774419968911849167840785790583426152867652877478564811891693532231654150632673456522730019708853002344498017627613699339299317557715864639962568875468826133174447214610503193870775257292034961748431308655527704823351922649584189738524398843709786549757851872522955049229540745435997383541432002396240585010363773178517036260974651294124707991916418174769792685612458490445182532369049138408526381448269435358489432872636554678930367438350935167321547742151628068003362339032186679977294947877370350129467028921326943873657114308720154447564411926057762298967088872249587009394444091246667137086280570582330758053109526661153960349364425469100127856554851228472679614336999571229044095808502817171424711641928229350591362763714108256971768865263473743438435608111407285796022033185994862069567993837785664007518245677543273011895738799017773885995594339182644885602313317869900485494767013607702244360094617103541264331511861072068410504430045606069767549344156826552745540728120966215694660185687647340351519545671656341922499618780780122120961888813849734860252994608709576771351514222285609527505459294886776560770344305667006209416498401201339175031501854851393976665555979089175309472202798275448947373529857384559426809304690424440714021340153782105893608017852987870713545086104344942711056800141987735151704845506696413416357408171789332434391948057368773956717161413447096157960284746245097461200916139682266032514575751758606607138574556419311905478801649498896888854522346387369964501197599744005502235005371526918660789696007716376887436052404566578403661173382783548930274951462147743897455878316247721729594802365649752811555417121394178732783239118735914548812451197287501400672031124241773852048058607939130612008548259506965405912597733394213248307786250473971764838345251227066218866610676577654938760467001586468209274447514863745450816321930350959690044810156973668833846187304168658780720742304447158872320173208676740450416442464129077873830876945717961301005795425602699671910505109909602624105331142162586222043103472926046010473072051412371864858975819836105187733639774182869326154927444372640401320602433421125886364053520387691701343071520834071350912609775565203469526528954837166587268457063853897583451807118755243399962257992889423322140031428861693773648031272194097243253981457158589625824702267002461760087840411419270443862283827387320260141069275667426623763501703030228668015449485299992338472788394491143828304745822544323778049995049029229891743883515869785856187298127408223179543471615515016438342310876118743354393180187635618131556107597271888035681029625152330836637203444130012950092942264286933096435770091479618929501739041841093548698859530597968582989013389896496155547836515469844649727620691353592205368570948435860843492826670277669439776970082112083440378992044956342094514457081287369295019673281267588887459649190464640303880493773880137840464226805559568292817150668915183953257352725194444126269361960909957316319207066242729322673372853671470610350938176103537195937245220813704043439030281755174138233262839055947336833242890884044087619975414503498679555182392764516435497945445879461258386236243574663635801610734438771263204805799372193767868616308883267525203953741066975682396485045193794574315924777439533023554066948205197062596580372971284789673980052987134935709708884093586746261397313794704073540252242720702524964786066700496755130989699810978044823479955441325733243523671368756560749508995305263865132495708016580435416649141872002583448614476891250151488412678674376312832427813692465453994332767977589831023777737632507753374213722596123373063832469621202322034536425831552298579157100066210606439020947122121015026192242905120040048977439878085003411062961681586300807809574633930212188027472218470027784256489863171137200071257430729196764818289777616357015429441631377350407702352267560240486895820696095926027898875584503531803971462705570005119473814171703713410282750878675291065924711763924896587117689749457659277998381444181196341549106041047000916246403517316187094743282204968648445268223882912917983933647046853835674872370233410928584352618061384394635860653165034336839863511302344283606610013796105093249573567023978051075903684451983878349965471454387927409765191022327211106962653618337048524068868513114698630488551918055646013978127012425083865086004882051587936218571950625414364258753509438459986886365649802161936283710341112108760618199014045710739464832292885295689845376299899787892893256195383790848454016936722610980605464766438708203139529284938383378618564539989909899263438812238322606802418546486382527119271343344050341876890120345338620113799404254173869313321218907643490601865630320636192142185225519682792593590054126985527944247483531705263329713809095182839289089410580666732335448099835834526378216624518364600500767216187434172927064487150766647531584491316941306508015936762036358089867933931854345948036708095884858188896334708180538998201978351257671161721804258437141847918817144929495900451153425766746317078342264632749152770182330021699433089556272778327766409035435783540273427253762103944640566778934513449489849344251819997848783061041486902830462446117102216592649907865941187719930162158940800555970737357880908951416035345262326367530516160445338511356118681551483498145777845627382303174313864768105262278582848684699969729748863130141128912847600416475847264075057726707729792184597019807708522724687610642670912596074386038967155022043013881724066834255490523489370646867275573379347392659029758572107103073643331922282022861189008419744029616475328834156792903131613952303292278217945507970769323220252598968359277131155945344214729547206756480552192655993652185309169509526811211447595729228677629451879235947175428790756849583204393862199668794983809349644621210895945989413640500828172044103019900852549409444269690960870006832382848574192237492468846749154666827070313758448482154486635987330397982311548337181990910073586479729543049611391941328870195559967094074068369143994336350749950059173604750501465191468441373066983622911783504243569254665321432105571152740465111624401119382368535379812295927432914938486712061651953139244384882777827753959764789776759724477844328441087743591280211710485723480622212952525372992098114189741467524150932914506047883678576209279229389104469089199859817183172634732962816266233758959503414632827924524122332656664483677274895534693485854222664320420359422906857797029610025596588282132232562533272606434958928241767778096371547032734788887215656629547114022999167731495777776438472597431994196622175154243367185361290556493529064862708527058852183713870234515678295806452550739059961183739715274189151215621948296271533445688025737169554173371599588839715403552933733237865055405913130584856063329096814422134210072885573596281191888621038272978023115343449773727241183383423349524307743128541037236411645669733731617623782521682946151032687351286251939358186198371137670647542023306387490961826741351664428870685455807001440822540473092152546938101425794723639069687136000873686369828484762196984899776919986677631457917986385587434169343870596548718372540233070426206254396968344112236696022723278186696078291701514257444287057876226885852036284080760262910025298392627729822868514100373213933278819577627452176384914640250315127116258456794284410829533512280292409844090981727468187094891635277606787939103830085260772287309568765938646168823791106472327321533275040691729126129498018806214152259411724838881055566331841630942280187746778478004085407766796645022720998609552324911030418467029823121019369657390093643092480806482340047125839668542680196894616388955243932656943054971359206306109795462902174227391616048083451299108228246849281252804844478536566837107557596178660025454836949885022116180733793815262606885912976385236030836260507356614513150083564447297250169348572514136160420444254119708200757194436559197635017017822508015526024822637057894282255120542107049166148887791237743604005288283116544682335036415515327650252466768224180269695675913934937768579661937324865295823711183417633693013770421422781029638956123886367805576434572686171899837014010120589227002840609228729936253877992321577942321227896869635947233217483238542910868825351521708285813987026397208546923398955997908730521569132834442722876360566439411771675833328719463931990342383002056252666246870650801896768439189369330742992643878432749327583030667660316549921459340293279266333431555635065934109894265848452838958360221175360923055609904830448515089585793805419130803145140601278186839886012794214276432784317337147436509438840243935489389466200367204849588958213906421987981161296095803544020988364649630887341372061649955985239769239996264986913917840447036078863305089137268865279984594752257899767659578366673148309238528956081123414755787047227559269336185638355534619522570744217380729751943579450961534624545714891730066066785975993243774327092305554544304900129348059541577622489974284368961727621195937608640830881713661692505632494970522333778131735570228408558357971752286577206286879200214046250269321090305463507558682197421082981244600994198525268371302713514447984657095773046282618303431950559326181132172502569795392648012674446699482101514265981594810232413386729564573662427293586068460692260174885610377297861574896858490286654819944568914985106411382825327543827758358763747336213065769482595443730516802314707687435755004219638079815465992117237396058801644528046058521681373932216321944280967387807167089670495295212597843240226097893656588796398738054750051991328093450403771891361715150762858468515703321509385241254581707488709953212567967103478868435953696683246387082387835773566927162368856286036257545968163143530549451030489056959224141489019117016276614164828007974247967881656038365018230620062477251305271675044800511311018226958675167482611208035092926710299518843054281379485687499239562399161127212832492355043476317246433444777931606866260802911219435681804066118518462981076546016139497030987206324376661166832467764149311133450658653615178879302187285078555299175047311322799580533678364773663258215970327432469825686302433332260745502593337521589801500231329845940115665867173563434012861450127566355894573271896871281104238708540450729479931036839705352448536302524581972541214888205447381782204405319199830163138852592586784879661497747956174763290151195962000818254280614182984624191121869010422152326879033275987230065650741410756195971437639317478736239479892803487838796389358956639406959174819552361975378721098989878919923397777999558557385547748862992427197049422129910664420845740948708765054924636863779066254491240526181952454003693261043898666392021203866245035342888017241704612119340649802896976158500957785511315757796559551889686054076865592018853352414509217892787066159588032824512267177131177924079110133192887991340437113858387248606272162316879949954591270114395554648162019310963248106043306294324355040455062348301783280884514658470428110425672548187805688561286075124704374154647067933514283273320923102796680368224302478286278929711678809312132491606652276776421851634586168184073629510291474060807274616186751014672471662832611095734307836434045715556973763416540807356354856886568608923225756483777028775540631513373052401773938272561855599486171562431491268059298152926716354974239339051043183082291449455394290217810645097305674021984955304060940030077874593424706172585761637454308058185436750959555185155529183303500006634368614456492238869952798354474390430137028988507511297677111053626541401405125239745675122976831941879730049349639663471508863902074204552058711901459834777512304056885225486027446522178736277495651609236283593514713210012914315201215695714872836483640627497794215019092250113959868816422476413935931759383668005065954906623396346023016192993845301771758805874893335404621881221683844256119238987080111885130525838107205715432205446276887929413240291386592062144632709044454170679407007421960958087366578629689263837860055045316898321112431241241960636283704900856227308477550420391263664252551098645249208503087363191069677486342400089258836070095082180459081246079103475176910892857888390591172799618660884102857878143020284395710795080939453558185962049057906886547179035110915950432431744591710930255708604873420443075189745966558724040022527846621105951692725203788552403933550587207560192257639544677948913810205452395117237647263196142324867818915754402152192759124211085392198462399064476981651656435136919158969607732049019970257307107615117957939950127336246402138276410489605843965211082125321668103950809782356730382502193183841722916435113263457861604523752657877669944673416153312130310452011453011346212132901243116385013957026709967761452588025658459498864625424735618660198891823483987717174389815082553638558282450968246842536334867156241019644532199663803836663336729473578756626749286129242599591228051271158327493880576953999240145329124533564557154410384586250498132754746242785277261702127456728080245186680442694916625124020309946238279038560829672634454525199246590360842154682858236572354851160865184652407340676354231733014542063432358459466487638328179077709473952155169209298683822402933479343768210563788881541920963926090983359569399249130919689706837738223983001950202545248337537199668137413458707666316389607637392231901938021961008697996565443165190183004908914005023287872546970911239271797137213201942258661377886301235871896531358301888770619921353839420312656689288191974514706033033106677082605268621578577839720485080371689659751506652923817170135462804274774575605733452730161200974570430950319114254005133787955688305706299651154308115969436178086877136446850121706287515767633686299884229243531156367045809431737375855322487555036390492788646152025460618620404213320293903159963230886825990356742956239978384083027024225510744444134273513785820811836124035150914200241800352558286181970397593113440194678781492786114978127398506359784693822635912064883799237819108771474379335241117933130975701859141285737462364968158232599507978127606316483442189985633526359605738197004633609383699602020267576913409772781494959819175649221430809586377920563588215394506511159997949401698005924232841065131781841275184108957552781485058029083445597915437473734916587474859136054128592304755632812204139912718000751096805350334195567585332142115214986073137248957769680639182776117101956455798115544448392826470029772695017117197960045374621621800465866924158211677737808984338601359243762962178606323647227799721299555201492721553957207314232637486381963474079713320592160975499316228828348926286255313715391927252530035559507732701454023650918217470172808751374580053991997481543729270261722671976367928412398521351546623012863098371168755506101998866892239011692205259881441214595274098649408483427977734720185787943900456311501565342326215978001722741705953480418465213926593764057371308816077023356287036829482817259165479474965061836820858639694853532107795332685923654556113569777500779828213291280938417427096123686585531773331808221375871163361058714671536111712168495697896105068933653153760347039311966425065677770332725478525172204952072172979625546713200007397498016855992814965117149693068234281181817421607370046959214707469756040091566539116191277263559862891590634320971485153613548538541442567179844867988932103497102057866215905008953047127148361649235215473642320465991243410580313100185981581510080721959943000204726004687739242615290535520495694168251926430986206486068532436509611116299134234596643770769888058044905054220055141567962667674694132979922264102699837907719725038409603241984985434541845514558390512686490874573295819788844116050457397256118072764533713760540377922490209421703206841165489854637123065948319340019132453522250567843215656551562374906617865227548909439350880425640314208424541786202768691176250065137674464088445027109586636078108944247413180148936058368889281864189380681847315431435437606910862188873478337452841782229148680098854757792723143764330499386428842752950761558909839597085813428732078306206629684056242137098142147121095589325380851105712601448067467998573412308792219666464763771042138069000705318955124231167654774152838478621825971716164974107122326648537748557853738814986638564881562751284714038059869012660875518323959154961492743657799727540855667463865659521653418964555630372688250626852929198247021974890373834180113143734733850248107419323915157472585044392799146488821402100884532232182462605217905126604450325769666016738110205938637858890970678048543431317479641551920628198024704875956702829663192981848531098222391436560421068997934346358545513737320370929624595487108800132522997376985600600733635040958897093469323889713291489802868956014705580869978858433529303651228614591131561992638153236353811233713160412003431167111920133815209527156270585616506991642952916991433327825269312670419345977454140660094261291400184007849887453233477114574759704876181858760095842943676210269299434035002978750368148792889409812797485179361176450879117526056550783767737424687832860720216016515524176123212487423559192845204735644029089637052225908329106590740314952301626495068991268834621738789078793195798145314829181216375407231225152412909950282137375005883340073776462507781401659409080136330216618534538538901200934122132309893102250778016237850701159111756724169806064737702762411505882898319329197185858384292246861329821004947754708571324057830031930895117063785676254919268453571160682696442152826465605499264687287527408808855192225743198508851115517152797208853553917334725945550929328510685018353433103421954430875365912567759279257185450210171566001920622016609145376459993280368467080437545532714444849523389101886553008822971322810951608095997876804025705091773604893257267449683982249547573282815246543937863652947794329919350502619055851888552706947386357083253941697979708358497823743808733021927720605880801586108914458649418503298771604346533719390627332951714019916159658488072618599372272173354705949741976255363717628073516729943822623451736280945792268465641975828476817559450959975106128142224281714125662074334976338745816545423739792847309680800689385699454983109862247599387964372652413459279900209891081970882442225724855082497613822549686734019672931503829305730883218423933379126964832110735560820608955909180517827594681826204614727817045636276236323794108989194466810983858960606661834497891775136878238448826051599992065364096662748095595190836147802438699620696099795717579488753309539444109044590151981913569241467830802475047292048003317609303172689641127442744129374981758982228758797149021959976078223842897100793631216525518213744187896536691193109047496297356701575303495099800638758266996814370244127189301997136858615346863765416792637253142164507621776975093827199259566344844830032651520602172153307000569364724157008735714223613633126117969757312547591761312749624887024194991234595230409559354507807477083154230555344573274541147513054021859508856069378593847895911363726258350597097160747575806999430508391393875090026985241676021054600453300158203518422105938651845579877586950565298430065571513887624229762083249828022169917653975669171032005667341037764162424595597332995594098313345306875399024178098543542860910690512765793968413252208400100613174008657549859005386227219388988730452639093433970808839750107842050287428180317417414728711633098892946720946846861417207383985605191564833277037355564758546270163847651558806921530672811709601533366414695317816641896186950995268395159847806077745077821446631383533332938313817257435782497024139008048015254462960686674142484021919169273661259269951004571648537794848349756665469306462841119455361508253996165459611762418340740458686474062061321069878438906407458617922885926305266813904919570829677761133206047942774288893867561213991180155970679869001231146931134588072510367453572463068643967661260357722583792645459542997664525567817399689135770650780041008090895296881618212087946365752479447651897102825542580738242661877820168124178003554052143389448341162530633241399021693088776977211565783700242870275546945984933332012706971100565227808196295336092893674210739072915984885273231188931378684017376298051549061375862986680200456199829619346198589534592687512374009968854712089572777450960687602738402936428693911573647241150496924818520176553920144879030844071554081447045690191880707066483921288807164103895742948180375740374822805652128713193128865095728557075164347319405446526227299367609817991839028777674045093315897427974853926526111840649896953253134272108915802541196376434915050201035196531519402465526843514382742078746802164813266254253310350285108852761382225441816152641733607771519542272887352919891046110103823788710090678129639964922835225321115024922279092806591098178667780003204893598609782463181543179358629128902537854341385796121510976790906261507066629302130028838832880844445988342813477498736052053199889121464729950270954625254890678750937013781860842138243799601957755331017886830615030716322372452168596666369746510871421491737421025419699414089776342307320563413661560264646856235197620098776885584476620368633135573246614691477607965006754109062227621403395261528225821021121144500977852932045816385764940083481313799911116673995555121323672245925628073443816824877919181389798359148035484694609482112212299508933159835875997631077839505419499967792267881430470038012697768255844446698810448491133473256819622102523410109522870427587096766582545222205422568908725362093417039468758435480569811951676665136238152783955203259722588379416885222486131059542512188079005043316755812439358619659418805132703800300534085523535998756209502885839402181802023270784573990123828996142426250804157021304263488601343081794220252191072356914437590436627616325737663061643697181950616355436729898278004596709802077965070136421196161003769837261376495417333334464752389878655773162974764242136090189541896490780273103541500250516871408916960777444461356159072211598789304193441445206823230325191565062033543739518365693069334526784157603512061280137563279167744012549603811840716653877666557783418583535126112413453343175593763476829792596198343366384130647503141377078039957644506542195577657776644672286189591717598104068837451581480063255074448922644147600480825376365846774476379676644586102836428155310949135626297539688145294800472816247904552665806217682885504246139030902984171544750428294928175803198813349043246419619472675995542042021756179888171373334092837881919242304837651898477676730499895855331961610928137990842803802806451331642250572766928753753832447326781786630096095911192618784542358380164679502926314155338546845431470536557634420883379578692758440896652087416735132162133984487443369261592768743531396016668563685082193153909608869040312814816995807192739003054119221941274921506653027104074428420557720148742389569750792585759675581355003337894190472817096548298618775025508197002155067261026233625179598003813910419560700054592826794815763840230565070324353743819731541540155550695549855691004059049665082953991101795786165180191260726684690614048310083294795033234698762825334680926633252317142898388504061710370819060559106406561575466779513570643683867247220516858001132047434045942379878058795254529217788592769077518176585580166605451576307733775041558065904006569743310577247147269016611695351142430419338098753194898573745167943931384509600158809212387889383303608241274879950760866720229058196172561492090449187403526873019683185001083441703686697074787629085266131882787032639956070439591063280524891133663401125115766531846160848584368780808122969661260654009670793860178998215403782000891206223270197086110352284917158715342459879803325165356791814973613584132473791112756164140986911125799820966064118136848503913552829179688580504314399348215734241527554256303583077638405071702341163679348209475613917965697877676602159801075032925134348019678942438324977390446753928765117997564887112515770270764295808718208106277282220144605657844957351107329194069168383095957059687846439638705072844240028993059413702286197323933280305086206125441917066216759696749597099613151035399688095529969062363978396636420596449240019532091575578812549033641847619658569354343141345696212207637782225456047781664918346470982758020243645002013075713929844779765625990471487849948320398250161502427507454427495993658430501355369526167051219461250914012770192975049455393569864460188726363736263289133164467509669573980324360214638461850249432000895582932844388361474547585817533798000117842533740813840282105546696158992931171723957576615215479555639517202091349788006588693524911436508298280435805396258233393967942257990190116002095665438862738972555145133763603545968071496123938078848624306284295447280914341728590658655300679750126446065765934593153313509086815521538897565318147580801965735073721392583757322408833894583854079197797427032682188946981345804892119733270452535777414014767402130212148892214975295196424655170984886424213718464328940149854604681942990612361139215738265233663685422817734567751819971209114911336329869433265808422394863677247382519959427831010512332193700298816804021312746152150084994267198235862133094295222220622101475110526580316849569690911142329732546389257967492225243559133020061211411451147982213326471413466038048198569071247025273668042819980219049399245742390892734118647813468302469441355751081369265735678239154165196276766233544275694828188817935950147754950677349700881977968419465615408811958189004065653167157526547925672125965854285928188819013755640564530696226417659943996422632904992064468081977144418902111808432745599731839122630532813512788981686335428529054239011713243453834503199723518405503547877302139941409461689217185537930271450409067775135361559598488204646962180001997504383013013854160543686282188555857725942625671817372897158848843387777876670195067963168024106064822515184287998261634285561658334669764042789909709837681512912972976736106331815635994565558344532750947106041106617084728889290634855273779612069679541870634221100702083032977874744658685890620461279862322317140173319487894568685053183063814839887759940410850027160982935983424749423922722552492044300318048833167294860210189947430687407222264425520658357562785786291369666062637526017873206743309692201446216668270459054137716923611070419971982224101097084012526980066968861882606035924289739002181310225276152713908325797684261138371393011887555897633629498773485314114029445426549699806752261133646666752496495786430537042392176035725280023176912850648092205340803937735046762162477394378601986940673262471164029516613610601746148197882049929505496284324968125961699272410479357110743854257840792624054259386659030884133137992521032352893365179860444644661897947595200373351126520418329085932159314254405072935285329335489392206471291387183572366956251767151062306285282895794981936757447592248432065382950364431129135129729612715750406982362627612785929534167780056550863967458952272669411502073328855932758583273854139103600784217693522155365738946741107846258360305103945044750356052144107000109388406854223603401484734851380411385375487044531594840767342728182009651411254931062080592733579634023604454423052973508954302446448037236359273500530858701380964133280429673418140239408444793178151076813100977065410687038132707692514298331641473589897532072674133332172938803200557153925359245169415597009123130538951354800715884874252674280943099812439422716237655711994808542054557783428886022503365198457802503248520044826326521346696491907767749632919443184435034707454506389183582213979563654869882691850601978954735775160603482897304657723053259494686251783779670027984076248730313316518434232633098649492720424653530625312234589756480415740667624675865560404143757829923127359759851026837823345675457645309309478296971014842264902098946442174888826431617856072408227203730927447008529720005461860793422873645178699401249101593705512911067108677333707300990388227410621776817311865281039962869764624166846529389929439531010954067826861859249476329555854991020993483247706521880069193018196574945008710298612330272652020332251256432661274880275808979174434943774505336740923551817750784266696750400896631029362845948043160258938102428474742656314794388472502112758832564631734491294545723010830762068099501767853295878551164745782607935802191079405334445942714117591639773165045409396694534593400500464052630109103636738137877979409485895236155567611347330849287478308648986764693280051679854405322003962281768901745947704295708656825675285252170189520640991605292629392962888674442662388175771400322506514047298043950338166809581241453517725265056967109264592131225258169139770159001091258532267608922000018296959423174276184806143203345494922160968057121122105767847021934339979451196403944862260397880799908696693000296410354861023434991289028243033043936581073391900087405013450394211833736709877634964745081053385608392229994393639616005860093828850640831817590402097112150000575265040368548058020214600418111916225359058366274858619964529820424223089392906318581993052044675310811452928005567661485272957739165618493240793921151600649896552254058530983988210105753579426846736447068292147772871435170490623097515962681316883415850782171125162804678405982319224228732868815011196020202350260815502024642031776768686422891292758081397658296641177573153177984294499790170561108979148616280645587130958568500033628036636110306767949932123898785578122782791909886309955673545652951805687026389464598896794315328839694220025020215057393380505699651238312520546844572524644007896962888183198166762152985900259983139722159516597775167156414047271353955576537511968001776386957181431597250298342269402823355018341341583326879635854148339377540696507359034043323968311891542975896467070815337948974611821368218910626011571252191526710251659247879857856886429942247604303530599243466324581008138944299364784520452583503866431483468836139589483476267189927136652081417069823134292215924541554942583986810652382184483931618281092489140634661983018736569491471585986715356375429390248920864588433544299234546780671034124045496103011194757408955302540930601920502782135066968757674019346905616942756739239836277822685544036414747601221306976273491059188842165695819581426459508129810441567241786435716876472555875096453045972925993060100522174416948601248389222519830234845980808160269109573503843582518145043504452765216722170923146128185810553726171383031608212783083862353126620259059665318275134142889301928595688853081862204366686256633073612850487165159248158148868602392565791209993952516966119031387431420909797968841290278647852166141338895559252967578726207322195943645257035518413220462524841945190367921197322609817699452858252357251464764759595954737716377273269916814435059215506020505794788447463647153010694342208084921526893362813406473136562774829465635326890083858714915640255021034323088117650958342804845275684328113030379665332432904611404498325893443903587454742589037823146609911453981447890685207652852978588216092504826888619970550514744783129775463708731084784718808608790423933477435411419913054617204160098372380863252659942707975810073964194527178613332932499888828873386254115490002005132909723774868862336136849662124661365648231367717315448776100750197973921170092934666347397594430149406943181085377786415996406066053788215597996394817376301662654240196063623337545449458958854455152483413464305837651690273851230213177741876668989171246423442019827437249206237300840568292549399402447642157682611795634446093721409265063841219016327589434621685272885491045184110328775011003274503402249573929516867484291681318639930370850135313049350832371940215503016911814794266231054851379844770939795183237626920849987099966150715546729043226912927920797221506402928664035947602790288530703615030247931828457755628606575974718802414284312408590105350364318965993968936202695159185849442236367176707322430640824981907923474046576326920094178971651145816444322749840908841775014770345012879057728086137746729427461538991242747213228571370689300639735861574484024090280474343988396551126112469270713140221813488616570043201934227841334620524151555829040701799038667453472960939422189565082201095022892299652126597913864961003525193475151301045342431196730768167462141243274616257187644519138784372383397786164740703170924981137795261066736604715072414955527318734424867854909432082917781631294759594884085937355081082033098742306640901689796707436335366692168601844818559021349054405748534052157092859793879436907268476023591323360690945247196460989648530446335896828440774995644754001377238548391276746615001738334314293922967683204082605503715453542163369429329582563890714761412274729073422993157360736812225606497913367436070654205147441426581680095440963498636154657252835898288924808167536999700686010679251264960375095655507918677743358140446779389395631890989601728083211013796423957819372441600918990960627726368662612491804948263119072828688692765304367004134972537424592923572378615192844846322975042606863104118345631208687643021571169624250916820981965760673719769895506942689175207097425116236085164239032676597496967694886084372837854359249102673239266687005259999499138359630652287943038318840992463164679068740808406595472588085191619205330824494962105042660489450973187170749809963320964587828661197751678067910285821448274711175736068490362097100789213949381362274780798494316815803712852611036237618518936504403269500503872589636111388034247062169827414037911548109432227954134663159000950702633170154934479554902698822503137402372435404860408543753306069983178422566761566628587832428087090167527362126464637003277221097617429334383527963658729486088466108978356085010439571347142855342508901156407329389606813239192965191476700168153063766090445273840557398075783536247178905320055227705752173753538051976293616235188654346316874455044518559936419876591730755868688232015057777033078762690095481755823129684893793061331149666104265712965887205226347962619516421241467809599155710432048103759374866416164078282112393698511667460249474614304046844102394445686978484230139206405151698376835485859143476494062467519616347290531305453647582280421118129328730960577666921325660850239100814346720961113428504559290413028592770726052891651525126870742902783383226563782388339833836515478289390095983029857484799429188935218497544405077126322587427194576032024219956803820201717753876279808167801564525008632252285148533647215690146787727726141720659951326975483365013851603382376538755911134036705180388986088468375430606123608435912620409027182877643280045848393159764382091173352550431650654515258051765035904460963474027178944139669858121151856227648884495533618381497591830050640236950831424288372190024038313577956958833778006826970415213419180017550578018709994532161392195748112869228897125406431986217440187617281340697904271416844054165739229933829306148703449388170756190992549519354502016842631256568548501203159924928471052850922977522576673482397229562099075407092033423870745819595083401048276554356424931753647421957935564246567749723288725550285904448046662751457905139563859097042185841181714281725196294435420211955931565766428406005454244865794204736451912216814002649391360738159706868264184027222881567369940281043052821973753857452793492160436212078879105438950185647123625455356963769414441598221665491165066163107712018279725171897639519135614138928046807525091117664593987594821006129208817502654727908141661647483233017840041713168804512748049630612493634512048750019828343046895711668905983162686811014695205202846350919443629757857138749706279771887760076877193067459708773764634674505207326130972336861304529438372082371125998089182624380402998306078013277758633090354824583877743001880622865301971100896206149982645877984692453296438089351152171160375217610591588842703890730837781478487555728296860059516423916509146156522256984096237429434777491236810175879101057601054924974112653586508318109309121538910173645230246215691699621837921369013171710479773901131401535331448428045437205835154721119137338323086937032155161275081761442941697998313011812398101598936488606436344465023794387067607703116519381687702420842701516856844841389930282510593219350109829623776431619514698410124939502733697185530004207920610819834876087825469929631081385857176281008682475531787248982111383075807236020464258612791048650112179847902963398966996784597716833953678747062228900378857333727664054224422300284420804342869311688310378944065961608613700313316586281195424448600396979549209930006114447707816987480750318509585070487154781856621250690376756027188847600716673026945752730994477264237630287493457753385435513161320009146655451764250211241393514540404708950319356050726403818792264311310969377042494803926385386572093392194674805947554717272659554000581281393126640145037208335184314918688672144612394831073715227223093834631271123370695672419879910882866483064231542032362664294254863728541858585471877289182347228896377728465048319236326244790220694088322678951707600948429410742096171852008626888256603796001695353427286976926954708761247940373946228548410335649105387104716997009464713254456017197381838272011456871295813604929528513487781889779067860080845149363806372291633974753337098331180051867142342675736354448311004109013558962703786428375938097677180708079171914337634544458968368562706720216417270092680555838240412749150732202009395625662268886864159504321147450396281148734352969514270345685937205886916499141766055950031942288928991928373475740318941127539718305067602208404287977452423597040755195109323909291638746562608318553551269636220287940383963763716851105326737976720807112121818671407803592229645775972066556046618923819175533696950520443311739757783316709960841641625901348123205743395056098681783111590820522554287018344752815231627402652624807413722610139578655950752504891933890986605220525990691394008198590737885187889328029715477959268964825116104786000213762725388554879468154328844810465969984244016237427849470176078874420672875403640757195808603516057701528877730805637347335254656952195682756904328380027707308852225900181369481076190728760101515551880649803071586451456524595861392004096163388347207330661406089200724557661099210657817569472545542562322820024936783272185984300188117734802288707587574400881686544586859711236130272074620885109096203022169658205150526866068799373114453764019608248024234099413120455611115657858109373790358418692437474937955911214422508800083802482071358431246905156854091622056870119314586738072243417278434466048454436862911117896295273866605123432031691161307429965995583637120309606872427394484631636112002983394769396507815293500676309570040409590581797087478379630967207670716053907039419298745931490783186499064815903715040993492757310426697909319081712420864673446760604608381550483216338928341140329368420588746190339410324971064856595647825363979907762771535459158748117902074296472526006926504831007553067273751615309155905155405851832013633159424883005511105743346757125976309942379972485788241690250093996705775631634342454271970599364627953079249003545349505666710379429620155825715658246493180718127974809322296628688411314011633292011222327586171596216592950555405567275067993085133186276979064750986243818697262791939976446383380476001307666339745172565135946727868227984237023451352694168950663683309000445416098852704941955474584071093967046409828345107933708081411625879595800552195224122074386409614586887154926030716019928372712248753282072669687272301245532444985013517658060097960962367456535329347975919981591500746942432060000782083447195803893815984242709798488898983256383907046351433892137775903697246558960081469587895332426958871528011960360241794497030874567452339578773493092483492272176792306359182067889384314082689216007730846800021575497108144025763704606390130883962473133135314539297911439529651687923259114260852993945234499606892655552940983010736090224655792686037041072920151785612007616599040372171261339764808968982442925633931443619084082334452749480014209607018049381819885019063291739113610022822934331000668480912439610737192097661427458199653348691173761081225597297296905645013620566858268483145231981101806122077282150235386357739448716599965454714731899126698337171439437174730804752322087081762274275489002587790210899880387061697681372565213948363555460404060929153529601112929123599163272364617014626257960376668903655501780061182297292058279315897156111902765583090992190141394756382697568901227466863489410264612538150637917067230585837166806551227073829879208244190896179610580084059505994022637182038434678484247048627373222288300743187703458182718081601829670867797420150372574566374162109505678398381893250643782876435602750465035589153458383911423245497374127507770612644713622502419642817299278983696962405666193161136116241230769923407823288352979902479056519583809967265175386145660556507474975744658439273823907756008023615995117932222604228141476278096796185066716052957832214947759359478158647946018319309192966999099535571547271021522224522554929460741337238916323252442034334371023993271718436023935332988829115251602526935607885353822058884796646399579529030426540506968511530278803383595075658131894472772184431140852851961300277100627598619126007892376867046752629080151820587207486747922824562143405288030525389692001110914242856427826579694345151978684232434053596104646431545654962887260641295107383981586767011511462855646465684008983386634467353895866628635016404951042071205261168690888119977362712308414518246575261008739284822798875813049676041967642697739966240217499081965474476123262839981031347541489160390271967478082556162955734008595439345508896370355031984614130355643782377022026745536490301588219751047773247638834962878679835791986967497313329917037909851691335744728446077674801647477047052889895123307839214157221956160604064252885319571406294627397344113461702857954279459703169071215285745364413168120764144866905612137822814034039787600867189733454206877353563143011872266918549183091557714560877687091554107755260280626937550959401874335244119883228103753844035764550145396025856869329577054158333457369938709822470522215878940975044662420133225622267109040765796811855618720640109900975313576026170480733528672715123096796741173695723717673091269424576024441334799664706199623081413668061485179638279163866864651855377302247005972077452704265416718246082727873928486501316591334689051426205054485164019596342807104727925769343763542892851548368944961133359015424115737297995388484935909668526108524151655296748866026622157105626491856456909729394607462315132014699142275104009770201703991615248082997360108555152389856394669501848584989947395407294734536353259448281187779917319601452865919692730523006319236302500749761075527855995204577558969682119511325266120809335252467184644568780431937833784952448913446183465895982551785744055710523469420697542478822405817350855715718293517641625455660756243708726307875217357808007881318927275983418368592844179956042469372843109933457238398856627709498307029802404945678635646376123603229239129077581063017486586412682673577353089040575326687152667669080293564167299134717780924669924921582809503426088068977246162178028128201487033061553938428717571397216802823029242959278656756268798220034859092985943805602346535721541793970766999677320640894417363769849580790364789223141550247145640880534361308667883260052265219949426921060074108018152293184621607819340180161470373081203581671264225002143863838303406136210779840151518933701905481499272491515214489267429322196116603531284768723254169677703574130042112385861700760141850482068435356685310636499695992554831152129189564697600072356474950491580193791570675639786066010374405542467413714158466202088688385262396566516759721841571778110581035054589244069997791454232437212504055586067997380181593031044199828767474187455887542231331275839066018840538522496553486152051417317054654170230076679630614418607464313850844034124969114041926337577776369711495023820004307298736554346921834309112573844935943373333504485142280358363325302343717578298634543880523283889471305688391047795619023106002579232758114947528512558179338026399410520468558116652784791281841450314676403134941695897859025586953982911583303112146330631140513831091098447463953816682167307757282842122453737950530333174502425323794210872984340411935620460453929409763037819145313921511092822166761570387611020554078002987446976684824997130455948280792931501373920809830323702506302782668112500743418567187999884780010262653702645142015389706911831199078604669116587030897289765388295789223967663561584097734564037796981024777601966414292367416384179220658450447691743698108838288107495693104743177581818086148843738177031404561956405191242904495936984911481560767993134405183855653621441241237142312886450297131999232545449705970407889967183133392208927828882530087598337716234689009325718919517197594384767886992156775847103672391043661255901668857396658214358203483411880948364075980102523487801171579452384267226144645662046187193108865589434311425773656735722195792473177256625845122996288419724743553233192829149908950751625825815947641498815597902258029483060091909716432302239117259901490182311413834425091874650211664288778081225566603350140053814848291902290095369721877050283952031141784118050677702004252694290747930232359882025744533774898785073948923661314747510037803725239863977900206490936400999288698588957969269364019693413959919652961212051870187721075817132654052361509023158128739046635014264107997417858168463416777364385995761397188743111774910992963366501434117797377862887543490453561037545861759653637397834275965763133054191904441865726108578698759299723328373238361575832021204861671075872177007528769282069573457903944417990996894874667468144379042397881443449079354479692314257791420350619969144796462447493844102345782234077181669618129410575208244181930635497164026753214611214189728655906510733188450732922620011659301795470879336543245819943879986297200434290861589741732294532749379971258690435687731408885579856991522224022144561395482310881119481801163181089287893796774439036217133928484448788226431469056392740470617396362133933245745573420484792280435886106711709352826766924128850376323456837688872749981788878074877007471452235716694325954993039589596019305198878644934504683015053879649409625106342880233294477304854967716748843895884319157685119265482173251158767891475218997227709119716000128925820274012070210369274917471285011971618862566373809627030055483275588808399711397836489717045844614911151396824457975414003556365234992442721125596856871618106411772050703448655533350518467898800123840736121601704094320412675031823207145891515885848269798637132368186929576100686907308107714699240255150645401601462549163732643871325451998472582342210427630896063795191631296414614074624723565579364242027627645529535900568866626119227275564104430107367151952107404580570889460122541042933733250338211804535489394506061132236527286966162005530422128220444002068262319680998524622266459117254098180138558668901639117617676697431205037106825013720009978810154727486662247403585758413983658719725271060303473989861127663352701427665841395881850700748859727238451407100309962232025761123698599710622753449427249774469827211506054331614991160536858339455558568146462911801068740093234038415288693408512520364581665483922611490053222028763460434463525571778035076273989597007943996505854649704076837714759293097871580657365930907453892064786080745733943173640994826591271263587053227745923413487215889976558353872599444917169586516756763007420384491663988084603380613476525697995174352513189031071430962096584794358338794515180993712637365536039220573339629524661386531150267679082685763773222418508109198037300682791415576144982293132289096639933764454714030666244762511303285513345650214079726926556168368295268048181624847001479167827728908202298356915519731762065821840797524845605177986133577971205873240745358593496579447702101317210889732615906404999485744396857472235951930997171523647691378680523283892392360392376420192524740670248210451243094035069098915269954224818358031622728760280741559195310731896433737637162700657234674461823165161590567477032815507487964404981180418578645850719537820274894513465767699030884519583957947549467092606129378292187975751343604686318273025311973512798771668410554785508656981617404790961049184880271495841113496640662276047341160275184875944258312621798529794956697924039264559680898911156903379319557771878448619340368476379111899486810177701673555912281423045631146233695165603637876743314181894876852033437388420597102844754324293179240779606042307676122963729786599812465134311112664407687763956519052189415975789500630642606817629240919753729136724004106405461069266578462340527672775486494042680549761374216446651742821561726259442559220774622525813575179357532080897469088084735641554352770844404208476416891337172949186551899943238612463116409484997282182572660312836918705476710679698161941902470284705662774803274231244894661233506803454936271696544209205053362944341160848139444733429608240734241980555793780802690275498259527216472902457905583791109084565065217132319396426025846419757550900919450040615478969750825346460973338556167184539899958413900209806143977382883846420061545487011373503345805901533135272325842213321171552665248816407307920915772068789815560172835406331018090740914993679208744940199865305124214852689301245084099293635438101769361884154562457310604338975497090353394982971628191912525215782794781247477703930585223271753083069293673040381744245629472603212415764486966914724213616259145034438372370314214406580946290438216267463859655686788601583403369558687817314372540152874637059617439492198814874700827071291954116062953737764212738947908025687465988341689900676228572323642726999058550886050338136662867776083252025760286281687541463143856977716559447336415528034440431761046911453249448024980029721629396125989518711147536556149182092978121868993040041609938577426397690804649419892860573747195332616138069124067143136232318989773270074860549965741516455083915269702736057284880689243109189500332948475696615517540838746048209253772428508017151591189930134654250725050762351420418314682554784108474284547337378406705815381811044451332380786195459436456233645711553276684600887104116591924099306562660542828697335917940159036388949831446954369457791726027369624746753363506962280484211723237423266190149932371467837971338732473111852736365956274968606744744888931780418676141178598016362058690795564150257330808112921528493399638842210156144287212511235404884108579950260831046791918187348663389909917418726347443980829389003133672099933601890707380124872415719151979811957484221489688236214783327924433380472890233458984202108954788899413818692637293794905119175034889594741963793127038558688189496950893278667311528293744726690185275278051607077553900965801916584227063134134050151163189738424317444359801705444842590917164974253825197296004819674963876365516433016762751353130674617421450653010909921042748744871264635233695762012443558676842004284699088669462092620072893038517796660956929149759546533508609288514222207634826577187557230113428828450461855362484142563856767239579260927849787528373192890485096195490508173189882166205686364555907581000610207780964876485093636205110992091483426090934313554605302670912626077846698422485538839109486281461422431786319699854216168841456771841106128289634971924404400158815272300428272840294741839064006494416167780739302340188164737453450667970333950535933275835087260639027455904324564606941723535601653901115375672321320478925030998902472843618425205632801427586318822468607689277127545768794843482446837496967426099248302930279912372371702351151737536136053689074938498036478820151251815016756023008564429117841330971158168211860241949548293103837423506411801719136949789507069550778852810425524611832453953721306408110667577114785682088397904372405422984731392518944923517993353465237944765828789106744388285574948072665609771698792311965108221947117857691189798166400820446834338515834750848999221655362306998176576236257679004435672164191643929494296769588342278669408674281635462026714758168082241955227211674102011863922419836453347442293461738548607062682309006732785949616451224077721795131418808759029209576633349171671890221280866912390370599147015078190691496521659311878946808570947651864164611765092187792963789063800173260227327663754909100837843437213748776730398284784991914531067712865348446633467300721125969862068828689701235429010724050413051455599497885096920626759828604483704020175036037933628135762346424296663031341001527223115686286189442615755040245766985711559268972197028248387704395173529677650143033741421917150461444429914381043214634300081645122898581710979040744951060116868682443602540404447125237322064575539265732660640937651785555578151577512409444603567014739177896427020343084915480937145479109374105579172693952453827189661852099576168693688998047692946473606539808172479878696655681624869754595083667595392974649905905128325423773166594462241050420429088440358297438182707615255494862717338686497567588981937576449191828515259592833806365892325312122389002415450940684719300271059555397505331376314214431270592742120897728053659277585189795868766785945911242561226596174873421584585823624547016707651566455741461465451782902397260382775058538352280732554365468245611828395509198808527449527395968517472087428419586863103232804524379135722712457518324956265541684056869407877767060300237458881501100712526161324566535385108088558413801775791247561898457313298356527470448346846308240288360622174409154269007601340472083244240919592103834584127606264335095787317632062165202730681457642676557576428781459471309953719787211636662374217542379804759761122441890233765798268451839666206092740869278047783763644929969341848009232767017378140120347655553448009566051573902009142936781689140087189608727570825292162626486384717787026662475558271156403144308213769518599634605136713800442982131870328961994812844439540051487125727051302055825064057937788999868588001658233243979707664923959436195372547184349228016234785090874551092127637335354863602868515289782676555472680212152491682295278149980692612223089716058895231624343012699646310534221005558334394232516115720576181023524502921228384179478536525604167593838891325995021568368777904865409658748043779170087685346769891967843766044150480185077255778112685486293730471263853233735333282983695658544619351043579989334038065448533061734927546512443232512524418033617108538716427287089213120751482029218065377256207126604354196936454002842377098577313616560423660449731237641748908657916343816707348360989176601134278768333683869627854988177121953967886974590190754831347795145566171153283760302818667880558414701668445777611156142345321821310732465181803449143109395724471245898082122849356898862054030869454304238267783919367311341018130854221608880814107818474248384102853662940451092523879717221453187163865776358341653745697474280410214516656883710584192923557674392547035478857961792151763156872379233695723609298408528483131661967597390598793388581512630317878589555118554082252378557292493844010824346883160098482016962179081926486205829455561461537282866639780085981032471041833894240859254875375137664449141705239060796159383071487909740010902875431644919992715396981908635363767217048902939715130361329613890714055618862033489335352196586220427561725338052850311096123170875825414708462286961054941347304534108118030282046775799739780773839508552253237876122559644717046064478295090958932413058884678931987546070110490968373836939618366027343832698893934061511697216093323884224819570255709434833749948818262884553632203935125694394418652027675501308726188889871822024738643318741163681166258586594214051594669149278844531872745226974495503815608686199899455683843576890478235698879285373562475831383609051621184672716077241791652050796542705526899714713603569982539718159824729799034832395866164492006211488634989790382170279576921822574840414872523450911913839958775314815954776173940946741331277869126843950088698939052983777759747447052992439278452280948187556173916814036734443468529494090459307900695156420986572155806216936295415883855388353819662886112273610411291935353006492651944735669553524961598319790814984267395812043014184923300178358938086571033326509909754203412326249060993828469698646769737045035774179156593014081208948773162107397384774568358349213963043917852031105143779904729121750194538097305582432135064214225670167731522726584301451429173478628932522508187305807360807335214037035905828039872397018133569956892872119149328268737434474937513509411271435999255280609815194791399734680796765510271290356747752420600344865204080451507355287934238685239167487262071003725679576179281808886358787936145329563492101565324969054635777149730929850563767590741728198107387377860863934246984561671173445186915951045470948019699046730495569602456603281290763217385654316968080117091925743250579926837458663833195750102183762229387105342702453649818427960893852946048625930765764698148695307927612702314012346915461812518087959220797989968251361389852040864605366480678191955917528946524568198678034107641834798936931812561222662874796662888354838445703306661580139080995614873770567904890324360489925188948257095581709228154614407080891689698122645253724548712673413449506487486884927734153375663170050341830985074450155625156254350807978644392466154410499778962107243873596461345470638921678245273216955786833346493144698211634669890720083408993386605737990246099362504472324437069482864544476325265385028521174095501226767554613894030554528312305005790954983171449568838340379933962472846857838576345527775795438554127512779308042881590993178612810629699958976613732773634330993812801446366037756940713791928411873684728875367744633927232180975331724526147489065872913498948852854847197387146234560828597231356653372338330415820412469326300511484646272110504752974146505450673130380353624427932009110599383080572616536974887289635787352169580465541569899979085215908790914495361371762039900227839371127998882907329315378346674248646235928963103931272274819113100453877196364119578793800593684794747922935913278045171453512083588075108005388213251677932400520414633755785363482469843649099487205568762109879251590523388967089844043663280013595923629303705243754935811280916587665664665116155942835616367708764491170228343376939353921258128673615887635491150194818812700870562939929188603494558171208207688074538524346028597154003848670474287473790364245945811349698314148497276993450259671694152913030729860288177437008885706928286841202444839998723530926193144084495516786411453728986434917159796273917304327068066336216719222596124060705134410994047668130818193104924315507190423251281486389227093744756325220913906018620795371450986265611072131592738779353792725487189148392974820626415774228238825867200779668014382984332912332008993286940421173039876794779959728384862156404004438339977368178284987617908422829483896600928650415515400884139517803258645562942830505558524969027133747462757267379156832791042665384429133286828799025243559193925593515185263945585523178437886212899034806883664275491889899276289842152838746582788603253119093581690478662981111019828334933024243005718265098908192669939162975787406802199499697514945388585172593747178206361823349667362575938865517903674653791177760505794222638488968266176333409119169044305341906140456264377360819718544777983898674184970601601470520083305381704268837945313711728624545317952444333760546905174542019506758146932357813534237184749825573875633635961119920185654349824207044303099432057820899297034432382835337909113007227526952873051193223617916572484703615665119745659499993061082533825818511352461364558208073058250526002620744569306020017502685528057217396981080639886900000434256981836181024936599727415590208956191966130063987211757928939002539226970027637093205503860197082588600910851766108062612438418410246547545931644952347053033814043165115699424236662608103450068609475552604481481387744908541289646212109287828345014995460331777508420548973768334508590507383629368222000901128950060329116308946064847286575755880885976212336266303039614470800536819556381229799181694615324339954078531209323090926240677477875940636185004911399161325968434753850307899609888813819445752723824183389339939852255670579417893698389938447642806398871784723509946888478640455573165159030411548912250813054637080654342293632879009597825795399644051277866472564435778350425992127658926142297656769903037334084149135101407892194630187119499670409783641987022731671458192434851303567003583660151754585027508928880672649056548396497726784728325954157434969859186259926036307209641473902593800522079767420874456725945958472554886897467650146685108488285194922254009876191355679910626543969335655760267526987778768812508628404628750387133077138336267669879472387768145227576679319363542782948793803790829051964319251038859493233116472128010412539735418925237961896433436016289011330063692477167363095226336321276038137960671151936664687138491533410864286776528050404874666448402740776967024553770780234947648470897233604655036591868138296160832372799656314178180321495149867446702400128817064183950049958901654821486848560066200072487011354725909234322457500128400555638318371155399593141850415188432901181523740401139290647833157329587506788770566044008772600901189388246042541283928726209462606295027792300529103883122812125129681357867054147745048081721479836690462924767438994052722413287432933918259579466733937416895212236693007880451018747734427941056477038172755153554680281061392866390881916064506106341980247098747033704929112629089612669031925911871606448410631913059557379841217526496258344476632825431461877120434126876857210022926197397942485368867901320781246811167049980896774804446309397919458106606526693008821968939355722771431360404655143350518438081667257379607178945325424874588604219765065468934370831555094825147219390866924734892773123356388229451454664127429079770262841388612328028435461928537285032235126243363525421549560259893343585651202479284243543639021687983074889110568924665463885686730650755008755313344766727239196672065742580653383453079924696740997291222959612072534568077697169718363009335501229868663683813871457078286652120538215904961315621842365369550451873796420360113355865762782649543007267635470744930381795705661191241878607237925290072276678712770852344522768122687789425986547562169099602023430167640159450775807725237623025346767395007926159055021266509092260099995048896843713830948448189843917992136126094672623460256719044182871556615436370982776013245870014923561862755094018213592991235248322449508739383528103263132406926921279639230930697465756415159788573732927935319053817686142351211705928229072972700503373543161417381820832256199330987056499246821308135551131193993155981967421580300311648789225748074661157903688212862129964534377802075466201918921497057004793796184644002986419168061940582236105955250249749860890996227545457826494656328634861075008029019255789623519515545440983043864488534253762476411811692227824406615752708761765201163851844858546085669291442046327326533929308158860564518152859364558455894389725833897499224457443879182446415857080085289809337554294200338714712824507176467390383893645093487064858607250487639108457794111381108447978982723174953728379691380009826483689280718463054705645138400085493505410981772842521230512688182387006928601459647035639049196904805629385339139829499768144560704371477446830875276026584640496460225541672777493309900708928486262004079761477451708291151043020273659287083263026157226453117208662965816996419186881440569659117439769051760831272713662724324595077492923944615126902653613015348294821770999197461234464709348081364988147568357910021239055352167092630763809002761194712556998605162991472779908871865515152289291044660738358054578153616499091330379265038076481108277215438646639356159684759945591160504272324293620772881506387818295342352164870374614949340636388526724380466445882320066789250694107518802478655061749833890888330805313076111378610319901018218559351680757947999636584902572442201644361100063013774042959465191718110753718292422505054763426527786045074024097675315973235472388964172271884302489785244765768889009302369177188611138681036710228811084893709005759631523602041088636917395261714693645686564210384695030157288260973939908050693519799679897453162164866689881722269792288129601357676952046760465456161683725567682941702044160680001545457321360455110133280732796599390771537182812621408763782463348023708698886521108481044155645957347109013402952982698171250631957601449045506717352379242590997907824651800913684312079945739255947035807465323735626046328810104052366016603343162621844274192902181295299947180045418988895856905937951682949127419942600224552806774553979399865493805115674545198725853208170295122297428125561152316741633663063142420065539634956490566081197581421944070227545147529466583794199153528303977658271132335672419860468776476169180776228761057774834255451119448516327979398051916440104543413882813339225422314905769851066681154981834063148847431895318904292687620507653153821246672530138716645044430538392152025640324822682416479498371162679971753320766477314916582333899316431911098824465327169083200334148402652408677997434005946169022809566178135604201192688255888419816520490126557224582630584664244478258475666162082086404598317676023113355562149680968355727812407383117156421294225094435625878935200339264925879264807503372203198716372366329951914722721955661932575806677390821847029021764807886556231211393379376771895825187532560206974066653268820741911433020553849660594396015520346361568495196055838070996424825034834542013938631095483095469431642377151152439973898638425986265023332942191342661603827751426005208365262776671331468197360659758298835366212378451472317913459323159627009355780431724019443412595960510817915884841079341602682418704817536348084046359223820694720313303798048689529547397201635220941202280372609628765740936734970571941618457933470308410738994027645211340479065383239651830837431065727978745053969868423772853664760507338021674406510301474875750520565223911874126320025395650570416841916628984382633592911437045651800040635065483598177376185508456550521167196289894727952391097665832782176509457893677372537705276670227527060948939205807872371629382470925720087476317340125058053733701389917497277173719458188725118654620196585783034834802972592341801542895086642799314246489834885977655281110793035402189564545542355684038706646162861754503992103463720892858324089654761894892661072196348780142826820003895828319034422463203846326677406814622324661609581995194383479887871999618886702702510235818243252111834762857442214215375008566584961909997231100983100703843612230678582921894464110885819909844782069372385555947330188837789149707537281882281473303407162484927175651241328186704811725106232580736092176619299319308165409262522782197781854982875649022464035606606988551944752984537206795621021437193382438387552282818640246490355542536725624873891488615856265114720183247689976895275553442555615069763036414295800585214985166851206935940651840623514088311764554372365811133519973335119511097834525678223128124311708616925759657239050566845551300767927655360046847891426479968555303316803787742286582766610371677916358971228295838790105268083643304694251688223362081148095453807236556077371463234513905687083181746349644351689600307966037389132720333895351576283138660645927335609936195580287242674502610302401674208962284733130619215514638089536461131630256077813341639417444291783837636248183704867342319225108360892273357609014227142676086930033027953062959200136680292828992620089707435732394006993817018567399546506169517465583566313199256382152432284639459127415849152530598003153259284924650428683032985990555081977490947056911234086394377084269721872482431808345585834298888448290851410225128657680375672667917727940099674504932257774181778864315177824598143263732465659611082172097599382862163780890167575198535904622794411219601804408032059455530590986712303835587661413895552672297630961969701275484011380814938156753185097159756350092955530244332641912765159299155056730855955063185712236972386211695203197060178701313975236431016388167212013634548280882165179092928400903433045391578595865964443190587361717236267868917194083603306679303780977841154944330465128443779615131357431392048610066895923222315692068955265982363888498592117853945218913070143520103433386935379143875035515326414227684461758833998857038961124192529632564664249562881788017241787673458299366479518537422043145435570027962013584544455572464644201210872110222361736902061305243864324361149380111547878687526159754935183379117295404764105921834134428207512814057505110308028459838676645962207336365938630321709693290113699568161229148877773575534971048732316702052165524221531394470524248123722273769468202693809375552014658412049468803856237353453936836793578979340616345876462741943852952683185357254860466945778597849658930391313973755375948506514921658815947992400879346512433627523999359529854080470980173324375827742220739213563877011616346756034909715251422086793560176181991586859071963079336149208267630318030435699450035501670510182301405466822511132596555548261983824529044473946446575066119529853997420905424854574648561510131704916058338853764445753708492687765643686063981412059835657300837560002751032572734784485723378118529634993678654074851569516934703602348408401769566868258901512601005293497491792191574528768141549693728765836816761743057401376782881723203358770279625267718940528930095520179704578625929868109101897965216637094798598356981265830940529716767970581105689962242255845518842074729604338076195138651722167191378205309832150944340210271394829076069698550563086557139123150667606112165693114875885543562559760093025316329394755998197628679691675117249462193641184685191309839548739566697060999455886458766669735271923395451350868986569309335416072445009415901066456927347943218630327894147765502898437844982501735294694180285025737846823283955812620244452049199777596187463379705100207112701031570534988012102190796067088522538710234882551798257729684201376540095332313173040569963040258407744514336810688485394302290059126741287398299741512258036387736925114557228880289224314063727684879851787345833690139264203003763768317904644300404576019512636056838862605447413484563496174333259712776165725976253012538561256814929278093720650557102203575521084292365855215696787900926796265242390067347434262409780804693941612921168006507879540325531309217081878184526842503362416283267531234529738629099249406774214267716108172375093653308832299148170583732371256013044196084082747022074111040151300057061508102000876488772953831826527177345273997021976191396791719542435982391965546796869581541947463193558891853058870658175289115924862804949833529053861248777223482603479802711009582889180267443406167067960130899742034330360369837056383443354707689614220164330399774060239157975641757919351421811103369889700914112289138472353774887429213651777412649069658442792582690181646033829471297756014579811765649761068048838012907569608965690796625749848551972628526594944853479649922262672449308502975003015660120909687883762382492439195735966458611942814971237985323152715858553690052936501769289749559942046747640471148411139362333113154013488904514688659969176316925338683766327945801894745661890485303091063108020897075440431601600586088234775877939907849439512315396419827469232694949010451714873259338907064627658486825501322562264163557349622959576316505271814631690236829087303895746536176599518393271070108028820358455831021718891924330750313031165140845158939593538326880562392081053782216789875504324896885587247816989950016789273981136202244029631756608852994640112883660579039339471693443067869191859093169993122112136831839882233357162719681706192417940823461632978712797083094205932778640794184325337113311040605949342006007530176692228978660027093634157329990502296735803222397213231155108955654686868698007571688862326594289559216012569638175379872121624799504972687680425117103043828040411722055413341545751427385058218626807197698161001523367739766009652632907356321221463095657151258338332134996375386640187092640071128782598383574225673324955599947285204682461059002570515630410553770693420624238141763848967399977732231106884791561251121425633591697388764177309386215272854841597203566873082981418359956632338031381318646234453678737209060610019552898898371700186223827560190899817809834349685213995697221105026033007328192585612285934757299893651915095367173649427000703093824081239549142888719990120987954700421805888367972297081214590604903538875267263371838402203333280534784392616704273843615082010750971548624444273234836423085828169724662820450127580363471855697932391882710184832600597686019452882416732157975143617001143765328707056702658318070132607049293733871111226578655884337317951882675882491767402150082857565930900205536814037680251342920231313602087696747529895956079357662228196684425662821715222936362440228693737213511805324449088153035698822795148159872267331574175627741736029684476680033250006851577300304259645964942632785723046134023244839755078260216781093323525542340387368554927803197659041561834445612315907468252678626928063673141622338942866417854456367295902035501805326445946941474786267564258088207743622960584019396381347092384920561270144222226006420173513846475159436543521379648970710258605529768502848261195690802361101057625445027751958111616256140277272063347113386125796967122146077093518136738066916928100737285007993031987488451473582873440447927351154487190630371867115856125793321216220541291888738383309771967247597717074247219344030409531539189129563989416591116791015874926041824510633475489298970496501319801200669583430405400869051643256185349828696422780709475421402590342228309067625358800564056262275943631432873014059354904438283569920603599098573435559417504118038184050339432000160399087399789081896816327272210768638071960631813286595953949967367251072358815291399516329014429729647941597984244080052325291853641933834500787913690580415523416540865020069871006811865021106404450746649370506858532269920626623549369391863746045638514030331847276635696182545216627932405860378547333143735602076295973119082290095428786748258240164121165290575221597374322977539498302408939531505735431284681153575167424513632063845291628868719084848883823181372877155080994007228817420501979231798909252438523896991916285484945286575282774269324803334609880545929087669300837390273099493805880101814753478497877301093903945419941499630150007659726233595999679444792277986520827486077751297827926333957889199267488785098354585946226024521987747421399447781939449528741499169609641943018499354639636855568527771564262167661349823434992530439538985833318404942402694833827028384174598621862578604677722320726215550615278462319860928699483801408343375413217400397409527658807074712137100738934798412122558937411356814221374303815704834784264335317786416395303560119286397988527374113276110963257417719868961521776090522339546623410448306211091488064850512929337302920411567934478636470904273248902659853728577012071387829224806108076414975176496912821731400498627004035295685277961616273750628298304494221736117832256113147333525586678498381956764352994507057022523339388796752859794253461886823533697890868563451192473455040640819141157457565221018879804470161058624983697655218111602893643364124836571544085348998425707200228277005504288322076031897150998013430336971731564204625710191151768666348560215409371983013832272784441872526627002815390583877217882978281850039681067930307591353934205185092216763155527865622941743937056149117331354730077193517329112354985918466933190091413911580508134255830798275016240655817655071366925145696276333872762314819577414411451944409597175198392698120441180847776351501449067264267736388476506326585140607352300242796818095738925379902643410769912336289432263599961836294203348696083644263047248292656604739300536724504114530437477567720397948364068942976524669226659989648882087632668288178234744235474005663317519134618955519627957455342706361791931533054183148910577252861055587262169155086225997225581421992399665124348485125542138897448006070652856830679317498762822616545781438590596063935753613082145138371948434540790630365099142979072322387842932149897403698330653372645227586309814265142703603652832606841395760802245947025430843763397864597658460497025373096361271777427413199301499759631352981565616174529482996582807934883782859205301766245879816430560265088563942539169727679336125453430186239439511748592461830008641708599737773174493858551778103318450594809436430831398420796027351213982819327260430001574102627020448650188092227102767145552808305243587431257549742418721090011655445784590534273315259173273558093063841225360790090288001911295131278764024053245904678750013290305129472466407054834350542662474783460983683124995903769327552451080961637613106991255861348266693228329054701430514706490051248114826935494866877707575016308955144823762810705798457345704669944382236498781067721227989332648010230475222614265566937468337846582457253415440938079914636343688705242555888821784217366754578444309429805459624458888321004959367104276869323709387900073807954500400911108267687777378838768860143679388385024794497426973054566245260458288500905456932377011108939733212716443866071341549749102062898904152076833455268470321790108115493592776199809257336947595327930990733326362396239787407959205842086354837454938621743904831065559707653357921546702774098519795245125975579180480997079722112324158977977183826818573556973265364848392923553924227420448679660683490140041935986446796968953555780458248880905839333755128362631634916495371035272442339861081578995868507492453486314689420052569123633276090696695582841332996218049503150359446931940586633956810098619843969933620218314415209609335971266085176667688518494174229691797619636155953073967731287473102918571782577127614492042110993497597756097174027504967374143768290168224030924169061888292954942034202382359117721783568785896048001364839128496962189483292845969169952788616366345895400229732598293408207094230103930050771549734281063278464456288065627901279867442714777309407867323711215081003955079588332422318101595138455106934076841549168169997887798276070275888929201772673075844713347627709551348666383179932587087172501183222322818056766735311845738066169745318816990875657437700128855137006996635074488345354080598941438312328136699671477375013207395751884177673586167308496857305289254299045473219644308258978933919944602109543873738945290812827485012257269011368299923829632282581862625530259537167682006801821592712584084990107009973789665945754145007299403100615639816638223156843653086608090596803390851613180176127848786655747983755899653745275619206694348134022372024165023362883313319913469076100154989953776135747660928475703277216694563284651171576834514340040748342218041308179940137901812255471560957331248934513457304105116495410241832744788339417109426455229369374221189861999981917299118348376015714061824121532584480117321207086673105077691348393911837243238657567207668274566411475068432558243677167007633486403528217529517694054081100133645522807995721935268662827191291554544361270510550827187905581322836936617804041689734268574725162169383197458667180874775979227951243516837289927614652888434592106228078430657940299815766464965492093303247777530580030879634884476366289117237644889895478903579511445712822275090388893181462049011511910652659420855888646826725293210583734404113480837230475010160519714455092155525804194331432653768614618039168011913366494774678700978724819093626304421621021293002009463796097046088733901317740111368855616895076980039023893547630686185304466392445838983354854508898089884504600637043017964331345202161016696484346751817328143820066653894754519531433765368837711367335494135691470637772726897856994475820600404478260713278203362924201327090398817980402682674139531728006611568011435235652701912246016967899790289920481826581033671011477739388504148213396645689504053871861825359604422203340886983847696704359897278985981745659159992195724388863983278570074250296631351611216107769445142922657578623244542432812182205684265423855856955527058347611575909699089849916912956406273175726123762434936488001578988973834296216952126459320938203180871856170823919141654637556416163034763044247964465053210318490694682261210491593661098352730969951996105368441888124813126394100527250619008697741071865150551916570951038642124049304016894474004166279873176166356756052920402289229217997510472339353214660301288651318759868043363921575739271903037491952776556688506296419534517871370815805512952615174360867759434773967369557209796521107061446467409849571443830113978207190698015207780830249757618420240493045757847340926813164667891769973085485273789630213267337460083881270297736637303181432263689511595023486040250557955849586803267839607837187873783438838383491167442016139464931448194741388617092681518923673029530796230521169724942023522135588301764167260794664787598021112656119935605403316426991801663371139654319832981007446924678404786612498689786534134593749584885318561191866932022796052033805533614469805014875538615719685739896124445736252225407885982452981368381613702528053821414452929774263830969777368199566429586591927296433043694334222048535787620938802217092962205266589033337270833820988792118395342544951005498297706591055338541332601073004992648379047603902009079990027207979893060985160494285216921973801320184826776945606960065359970458474699998395126573280418797883568710786764487184007293772027890926630136501641665049321285597555999380776801506429840488546311110076733018819537318761313147880776724191060302055011982153237834601995850805708253102399253618656369012920344836334898065393135127335307280750556175425528831046546663776818124223919625822131049049307009558053313966522273892280454196029212661906122286826444558154913427597597337196808520293057331959228470124682059309112461189259986388700973479860171805118068129057434768236785224499569439279942984469221784272927061664591630195119376777094226824229491172227708384673974368782636272168591870284834795905046557394858341607126367726487753528973460145893765014255672523716182215673286277839124271343103578329852695065103931708276458241871052397123248985278848526467233975381862599047254876157808848230038958555629058339832338275136847444773526817667067130962680787957448504085419242422198548778428910726862483919658064750344206830622198987126174885287480629004069484803006510780345464186749628952765162722481689716458638138722541496989680239841448248900057137196600938139380953367096347502147362560272357472898963670284292601613993494056614820341628545170177897773378910181689736459954212434155510248573469713413087228319576903310062169848484718697170925714768771751784262451353288713933132001539627498469782821488037338621425110293788183588103106450927696515201801666997036472260489596892697453187442395216928637533489355366486841229671672083213391160141006185757034125407614147661838331209383901351069939945325654642404519775179704585340644868723008327007919173623893585342922315473193742547936638096388831084975410484198580118343726482576521461488776053038210999401308839101533102998231846040546214538454151852808416257324728768471489405046104167582450221493327110758305796206023695038091132474835695492959665873674540843124415623782777063958961914093704954149421639388440938944194806898330513780966745776402189703568674558416635599681143158590473299918616601534102952834222990421782538473155981278692438856354697187183525518433036663805460073290591089241945697744960571254895578755876207431065647863985297581845351246238234777816579173673916642808092043789557890625201464352920668469811546047677466310245847630666621840667361743593859951712170270992773380343082380091849610294611207663962543086620210281661495607801691541873451701922046750827192357065330516219652896424201946232490955962540743752855500347949423848479993332508372037275885043795427448503343401348301113191779607232714116185092664815860154160280703304158000096396111788886709695349379413351569920933140308786313146212774970334879184389214692805878237148720631854028274481529024060864345789427943750972543748321657880773905506260617936120064257979968225372976240861555456570236588091605195950537460683297583182356807606222251228604503641213938608167611500515993121624560374914667292547331419067400251661280489805838099164217922735059684205080141046540090327635819079337266162385568337229649944674395565918439824721871135201974672330633682693637610246961981615060510121243755667295323258438701203716785837603670587716012096323184645958201677240220761504761214607037810661258594150567864594960808505953232206201092847372328694570612180579541073037648128029242776708304554373344537939590026569428431008631689969837764939225171513139927088835169454110558838724932660294602348523494522919775057911206566789022878069831785325232879753305565747860974144433906377753508674573727975537825043857869133756183601581179784056339272324464403792818906708783596499500650726549118861091843848355862799456717107372081366030993214009479544851402517305528389265728212044033370121102097202428328853058270947638811584826463242518568185221297373260676945652759848066907490373653376663805177610001121981060178036927950003541874088060557638829192899660734467009801147968669053075164865894934726881820354026202178537882075996790219326646866889868837152193090270098895194250447977421915466149595320716806043397074867761571524271383665084956943022972526036949871157411635955525805305079992925472432372173285335166051686923381843102420403469927951304994513978223682641936813022101058173889055737549756626689604891221574646908690956576302179514370135514592628418107962104725034950303089021024419036634714269630166302352253852810382391338365910117216140959760709912820081558963035399264856852252020973092602156748390728299863151450348617861690954308482542548037233329586525340787230177425218283953937312965452866329128150983564491540828774699900668516947145623711124183804617237286358869611202905955910496421022309735547174803573252654724441909454790400936841598587200204750589067979426297918670149107029870069521236518955723335189092435877961098996201963250734338971323865647231403708580017739692970720477321956809863282378280609532635428424541620783486064192062330936051069929053656922288582339708615360790200308270822154530314127440046808116140937874903359634000106220857017757539199480563268171410320851419788055942125500739250747181253680468336795284970695469951884041610478727398339703667585577743940744418084851241817294682856532684572409524138726112701343971424569831808921023920044129555049119436864855487237639933511209386716325007476451502694297358323485781360924919441769753569628952497426092152440776605559215932758761660283247961324383781093667385964301549237609545407912422031963382522695304723414102164148736575151409386229848713180733593518893815921976744595607627232414797975055788416746923065176285361225945484880244892659054412484465522297054047546320191126495787606522762515727915669833163563748634717943771354563425079308212621496639248496566008093257318995343988509230759518069015584044840611707742473716400938872861161432334256669091269901771132227333357672924156254329709976305166548772339632848276776156901640264422874135383644437218087704500540085675828380133671225427073724035924656848845947562314385588986241039658327064345844898485102871455450282074686657867843659859819077113617608344694743669884030752937786120200350670541654015547916657342041678947060429767125894442519398145713849709400971772879059581067350079672686129744743640140732137687581901890443877562074719760967008056505823310928986322919947426461992741409054896105948471639083965329501998818400108534990931240231142922173186724450465826536415678849199333803890349284581597331585905701548184316395256741297715180133721725460517295308159875946407549821858536106395398265653881505418106916486778528711401030951915995766077502471533900457419330093240957913642294328182076663118766062090762085716299993767910559835430939348551449857067847232254621064014662710618412266719709186322968924468406879089756745381345992997220161502916806465436542051722267913912842175403639415382411978792843070047073531040673787683626144006424712640230487798590765256581655814168334174174694788370929780879883510678445893312774293803670331315910783195937460022844707906397538420627369952319736380127215330361993613208646550999491391819510346737841865450281886521622137522643851781264746353547396612373222373286260360468858910178777581533130257739752450678874277156987669105954366789755997031433049450412338486446307015534620940789297744624624689002248837418555932529600606798567864081996738699371722636508388265358980676994524251373802153694493003243846999899378861400779914840089247922389748236731892907011555477016069536619005667843410990181229994485169115676772976019256829384875401401398862486955275786923015532294028617843970335910611781676832396264829257261309156546714034828242093718818294069260544125718998005820176572408167428923439091258105542101428941160028375891060624142438037767457010146679026648808180581044454288732638948216095361794495822934697269209237892716711845011002633085654425739079457641573882671635081632691844185858398471148385635576107008164023879571127671011000447812562682389283560190874290604567623296982044341809231372841093927947060630715091878021658276033395235270728424775442146403771384249435473685159135590783470450262328299352787780320112415533897368019662564134208923780362801025371488951263960701448851706244006353528906381675752404467265949839592743625042556443521335786808668413248612069232720199575224633618152925804890695329766480869606675611598908091976063294846281833243020929758567880634360485142356687910163171401913090528657954692961234295263459057557943739914776887070097929721366576643187426684942751595025659488570523338563931569049389721138557272283938366813554860501767964536395519676182035572087437103179282563406647067074432773799094762315492904336792416108768962122989931977387223656993023761518085380440008713492502560226766464888028110622519456783115905841046661444402112101315138899286416742319127068151929148616334843357392721183312993654186706043099930956605408146271822038448712492083142795455555337901685144388842950451805530331739054366634400487124023444500083708132965224945397570274619769888883686386942245908724107530633887580810046772066005892222139113388491237199885098716157385501556598535697592626457308453251285429439856396500379489344772872375150011294884983647626379678458319669180078253463374318830224400328922753221425925013796673818868478390776315756439152802119097751774566864262450240158457306690353471998041936506627586373670964162812487402513324700743670711887465010856733434858559022810730750546860727329925053761989463778670285231639307962021193349263360059010544880985625922801915051367443150538182643282226763704054917021297734379297254088175621608077852324883412690436789862732337192698782007461416652832836778877459981938656169341954073938410867189152363882533353117791028062585128959932550772148373835441999498317202499087230360516414858268047972663474621403261440002251479205235817455739885807183903688990237321525341148268434936546283427200547394719659161313623129554905751830321055094854194073120511609244546843392079359569173428919573880471088962975684989258242321867245187346000503950522950516566521093406772636308948719098395320242595237281431019021223515627532175095253203786760273936645987641233748407581019443457557993274344357527929648710331124365465638513499415483321558410779014356376575451197549678934095531716753944595947742807678296947853169160257133851171148021558897043537025302271160214372968581916082977852888016730532417611285209152977270418291535877768681788486439877924265238760897677190853002556090068675969187606283054601859558830567336592366178356715854755863341709749291452555790629697753303419244169909644928832511770245403701554191319988446572114483507096437896287816896725268145373320235558036280178298474379003635889698834122438329135375595505824097926949775783436751232008536572282703586454164367533267504513670564512756373453804456312129612823283160937717722734977076433783565585894628188762956396216645458618227583882525978138808752229282449462832907463644474877997755044155960017045997048583398628002792414602268348399205083601315370166771037168121080864613049326463119113925137280769329852161949516892555089071859038159196328058093339309724132067200168961896401459960637152291542802186279266198924072348268964003850607036976145561246031287995899021563634819975375859951109293379360123357623361324516411225030932761613378233530401183248246578905827475544717796647997083476936424807658763902636047441503047055297313975965443035308255710967219320529813652813217296520454215411774492137004223452491485055940213048091745329490240567198676145498914396957273937004761628258635620590892205150534968699301287579789611924047931472021994167812138916620470376562346657712698419604438298072999992117472475892111409747315975685173630254159384184454530468064008218385861617487210536334067967366086355324807955156710179686687729901035079602539363804074281246148690554602454668273841168937902025347865299368123564892545163898474278944182896727924883926018632177055178684684860135109486698943760093329107065947142312960168789188898895085181575034827576613294437385466415344162791150563764640670275473494132423025088490079270061239997407025768282115574518889636046599165679716064006634760120298172629107003221904786747896722345013510515477184869766342144918011996144537290032602145459016207801983525794592375937813577185360816044869888285941090592269132149200121780860595998544736972564499802732525591064612334821599801464430865607758397489514475100602549206038357965483107321401557763196935919909677319140127087250545284326291948092658516641811848520101875239655483526991110120754874555440213836187596063751559058016088280434154432222583635762856000145222804244812143438350156029451162349594186044319495079954693565232731506816960252712140999213723623209315686602241737355387991574347810702380326862576005813567242405767528595240691329218581889941510014426694693722560964155886408232074656908664545582034567371842936956910016728961379436966964665925860403056804100401910833891240847954793807755159477306295778128904759203400718802738959172622061265945323374455497750342787153699741092840774237647722662497161515216630924394390961268548801309069516811836517823087832469655086681273804490453589149968352451506837304051207118529798421933359269071040678331872033049695719204249246117659371853053438434120249155297376431854945740351972571770276246129495651480405878455574983059163509737869658891607149582914305918859819490452397321062425454556788112987255624094712953480332152622116457419160532272100681977829558898763221001104312553808535258785156363726883634973694512021076350764178001852014754365298728907913576594883732028161144473364293788598375024700448957917611440243111142934798550442412373843857882897347868631875144873254129725005078344854954909941283912581660562813368755141531635165445432898016700292611200444666826880102938511873095969309543163893361210718657268363363540393287715959124398459024402795407919082918127355848111418662441055977067464715175003028038045180891923215008745608515084958074886872984754462394207662618188931850618766000571819089344358060107358558376268954165830903309606834215377405058306921049375133338354547182842177471711786235869826331272891568677514367831950778918524235197386332417808014913440986405673768595671755157595894121042146809652618697927917182599045159680051664836147983242299702328861900737251132730024152858899002042581376776693536590290957738643095080271958785434564091628619756732854274722401130429020043206722272101784894025354926388700032766069743841003671905586599143962829988366706392504136302734190929233184168069407482374799833596737293336193116809851032540797585984310614036765396129229205085483098781606462347889109885550471937522769993866166621648790029658425419108504043310863904631748071782900735065733281293844727225080372201862389535011025132682073351621976828299070994841348585306787638863776536515967478646976693805241370971666452648874917974988731393331653908004903218716491480238306121680542709163928533587607174817054960652333215497293297218525222090132475889523119679148951657774112053746511672857894894398653893775707569006906658990414706852609555460834578278259396168550833354218974935543576146696998519666082115153192755816760821142237686431884692108336367052715108304021237767760608777208661595751251160605730067036669842177737673577114870292731077575622572042430222999184845969096419088288665986112410834697556601954573667687091178775777244072603028483590602662513236510747313246426152053017895607628604424374177550194378561933849334907702214191447048731393802983103854964986825636386451261377817217744999261937768777819457539272060339687946629835895012763679152653833195292918942467956298228704348361584829932252678449333398734050627735788909729009868878063587219475510001307800164835733485117152916556765996168985419876400339860847816179102862469734601486869322955333940456029353582293233975487437276777364392249328041721546903631742966073855537613988549210399988506310271604963235133573818618926921111999929078252765453392287646779263318847844860365105194724634542228785339528156910989475489754069956922529235181996235625464459273375419172481844758255184509681242933428494112292338860068018426603999125855010089829048118935133438832933181788682515065391688142362214830185706876991775363547912454460606276842233040476099728042095949394455501759249188803591120956518989444221033010891417516624324794916976662856472157232375884867448635334001829590760295976800766629675266847905959058049684751855309582151557352345886649074250267554810894671215539956535617418995490364694929493352577161365141161077380063250292979561930421751548770690673931476970491636263125044259356020699639244180861180816648451456995787182967913321884564500787180987417112849326275871243919135383702844367007707566698894331022751598953235908825461077114532534081616577326935867423826885258625105019261943370813396124633811415335156460831781272337723587747470030601680520475419573387397441627639108202614940659380744328744549222133621605082556822844699213507478098620848315799185886631821781555392120311790060971239877322440288782790732628832370547858818633570752762859161010347630771122621953960569213171626996627146652113842752116728112726456205711370725796534542187415227794314607892945020604553121642887941855989658312290297715989371118233380948735350799625232352545525523054928703697206233817140749978318861790903253811357454441667950691435213519201037400100615231600772950552270916485925553067543213134652103306575422425774753866789350730254461895533303581337425081961161297814569210904487362024211282055200723215710115638103662762881764047311741690169510460493034359458883067622082619989107748051555783719002796446268066879390996170848318077633536927025557850178871273485605477677316478638905719910279592537111294862970711565148124614374066718010066021322865243899769518088008251206925031032785087218434262018607486761813608836958235283872207190601532230964934752968296740575644873986736110789370000019151983453779523325796309165032215551996646716651536153188030550998691116941957917031180018405803510873766642940272493399767254244015401192859346524636852164770600917540322372282845829138270757274256273507171054957711302022119840693938834389213986748638736731205249141337506524660127304650763313193616588720961762929442786191519255055871057269950452152552542481870223458313072670204515902738246669174562020408769363561775657453327762665125142785440103654279037652594899133000025893079147963847605059917280406568114001652928569532732247462622432901122298703115677518937678567285000155075346398318763926264032866475584118300920969043913369814328208835377545432303008885324546822699577180308466468679973104193932068040194858150547391895991382046137277210278552379228138574292473426086643452814406644209835243599411655086311986324059579462992895767316238743770478809370708270230380744802144138700617353709126358718239873669002759214938180245907350709056966622186702673843329895701971854047229341347635740491156400897748999150501240194016834653871972858660327521491123790921241051999260348259403482366526440824285248514063136043918178788767099450657322083164340294453276834783951684595902780283992025907720277077170694520396806125382128455158173815795966749145333608751879321457579928579008003042095013351909595246685442808879193038238333421915082422458375315030505352308770186433817226045267402398021413258417545448211378495515541032353760145596224396705943752549481091344571216886586156749156982490182386403134326816906103099712604653525925517143384519242107992402589157844592143567637995863207933651136263034596650529451641506816110022990557812956558733600599844469595589238106716652488865262993150889567543807314124267736512601747724349521191588330256798148740463695513648168956401350364859972820265203834243563115849921861840413740580937339301063995476565433296872730467339943832018835704598708474626154650041280491713725332902091039788757565853987303662458256252030207004389434228580462880467105672447150225804848443142655299500236914907510989997587383265783454648196183791147081733336538729321953386029755772778045046789789104290170025075849474005866754614781532437477960940361334325440118690627586246566882273538305209281758565962258643330438632929274893623923194113225666767629908542555037603239419462951543911847219537772920116337095872725887719450120451153867520635125174386517417964956185686953464329380502398559053953826751153613476510716004247833773306773068856024414165860203347934722592992315584630547647111667028689128946391611261198213654216085593655149274088605694873116669850671298208768208583686407732417766571620955309962290054967432949438167001550892574462296330207598461675851545092533134820409916025218306721023801042648782535810529968126425579681574998169403065776778674545812809246519443524047114425990333265761010784267214167996528271089500950386806509363036101558563411256474183189341649415254501405041994789444201403442302733664428365565222872668817930730551934175744916475930470484085103897608835161880931791038693996998895670311349713442010233689815388075603334129606509757728024982518158200300059605977240170080765533437731255778009711986073051074105904592454130646189913738687893030937437670266796409395605622214139064148530082437032160650386989300966772115766965169968536430061508942028316101725369535269047619611624575708373659928576857291537568205049880680782958802566258440820420296694162524230392889101306660150132733896712490887765382593617291073832829269391137859266614036771265891965011158275016472641656578185641257743592228279061166920782628950482675966189656144560421834184860410207899474056449438060691286671562069346921508642817651754060034364431785349438429951998924754758821990466474652435994376774999889669364451042977315658697032837222896100876217752211391495394965933916853228583670039970263593697274087090279660331162035587851232478181649710159126461325338078694909518287728781849361869495570991637680721331520586525468120644731752199988380375164239443617304679123948803104296329843682841937041373337086265389085871541487090701956783077830529926919465599642619381937297933030623329463312656450871209203463495361497943977448869010272849284887440896943979723152455738394870093118111399994998571901872746261887248001948295083394866572899197688973758646264049253885692052027923695032625597784969923693361109082491533679752997093132498403429058172655263173741730137851711585383978513650546797604722063010680368061087658334845978007697600091064893917305104589515544932323703776857940547120994278321072231431269762486610562280694417168131967577190492342469932372583247834798400934921402071279314055105636783024302062440613109542357362629196493658474296170666870947991961940080457969650298212844530735873713340114551664408021540605639740994618288001247919735565524978840144497284469936870599230195689695733931684837857978986994017798730024106844126570774071447935610246390922462981921516616406361418928558296248532000351371786054327327143845538371368690448139283552618470644926235859689986880329609262829444771989766237301479039032653426457113936958896182499762389925345283108300332773120564655616152771613719602003324151376787119749109896994131141212575621572193667527756014982157942572913628403000157641326394336766136014223016863131684183158603819905195523644127799526171155072135888497498548373009676420452598803002062072037030983523024521399547001371335335056236940688746731962882352295450545034347990475888330938543725252847993759785893644407716436015309967582225318359611462880204123352233109742429647342170494537924160196629220613333153168055319756605234054477949236133193339992982029394267500449510038592528913587187634777581505409941766422258913525360488692482677921554724306681189371429649893339945325252078741986974198710797331909401829369283130351137326802826948622899524358332239618123354552648393665221151742162575498172433507309045663998666004938853188831077971592394197713809443098426073349722386998632253173914416017712243916266239480227440014382511136109841515554211412610949249037100888695411544535259513460184628857105267893779837829094518506013968611818292900855030667495072387349918350237288700840592319091355735737968797977710131020457874711513137348281930667548890262547617642484405486799743068558451706043828049030896487827925445825670944236841905317233434768006505541250568403149309628101556232651820205789404135091964613394336973962500682015912666309512718220825569403321970887865803985197442964067856201568699553096184832129085539670148967930249552544154196397028385792198705261810444023085267076956287316486960921449874264843885384603623769723489553337199342326137668682747284837542499872588217425701970215320960341430298158995652730745130026813878787137661126998697981754844006404175385801623667672446869323289972797752029735504979458858711933063463492245633106522698210946590191352632218865369692553266500010186720741350637552734625177132409701494503193909133527099501728426524671366231399837665426268652561525014967854678459901883862458140409437740518777040054165489023677111635041130256460568371836653360761137697172497807192056349690192708263570378183548492554802698165804422216732353435114479301239794065027102711006252098026907951327972278570503535741455859221067486936052062864102733036846132176029517311731336640155256969399123272768624801136560589715036472657382206206346591763347956024962059597280435102005943226516806425903414312545678489191774067760656934135478620199241932691177200900690620956113232798038372296119645020295363547983088737168880236122978145763038341054626006575523045123456848762769145443687187895647044208526490417237164331342634652867727594177228567197564714945864542440777606083680134015003130747247117491655157107300605902285784005366982102866288174775010170619856361446264994871205500181120802206255725570362094487682500392745509925199009547612810611051739439241639586784944259333788237428930239158775175645608919932254009541815826867426641612829323721728648720353692669952530227687500918409781710441961077334661072036079171362679533811747466543154145406896243303903135283634561778703023324566362779080375545061951724315872020038901824059714430390270294992255409355214921242993292331393977278378662625309105428891056158657104764119799307027762278488966007884753026156576185165576676336527477321272562400039934940077462898936555517989435020665930180852595859864504730383028355174808211411896109871623149783672106187385653501363892281576279884874704148796220590471355874090878834109778417888367543314456189163879514964581981748588474846205828864277213379815962928510747277901275349602634931027090194776672536643573640079992955575864826869297081014567326931452480889928876915596921498765587316257882356657126812318406304282278121531153071870672688023011531435689851897165547497557771552897153517652409312213951248326240055116137906182166274949382933594400947077041046457761945603380451063409629279020418385966726396826129414207018792973056174700140209103491287772690350966829497525466517804345655328463035182904843043318917906722022215445870126532729021337859355090784392168300861953204431358008646487244042675353632698677229716959915750048464302416920870328599175858175427390640714680169598471471063126430017965498160129132853115725764311430195142938650924352109493714536887120996493446062882574013372187761882012648116692935870685369321910405532925800624795875231617184703165800304030903153093505945702786952811807268669398236549185319501507405263374004432035790816653064928633811335948382422757475550003331207505127350293980130075723196396282295921466034511381291693950496669147918423798307283355273284192395530813447055816610593519968092278765615381731846976394840348380212166044259671221279710486536804322498672502164573513930875648301858876714875602924911043840043676800501834281325568683449253505532579156209729980481274694424387317929243419796113194829954614377760567714628139727625185681424601584415530714307797828647418526269197635319396585336730979541701422911413013692518448469690777279090443427082973610752564149130559238706388736612494577446968768782618063124741337023961537018617554502890583647246834140965445396512022289126414740590362043831042767418974383652936424272823058768236958236497330050142425867618225714591211085156149107375342376544095829871655716459391419619183093200154523361044704599762980351084516975882209981930436426250458616126238504235134771548551671106302226390597739583136298745369481905212229024917459977799927837741689734597272644303868567347987870374951982063452249080482126811999074860084798622138727487950051610262863415098246164626638726221487554093744812020940303724266798556736415876909654237213631536969488965252562051751908146646925052377621991599306983967018802840550835379312774979407225779058122488826315761435025196399646313938519884003645918274231869163140163562693687040495940815900424922677128556601668885739159890226419405625475627557236464798653860999736335174088421701178705534225629187598588852236868134914455995391269939977876425961415646070507096997743891317022193427163877997245278160208896700940764312622813713187492823723616760117906796976581908584964591908729164974225538304153306130853966528058765859273719861251170326997959572590162834856641858426606642452344294054115130778036071952816747281568892585216275033754243225892780734813395067262830093867205438962466624877946251736851092746334063575717278330485036679483782453026190374925875747136075161750647991131409415994543712730897845735901199369948535498304749622697430210624765371487188158057374513643610283313387200536859022332396723937193249351351727592081852465047338658763386765863560313557853168165871541882389547148031067753114087853673064820982836595443215082355769416137581456583181960561637463359481800115363561315057090063132353359714425982377549062763090079367146061145265087764754013894157551887380296962611372231775354313744710392294785344627083316310791154714422498699775992524566018122062727642286409549532965274575516554538996242437974374442222371100740689217927449250545183389984549633941901326180659331171406995938247178424737832655806219124657500087945391399044547443667705136822456429437757505312594247625095220202764493261483414690027879228283234926138777813281588103801848592315269464504218559837787160495498750587061301931348466077958689002910704325479679134359317546161330008795899926146221901863626975259801941960256807083961277525057910277194836575906613800847676742194830442634563563013442044561101662552900805580310245446554181007434157923149535356333267212945638638385004396390571612048596064550271336317498844650066568378256084452604748913097123465541600185899966482049058175697249069550959531726048658672432809505436393222675957600413210462712862241421320671504565892228568219156646408073375823124502692710691642993467746291108789175273467063342265357766488398691250478648135252520078892517962983095903668817226828218750705154517482055811336727503608651353882121469999344292617683428894142938911341153051066133463753882435000054701710393051214213129764091960435845546556473304913994869401792143598327598279594860697058493715729324619098183241148214844158843857666470337027596186868250015969840426119259733572409078627945417911966943909030522990736224634981780147103744872311993163028987432523249263599673380325089407945900545384810205402710011061274724599594217415276018916221373890804819901476232204315750892257877013967548810229163056269476296458237285498542829665291812471449779724422103186240016527802819213589458633514547615535402205185769267541343045053089605938727609389108934925062318999566472236930828146148399874215552133978591560098391747629692498013497751052314022477101216734886391127183005198881860390921478074568894234751696601062095572311072781552041969121619256536423799852437362219435658454086185727494348329656006207725130352800668528638744474888535535498066572381123791392512642773672314716014061453164234598366646289786672281427813929721591142000173599609959295608823653283861439556524530828079355322526409179894233860502977603808132773653310942625543783063970826439945043527245693346370699790103147595904775473640106583838637922018501098431545387724720558873275066292978328147309349500889585997228056053165740756522303130897086372265912502216089614362825538587542777169592531296084849322120175302619827064488896902411913995583307562650926025386471637980884975023150924106044180465284523384270929784932697737709129022555410970425128331234204832706923316644333852716353797223206464827494842864295009815534875375598387492121413080912917200616412157079746111872874988717680456911714614898963621855119165655563521440858504775734911043778657319389558211556788540805993159795107591224677104173165519052955851958019278462866949299146362156354429969353162783602667485552540213856120489299186628733352499157845263083627348913303721596058289089716079187065106025447706255666372876285992451514482490073940646056347131949462822912358194755341813572660479398285810962654291401174125553214929330913466912982649936072086108900607978802660815086798552849807750977263975210270278574314594450446828229222588310001110726066690452103851721483119592010384517947315751650979051609914405859045330857131732819076479162280761832402141435049426683910355217490790341270080208797166926932869680259173553745212393678913327967338923835633231010318695157075323898441727969509256133968090104519408503285735392461366523279621855619050479170334367622477848145347455481842549476865919663697010673197709893078933276407216620237792619241717384831167676803455134060900552672445321280411807290668336910884799653317420796273172803045877349766214134829406758583610257228566407522141114176898975089871960696643899194616262940275033082946039710535630383349870500988775115967046382312429105381730339796989267665866800988444023574619124884598465673595090195806049501564562570310323081014679130885994632687323430866955549021836758654660320893246132095639469757582774498212897830860908837277194007384473481214276710270508439413470511154656326108391928713606925788816216364944972971904132829052065374033208409974148976726536291729076454388942712192656345656713014007113550083037649763896799432380077556635224033993088671247186854546208931685423885289412962715141437820535362282938422647217234148024647805647670869727474791046055685904551984313396667446494611701152751688485017569806484744289981494759249996376418373460092040737025343722648229032496079180193551782292484405968935242608355731220669873268068835494864497071172940871283367355903369636809548845876173151627723962946607165228065057542190872981475211149556354784569216837001340492999231882331987871146403336324522799336826695064150403016356674484577916327216620074658334534190869200549510819766021532181455853776544226852136434638593555635987289319798363977164261923709026918980736992886437058226119998376781019740761014984347129309080754502835262828035950413099427621463701019749506878560863672084791583725629190372921621362529978902028335737340963589684307683899052215489385788592621345208262595766465089367308167510226980494554950170264078010682899291823504075454721961086582548564031472236632510213742257893414375908037542075684372578564413679390818269454180524578987595072299070828650342399414958535266732356265774398411232882265071792517931966542452842759973429744320416360221354076908632841098991545990859804311082783687639264658905481618634887125340160718397945063662634852022409843235243154449757847230359124112149245399478581499086683168265275345988518439259067288802796542515894347843679210238297036879604205447589104325857897339362092077167105018005915450496008679782215286802927526734384757285210938813518760777298824522293317603453767201895097697401533896280871516143593372309668842925770475627049519677042485786853048909930772991296162490472817516304632015835125723340146570170444400447891912752374102836269779970646837360966874472735655086084551018448551258155015527061073455291202427300478461873052206377991782893596591081334597131376597712991304073417963446322406603682572785951277596655722661481888519562533064164966934808138747727330164147419573809810220765200729311433309227629831150655364177120505982377107394956396243706882873365888215277121389482504054119893949204633600445625078370364349060981150717639271705770835238637658518295533120246798653789028166552062841728230348658390016029834320690674198691556315603070146311165740245362770171909490156649242276164455335803142328639247736261827962292019845458821003785932203464970707935981181471385126244627793394765214165601701455705521331189404018836905854819289027730833060842393613586054523862030133905748727420583474958255129557068036743297380107860455266634661485053190370782514910162673199779654066140359560381032644351238869556032445055745996181231560329917203517870787314437226320344581009363738794013122782597297896611369486707141303304830189340485412099749250606895609187847104915215712213072071219988600312939396880981802147658095409774912180936674619877343394509399086810559325684880667239433343150438355877542893177351307733498951728807575513744750930420384359583163054480096237615011428314320019699071501582721931237443826075016754439679956370052105168154200551318598737656206036795518449604421005503708577390363014488223210312289261692247722690937277225074094358471804066484079777336431955283175945524253298424724547008010453437511600168409270343580618525563555920675368333731814623957132364082141789833664601362687276573797009986013854164876408866455394508390082274070930374638636343763469405272337582668180967190793694124505437365137848043984934513585890461506802711840214503656731796727011521460294726281007219441858432734403023711492353389768190576249449719529068278053424950191283985593444958692458328299155014981532406085064828788842451035737094391048728131978626013355503213004651991548778856220475440116648916696581836346261172947736548788613529236841680493570973050666239577704098923975895553761248786635363906702094377798925165295864809921477239249697501935133460075127445925380716069195121710745542768901569626616940258385586393381598670653295065756385262879372971514828679000515576733118451523766298200593546017138354024193881230629153479536835426310440681939008162259811664030275902523370934489920210966077951865834747475650545539316859328045389704590927102444052474502501109107485856975197835582533164289197330538547325989430252518480741383175886031957041364677765021947260393853207184195022976361279161634895589165670841066571375039238484257146135497689330157045287630604757391766521632133332776347202258019117407464352477820552033459039123209311873931096983046383612833828641429168739317706251577854655001552275906418687406580602037753888444623699864940012567382405622975610032161776742082009925999616893872138976695966141081673562086797915563081583941816192400848946677579960776805232786999710662844615358889111481560099606559709653865821617088881465974903919787060730217235387608698596191564185284998053100477958141952020194175423086744417831560793710368620909669013540312039012013665177400251666248817784317528569718126910015872813885177912108192196136813868213693150675973172925220813330363288567918239403621996004726767047873629048832071906439831934064095838383467043471699477438986169149766283582551977959911572868787522854729404940597285576687509702460488216775115209525415517670164267019033928111004671954293347898131213482588419161748766265496019787640363768021770976027875133066358449961790739046234864888380665677133616212662179413327701735862426960799202629181326786484578436781494472571941901756634633831844166748382791512087432228190952583554519204441410388136527331444444785036349016229632042516356924172265394317945328371773725588082145838970028882904218068161359949882558266104185030917677553406545878467219100898040541976278331265449310690787347675918747162599820866101796445504270404012251023523396699271096329924214323332533323670816910971224632737142582637922574893771383422053515551517515023404318333727201041387086316778051472078843221790342332840118811742790125246726090778666082591995102364846281768937256646569703590727877105597954045159823108815725405316510927867879332307581919903166914651021256494889394736362735508595486537685779583807723667023479725687768726176453550274368544491102293305327400076409929569731568022595713078485722272934968142855506209141147090725132260141153906862292009255290206129189272429280021978151582030700269447052806906543282330822222081409533283942708851802596887885684108866767108221697524615617202912606402929391496285744921553252248339406278786694254045045629957723057772411718893534400823545824359480587310838372323744042946530706554040785739187433933328811738691341346951549017552137821997155434097917251091628282512651895901267236671257627903077120789399486380310881925934054716588173448309004217751866598758971990135006547773460056197173617201001897654416292776437962588493679312212602641062655378826712422906255531614581179534093759700677696322328904625073709186014047233268773145280044985580335089421455932615924009518000206823887550277317726454427004375823150013153628662630794792601694092696548137922780610471481967874381464713296180845355120453814112339747506586398151698624039104014429536024556400417965673493319653007772892843533382085892271512538025527227997183376047551121428215234280730753734840091064573939562783031092746456713875255170509741085197142783598240298278445063695187898568246501815817647932021856965411970765749401086059314625997985949886698137922917609846818577018984411057912628148750437020912639419567322412771063788397461384653649092952673212653332734629149122747339185233441140133945511519740009651391588109622605455334414467387285442026813380028812350723046577758043771330858342167266334098728990745507800406248558225310027357372883420899259312655502022848051301812848113367509049785627189192466747882666493364722861011177688969777610428082623471460563672321849397258349435558561066153604624228490511747337627785659030350947670058720638961079107510056755085064055300430402071733646558793302416850796890051437759310714886380528487752320114313086471478741150973038115822557192394595691032273517782961058637971268290499090786175480659602461307385740634454325311119995391875229565825731605308748095361396525470670785694629925326722999676919923175933156906170176345383726596647592626250176680706174360129985983254596307521092852703399072732001831110978204169443595904973191734062651456258747573472585458122766948085638961464722135838544688435084975146005778682701749455522877813353590380740758699849372902409637890494539988555219998619543056427617934466305766339417431176145613927229141601364521328866752379815474816148056883265221004499252414071848403080570316947205694245455539048713234757267006539467909216147394938048906978172905612802484876798082830451889122923019102229765811899612771229177480929528012804428433313974875421164246360323868589028507275285503163167361196875183848937381121817927119278086871502432221097089215988730692515683306430574115442960966176231455149515776866530057955170955479526249179417192095956536695989374505277139006437484525529302483743083010521981828474728136933849599110530378664831325521135785735056629166978859193581966448830761365055615908144863228386302957894676013682236346326131404129648878293185940742534508029781821940646189543996694148336629201457795202698003830563216441348479065961629305945099866998807056052030029705855307694036017144386898954318349325016801860165122272557601122768044597029726729294281400402023272493603987421868652519368232956041733296421667876519723762294303208696549632157401267171307847023563417511016234128478843615629706137138029118020714225124929689169218109651120397570663487201669538237013042443505533966667729512148586094689763246081901702655506927564209253563451367781127308677826234439413646625381696931246733222983896761171688631290508889292493753438418515859039345777879792028402767855823645345249056816136380644783482868896026944534750215247382987581620257635506695354255390289202291120396465815065897910822276431235686048046810872959595417054854149764460434458041159679442191659340940975585986585235267201529429645340881116600920800097543523744905597194201756415224572885340698446267407816396733125137854448156820688642524503860980403656781335086111310559601238823306297930749845860127534787403470437721853282347598719828430118230012014294249414711195455646047831624462841821213095529656341862086168692102799129348987666795152063332471362350122802434502765166931961455750339777756848778221090523611036769629451472206676291115754546343409832161181191538479131235660081404454322899370172395920223817291886604811427508809451244323372704553296711500064419000261448240036607428456805115639934779657655241775805901893829302091243972134501529949685185918068990972460042647497742538241111858060973030487276999058851295631503133412888696862071233984866114903231664826982337261029097231344471712742570868562366331162207497988191816410028430726166393363515487141192024668063561107016926463674665707708224727803638873371049114855018779585594084926441877201212636353641005026293701311362499514749122610203059293697464384226263537218228824147381033266739661311009801080110912653659651417108983996415107067347323927702246547050360777237788309206404956351504328129799786077892045846368937255477399534761226645073829928327100756520641434444872375930508985943440973714404812716003281384418046537113732728297284772744555404529194488480240753426752345997197570604701314578463526195346085391175744426660269639563332922737000099047665483674716186199360396385554057592497734643379043511646176393644635297644418701878586711763098665234183602199088006435544353015600804240990655606003349420261735390823923010773150893639122470790674097881502452263323950008917131689566987403173547106861296384775771835416590042065784335048599773741792592410770667962644699309005374285679957561781267362085445610502915609535827054026497598220854727514945765478053785895668806480353196310799541651103815693894765327887852495973539581686305508363378875660933199223709991532612899631506642293305687134854614148795587697196323156644638548585493328351943350621744720793340695552092930188766472362870928677572961796329241928760475455507701274813600388322059930756004700167117005871175549672008841732978080413533272904136775150995289986188738571821918497196391937909285847108082749592113489114641588805290115702860648207979266225558216977554785797472237154941414343150690413729502025984242113587217532076064451018502461492537890803472286933300560771316745097049679691736126624603878508016018444527891685153563028034933934236091132376180579964864995546169278786883155613708785447831975598136605482306216181738105895713335192526861876545381761201491969125160927549203814330093270770120174355773187661177638144541339194008411447482160932832553435966097598588457632892045790559769354441383366266875426644205130166496108579210612897214307640072473485058619522651614481034565791936072110495332845650295112271400855038070113692296951792693456148703194397360920497952286014769029365957720079366767369425321651367655851456432169807161737470384195965605597660544364510922297732269799594922691422424959046529111597656874785754264264044112584430018206725969419769523806867963048952451345364630199492764749208044012910032545712651199452901284964561927652162197558811059158197972534562165574603848187328142404674704047833164385325803590226788741625222064090191650115130234294857759028000234312002197089946424203663260301702205395863452272252076243606735367423535331723239501625698969108164028272578177658317103460967337525205347392194538220334116884946754983365815030637906394570877788753111434710463257390040117759501642873501183131871172921338082830955144522218365661014069533139230308552658344933303079469113141962307912171369656222555783342680879128554741656791372188320887863097909018935510335415231252903044893737057301807420164152235214356351550654736649327733894101141271933746698931186032226020751835758370401993215108565306425250479512459628170311452068234620551741324507225042986577581082467943802972822552296184090448445766649679720262684495021010767545713159597446319783018518817666607002496090131711573183131441660082165871475882172013467911378493182339408562826514430877701229400700233029401280928708908735478203927232395993763238556199507182422055862308799969706921080244657537614633153083918767434580352796786187412162005201415469867317991243342184369398959575864824033899990623485698561388162393475516521505198075408507926437794555044633233118606938114778586813577395253697669377086450314691347906593127578631347818947138420233385956124964237828219898089334842896584969790215365667203200294399818149913255358368032661449948495358135260443362459343911817128114202660703703441549182618357253235757975412615305777665476633041887494078024882999672136482543715582745477781666894381513169637714227696820998968120082869742892847690167625832789486202710650560758383723416776605362644474252516161978652462442868333702239377382723890033994593362104629414281575819484052009717958176579011003681592594038134109297473074353529081965175278742878228605701883078924437352072011105207290950720162156364515524524345621561487759926533541462004569107701771438347640460473280513831078228777190620080681927981272031788073457765120955604962922862043205039398943151721677373757760292836499245830462893593092057547205990047084385025708202482372349053556089047950241168659434609263210670876731758527183183795295084702857681728947955816124437721545995135908971790054506002094675588909825703942969148265190297048552283053148046129623757577864369210739653832430258461920676378644487664053828594866199372112862312329439660045413805519868259078187592063830910664860538776233218711913286315073438389123998501700715459134031815575880350507706216800719264440553823449190047558686415844731937022340930113998891894963303091070747139055193472297664978063162391576980807233434606282445250807525558575467431919276600891983487114217523654334822436591389137656934204157948954322463191347845536377550853621568588707427153094357533844712585769123684785446722156243212074372803924055228100486027298261111900450885079309705547851562585442612250978310725668594473929162595044684808548719664411589711941727464831568107825530921023859617808670318726421852090211821102999861852059987838477550434187833557494141781545126635152281035850217697080130378912885056426495528217598009750616960527295400520635026854047030961957804883688653237640554545009236625368613552468961605023145889454105740334450184014341876006744280820283034717256543429667254689275681743273672396049441367900759811751747058221849586355148915635021402032244345007769701761906061724913364372969725375069773824009168031365084750957650536822339041301723929062917434742871813550445689270222607255969255686266481436023036556169649970398398936391628494862327614178562885693426300500042994797746168117951850448680210727756241184510039857882464445074030461210103301952252431359270389001639754051252185099107039651376859739765295604556403068708172765596569556573398565150723712853194477743377402343948139039890130230640233988796116675062431515683791880156657310947129924651323066765669621905021901547750625205793812611996307423333442817962652454772855955021342753303614919431786595748150626824076071940701113686953023950854282904779354027263847960277863729788849150451532347501912751214564700146460819742231099325257307852578648360147596386498965286789283881782299920183181184390235527800055486582128997005945097564690473787424322069660752021797038569921183126973465918456534033902943388486734068029387888912377230565492729527429938493144002567573939391876122971466813166862167792016898923614570737726213159549778966666500616572475085567996790731002983147758111629735505019415281910085968419470503946269964006589011059061336577802443973442279580219860557715065004468969031264259957826826510971526547555431759923567101374439332664213180770926880625498284284759289274927943733898810762737300977717092626754895949232072813024056185159234632401757033696321485231358007476492292412942207570836771120234893661364628075584495810504482458001883891880635552420862971939122806875323830056192215647359767963856374786599990682199985739664712577385051880720698858278520283529921619354292310641104043618830912482405950493464821832662660720604580863063906091647199499971823020328827929210010460820599195783222410350263696771207284423139390596869661362012399233469700222239989152553258044433238692280494165764436407773723436709713216665877087587347712485741726392009035247353162775652726042654239634852337697529000614244979747846540599186692631275615925947401358025105611223538571661729798797716748227744451660666448431329750662368517260590165542465275618801398258032647931051732183621471430908074010607148925151382948031804749228448408821423543760036625643374035770260675222076477582693928928293936661569582788310488959705645007962506209781646172072324576999179084556125896801785649743664186606092419705222131838176339823744364726755358131632193402329862377003999468614677107219575865206907927224573504670850300213119657030521387815493675044178233570646532339535023587113702744853266877093960578070805611261400366967453679953937402928709691927835357099927390086883495574126035142099473609713686278184739314835228868541287021991752551505501002604782018585357995580368229721062984292864686944317873969987911701037115520037952400697590465798883008964786534580205998200718573449673960385712000472599213628723621345214973114503358769577438958930825361323131990873556296130502385346514083946442190469716632572671129426205057964885644618416667189110731495955226200909231849353012658148297515261219964810148721039563310229556883590709619828798479008657907389301748197221520193521573841886060959400922722121460781990068983944318087676365044336826347707075912382751540690718117781364196907227016304907690351689204105057670527585883971303567642522490333011980066877204581666724753857072148365840117148129574187955391696035535708596482108442327538433213202438456333736106681800306935902882505363678234310302657516333372952174338563740638225953224443709539628036227848336888557277144096896469971989611827899119195439789199872273977293185205418446091719022810850707349149595289929436987573231884674068545977834709409108648452848665548764369529125280162413357566234707962729654717174633677450812481029600586377289527807432110278427691194855370990615329756134404181895228641349849089477066713144178858963852921113787801340604196468059322589062674080245779889155530137594514677334027906901619038351008656081906945088986070478691860706501457483011785246190900079290043330437040201541368590190411527951595596988011156573662292031123785220924904813698934328417269816686970378759640776205771451957286544602134429772028216518778325628944793874750872509339977861580793222002096103913657034877917640582468275407429478240828875032365569180292375571877517775164063693814760108828845372195703027989027014045789715387999874861850141212045093617378252983721926037859365670652713170526747609589186554039647346549344202222722045242135557722711098439246256955740913643461335215583953460522753455601408617488580328964691190876581185485915248230886596085930872379236394214681611691482049879928898333601103149702494794968575887704353192522172160201567584072257635676946047532642754923938585114773420084172630210374728526657445272129792120196618774288544900576929004929991890950479575717749897985289867550917056490541532517391607987857131735345317041470580620180134248131893220351171235448834420642153988797999448327176627186830105292147813178274662403262910059055358239450116157139863320227838155467136496218381919013190176196978696734479189057560091742640759260196049146381147296462494469552345049061152542944545047066348466148421337061028627515364417737914350952946753925521981730764488010339483288495460096016359667928162857455015375414439844688971989627648837042933474975015578709474565068876594228259199417126516004795755039458057672497035923781580562317727072000548257642693825335385373111098546334843310873049104200661238679381660182681926688524172853542269203191855605500983788641591456950779279773459067206162821447601570673703662030010565950563122444210610650451803217683599823454395922557071315341640823806764505210577063040248296510783399185215002301000867530607534082116746831220999585567331412391688560259502062251494693062711439368652865995737864126702729184608073797918048512074986077348399169207825491348036394301347545020073346567179036170653333507291059034166503821666907523571830674006625526447924543574617730938630281890147587194450844783971663987930984208811830629649831387499262939203132806642102996717736818704609654036240543151053585418828383022264400282962637683236411559070598514475740663233548907917034493378351096211018398780782231759598499834331246512623657378928968060711700444366654707006597968883957072559397148509280004306360280411435791902749207876512078106768857122395867517700516022500753374582743347350288406721332004780197873771263503126786140187637012869952813323028702466328027492886190607401338783663128525852397428782524382420660584823980949978714117704934232788158432372362754425832660544648744901217400908269229342227585637909421102896444861384279929665321424870610201899284073359781543873838551499071032622094795775165770602194432154374484895891391858914770760505334605512369872904577285888695522577080371528467478086675001180662859802437134478609112449892634528760498169647110134930059379009066233711899942309378382595095030988008199381536765648127115410380598748272628018277531669478249324248263771816565704530068021150699921607090378014276565509877492641894141756111202471968695757365257502595785242834412653941342669817815829824223604509927614227650709424134389756462537962797822846073519452245657542703737812280503903784062435702955555222264295100906039479244720955344339248404020947941770913994146582680277950224893234404244209822256084011225444237244191534651772827621148282487663558134207294337638100890941229708266761192476172408618400012673257290657658717793543297139514300384618772504687128788478868922463933710871621792058254634661915229671340768995331546146150711366445165217637675965429168371548220087482387107181238481242343823373891677537165458607463799115608653336020182362210962390384423492896688089222397490402694812109801937705341380892734161380536382784585970688876036800386822420366750706201739342733802880410828415308961381672804779212236351561563470611942079802020573014457456155486516934443960592993517481216489938265208470768281428527125408400447611935213699930899798566693519844734416606298099716006209002927008647517709252167325930055420258684515872869131145573291924915629490150109487767216881951760929622837605457679000601848429674886727747858225188958442180325397160548567596845908257600063057226231904262528250131780186474827667571062958189595424736504545178604879137093561452341468928454069393715493632373887950695783862402374750989975006584446065974586838068894063709365430299331214930941413326233926542631684391729006154099587953358907277843213635033088890417061616242925765760028292928056682804219111564413618554377848581000442108229572921175510253697913088648112110686758032475304661097968339023667747043706512998081044383339968731134916365722706838933022018114093687556641471606261321039511379857064193150938111864158555947611299599664169268583978826354315656013942241810431711112808850042516639467936378113058255479060905549240135851167272350863437771955106847166941196598403203516876103859111739154453061186351032635927935139519997735109709073554293465676017744684081842325327698103515964388260844525788856985733017691497233087755361048458135364014496254800720561073965772580927819245025065368315961780140177593887450363585579510111523405312782004647647608386803157242267242915353383855804788815518067694279030158562764200857173001336121722407857165355559794672752175776347525769699747511590145451853286687942160708375285103442710050121002430706680500673010577308871771359803326323649186716150452478425329524461248929704692153462755525856672477974684680159821629351583930519474951986292955095087825239261574040392257419298876207153610231547208980207136029044440783751185648353510079690590583504931124811092109515139181466811664452326493178235718315649030554745737859561314515515133338213947681817935961194106067641525167914602642054885328197685931966655378678143890165096715714112743728349200576785668485123284311069158155678359258300130116087797396283062805608340576228479215618041878150608635192286561049782871351241300362287886831466445259350653868594367646327096126605319043728434659413390034504778842043205734533150555754789619091464416842887048710164293754836517096570953185944258957942307964677005258343038036001886715975353587692237036883726428963340924889553582598295000884744260953059908165509206380205978772907894895903473689104216391479658727155625311544325730309877425117783278615507395634859790467278641493381320453876647127577454545956278217255314729297302495504369848136505069995942238084996915853898774680914091058741415753222301092668201514118219988489887457178451612563990515905092015075546357505480520704223898991720456450306346695379468822604551063705676707448337450736675810487712291191525993467437853934377438845843547143198985722571729156928368992528262544169342955426216076660655631821728190363655092040913822573031059528479165457749075449638911088054778917306699591889749204782601919933668431111581117583518649515596090719784454600124138036180909543737608950184505301703898902967980150149328437899906256518108388031839563755499537445695220982526963951515447408725146576012237136100762636305543995207448137201974266756984093295682540783873825124362628553365948615950882467494453860990470665931694107985114693760998354885317403352374172920247371862152259867058680168904604731751891771778301000800199289216192679495234559167668710450151387584102427517556549286325863630561869428322203595178603434978587140585068254290752847432133267212379993907886877183826453989539128700710647685442073053097103825158865587291512644414587133516758523835565184858359252727992459598324316403998724642271918079317702046187392925053204962629948494762273931400686812705264909646253050583814842791216609957709859355168490364342272515153503760322749821367365277330816977866406324417731381777035605603441337530490300217075904678134871087178331342979269546607872107360669527837842644819935976530968883462727360506409809085619682092378475976044221854411823047653600480823423754670703005314399007057878691761082609078394810512426295566751250407904154314463450969207664063037617937762846065905365615773484975311249374128350853858333851494574306261203542405769646571832961764745302912717103775621846909997740438630603196297244883674145992334162312018440387941990179186483278503174654955969033192989104205528832577804771411292649702649652292411711339329738880033219683322358948472296515055618556801488754133322013988037978737555270136830643781909568593101057822381027494121968184876226806876056486571117157297862628210109225734742376327125497764462912503796497536496995385029759425468223569810834258611685246779042593187177008391805826952637872850561825461561054999969039252214232516131996587894102507571527526377418159317674173304559158932319724085627857623756826626283950928948990911540721832073394942534515721818452351056011288695514401175541747396511015668443318770105418458431951876629474187268784742998062693582201952494528995592286877555528237133685248196557038065051780733866857335751515652828977427346167555253150251898471959897285882240869054955085540235820867292768365233382690576382838657371506415205557408062799800996992468558032433990723336931286989844452100348487471619287814528066860178801883812576756461072302120069334640284633639493918332920000696911112045042267079924127864830369021247070021268284619762359954784596651972869090757569962770601539573219883253455698471736753635159258400151853649510160477708338916196676466457248942630016607826218737068854011141799903138666792859483738259857885293689007732495202885331187913794070828323355563933839853483289014241846771084225745064247815540760282966076856241664114505929989898644477845655320584631743013052510565456174973482362718639023084171822262985381537658667986131376411201056207930253428698483256913875870190911051549334327339047481972078242295719308787640008810935405977878834106966220356474758240838319801721152887721615153673151469081875473948189729662383500019574123013903679735487638180143249343124093869995748700892415484310991400283957924532667996190771733358398239366429844527470481088250703926153744324310730698728257059657702657731378138351044417348140879052050989055609535355920909985108477856512789672043365550306393734406804629524246473369467087522204638246725557373964718965267370185408556542207769423957197901926082311650343335256110685575690061082027359057049984822119669930141351865440619588545134004720412188724816394143969037576252688834756540216126627994104116484220291281180192290854114553138658043459095953702779841210292294774098569533686976678789851299050196098055184138537709083537913660124789624736974208328624371770408701292294977903963257474834892317295226607037313990292385603360736615638193488992834833517448939886633207500914246735334907148069262214318735637024682648509382214509621924304155589933754292536006558016064990742134013074773909000474394710822840546586389683491238090526082083171297736057104747045252604436244659607753956458765933231220602792301232809991482277804986234225256085854896076668553370230836510667816772636448502473952487659433430200543152695106100823699805742152799407747935109064064147581358501876308012478596646190763915896689881745611427211537140152607933551208718050675105732444823252210404536576716768545645812312533255977223690473711424493667883594830074384760140817108771481805414688401257858048446354237553312814496782265466855662797645384357176722081145070676334021785834431262698316816694090814103101639821720924769203528624957027755507268495965453985799249876733836949828247165902702674089633266949189701370536874440227226836274381986390836451729993873850317756148498070168120443404086609220282329178708370502180132409841000868932053762891587050913221087265649531862775615366696067467662282235571063357835437072905667650769699912004296352362798406381157915424122015903658486442082197840307650926663846086223358183095981176138269478393629224616069481752272867845074376691099347180800588766244259352388765643800968337249974016694323659809170947096609061889343401991491578547418665061331015148440545514229935212091702098608023955568828590308737539205083398282921893923639641583184558605189571489675626097095183482139116281629962242585684151030957180016964098552161907195879642270030484178776611995449940560211394169779372902513492407187207757296201125478582556960614519183772389227175596084639680948628115804102615394623896999325503384834067631382946742644161250787447126170531460616822649164648115213920176547847660525793217852182593835781472276267263746330433461321919609354281192246455433434377444883121649665973163749367279313167704273220603370184013508881667738974639910386283683436888706698980598524049764735572083566220899279522065660442132692070722245350881272630056070398988150800342165577359405997960870898874003584330967630566767027262326257573469898752522542663613589082120638610957393263861895877042651660429292732874033197908648174700898137219290985411872208668950518312201419385406533293619040810423154602393827014013307175356443634696928954673331649775223795340625637173495572792597869199030541845959985039417666167181657442610428793925705470445699844175293561362349878062605056261715955675069151108960671026846585882159948999131439624881694206519383166765824888593715775801609468983558263601284063760787841206125101514516213599460017103066975196899059720600147141008627880558459805689226992956904006242054655883554655786953114671336389683317308543773864042602370729238387883222878686332754837598919757249367600935495944990692318098100048118495240898502413766924711613165581365462993517333970608800858399408134396411599875457445920848531720089482250411005981124989084196787214662524478466782989271437550515443052128536632476428405080439689220782399226050937951634488885576261436333015841882589963851067963949465569315752266282620759001456546091157889213600531179008464503738589144296924480465183826303781319007261244269014607731160322137639981278153384878273351203978060076256664692216681388756856608450842293411925545073302393715912732809167128579946468808381466668490043586453796601139962361489693647404880795314866381711671399726062775450047968856729425791745371828053429418071529129298052914755894086965349778689102668809267642967932496827230407968546950222220120044370517065683932036877283775283723241822321851923297349396770007911878750420161814436388471710938545070181474537697586030951500334434409785131767569563403212834371530705275277107471365920167542415584094578094785728185368910554765564816356474144971765439181960394073467227394325698752775055500765205272568921288897565257800220906446921731510821669227277026576595915387130502870703890882507352583581951946711551143463794142134053329073601349797810592142805439485267146318843157151217962726922199038970331922926896030857955622970767033119747907087915399733609057160823737193221179197495040474816429823224514693162800730037739751173603322237694909323920582891508555414192232175370731499291231520624009907449402005156507025734719939610188802877562322038846510415200809565481806530806682425394713194798419435341860888943155727996516899876974318778717269604139032463963210900486205999910869213945291282846671204925167099657372044216410046844913013815444503476497324707072556099233820869680938934980530101235325549261310859010587229380229499125590435698088152769293616479559832610826438319951918396317238376996153703665726833442373718765981230744718558495119250161147012411872421368517561816134982450399010168695952684633500257053886398507877949389064501881696004293455346264036449181530630626978982221611652076299930422134100948815774693345425087414092241527123915606199406079332419676196085832701315224882663322995140453140093510845047620523299707318526538254196430089788763651374258040114398247912826244455610440728552575122968025693139901465679631800961495305048448208954942177238239020710244782450246962140594244668003468504190902417472658823733830185909872015301721499523895295077376987488454485786414534512851484136046241757359464484630738437796475775224578186463717406205906781590023695853125055364633306713437755240740812509752054983091878126135276089086002285611207086302158458900330447453990401768890516577663938523898117207792467427849261256058842822351626090237258563501076439563311841352938373206887370957232282595365743774149241987883131661633421295983626380517177598495286906517812153885945401850388355460454542841923717794253972389955095941146451937859897904584262226702588583652266195727984230509490773557184214441618446935401936483869762467456564100792049912049583072618541919640657866098136303354440858485571292856501968926182619191414529518198140062602796720654380541705203655874721888457829065454175184301011491756430053029843269071144963749258239925361290523960141665807684200827453635853767126138153876141296456383761839261280343117388632355140025949628520021080588414004440282414064662085230673609968337997769394850211461048067916393544846526316598000111664359529645067595948602052695313894739491195861196387729674880523321559206352703789525427637792488409324463097320592106045711789063301575450065909459672116930845495679518110150745147531956027147652362552037205872322220756429275776605068861602697931541234097188902238731466606488212224259218317315585185953287203260868449773921775204105642715589316273873030639214651307849711018499365037759003603110800242110432081080889921247692986689037351209889846527025629942791614262070085426935445400262719497328237999363332818169750297238029147467515073842497917181383671295310392373580377982539219083314680104899910326207062906490813326122980187490141085968529349575203778662184797607061965792492335326243209723207261348332679827966793315771918552720211231483245553031026246236828642915417233525009678866451155281955513344214490311011998560340783705323480788011567159194972839634756948394352662102819794634318719306490059492886868837301610479797639868997481661424777589625513304413421082142837995965813663403025979718277197354588253120331978553086626215391072550965141230228226443032387773805950237148720312133149922310683662901666581211454894603662875703371104177195556438887116000447106301843946322828219208674528082315603078439652611962060948253714498627109645364317172934619975203183502015454684808730678828318917166765846994220273236545868489375036508992818966989267263122050571729571102461579203593401419007549469776828946926936588863973973192092683451546857165404523652300238748116006317950989989663251730292052787871851000618488623169472091128940275894084845366491223443757819874116011169734897939317201447495960323602000241973232873210652759356756474213386148606298408271174632082213491784196834581459723173347563785634656113842983086427076851191826207515898551993318282931129076469667314443012892234335803532678210877183836045891953754141176897983979402790678590728028916807706247121906068305754731017350416768644545608238358327021322633283107914517606569607123803540551700829178899593498708614318100917044867381075982233596772231940423954551523775612667847203082961518374865339505696312215595524090675813602179938129188080043119195135994950140799201884680751589865556972826665963952248798100758939997125567648195687988348247309265722437362384708037161901421035530699395963432541889252937274512797299471449408505988405982508754971020064340025588123568838984152051347648289804220511722574374440714170742350750337795592843789581974789794932848458027680221515641790083438054971612033407299468626984740514938219878935433878509591465711703140287756675022572029568557736765814637367331016557439243530776541951995210721930966107855230449401967485503320839900611916088101738583114619483766941733043149521381390584786383464951747218571666716949943253627995023297428441659796749296888191918636853327258793702348378032782138035109044962405807453961409046622675214052284551772220117832174600930857100813158220098078105092638302284255319662817278797433693385572371111831555809644376773427670024624688878112342227328758372086184154210318416895736707715852392651208514684069323595138621277453937469232226027296606925297452326285405114645169839638286753031359934852392634542663623871995547792312450581431010303428171101113940628348444143957993142936036749620631807624547944538354928843628469194875254265325137329910660399980853794403188095463801590361532964528494254897092664523723446849027585895301651731526555346910620609884336749747945536504940449857370282343752324206219322704074851345217489676542726993458630597708317113754435202420907184992266349919511816574998135827413673136198414248961061507272355358062628970919818909649747550923282851017281663974298130660577785213965799500320627446028385034912503128226466316585047983001384495671494074075899986167830823709809968589858934738895069642786040233830938042069123614343823202793649658404440945635372204703172157114883255932264428993121764682486306300543014839335900108294504584970198816851538573346257859208805954909885472038083998606899691971494997693528012509913920225436464500258722435580210213855166347140423363395576545295026606567963131857898343494729215513152626538242743761133697009082120049732478822635351726637682168070049560707391067998620010318775071816136826361430230580580766683284323411423792363482075227897989630456200610796475476929361349112819286583971208709796201019617951243886672765509045777261941963101295332491430931779572466280945952454970163795752195300072606663086940024119234056609964108535735717227139454294357701333087077725994789072876276519346714099717779951627323866968040897988163650450725083132099267026558610049900430209506439288470514284542457022678576978162662482126365636106720577427734033627279195980808170124490596768217657908164825195818312182220571017335968919813400734640546394441017942645357129341734587068988817167879583665200263148965090970010766209627573359751602213187882320088724632463966862336825222203640147079820527942200612870524316108307666786280504262063880636224449887993598446804655627494070094896126438661295669104847003732601926664835280900337795255868883080848365504817240865331911812899974635941878762100959942179611966823321262023385891911718032384898082558320931072843825834591135237529990474638033223129420859415842077411542284840327667728169729942116009515087308781987864588661344606785409349494347796396464097128161965781210575210288597917802387150416540353182172988937615247513989910651214926648919927701072674301689443848873602397680667267817569097085532403713975213379336005057657399955438114870981742438523668857028189345386394259063554591625224271029520944286920000771417651935600795674970327933561731731968305631601954223014498487926160513191893501025754292554200058722663183790741836587245769899408955380184885689738239580867769972294139787145811154397427695606698753744451616757425598041397719729395988999418108899695524424566261967536477475266898579955500843844765658231719214422479203228469130557910349040620095479230869746319336817912124756935540294326936427556044702584009891593418129216818890258415589776306347061586300039297557104213757482632856731250975299017550288447517515831861109706580039082851783752656795999124810607249090654134209611014632207294218983090104541377330642708252003134658131091308221323993426094894289002850171595090350264552667320168745218845207962906548019680728495657060649857848285022794003887240337652386992413969285240835602516414532531010394043185456297349403012433572432662558188950385381764051461324601429921879976578949419308533124914894709874368948106385541878287082086066287927393280470068047418424741838836077027969316443448868603911780092590647443439445304158568725853770132035479905700449201247101237474883808984101192752519533493534362962555482745727886429043601599828486532157187712434189864337206975033083951845964662720580573532070402253330441810024398566242947458230673966164702716377659741608597860779210813105900295831306993519730075123535455496481482192573345252570046914876966798448643530332429109377737750151048357807571987123546747652442557699899829996794933052158974082042875844819538567275083147754949370931105122294747848607810246008711828558944409463512693829790710811235709782935616193481617398642123434546229554654431333695966642770131604510639226462711115012764639934550123443149280262821077979026471597242069835559315500386347047757043170976107023062002693974980891346516610969337946611936211202590459341485715182841262877383720061557185644361483404173967985834919175459052665091207157945007763795550444399790481004246725930382207747471332764000424956100431745730406384075644542468491093770611322167721191441171280071834649768355526271888699329775388984760543701116000660675502344749267349679002944084525727866137263336218598884588546027578701427943326031738249604101060222757087646891933657410095134985210407560052693857473528573636990263247032280656795792331558797171253525360437757219402128986329496682525839540046909477132957830974591639129340726760207778399870939840082394598692260045819139030479123633637714177589079660247179854561010996101292611150343260630637033821596642547329897754126315946919471742762143510939047303685535950701933253462636111622827695917728768769779687498868997413432830219159470510115192678781705415147894463205125113767570137758783457055257375396904898235813444193370614593168794224450140527096253621179606077248084043589384372489344013266251583020677505084236455488585479096191189400256373830310436068604894769240141317984502439138271823305413007749321840212631286817228828922272081769629789031767650973035082717499090046260009326358969357691859628943389090500091154960766039188879790656931035056219378113721519865539298028611947396358731508327537267925530266365092908532325891525940073718366571755766524051510314031000296780518021430472642885651846211925168615825906496181637717000777350764045403106524117577279084765577402985505119362643834591139141717587846480137582048938099516127411139539070371123942159876308603517995398649057256099269384603158464553230083946355578439789819323177201963732990828021705442766548395746394427791554611348974429212048685494634341685620331409482783774136600106040753852655082680732150280219981130539079467191530061161479912781328460645925852362705715359588104573342789762127945036133756571650812616965610133568420123852080473374064923784087669576872432603103378524190850092581792580519805313893267780626826925071679067464962681617410713116656741001841667114726081262754865472247300962805996818020462588489027534780788982096194707199048923665498919131373440118426989250476925664032757187256735038337886190795958968792113932800980933135029613483926963465889368543211128258303489743467589559193366555816081448687261072547728249892542410096456297250287464046214069874025988644107205324166872180873146209732861917066520227698488442405570544290168784438499058022068527474053373037063924644364832197380276352593101370653489914371453704242672158554244820105004702370181478848647025519783351075452790363384566421252221430877895812153046351579748001746092596204591780713571886069399289998382452954507066648070245335678153598841586858993453716767050686328490452468976051777282570463071963702400945436798014227525645778619722065867574550014070518923368166010157372834270400529053562530116955978832856120796672440654355418490638796462563625989135224475085349686454985449671083790000845831573914058667427375878953637407423596622144040158266273716212032231532996425799074418049337010926271536290211059105661110838792104547664739184928257042937480477763123273973371116065560678495550133414016807698630360832137389766477159912808145603906057091767976451983954425961471414487774562539665640376240991922645900056472587259143851127259367413593793222426526831553971434962781585215381939101168208907075041301022587025958885590969893466902577741309625599723428599973102595057938176193396644366423468012095760283134705115580185498720857830479253969658787558548974374996729722770229039664264817635389715035576855909787054376288344067004349468964334643741469505306851087604774262012486614346749882194643621516148216128233767513694784618642431592950628033672299089765677149942079223155781495995414924722724546657203214482228568590971630701623488126533981540030585339144231855994702956508817237598072881719170993934191420367570926574235578158964602955550346723257510206444859953928988900701980876871060675885080720224313402657317720468752254228388301516708735076496583011548686674770128390826682886667989443408840620394903134325074703989947191862197641426397916625625293061185307172668830406029420451366093112149847476212798866455232262299402565264548243822505441831293466775783203672034359461749936326086780765244112318170750785214790267679416783871490019152353043689427823629383299989364031869675459999349581062867623395569867887488962932321803280537106850548346197555762620691959581652841431635498398421946731686391534927866622076523141289857863031147855187299703656562755340834332196474786575656118544488602744303732003448875352186724493991563079374347718843363028775994936747070812577818396214218337349206541466729250344291240747004581483797468000550300127872900168145734019302442733010653123763549705868373013072554884076533374412820096306144323567713185787253832116711803921991803025045834336166446833543613170372345363507834554972382244733102875289204008790920686317002211050504675373864750463404708866282746589514379234328719683684952151086021122769138985613192504511773311352946034704086434833404768214803693217824597815371479108265575004211818490315917351300725908061721495380811265876365983548670439438089276263903444164619708250276117965608709673640563036776428133253790952206918413685724071035108898030081536364985341908412073900277436952904939822750239965658456523964437924645662487408524879493675889845779603170061566895951863894557576927063219922622537633601329528235776494149285802152358864519632974818657370787230458495754610362638205547189026380025973548356772969945932557841372828565263956917251518615786666415694762904278849516187514215884232698849771273819811285824755065677633231510564737309774158066942231222768790114684295961049063357622123841180133136035332443264318125196632034467557628942075409824708770962978015897133787106034498735527864228091774042673600069388566783344125138673027076134620713414141707177770875403142349849187942526357847131897216639251383576455447925343194915808382507352120906295151336221718090904750486974074937284692841691333513303365675516642856568619692905403819880079129424032983711522678961943693532449007387961053785612759658093121512563332027870059934514487745876651495204787295191014178601767420664667549361602908802721970174501124029601727004429559275888055882916156401722005517498520608804250424312567906472914299544479886727919822598695657058420510822452733778709073180316564866869542677929537968090374232918797028422473771534897602174822961833203841036286327073714671379713682839862870962598787468671918840256919979514277787414237001607759467369129175964858755769197114999611594878613555255940088527187258605387195072930657943332244038092456474301363558948390288201302876770210934026347770828922946930525350211541089127668454355771297599690327619215832923974284976515176575657498350251574431449439235502651117835407127946000687972605228790363542579484030770626031733272077406261291615105657724427381193409927028578081067033824596915156613046490308571411564198965426864060804386075926234724727264452138486513046929836373384441405689713264365239608818109595359675669559599669176533162138898297701025544872294657025041518158782207494280561031621570631814058063367556076197587140882436036156281122704601587439262295586316640114665403368189751148679603010254341035899938609722887204889311511092557585858944232207999577577738212488225964551755892520367007674199507074571722430429134606666002974838365845517600862883831984082284944379269478518903280310759861440860045905056037951824726587315317265144092610830918185682207822455327813673470102826724930882018678454403083177500365957717349538959729496825850856179428529691149654348294447972041633569915771079277270662203989176215467436740237406225197509917362342048742476410132572023562815402882830599529786901207745594869006326936309071970767488287349539524246076519487815645593772678012466101267895152407185082494977365610406865849847990717204459846456969891763293085227460419285982568325614205734252554843668061796785372449154971006781532388491548751062279780656810023226577101262974682344069819013554780087679753037396232928354123253045977272314181047264444913334718161075359933520433996800584726694880298292897749415496050927313926134996396393280725000849091093349514685328582445214272564141468036422356677050557252630753200033660567663026671113086232965260458429783419059220769226644800009444729302914855305752973290664488400438316781574591837048346806538315230475326434175221039241799305426767581917995739419274566844961450449346753972967679124428498475998040947121939102496363954552524562183439424364757494405888117841966159461636565549973203707595132830171541472793621507405892011881866198154441631824689827753713413781331819037659193725636635490693847552837268869383316896913220700102188453922980456937190628175507549080044127017552146824373198896465196859425217997171677550044266222881146620932890309234583069294134305601623084849652971129951180380682269417151628403250148548958050635207472371923614151158396656147909294901007693408907444256447951658517884452784327207460932167692662403487797157270609587347643696054754394778549089296224035941896474987490675583776848536188910915913864983116681894003668554247395252585175889774159236378278222625858572294827743191514519731914171455240618750581837666639243294827814711391101994017005616625180570038005626225522243371717398581076326729126360729659550386471020544782414882663467592441157407307719788390046307815492538987669686695563561534396681976091078139525954370850671032950126752274117381143540504291686232065623890845624882630259817742064565796872846597211209688111398417797150727401312012339649348530278601765118858563796855575417560068465684484110768868571933534191616118915618158044394015335282818511733927935493327963545137346032064198339379763476040922420556230648486235912671475840670813572342378304452983142288532713527976620771452814173180060242089062783309721969267184360211394812602263082295666246062077001809375099489330240860181409587058458725353403531646005196084278724947919069891840849993616863560350318612193495052379315129275996583961949174424351814565504970775894027350192275264328096699237180406665418755614328098390219679148592257078914407957825767685646759709532342148597733923760180511937930725664624014632466452741522673359162938304650531107377686846773025854619638921668196230433448117741455275854786208981582221295737972734802743418300496752048711110832085626702549745306957607341735165041007019070723682898933282236200254265906275719290067086844553915939392237009861529271324290203041514146230403875961790681199959252961531495495629531270102688876188818082486031557623391438123320696495303983269526615122135973307522012690007002302516352387505084454672635338689128032333111960314015251791001029889314788117700899612619781081260349768696926770592188190399550047379594975238795242996374740410488773112060830165788201978764187685448777215554837051867131901352333405212110233855625450404981697446829762365073875689477015763734854169772998757889215290108868577079438833820806058085913056445497696741514182876288422404700889593803287602769468881375337372470434884258954635560624159715664881722110267557319802982862612241022187652424829206357579523090211048731632405216659775030042847557611811276262302215783974213520335322802065926218698874981769396163089040379267127554236820999011530708400786767686002410369505801572632706496968392026442545960126961881813847168520340465065726541103954351929853542144502349173019609109217422342498393047741799154010777652517391695267011272918258646954959858966898101206982785979031677632606825921215623376026853273537576586138566718744490644460964758653626118984711228037599412442019549131482811109046050091157964963857549605964876622651113994847593304543340880891858057602231092376685823444263854771364889010298389707969005105487547967471215410875710783647774440560896653086534748122374157777798375717206218908977804681126414262732924453635720985155291651115426757550969444378252668751220867546166897449358983984559307945675462226975584921509671303118627018168285477839421650074796720099459290767453796564352292697857187245004558879965028556567877700871778687222206227976066405263587779969919959330852263075531474069927763740496188490912254657255455199879122738446010804132441961199917837820159810868981410562243693403900178495235639652719577050033386888460328609407062928607136457773944419843267417049017380332762065975692565970627334246209882125904065921013586252607263043067830606389736541956989955810203696961574869094685168414833689731073653055641940970086504895720436390745971881071703163663268695071729274402432350406246501166315221359546534449759025979421892642366676002069313451413381597814373854873250836769696749469441455362114282291995506745108296972222573307754587011546806282970233184705733745549885166297258445280662524067095279378920642552207294910844560434172382464330919103595093359662121651086343704201870511517208810167630021319287058909345001890542559340644313646188064890282914351777594824984828014962050674574248701996256548593940675878376430631661516838420561740576953139147092719374510029897283542689557630315190331862273589345332078041734991210187081571390994737093383227965507196033816455667230832775732649850710464712650174990146073787517825693638104706353406497946789656639636611476716880719866480049008202526667478918511946004883291725066547173099835113434759856720442662283285294720374347592872815132324616772736027813190772703684998964998539450945316419887876090210199221935397798931226529428157752981209569871579890386660370942816955657555411350152597110514582120889939561289356372340626696954828603825163099961098802673776861662758005560537090227101242367041559258524019619407714412668906495204850472019110827503707473710161254486521151690123635738677361974078552200676298607263690054081157638450566243013582431911641225610394592727139797692975822722746260870934818354726174551833133323230038646265272540871984546999562803198598768813140933048985227846787665206607646208367926145024852061244403255742559617922100499144820029688602023029611058542779957761172271316917851952766547784864949288707005581689610721840957959580057961702634697895098442603893645292494460812907070986307232511594353842209283982465536898045246783827079704666671275197602945221135439887732978879868844452406399799794881188600055337593306587807209046915270414307726786324235003382995660468049427071969931121352535295172744735560192012767300263031404623736446151528275384662359033589606462709879443762716780659786398503627704814696626327711505880909041448265587015032381243918951748194593931677466258314024444589238883540059703854284967753023107494878663731053115144200816471021752494901587428982195368372852045242403223215261086098876532494423732810235283990369151604922881782207765344852554642525456705018435753506310809492075645981106727340618727487230986468425609388983051288012433007911965105332598746689639204374421621802778813114577879413067471320646070066636202756174414939850932401885114311370886122892453258784446117849667708811872945787996135963222181336167387239849689716711925175176246032937467870648857958773394348925634767262157416374534744163317843189571392654423450710003125278831447761844375616403985984368849187134585865698165028228292258267691989689874232241935610656958523502600715604535156756069339558810990502773453248377639540186124847018644589338423067641054529749129076801478549081426638923353251901352160235358536407988655663704149250806087520963415460438536266383400809493960587098027954013467778525279791699337464842917310675693116836824235889825788354056406865626576392594455427313523141586442416213839565180332652952893569172075492722877812643295599080079411063019707016306978343388062463087429086627358917657346068721433508224354973085144184133584404436363623195056312961554691810935765809038123820862617477593152345542883447592233328973413504407711257443104013681785397884198157733507297105366384301165845948137801387738977111636354033377046947164582178247118462973457297266977960773338229384178606137399611183614273009305192685328239447717680784271171732131264371534816086105276720182392205957668701634366835316750863354557052163422930396539701373842307480091397111698593927085561185972107389348371938876713791439666227384504023242956276340812458068298974548588063488969305959760451429907417378042257863042511671452039658992114556796597506709021143901304616913196699259159717738715921167079347161378168329541951764943535763123132972912370053786451950263855025791251697248272895325270801445911262087861162051671617984692171530287667569493368415636068213220867981435740457432302153495938269886470279825751028424114586072260912862241669142305929816955149628445967968457747327420854425605449432044738489814998615948404880820803771869680470035480844785260417433375016237918448825328174411946856387185664281459416078736556303870633846059553469842127502928770671686849205246074403336005099174965259029542506159882476946876797779231993702588297704530039876536010572860106449671735725143849733007387817458963684775308450974507751865403910530606375580648191527918719436558179710694648566705135529355862128307444183536245880716104727107412207792737997515563976102306300195245121931142059022620357418050072125842888940662333171871601738767453241952203132887886902885525951601619347701119324869894005913182403067950484841502540162263264147519864445359378855762904034749405166143851136288833093706664509334586276021877687086030074547855287105024303392316802498099295996889408674863392497412628778733458218167341909185922009263710778293186127247142365651468504522523898621686694766803112423977583176229514613930467845313210654963390758638710000707195505743241847076545391184599351887969860818706389088963754244352877545186179216512421251407178476827339171056004903040566830023336060727556393771373570247288474050513143374454498310728461158425502666839708463233259160525961604103160861869389653454123377054459816086767516826517667420738582438218562439792001534410639721070017678969576546436072402520512598345195917276911403840240226878874048962998145134435194861966197471452904063682535172142546390934313251551018291695251318105251199369821718186438070118099830507445757952485499316694312492683352298407303682702268176047409196306694133479384021064074417407564874903836774895588658800049231838905737721658552621496305818028641087065893749196097373615715233855346500072399701738015263594957759948140823080404089465519062498861092129101776422232737908781150229423919359198428881812168458039423527247518405018649900245301095662536352377488944879189884414508616696105746091255745212401692807589049227100274277385698259003029523774275326024854722948561632903856581604299645490656754406873880464135442450816359600139927261797882038459290552483456575241849489837676395254273331216359072742305489826931471226509116668530705820140149627464897006493220449944999903100082314447303152555032340019494811918560276867886534752070567874299894811447157841179159149882515957848576689674025206481042695106263838526045409977308073780955567069788680988650282115806360652044443493114254417860788522842887362455975636139030426073534130335499684858897524206646999714342573542251807068559045257081956333202928570859297690870102680686048523826734912960117270334811991568482166299122029736116135053279683281225262575542193688301395155755100037462923422649321498125622178798084529468571241463548429421031298495706720898570156750410861287884272799620627250198429051851010791455944326401697944417356954755920489780200677259209457346258710799973941236536220557571691380304895780602985564688852186630240084904820941183055873672028023244981827950557708578541049480179302184015470482276649537073382269091509908426365563186023576802842673679858133574291437857452257510293811366703762459101160774704635126262011657391058951088742027702921366335060804117898396467984327557310322623467224590490736959272949338358893076068943938652307380152697439931512147865852917010363844951223551602032073739887552236538347765477658821935136302129733964820715336856915706933372006094328400551006215426128778088550350414081855543788891624100547946273772234792474224506605151659877892818849393795047817704611769898805296733741071214629917839891961053027743679249744145811831809927426935064008913223117431669836169072486207551030826690814508996911319212279869040864617540277061177087323947394815330581458796794425747059684282904858942532326801055551759204614879570791248838757774345395717252625083018614634186561920463324320701895164279639481773740980493577360428812934440809516582082547782248190629531547141729568680259770874676717405260371760381043548093855677430383032423960299872223006611211795733056532509788420461724728812676340852758701120167210162504807046503939141279239555043969968967008893293585221465700068701183268819760961343984320975299997496175460915787364718932662828363086644177984870727510329488596142623929798666586694365348419135579815537166434364573247626948611145210378981691179749153160170102394554613086207419433898563945974313558874464293280326328387920648176564020129160709928420718022891441973742690166632082169916745067661199388063894726316139575069377088495724160908856149612894857537579881274579687826315808459718688706825808991918913118496196910557343499136201837929358349506239010451950159694890388422343176077998113954168178501303818320667380790956044175844603675643671804236003483164420807104993127364585727494269393098544583456159104637290945531822903973478080752974109053097283046515596558518679317335756708468295360600257577565070395753821587394927465734583263917018735709077238850888119083883542504053935225696376810707176219541474253728147877002872019869680928440042746069238696404953840162547033342407423603617247203456950175418961043451295878858328077252911967511218196191806682684132959575762468214478119195794173220979064820775566416521470193307339100687241271390563798745761963046168595176684145502474527190262155463056433566990131432403683076368050873495549829156604612724617756548468308990464998407696882531444938967820940357835900473089689326614999169016360108274838771246459783861166304981237464081234819327979193590181337439408752649383607207821023652426504715219615656275140111140582835804874238348448769708406745731508595006502224203577161639068697936975615850855742422799471119274778681023073254948073301178663105534251012332468477806424508208454215348103127388166758231167710530476528419138435227898440877615351284004909146709039227305074414458780448905198538520990154937143454772065180355072840310175443094011967029737436479720734735332178639929320217774280849456072022158732801901258616297862152057243545645720180861809554505074520853142551257689272520390502602382292374535917408210389642728975795898945545301439352635721752714062817961078693191455128528228214791716986633155552821772850908864049555545636768837609990183813453570306551539056545910179904898145853068436086184401708401250308613576942298592817190852843380779229003295291581762392820554277126787150708836990018457850430702241299971775884197436425785112948315950451510327628144155932917062954003510193086946879400953657629948730911770541094037066704484418790578709154986655021360015681907891065175964440090959778805086866847430936236376344549483926038798086252780141862879715437249543349991452025997965502620466468144488263406640716330878495737011657873529543877366486315078686528418186227217630296139963314444294812319955737559384494634206957014585781190765411861664212686767919450345033622492348824499796920095085536159921792765314944625056275357979228141461293482990086108157079977980597757763202200879735214981096530284963906017456554650276834837453008666259426051489918252269120521336932371104558946814009412996797484882934142223202147210652830242541833685810017697119595965690238209428827854066079923259794623043579159265763137358489710202615719569093416906379035179723095278841426506597277890967707826736420129118367659719905775936932990937599691985397067778756361096980723884859590276074327480037531910967866951891590244862099644733483737458056697471076400172375015437223476898565546797517700032990682690306686113886608234742892840611943379889042728442111629116893812385602271706654412583196840484394141280728973560088944350511997511300424479821404168811625996941757900367301854662327108608228223562257044723357375360419208259253608331063868854186553979780679071024451192870673771559977807600974363397127959499219723097912859425670471532407897852688048102977102030919060711760228323783340783173256246330538141781230494419569356329928058584544693290158025531925211888836860479336626220233168912460582891939943426034035084648488068799177530006262428632795694472937754195868313741827248984262124163401072352982307939009248692962998396453179831450603264641878253528363691726045780537327057075393561372056434652004632355485584264023749014846741062984201022145549125927826149491582909217760054325179309860132811992833661171686753784776176955646703434187509136963474750875260517652384511336497120147552145574382718980845877875947651674328916246401458960818704321600279324947268903174117290786035106740624319250376754631571051829509326392963795541406893878529942533618671915900357755782658486611692793305956882173755617911003828155897152090562287395021540815902204865275467007739231703203883417868501999775703606235639501907802362007850672344531495363058419893638004534944405524778107776645670630598325336049531697062069464213179580054036778545637839381473287947986533139840343547181539699772736457889613796953773835314339971549094989429634274793886727456585259632109664624912762660804442298756820425779021614408722054183928308192207745059746058436464696644559219844631230328699546290292892469639757423003690050278381655727645467480806482172752878444820409525307071829433307664851280118039934908023025716703941433837637756488014345928551658048574655794954320456761979792851771257794202045002384062150084365230244577265706230938223442024330322882443012697214883719275269752467340168861170779328348579871542272466368478414080900777136121163001817551259086541615283374112254984647752880349741500947797394068773037515277248577327064373789481253375223613474919950598222589284771101630894486133554140175877609659012605377280896260467592090181077509795179838574476622593447495583418248168448069699378735706507443774930451517015662679565125934238308880885283320163847663660875038207761116199427931739838575560648446590979435648543054225397276671084556475023605532120725190693418326341390737306309631993409311413641047301468171658438357412930659889362937469167648280776405945058064497063893730286439711076128474012178217715263239097708906195494645977885323795922196063755171712503816536383252760759725485322503143679648684876671233955636942509972315847559740693193496318018237310435664366586376328192952672998646419892812171855757425129040483212024611036905573155793804373997075117146400604649967553543101382723722349917356324627673591899032641612680146554622327509219405182543290518006580040410421214064787974867099078776867255710484896587446861059462476194006907904867884960409268132428399422728837859748563912537836211182941293990804295058674368682532088871141007775018306795447597219236076983126643077713641391937701458866763141255087695075029552860261323533893421297157920634079005184957347198309291434036489839359455398311055205174062762188927167060735353069414655474829654152727310288025268289671832288116785157541321362833123520013194885497114103968639845183086283518628766385396805339023004262547094820691191874459850113032888116111446615731336170300873925224977419642946392308401772339111601263107009789272859870215256485427955544137950237426835919704247758731614799137807857670724383343040973305030272598555501499006926879470578515411351268928220443704461060749496412771632763732833376024429605291443631798232756365997012181328926321422104472267830753124995664103039656008909442021903913894291910197325782172361886369096633317769980426582902176831271896832827932820256716398409057962756028897638896842495269204721804171872543506303362388234557018870061191125371243085503732262936850758487116646128591108528027310131474354523893180621620994954768149560386936567819065955928274237922207540887980248884369217735187415810880881275312068563688435500157096566649346724234225005381012125481953903629889527172631584549979214988955806892278395402239703369799563871546325480622183353772983449046716731100296168315612115416795693862390751497206988581827059333599871199782358416513898261314000747422489864172448273294469881129837256401494915833580311933698107202313824780488493820737093299861055709243107574856368363814120716393916389061175943403380485097914627741092472127494600706103110941181397140050816654764826410560217282411218075858821468677613177893629440873953379172492029121509855431791650379761337831347420792243275969109835919503377985172653808152429045239848275834356347282324266386878634311384104565299296162405759351885363107808492199229779534687625239540343268225759537465474946145107971325860842937098912562695262994312769002361799271582056231337943629549573918626898144037281740729974595557009144049304731693662577152360953430524384673801953827040424974274211460982831162504835809810592513960566397512840491194899239845188402028807530832975152514502519271122324425102793176991713849921746041256459204010083369813596277694103120166035248339730432286227616780050808980671327611856481750510758612796285347023271617842719411930835941615209390646331937854801214548357197642965611845987838777930628275836078678021722791445885996804733235376037903055218877751051398333679677640397210652697363295107897543752496858913747433917618638851828384315340753337016469119131832058633116068678252046467224419349472885571318095970477611684526071495519776807579973597698184177873654924794552417937495906940713945795918451757627145571497160740754504408220034411880506526431306112468654559041536718512407069052699182021300084969925495230907480359162018854235998409351498141339404074348265603941362609864078014648802613796401684628627917038127908883391853190406051061438016795383291089960845860204681993830611143122792053334475171819705057258737289438661556109462130198525628324328373949335365617122629222975865275956606457663752827403373764804466194622693382402471256710846537199636128541765153969446954583423695957176313340160234008757678722216823903490651453040615355130450158513890595816320827190809887267728621258018265830102900185818738265970063553739071064123906720718847021363299788101896975625267761935318366640494251753553916044116755676629387145758811046922745865294201617605346439618711696921677341190437273341952852466254701194178320904127898804644545745303915194792863351936952851301509781727339668656835526140061557173219902200801765997350736844132837395097247055380970899933521466329652487089717819762026410194672119966059331691730100647827894654744013233283693767894219822708721006469082254626684283510221283255649530449381154455344893651798640726109644495459333163580149279744584281454366651932105441623248219983021347078240785469655853858183646574454983056192911950444062307495778567022712833876440411936954675224759890205634169797949114425090322876597177973291016113491583365027477658660394179245297410222288518076485940283792497708574290118454212529648646889548862447493084440731372501192216058415295918482844404070966834484399460618741941795430495314110628790449491584986135736379148058484437481970044706258238441861637867448984555146883773693261745218550475366421811274692013340910303573411445834383773810804266517070026327542526034872928312081688822639477623917904767932301718424351451005121079119815805024096194969562256287129303305564810371542436663919014028166895265051263149369083614553217545004424845096063202301217833178952934429584666428890304392836331499046515656149382864722033657848549694040898437243157519280479006619500630592452598967618828264842523929467165827444124911755555262426010466978407876051417417309346886809941828033119470385549169145488522222697081032968349626236796494571226298515688225315401426115922190127075606716973353008085286118889007290345694801419039393787170246921889971997313538685745019613909683210197582246610848568351442016254866031958821321523097143490952303139506302332396722225838009972025595315704839018371720416747644099191079129279306197158343323531015509645643175160794827153808013409251304467119576312483370506264548202716498290680902667613990244055947742680945863304261881622067460581867061424756164840322939634095585746719195085698655774200585967080107746462922325014331227656219415273010825640889668032690464015304449117605831866329606043440153531524436930848389626181011569863673886181080446687876015360108519418414807450416703235100607404713795338929109041482894198245076261196178987893043967408651053108008344237831043738903965003876020832671249509487616586554705072861026588375918269156390303959113901347322629149471464362485302663317152930658622438162175528950180628160913051348033742467567582817617481094813973468705414087229314847396925165275021712132953221043734036595317285915401670258582522371207922069598621702888178086386729621443081759142309621764356655709104271031162895862675237297837753047413371804323784078275951843479181139039576841586726178069710892262045547731470973669546417186897693102790795450323379515557150510397620502235726262813577637420124316820507430914502771461801530141807987786740076262022749591949620484398876648166492123397248779023786427558026836153546180061331030476799959797306568734341299262078049290499942817977055596593326991205667610787996622450270565785610603886115132291071196764868542659539153447364652049698946323335272055489298861027353228323307122179278928639247665367574553380639345791222112290622992051108167532110217145672120912222357780756026570908676773732955521123481296466213251946800941176387635354479361513478183261949570191529490472709251911373651519056519623297427207707160236702163373153802810433538734213200367155542494556099724642201244497442239209068401952718327454416864506902946070458122492488040867608623780612790609217756643213475196823283884258587499925836729327804697311556820244985899995729266686352421239773523555909773183198134358966841463158241392451431832090977288272753380874723932833719331871776486744004797021734714832832055371110918152767948501394595410242346191308523580393053386537572088374512079270536043821315832971843948864082134950958418568683073657869158480548354522162570655659573698810298042352226990812818040331432714460409225837610378542033887180540060575555289354015593585299288439804775762978989621000176279178825556744370951706417329859513404229999835658773841140100334473256684348488767444145931926402849265638016287365085109998279625088181466044903612789982318609773151768347611819158043602859571371909803356052676520049703274452036837998772880467682088847328111585897734654307449539146242450792104970068496569357976415725488411931553956229841596964750565317086748718463694446440852667981041471657025990964214897607533577387302229466887070849788545432334042755406456723764854632805639102754650986428474540887267035322136967432396189337874815005790697787279531553182111870130827682041237178289099782083701492096718023590736685263473562876494681758839419904255440927577423086882717599348134732216020209710112154255980479645706767588807243218043720013645597871453943991259549657739198160915113439621081988831672869412493646158125994651224027454068208879696063133328529305584976876319440136786231293033399131874031513216060966869285202757736831997809208598363446420540480590568091880009267222508416896467681858028423511738532060408742779917274911637302775702831705812955038906005620293610888167713458871711839019118982466980296460862750612672210983925807343424979262294061120447524155551291827675569472954447467257221498641653600451982257547947512406347537057170617738717422071124942279788758500496329687719237522426452839649152516070815996228414102647238091866617809721719542910555314140855695997310685610435886033047010145338344901754562338403129744702530808188340494317105688628702789119967974022125648039115685832458455785502528487814100730447824167378982498283959263329420500498378577043924841822869431424409332477205369105041178200650881106611849210933620452726927189023147952661548521164935263336059861271146484688877620824124369209869688002582360417692862112746376082483610178806380615837572223194041643996570112682577791311943096991798429616443979970185444679612767983467663482604597881104380873414191989621045147581728443557690589580897517234060894594134430312723794565529601885310589873260277946161678074292681620628308651010669004263997583331969543978251854174854261757716197986825361743480510574092832022722561243824288339299400714052397452218997220218167745787682120512426480458352682093202702855977588918626547195402445278360351788556623441961702259051171783785885763325195533361180163571921767909464545167411638059215332918785337491216032025218866226580036494912402956814657693290206910977812707794572082405055862926483513323332622520613061033244060408912520264967537069294430861518544808012950285821026980679657128819202580558760588492681313071432505011134502834166945066728788198305814267300659090673762474729476417466888634639882834591554559226107508010317749235079938990821762038036969290122942294932853490358569881720569353919574795637102440334669376229774583829855644646037808065581895242750193980835470726720348662236763188533320139488933503521343949368924311645763983530488361455447115606332030074911617578329243568624652022442936233550761517398047658597854057123789059257798820496929336468220231052228802117030187477290411813555254215284137410350167009095403492431049025828350217466180821290626138455563397601298845742705044078325383709136472176293998339720902639317603717227909107981958287735301495180925601583105963112588540131434461028357022765624592575838073221823350024493714077616656627030621824128554059651363903879797163462831727621276726004669126887843317857582678862834796345531636206248135513808391079127307672403698049368553628286780696739299371951368748958336315693160145221150027120120095211160214153645657456379134231434367979778076536692072023183497478166315549019432607765373417005379317565260769659167987984942740453188961265152631852485219712232369047952849285345342325421460468504019219550747845026684335149181145707642495828498272938651839914134394370570748209978373759539114639020736049517160094915565002464787669904999108578035549597097804065750894538638628847831610976264155208439447349203502364458470317143505195905152908942214182971803704764372876417044434619019138990114088352143353104842918820872791539227395236193529219790698517497913205574284414255163943351200172313340438334389834847534072434236827619769663914979187768133457768745342286363590667567402180482475476641962049935259956754812209505343001668986494058836460418215706084944956048459929003772852230852445954329686446055024204938994106603968596786965548921807925248702465894606580844820514780861296142169103439194010408256688459405559966786267656868368261279963384569097658762571146588984590571644273663963432134484056850742498040692008669897784853157628018362504642147244843459261210640680474405227660731369319318761308034591777863328668908434419107224758573752008921970062163416318612176972581092602547772795403190021836343494654232212799776984485615669200491042928326234385888862902644933770770100097003613291618257258728485872164412782994444496206833203440929262695981599693965562424097411018867278726556262496856213882146875191229091669561441731680968216237096583744200454434208107205824648091515760983799219406726955612177806698588335638834533549385807536553835501336461559224142363914617453112494505300956733147885020912541189958960039947604761659164208959508523834711415553049974383218939559724815906617672017507259191678196366171095454263949780574416176807788760670113666097626424098209364498526447102371908456138714939862042820305241978468663534430499101714851883255664775977908928517732877596356867695564221485961433172166569778484834650917185129159846932896589372159192117257565987215963029574101220725605356826276676201791397301988520531122905917408288235815282001351008877886899686454608510320354103659129879069542368434058400518885316080659172724368355479232855178804297801915226104275493502498856618307895210063726994167815487771385517373746633459294017641334984726691449245107315158237223488446460387486444398835637698384210963880870428386172506795670842381578259420798561193751659926703251854620441644962685665106064541130734557861001494425938330894122836932858255210734363813225818324166338286337240307678442724543178894152681523945917164110647834646231128366924549371695038899195484409353694161964445986179912583697684635567658271391691672150490760593019858136680737420447560294788781633418853866714491409504064677182355538920556750776832872018651463686624383863518108747590798872779138209386471189774396711597818504088001640430409600967412447652027314480961088817446418762752018128779005550699042869392493369680842336094782415246915533482738239833249907860447113355170251713093395135055066136185204069826630700967935095901182395505018855686952332278348705785052298019926412490510790086889792039663312321036611262573648544832879537920420832424615226422800443665172525921554201947482061275852669391521897616448454541183691572185700707592866187020724489377133477284983264084932795500051326937370798477917282765838542763187356665158337951342620301295671437250627890215263766217261343619110888450826729310120951244973775103012685970839308686647986600080562932670820009553802468105651861907244611427470547287519665054709311297512907375164407760707577798932852153353583910020044801502976364338449467438130343615819634116124337834944611029905619518178610803488169745375165193248454631694623179947907269735879869769658203421177737445395569544848146354435215376419119785099437545636306278789665636657454593264827570164979195992575942307069560017083053123403810513871861123081819491346417662577103032998981606028224870551516946805806400917056576348016688924778809900745238451046478871218143418575148871109925222242588140505080590652698636855549843148045864991217325320939136459931517867763512817636536876567298989254245118021688979237059239722287531940406043807336709993146404913355413255185480078371100094574035355991637097276991268546635274683384378439282018573528492103441511755306569415665818308702778160246083484134321868305879640208330359235745068603441297128538558245159993613791739446980993099970714200946045329919096749342445649831028688565368442774071593664116518795827242038203481713175452061926149152378680188821979412940025782209870083846257241242758318393618107654932711264561192615087035917112138393422694536648729511898285653309021964123486441122311573893342670812474289075649119588291416944768286523413189019849144890248568006198492695995530908856708975443832851731754100944112932426196628998475521468774156578542496833223516999795698529471049472498292262139937227813317704657969678556303158499834111248595052734727924244159398593944966172385946398873836161478717704164766128705982251367703719798216444857099056105901779310446776198715764922169175595268788509993200610958646925149937464859452721514668673250932544811432237862909157742572034867982128601479454045995774502310214694490891677708061411974004754586567903452558674280791571791170002773434707299192678263970599427712944975759237153351544965766464731073016510739980351068346001926493242393418693625721277122967238270516062339898114634383189149192058826332205567259273445825663390980026399126366922433829817375429237418605443542079289622866973228848046804091017642842100822346386785940865043765287554975476527577034827681680044334865521925265628420412622196587032207742838985044729329403546079561042362270778358838848930825629527713964219959099160960148368943835477127809076372189733544528794084762674085766774833744449228529077359369655925383425937497946893760526966561258742858388007466460794669066737949018576823504832002497072460559797055474130393653585975783283642275812912323883968835465022032808723156408263442228345798746542908375726650245046143821303627350607725201469492099609611261572285841760674882864145266031504920906090951336748546909446839522313502515409366484367222659436054580444989175692991929018617100980459077399594165550254029107628045349738571583360812198518312536174733456797952977921430634837630817758769470904168564150711031322599638772505830572785384189780276286429013971195858466730372727329182546397903058938898929773843310671552982976161523808035195408989997912849678320817808222237562843443162387609313527893087810166303972051704021683257202869825776676959329158587393111366079440733797304834391440692802435126018105155004290278788399914130768441343565961885458291199035845385240126147183670732309345585788449710737927416778174001404293795111724774741959815375587131651681148071442651298095626203374939267846273757460275510388555572772299249904481546713933164396232144621818566775391820770112568930670176397215145624740383855321099177843372163036958275540711011159407690447338448189272933574913950090386604669672302721492598162461882873287547370001310244067258212970992533190661223293905575383908854462247326501762447668035055085337762979216170263905096085466714225866921869961713347956680661715652636508267864364574058384989665988653227680594150925056685613673113627008936883579665427260270999248539370119202239111343994804049960312504377454553575829675208439415209604660095214347327836829165784875416506068575539323486931373923733702688236970062422392075873983233169661515652858678512689040809872313554653586209428838160108361780083855723482581162148000455128663644059577268671836011762226682368183133450327555668932034854840705359005725745485571825490674641988841429283078251702300201204899491327176108809101260777242765632839752976280696771684377120026873394507329231300973764887997218448229390115189680878331370667058088859210622126372823878251317104438705798099685169554476531364918815574331110255892872765303126823282157744248874991704507430328377699383793795988428495967393505281214492268184685010255941629932842508231756408117892752330573283855311399201642580599149408176984682276481341139304455828283647695503373024699402601685300501732822755397933948545197575421262148912083029164025641675420167933674729236526792020608705020502042601021633498823929314432963140470034971616569258893931051650763992699120883637063161031447172778996789962184172009498743810485640917503557155130686960111437215103558259531922176117096660812345028308359790323842534204274393433887828239974742318279515234397384618566828813217502761253015861161657054786861556049669645451039516729514964910428775952789432070378106456737068056155141534758765023708091311195328496246753855150398349854794159411146793669995768768055827139888771104961578652352931897579835498228943300188838510304532296850832150781692973640704512127903788813570956384232116144747296083066963899628508143655078325430359026592142016294270448864368466128170823794665400965248548226158856528656445810055476013921485437184635183990510437770516094062381352060487464631166999163486596412403113280253864484683709962911029841180120018515804549139168659788502912128864595241411499637072485140902610188024356057603436200772775580623715257117762497604760674698832203521491712714893879439860858964184141838186771422673783186961594589410891190877714660001045448272233464018176015160711060935787635341808754304828699813660187989541421883053943828753253881639596483925790709977078472725766809424304909672176841393365766042666067265264397654507666324595049796645146410097433594566996159654500131055077761592651838894289969135377680976817610588915615729245178891979530515194414281279122848060408394584559789416635162019631168693903132964018042040944804721583875688083861142083789146506521149061228580582830477671449876493463510663834726858692144996848968273620045190550693227194137824772634874009180270509417217202975156664087602407290686368295440218600887214149701762379697873824700056456966235971504529799123898055160454714610319863567642552738134616532060167261225823258033585383568873511098605975338232304165236934847321438841492969897328920714915322951046512903788751727260097884566546537229401505782312711221019584764257085590206259674593654911191717776091364349960385255091294692779003023166554227760789033778817804778828514825903469288292651307128411344510698885226569942981492135394676804441772197253810561844837688965422054318758272561998935269550687947856648353249573120958803301785542747860283286677166718738284875564058828511420394846992720400181196462357079987101047455123880074236559068501584389553080424024599173509395514178444654238567682585508020187936308013595545132097419802657017441184255108800769816766738272992922158361313792175693341071865529259594793998953011134376155597023274973579289123280784416456962649010086719809695048920189599213148775457512663413310493901643197872898877427307720771936407671393057993819850612140436381561119426073522878670072210695327287761306082764799392548491371494371098982517781947017033738103109024103554000270931339227094195077963526649373114408184694132769005045686669293473513176950072190879807843956493076935721284231830211738089736939756442157728049806308366227591926069394567718608900747363132910005710522711677587573098732957440451520588954372403895923861506200453551938762890388041370982163364319755720887928138682780237224074514718851856727298581610077383669645038899577739021007160064198343385146704862313246354353194016935524677213350837323014584261206433449556571509875912002497210261805000434361501532477214816443241854035087259958436412504614362812028602883415933812311507665263973487826171935076553358741489603898140370348192936095645487435280347891946995320288390228821731410785245781446818723195259298473981491393598867265864666497295958207880392432524040810976518092771534545058483723819658289294708044299821509343999501515260583429651018573006239008743990335208380150398246707672145540193130061104486382457485706373440336142413199109127281019315452176490290355014120302898944965227642173524646913878032240499674194473055780761853726543720852444494628999543623554310945592251574715305990801729560080718893113905365121617689897318308508927180945581861801162842626564545121806270072119730111264875214340092591684499689624354230331818429351865177581450707163129235242891155328488143871941436882675784567743023866521609175417441003721779762123210812494304196347657403843334961215892224766665779751400133522897886616837433342724272251110305500751384155998817421857193452138929802774525013842549512602098714363945467491723952606018359566328348041193734678313760355520771544460747189631332017439044099950425133695578032920439630314627408615895978758635655541646648392600796595125005183760561398158107822885460315233867072838242248916708344354166820005858513876170884126986786433973051704191768567808530464893359048670364910328045869552453941936340151447330610862209268231482809196657855413278620868503700500914401254714846174776705195245654114569348351050974582240448790109708863938276262802724802288245205172698781142001386702931292739856904640478285135203325368879723093294434992299845306379859869341264346027022900091021741726656896120123827970880897484655627763295433598729578681774151916010991145592251916756855724756130957177187661009378660431683096790284091191259018430685413004558733632621895822146849897637891380099757104921950863169434448857268234617311478351112914110817696715638461992749238124024648539790517088525649866962843458452328247049573402074716299024636475715495011455217455219656313970247668139977933763403097321453147940368294391652410279964257896705072739006307317953128920969308846751033727911860787913489006965738895195913803392595316697608435171380156813613822997996838477467178797661476256348166384638944955799283656015848335334137889240617952524127206891267350307304330542618116643947373067901226980726215538022614598332895080998133048133843604040627876631742764804027037763686088721867731674468166661859355937048041692895205727705403600873503345016375235703612684811532391599667343338073638076431658875710978518196861694252938775791929674502860970208344603440192440047140546825241681211175874608597347378010367594738233110844170232261157020188123474497611975254193787789309554779077184805756013945691592500522578685664687359977260987773879596008527963116595444409288035760773197821327027615164017448532031763638190858572806285609351840340465484253066477531065705338523509847737716369749436767578377741420324567665085052266307120589573584707032940951552858837362618078330774473569907427521538062196798420441235077729331861722581051380678503843587357277026217016757666871246285444825826349674135783145621699426403414614259051724649449957215308878083998844056738497428393959326815952478363411653590902083971857867308773338365460865010569671152371948430493019356316644141090898860598925881544452843445570994925199264408302074961776187439152530800949802404363408636364151166898222540183853838086790174058130376920798415204289937906554497316262435621277098338781357076238942058392560269618708118143822494471385553885246406063111208365654644931811923207897364002922552261613879406979384510617452472735379463623898158477920777763864088244712898567440981723962148724547534440223564292330723913403578738792794769533454882639558762044395831093988919127328124021596039179639811767532462693917143804684295788780561283381829492810693017886157980269473720717586873373543227915055034919550950871417851974919394640828061428184574281550757597526188258790303641820651867033308454490107577952480605909861797057174741829458082710321706230539703732966623353068998892049694806942302343116318522079009896265424589393938943604826193025784978217743341642737145271251048367101933076789888708840717184218908010979152877702226078447507813282010957120528932227680828957942119282705564973568641560930464308116097872643280799969083185573205885816782381571070272504376766923323695673476578800120940106461978710379406249505807623994285673441438869259267543419479125183643527416360165997642240635813148646807479012367116364785424253906517394097487883765692389196221726560425840636339600482889664933782101385429842926882252344952197529828379398415234355105122110100411920566786016264867750013399603196026012131438668300418644617170612079416275678637703392303464527547626901733814415368505964247603319258299092063646668152740240572968302182749587980809805717746179218884842645489846751656619910692256232175284290406575157583969242154153748676605134081070234598751187567528468137288257722231974208087214718045545410434168974148660388044384312438893914512108072878899892238070339268354179160553503058419962970178122745862834729094120139568467110230121448136383623934131792143425844070780878558536258955909631364109248797230723310508585233954919421657552166733849587813695368295448642620170840668550655397353880968139400072223549218647678590632683967998820935186118078301729412520822485346605594974116318936482607994586255917132301987985307861124803856867195751129257418828292095209403438168639200293409457864652435615626662724722609315050817192351452628026599240825229652437974703899773284787147265263146331018318807727339671335251464884953076269248749272598701712076835566521577213822459245544523505968771190797527207984111849811339272333603392493020857231951123618675096644298963456453488410014687125290290904629273585184520986782139411854553481725107489487574627413951223261375996841450272914513020485841122851388541668187076533936166795184737754450727416397859984117773962049444162220578575486628478464717882751083500966236255522195707947814679372835608707802187040766280824407260670792183479424230475202872561620834140262037470530349064632757904901646335656031227030092233615034731714330392067522689922667528748561466332067745495792337393834948420324294487753147532402357772813232287391666009008357525072617952253406883069512183407513159631123948158284081746435968619759209106395813286411786052941951354961614308937439991180407692131450617256672979544554243381066360215216805522460031096365263931404772372414898518249429167631075450901588386498275413734619796807121391612180177204229433049158573136689159830416192750127271784553032782017939101702843680856803999229741526830274547092940617200612602892395909848351598917849762388945453384411155039757013953864053247864010756400626915717676807915594286137274123890429532983911401174458608503974979583709156081819823076486316534184889611667800734759968676285909382079475522616839154884379397354042825925448788122352305847659347101273895711252627752233725337102573221119301071087223334538207333539421502903471877988546603079197458788466698043688634955888211286835607326015404428944967168930925263469896375491251361671399658764797511386295129067137476959395041833354654695223085716112054084059584064907776976309080674648606439906047593880668425900067885889167092005271940741319168692126920817878930883335223201641768173215928747507583783699953607046350351669564783150872792279705246701823355214246109213863318033514762431184889916476199626684517451864017935348012151945898896529329466908167158489467066560333293480047499591208005561607029150886278177037283418175380175453866974746312113983021614848516900427947698291706961100328867533728670532776896326949337890708438291814195491259465041401137658551452680662015862692604122564780704955682065333257385701801280813900049957334748095601209690757274460747781414145632172688453799816076766859766399704005262091719563499743803216051572597674391526242209926871486093113424121005334250675549035842608999563748373235103767447505158811549984183847609574705650757103999032832511370708552808524582570900650366139767802461495977886224106546976517993972395122433131556064647996829333139990236094412124201103841244900946809144218542300255249399324038655490525723892044110205751558863938329785948457626787014126550114075194950762881465445102949864842262813874829897331989078943023929144554229159578258167265163702274893567550262171724412143873666649351028149191361643059020561671820937231812988931235051022870530919736641599962334049589853370855279748024681090963992523263320579336163713587217317876719256461685367216982255490663185822015323948182369870196582589344870317821198403307470698794006829586156202576349637222981985043274823270773729137842009959541360095316065854774039202810761535484616964709812567464667712881109603164913013003705651721993884441548189899249515469299829470902712407134784241364045236007733136116304751375157380437024506486040262549742534432593281978964504410992054482538253434787436778309281762624804470521530414321284260317987722971121045301271109063806524126776678032826634036519006798875815264715348993798587618457244980501130220036584491318698259248421700767439601056356517076995583067795646599763589090369628616831717952081360973336839093371705739271335086537174972667999658496338411258961939218951708142656168150033006901026074580530747405961958369942109679950561683349302025413943278274141112022459698454434422364448558798060347852316698607639915797859145263865720108089807938175752097382983877052072741636674474290663698705758605061025390121741504292897245818077235097455833464354423015654147775077836722408901582602986881106216797354664393940153503796456181706059802866627021445583823224235132421227468375978337830103672862743960631443801348429766543660567395054832644778249996271335783766331768454564778882010859905435365977762252448380896387622063744647446702197091847281567854974143394174807987066319862596922421757175925094217292423584193838583557235503122876803450473101447588744137012108710228321039374045458233437264581781569657551579833639584445099033841028230372092828152171006726411158173434621491745817560004752900366089151986644078093209917508874187378359963652386567875003580243191434630554202804449030059009914349845009248148241888256756536847341752153392643176120500538402162244175839577160494367827325854963714914813253223485797455131964098482225406120455610096080766848953465034653350647574180583814279529082827973927911966098373288482497021335380201671439209383954399259027248957891953502835809898720606414023141251866515475727437344625888515875253258718682877414794856631771094118171611849707508311358098754058121418224386604905683606910636265080698541966058900003403500351061067402296425126049011733313711459582004771684919915619036552002857637458240915366861185635227096899531520409438981873265957525475121092614329481850388366554566577983688898529825237844723123209302287776320478872165620853240061636474670866767152633313103284716740719412551714142380371756633738385425196211766937934332555909813321570902747405345188235477506351441420458224379252024877842913449089859068832881357713118955548599472936879250366210132245812348791073162618461911391168858271093092411255039476783881250252594509824282105081858492074855889873385677372248945379444347784783675344845781475701035238916045877107675375495033802320511493982337986061123227489648116406190504930076979501825446939994038145538631485386612124903169308004269269967733816051838945926202157059427815609017760973022200329047390226762238892795897596081572085077774764493600828666921555746530978379203440616287717198555637697456335621589349751312813066094180527780345403299070475954727173398102169121388961592335727886902391515159279504495301214928603017404806505279752714559979340714547978938660023878007321833628995483173035622135354420022595141417015425199389649588559387983692016057262050161318672383660227081126380560656698742092678795170221666023621380429777508586990383373026169339088459000801948405749740320945128492794146115218125543145313415936605638671624470149925532791805959392500128889129452644090323458390270060409407364224448362693002014308813548060950979932674526529819342189595031363941496839422808421282617079082397643346436323586495112071614533291277813983394142883666797385762738575080169934027475526046791051217346014935567345828752897502211889369682855408915491471579939263179298826609031792346345952218895401481755284762079449155303410039216739953810252090626113272405629333355676270568411113033988322979609725294871819043573113414291992588499605186526559072478558730086892269901490738482422138251568125754661535310134048052518891893654731056205271553950927392761963271547002147999872144643385232079413857774212612382354208337423155384233760540484545989436614181952358798752856380984257861083797176842554749587769958857315838265865216478853989372237553510629620390207936812665066278456440022590340287876080568779315778825458667557275813709999996536864692008340732325266643668236767527755595128882539911955726433340869863587567772876230734903159634375504567825989460275519424619744004333534445417393867633906187890545432836261846964276863736383238056093056991038730245581083907608519268459921579143927530476831464069105707396170958265264888737694035453345983527584887302899583303148092113895521281013576673276116757465920252806118708180242648180393011532774455658967698543946395700889873665825357179087080325464347575762003968703814058116208307052324667963482899935152095561925511334817181987883991728603309669133445700373954053633524649638563292753621288437492064192765976694149140238531090021084027635910065185646375117229833130593033292254975091313470433529238819246116777151260510084806242733412995349976438706927109034305276141321820368783157664386429087592104731785684853350797167816406815670129880936694545664622423076418122228692159052154156312513585470561148083197843554301416555566671223265461041624341449359905691994938520308538996590714722697725222223824612608787378316310229849621807668100609162160968987161578500399625072393490305753045278286091988228137571529645651794294233161813772962162131912625842301961656705279595380456606121567024799388694385918907715831009044435655291414465726660766360616436661527785112830001762723299078154857930173819185971132262868514396194003991139190990683595156877095733541349721868854022154197004794031321670573323837085251080810716512994354653975877764203095313868089414049359330292293097672533302448376228334515442552889430978545307079514253246264184364329531037846854975117858615909441886539340073529171268009669977237109800994815412451997107545156714575040324850265945595135586626062153782624210066392851499978230241101979870929564601470903672466177143714694140065476489806012074941712201053186164513206065989198169295841137030088060038499673026598685605063420625788375805922677371319586298324224520396184551084401979277541314210450084823444226140783197997223479724031882379809339789854784961751650206785368112274960810578844209586693063154378042801766556113854303095934434434218862599366830402607694232977270652241440912867809733873375814797674396003236886358240368971088199336756881165406931098549726398897639269562191954607886081911448257210084509770634610730716099356637403425540523408934095113258577035837869849033161313531590760889346360550744610848704316335376834678654994117819534299476223233762123719749475448569738978591254844911368559508732988751559144372646973642225197356543586768866981089980537504356347759285194876816020989062070539174426985645436426746502741968521524386216742679738202739251512596668024502231988930499992768016100117502119240645346892017165575704512219288141793983737470478003018512585989197300655788736339888518379757310827499258149792080119591457175188123953382115080209457437245582250727703975894171410234283441434710269870779520863792574770221556159550578519123611567826685431252013710291148737927367368828911437512846373014414351686068241569862396996020140462454009287795843046435546082580501668206098425753426054664829330324065715514215999544482773199745016799875827808795923155474012530608608423462908076190635937258870498517068222496273305074599359333144190749303710838741153230067207530327457385734558925433361359783644052626807659665361230365811457212597197465063492501786010984627134750440353355548732817398440957283560750404725283535867548069098201892248672964368653234374749661535604567580410542975845401699216807889642089363592654537075857378276387889010648448799194967831633059082388847394905600172285800943258759947876648215089501322281827209399497758535128787359891477864085935067214486670328828193528566317838075811261316520452760086750368164490443834928413701205592947547970214243721375781942926285884157347621572141897494843001439403714923048419368352063636701941473458083170912941594617808716960982854780602163753125125867557918855729924870575175793537419701498985683591020260623359917341092385033824583301414428627443275774851742209938671207969434700940963476408130213535949730010097557525203266928184053667299087211532949637072724646240553867719547560121535132289806297776898708461111526323668671253170958774990181528862571786703512920410854122112891783675669986178835281146974300273115330861900534699185526350862293177455622949820276000032076615665336308897282155186164675075573822195268498131883747684445353849443989621935836188848996736117171883907172869902335446661767879767745709511847389410956273212703643040382952623200231474607426464387282902561994565351226902434022135124087078523169816529442518187655659999738776526433355359240966866961032564279444614947799472336828044121242041024340337886756506133226588008280122924079184595617874432962049240668134096621419472009800302859159782149303193585112241612734315559970452317461730143264703979434139453793474137155686465609807530586196415274668066626906793370284845374255533558840694084074266058161995284666299020152417533919043006331180247412936864672313325302143949440773436311850890424963092430808597512045539438352246935691207222088897000623068574509574237972338723108492041089713839454460255389314179896660992047588136320235670443654026522421700281957666338276838545306390306456600091688700572061269700630210302524226411867727421773471488413616085556672965044924382534548219217226028498685679453117359936064225351976756718615005349221738049943165023936567335269161417033023853982736808503320804287445972614597835624412274035065311819482358803486245637168038180242744284425038677563890247199650239398700818233257966920890731667313994172799122710947091413216394278183721743558856089875825335885255065924924791021275737374993075699025718584126963101536610443180943432334230843959023157386552787194070930671247693806431163680356679970304027945065142500841043393920135769368908812755210495038421504755408269266716762697052670246029520917831737907278896649200495099269195231853742806865183835216910006016957743462445772933130490060530085218440911738665673370250373839856809747606494587767469298891649790078440257624954932193312180556803812053076402647086658157959748124354294493339708365052548497729184241098477893107655755405280717860180840673467367330059865985090008357349902597405325311411234267745321945153557884816521364938778296530171811556276533367384457065292003802284066242603100061022222987970644544847206958662082828920937798715262780736396476544068485337583829988353551335258656447905023387106022598315215896212475380805241590873964418299746766339771598764704363867267950714391240900000117587080829635457967887046070454951563564030975135010284743606256662393807251042151619647502313136354403068004652876984228520240714789629616935435167281488193446474709277459163546030950206807530815445134386870267224836162552981869324500956807980774245283209901604716541609950177438740585576182419077932305687504788253962499044652033990096847811137344616813512816547376136461118096876664094288838598552541954975605917506082014342461677928456396430851907268215758664259005160653642799441284510972249920022214064457889756231292152490279536747205578631934215612034299320222049753512152881085594394790051681558848516186551123196632109050979490674185636325930554688387472527138700557054375839320115389092120372663863309333160033279595716954946483252731755534238849134832147136611209332460522443287321491522828205364738545080635466652773148429734546406225285671541586949397770033033938129996593552869962048999939557597517129911292392306641448979075635728515789246960211868648346045255642026325870512918076869766820422214830930466476974548755960177656312455082188218830924952127126193374955121223902381299418403524020619526198423213074365849359693038610747494922560671550750722853161799102240615925304148765177763927646366340722094779534210549373409651613612001361198995433015144186647777668341610380710409467673342369565485421810420652129545446549691062485383216689610599531998680606079490754911506077791270332620185982587120059347103826481354662563758194255166312345935712775579333260097534007536271355210709928284872079934637580373774510887949177039918153987322877678509187616518384637519993609905642302999368401407230559880292375232517208429085845712725669776335665699932446792253380948199765721625027712646168520911322332092911916800032000382384746488437408092012790509542330969344951019071367945802763405127360807572656773800666523374814267539866955884840594597703441907427942288758569337503949078727750303437068845641384679774386630886905960590820499885572374660065835199492822164291318539431153517008614690102046502516990457681743739869511329584922751699994016064945891329309762644208172453605638598792403003003289141030023205964815835189619885991916956253112139235987118872922060712692370114344979993401553236453659302474506816474079057826291811912989592607871120298785269577333523492806207776903658531233803764068640153189412202388353752629545925072477564591358107691718129973213131861629624358205394832280882266181702884302724490993041609546757073255555856934299468143156550666186491461122578291743480826511499491199734326751073065615306746661706189052112406299129166235732506398655953734487732865441920879704222285067520718532226659655458886857091143531220030417821259645726444046474448873007767894052327594193126417542724275731885297449758267509397344826890403002762937360285637267321186639310425717680907548994489061183027345414970047727138333722133097604604705168806336762020289072184868899900181951876715439016341668078705981726440655465862290531030105259489056703368146414576189898274410451174806768601114787098718375508735815676343886875996802819988150143166795314481520103431949123271807767564309753322910449576422547998418644107550782789557406984160511242185006659542429972709234591183102101969228133829425836542933525991600644067198080989254163986848765620276797568827342224467838450819323639254885369234067720589008636054056920838306960159900082707775542519537807892822454702499471762282623195527806975653159749944123825930091800484560243226367978890215600956577461166189896000235402308186584246358271314188737007531938194579611218185807993934713745471728244192934811228189204690347534012558649697565467100778618286974438622530415892175231550829051437537244862614532267675230778057368428475571050087252795670492131751504375837888407689920871022119213536495364637211377365619514445539991395174050367684854834122803126445323874930990717085514033481082785952032954277085087463352301935540483305838320483871333447343822636569821930979498114397632517149390126158177869313021213810059906681845324310739573815744921880630683759873157474938728974323599454631767379760180310069176617995001956860448837427672141046902276610287367020159028336651071626879449587044711499304386826224746684957886022520160300940859885164206211604152747569989670423961677141649460168547472449627747341621892329315786386563404516032557138271411757065097614544072832385058454733343817798987110866715468950476393496346642224916372126188790046679458483336970223402815294398085749107425039938839971864045941234661590855944529728501386072426338560142253354871274523086839176787841236263968648015078711305849237661619201421778274818333097771958142693334862052279598460251877060520867626601310521015187942639509295848366970971079938985934238195058414251829090922092906129838939967740452072919079595063443315603305809280055500499758329764863919946543515573566242526077453779582853964365488908617956300410124864590713882746327145182321113661972452932667807385703674950733846041283343733154573832640968073365377542038494688685172247143454661830187302974317411843855307383020290262437831046062286339419379340287002186798957834028179159594002863293331638713630325993487988768893325654867699791375332321870433590955013900188854549267515199308762160868526452482827258155098211551497354508629595681669442651353784103953163386126276365856164652443400584854937017608822341168617917060803060220800062271223548015782733967369250199109611203369860878528592601795934026929420389244522146460686117603104905519105002044220631754892587809389312000462760374076974387806547402779952030242599963738500406844356114815794373686958656020627386886892983166645915137567212878206265679353644224543789503503170641079980610395658209105169686337936232814903969389877284418122920718134319285200233106512839421664462801813378529474845894476413096026822953568617268926110875938645575605412936789889569254135288345651979510983956564993900707804884966574121767922587896930157037005888095899864326560326319408145906627545688413000905293504329059713325972621682069018850793770537714835099656274139922879151989698220027423784187143356268040643577812372228169879334984548357941895026837654825121204409151401269248221268162361328651818080823841916403223702713379319147930211243137516224298184480522994093673701154832392815851512528865646596736605586969304197237728424360238409367282638252105312638967951948586476338855950927872219862841400920067656927076792682627424670566211846768512747751734219621402212490083107570953595233133780042249305456013631944888096847772421229259253930863212102505326897739091195862102545219714920224297340648339839224532554407174997778594760260887807661336478351456678898381162998669031502578318445952436025370582416863701520395146049867717564884871623848232153561173111225078458609436875625884627581434949646530074492569332637501038931372112684742553999276576534973331784109558866221861168988063159010478385872125527148091682105197260113815599998104428956150956384094550474463312294094615752998118241022562590480616245988994568461491572066722916132345632363873534595072721185814248662559132539668165829917851557263272698880340944140582827678143908922214528430434614708874226920359837070719831034561360079192860200412756468668676788800601649531721784183491152929689062182993315273466814540222524247879859508622879047525728681288355230469035774898845787870589892079507478049955124338884057580865656080107946166107823095228650766565674246517256076817483606890040866886241558362386113366614727860388480926292845594970950755767074508050718545734409779411986109292003282954433200024723281133030824512257710288343643458148876564137499693029951897338469757822909858850030202584674419502941573990686060540398546205648820929964271752029168636020553532398154260712129521067121075254782954729225325288818108136641658587538191863770716931014962045304045891730196406773702867160383298931647156615958625227063608398805007110977967788087220595824592351518356729193692614101923404485567055147108373070533560111357096909271361200301344343349001859241442236612573965690217347976803778314636625105128660727835010818619181213916189096349320680073239614811830665772220731366211048611265034640734490143486121073728652026754789056197098183413901922098046738154829148355025061010236192830518067870047061872024117686719800345270847099303873181036568429329829859965980957864257994228839392426944871473002372425235017712026920391119180114866608320044376859862416750125333021788973065275917928307727412558121550576641399710542349543240696437664186406087802082719940782896599652648850079809682969891236849173009818795142667700355096070805606320613123673789090587594092636056614691760397675367654023162079214428593679293380365030213546375462133034065564119812912388512559173811646598363275955638906762890631845034944354718095519433201241692052568674759583164160010187490396743194380033685574453475295870201468019287866810802520297634942642700561586755597599236984980804123791797909586344037314334327082678966980890354714400243849560798919514391343650336057596737782395570953671338235606841480352470657906005099436895145789535474759001276145379991294863124619488100876433734484643906188122904100364776349711275641909503720353622561498713640295436347907865461155806877338315306690552330355061455944953206379096357496995591370654213320251259207890416057652808514384264677404577754380522877466403173420521976496332043650968612850593846995124389120293158575771154200945080146987018292074468103413024831121374846945953171141162362882296079502882306105246416040662170082688232268533910420202824802997850446203007039562882950481211396206436841187395782663932634366841314748673199379756312481533999468773081413643956869177359771042041523360775778856411713272650251539683234310846171119469593529203531603467273529843521155802897484109366224195959394603994474063561168542025455824510654855984237331781827645452247469287907018740211657425008276361414141854794293573532889407354859134049407859025418429602469937430887288302212466241515219416888243165078613161972169631893504674479535508913812670911110355816483177318741435835727049080819635975119454888451588404212986819778717325241719759411391037490694509333476938201946285559844141399846500696588684228960281986473717119174660741234355401716041414924845372841214242265215803915139008661609239466381938967745065666722268493631202582144686800448311621987091614258453449309584174914914408641004652514086149963048059461505692293732409410519881075860715340031310636615124066404471027477480469988755285612969512920785596162988291483292544562491353072289660077971110271005686520523569542482520460244195083947198155282682293499098625815495643254385711776696501772056076583346212968470520029269313452911581167449157721416893794597626652579943045801148241065526840699090851923280566749935661704765217783028623162839565236401466477529219467958839352728208316522435342554511642595005528080897417791817201870765808546115981846718027351563784505185646818591776372157116849501152329934955413803224473675007136504513463070903934634186232105241762980937451266503523398592473141671979821664884285757039196090187007748949751035558301229691301789347159625339267074061782295240606680995038059755283041776499865759366817522073131991135657640266473966842138737210480362929379996622905119127394395054447841058777880482437860003056078975327657627847469729339029416697258455319263408522527889904178160324947787520574869179217657188138694633051347149793940418282006943203068438839044028848924482302706177741982038696625593714836305583273225013153583413842800604561959705699204916833310598395705700611402682039784077341548182496007191853114165523058280546417402375190772868721874271433701803560836004004563024657050737707074743866188154526329689518125133997061309756652530650696154608925807376034528785148369611905274592127801418606167437576268671284713249701000541176544806066803443021511655140163044867334465542994362103579511195772343685398668923278228870749289785196618986281532095618014538241055710742632053681772287910993590214600274642321187081373812815835684036526739409209516081972555746886576619194942297430023849340073087823847194057757959923234164512237831279841721901604080781831156592656286940142361188470011519815024823159911893440156444510094981336940624495507255820774202373799913304992589291275053427348405304894352460629741069433151787427635560488449315349673522602651237150665930917676937721171434029217751567823481238142058256017155213888313530540913714709094122784494640375190260899557797716799280003404411506984940981523473251526850578473592237335708052086611763848101769110464677878223762777367420736290580396902351329966564250640945548852869317349270046460951373863154597596876865999259589775147969226745022099361383581281276801980713965116240098289998161628926488011429372613612052145563655474618187444449021219449310905125245314663466199085515067903802237085563980511731224645400928622372764687603867769351060482041912820820511888483792478271020121520288733178448953642751891812729165075120667207119979747861634044775543604732752416794371243324657534921992477090163385640962192601012826690619840901470048911689579752251647169120053649772917479912873424640000569972682414616740888454660191151126790328025308136642281978649631633244215114719179461169499332820049140242111198509658032381306339668114437974749837136180211780729117243350207419697170445181272233905809509080356999763470931779020592841280565808821047307834557474384155496510344928269194684889389781742464785360795995856647537730404440768167104208376499733682268681335815951242996296696756253221887314325683421666915410113700604730679025272358545650971655625934510402357525386613982994604067976494756998710879701900848277370957470061757720622097826972784119148839832454950679079837889422796786938423663758249281752213525377703613389853113556186132908454160235174531768035323198125243489127017158762970061454177488018790904551788760441518564435664655225335938023055615431572132998501664564541512794603674340583309300145449259353048701599003383618783403254627648862822388810800565292508595045976627768895449639966344215923043227667261925220188130500035458225750976570804511133596159078778650697640377631501048690354181364881815968700159402342313372110288075246619646648575798222757031439211084267619909537782029378933880337025891280483603931480344093505157060929830764497418707591393470229281605523169431075563027243644433365264210765064899139804279869055685371879766540423741762375227593972744336105240919890538477529654093879612917299053553969739028862480340661708317355548638199068253361535600661131249226507388351217063431266126014923205363954447720611212255257225468114401476734304752747183962321662653723706256293418074342180499611984180581989818094775647296356313154471667707828039643585831385826762329963397028138717615281639687361897604457738784309354092839772377984337117131062926767867616620868398786596508468069940700859315832745615349561456311696735701383047269581862451823813015244792033575064082878327806924612562573856727003865001187367570698095223920332960534677790789165194291370605372357988831492341167570423037974239086748199987066619719207201210846296153831216477427956097376633266131249227486150620734936314258465826050496140151291824451763637720282860574347975104471456187727437354236834283283323227465382991200223415503235688180285200234419480266953344924261158138034843513157042405261652375602808226821818339591772704235355711908408432166294297124934245118479363109046540444507540369951878552884635284387457546978386233537126637283538515191891967006417721073998052228916552879395181893618075115050907241375980195829887928765093847675350166062748464835593606634441723633116480883978154737807143868016904397356028324655040346127130470761309543344236705415529592017475271758160113775205403441935175896434700491029596763663620541527010252979630953933836147170585666508803977427292044621976288481700896675715088618099495177369033281646464693180906473241516296958271206638817709539647840799107280375152671303137988889239192534488968253973244901327762324591099836201929702016960118391211297988609485970500998522268660040163191666729871884047301012882410516455365718484551611003834924004977877670054375256506263238204738081019134562596575913155362175974587177097441906399273286736484933468734511263607952126801480008896599436324592079128199257034281736243454615423483999963669608177738066943636301242352878414843729769281200675809998197159131368881512420476552318760689863649253863423764150322545128171258870876409465616372714949227566905930711090230914566712872260219277949573045052554749918134929601174401419822853818484089378589718396248825182434761521635119152835689810282437404748824231382199669714121372145365955984932821492300112952099483345145569546871929689975645804851352248997159611525783081666004742923759552172735233244722219722394243840454229638113406067044996389721893591774559119861814311519171325263475034693935568678402256503600772376442301579040357664912994507366473876757637285436980047937773639375644950623650179007800437830027869597137710838214574355603856992728859058747113045159232900277160904643830750181115610679703911038157032934608600259236391140504104061193416033825164325247513907378145894556245040623244088058117055535552422115368037998637611332498867515556933207855901154371106203922361585845372309573340860729997892040011536007150919751796024517506541594927193406435693099780734359387017424424570508482096118041942662154588492843545339026225835056610667272092926144477101348890630262322711816549024406065487099167050511266429740122354477324342806879407949538369813624061528079581906067291745477982221262731192017914082276583941969816684148947458146208690862943027025139869634026441160285035033274829339806409521416054861560101623471546277025766585008961946852460433518211487939750397590444105101290778574300012807245908334970332083343463735015302854215648618798962002535488886854195394110702255274685459552188700125792270460856506840935718960306038024264488017275445898646358296847886922716489096265320497842683947607769270276337033864744499846278068105966700958045632863346591401721479674558770363861184643941254928163185347503542408507368895212229993959016831353047665438507750905692737695378742485364570356019046344379606624958582172949897442021034708468516266939960744552534937164963242812545701940434642546163027564228793455307963205829289343527633082445641866262952686359264474585946478040849422374699650066424414543847703369301213421248486122330921942487797619166659115717727496918968747955950351450365880514909588392576710650747624320027826744525078947581827372631317110695987093717197861126755302068757612134181176140880751117789726489599867750381270155364140882340645307870593143157452115966108740177125176046915625554784237976628168675355248073645540943651425343991643959426714191768863974614525790019192177714790805538747176986126521032169768523055875747388614290384966548835229258817935941552589931100500377441775102047448924921646352609636899484126568025562457255381583685121656018076425262534849831412450789447216952185432661250389174208689060976302439055674884371160052029711458227921862021183579183530959488213223967713134883327230215891794833448599042400240013373632732197563978513418581092019629300110357629240120822995620165858104773870752994972801492432627107772798768318164921144918062753219297746349364800350958102559763843244572336341201331424133733141426710104169295130429603097709668075035835851796475153817837159334772554439575295885576924277183007284231536204530149710615487114996985409899169124712715173294599737904236832528289096475845870125539945281400568753353668442078561990310511408821155165577992368792520754238646302738270134462399853636038141896128000209589680874181223790443052611655690621695651193910486210330338575058042740823259095043784187217020826791270576918886992694787523776551372418157045140192060318705639816380470628569109144643953734240422171248154577900592528761610201484647069994230551265042707202299385201158120734645705737195068933058029923776875596793611653697151154462091370661760280789905427985406439464300283107405756828733059212192631118213996451368552613756819992036416090845507647155434452811838456426594495405102441737910131115875187420924114216281751369024931137602025713795205848479845032371447965963358892495440433435456279486757588359214078833096729463639573315113156777281002097395293663645828776796281742811793771837645746985659113458658577582038228455087458931101461164600235858301089294231720567813860939044423062827933976808347991964961245742374070714406298170387178928931221270766448863989844561605409713787963147648439648041397751910858877291890789485654201087243300126440270262848488690775736950613930746750348379211617752936888518856367785150051167344033235082466440367351503864131176120446344697422705217268448179535632960636929703597173441093317302341949894674306346675697172874006561418350102957776072029105248417977274741697846430028912432979521790953808619923500181107262679820497323800086289379676085472142451137726505285028171159457382453120242178822370668906942289766597592365364486428818733077092117986922190499141114944668010113188427740462432664478362947864194092693458008163223949548926995221924662829755689769950567195757905527591491707640883678030044655862369034535374974868812665016821506261207262600487841713535114520307980723006483444070225056050304252915845521292984675222535628012720333162971519134949987202060735325368127371251039959379172607816753676810202064600671740289663134655716295646410180732957059049007793749204523981096440231072047236109870415642063451692236817062920695418025861627566534861566135282781626326548022942907891677152745443576558489238024631656818419791078690038843882667072141434485536987780955169823585956351504246311679803653023559010879303191170250690883068019362512555871325273189813991950020781361106966907648688105660463556709622706640244149010268187720758725363148184574427803773232554242799532882818888030514920334246766054458810119101499969411998757502677297222363934779890207804582954517386436903134484848841044715011656498930092953207658730078398610885400223915638649609697076696064702744828864166131973893677777998793013498385119793743983418489857119927743847323291594921506059797714713733143751310384916856600360071717183221109771900194571782899709176102874854993993615414513017707289246010876751812822067842917034051684954548989751299430997621440005756904749424814200069398943078915692342529609114155686002394860318908077357823764750195216036255008920459258061913651676137403402948280570953611628279669386142353242968924321189578795660063233245552842823760461725779223056230291364864395504472307045753677494296574534263540915659272395427302588795611207517939419825527219858885142106399841398175616788373637337534811424531898838249822886094193820047861464943390188760983725763798920672378327942912044027172980668854305028220952930377374002406775263104216237821197186282173628238072742229454055078302223195200398169537973133930369770823255937798304636598215722951459418649362738769477572817434499771287833383424282862221790766765707141705445891066347396447806865324615039477036953890812898821686364249680457756983395928682217797471345939801254633480343541276060982197737063308985879975663507854560588224173515971827086478342613947097315198277301209307330935864738818444965124566191397298561062316895876553615120457247835722688840674111058127105097793651180216419965597208555483591435903264880843746266353801322271538263701507379303171081158341578090676039876531881862232930138172448141347360639774024037773526281829968105714233864013166027479038780078948622415463521390728873006124348091686384350954064532131874692007382411419233010659304400661720017208698244765168127148649961362716089010788138422486731941452767802618354593560964805905896141855085575062009940959939818399236528256559447604367789925245311774261659753321147689040069417597127734864155549884705375152927896500879712223273179728571211136040168380411227578728890386281223968851325249752687482786214747096639478104879651779878020968204436152973069397487742840364852583177501886936285927449473686553874599282898397985804235163220182066058734017407395600061369788048741999351083870233379455023531963389025253878579270963286018197417678373419582851295613043427060837611251370923047389581264719442823769368981392617455812234357678058032108830337648428285466646075463507336569950810993704981133973850439359974496890858587030219544896806542879822397080044476300218581925356948934410924052933477759728914788041154190955290523094844193377446818475741651078517415292058792857122503645942798141296795859443575236985188229645093212621066439501677144987580229600209567175588499514188094342105753600159154655301495592360319343032771603637867360258916495041042208790962551324720757916880986982837939927980540560337797865411766433716164290589275604037303272576277178517255495484870205758070687292002052376503274980272370575672556858212125283502086526994350434144868809993274294859195963643729747916210064809819378002711907138557985096979357829181939835779243764585616251024103012972144759892679790261673151813537220257321331363592551314327317974406783322901356328863682993427876582532039540203422688451355121582262662209081670035705680308311947700650630264354058555217566188361281579543518780041821119037717384481419660323233918944294608888298371754875296374314475206585768731447100625356083793000969896145198717421640413269166500102766178854250951017752889010370753006987076937211193938336333199906688893175268449943062693886313913915218835043141344928701975431684096798772714040773374954816593371048239970949773387939521658473340233110697779269571272469262233818968316957701692573330166576104488321913450250729953226044829938613567471219919173787545402934730771033391135481186314943750562139127534216841786186994562028392411322518959709441417482484614953377076767100090032340495955567775563258448119110243350853703557988014331040854048806354493916339010840138559710182893598877556340293955735864241938167440839871115831149405374595360747906881381728862779047174736981230230109669503175394681292988958124989287000171774408110212123486793459564131657544265440572779100223967849933588663950344566739224574050749393095358988775263503372930245571301868472351318727684633172287274019915123562696243350741296059266782364047845477244715174018365089337564749652824992049814368601882608312620516135132816005665690773834099982821977652786830448285337844978718734944560019343847530244047850768724864305818304355580330773543308364114040772484457860608564206072743358287009714612022761828127549240508682727045766927986715650732689133295156510786410332328509050463457176390514420894626904666137051987657019584009099382098028292793032459461608690140184287244844340501644443209794342239630916453616315774455813001415642575057270342798503049874011957843704643706678359201747235871208158386603679010968742003046306066071094649937625895600134816819260531637107202899777872347017016193920579530477152121719212413837313273038371690076344463849970746877637908272559020849976131014788102962164658103629465924183808450794274907750924791018166239765502737173237441107039110286593541684540670107920335555342505754722873457015828203568398562624028950545018996670279221536832459122064121631277742008485841538134298424217930953064393392182874589862500801184150974421040154019883412516923969335855834696803100397622258368458589661235498323894059468850687994289985880280269281607093257026099534084176779603519535110392520248776566662363154294049351471738657838521038410406376503379480027186298423537883889828953990815885244244352614649515676647919671223254259593484226454236916825211628158968580248792480326505991546954269266049824078527225119332930297465453130265528329209931197621384800980084429757240721678073898441546488450713190233481282396836488425888221597419700013973245587307776560113277783087835660059977796877132825470768322337551731190073602359653679811407298699872242181857514216791662800485576974774521902124371428319299441740335223247940156785155446055183270852580600905987266258869900948670037976722477259907456337943227679501444520765285315294570118454243472616114004327399911927503442944312634447237508561488655420445975817903970624458151080931701802419216361595063904617483739146162761087022865012587084479285453357548936111462064271768154226758522371757820237452575513225852453842941565974217875893907997501070208353958002443045434868574686752069522272295595582505659635772712378448932536974658020719095950930061325363888438104281044571646002056308899687947348624490333781048339663759289576377514476582720048354175938799476173024457485561532739041132727667090926320931236732477758634101806399835180828865544959005228018291545776412000988902020984246996216369949773708069642718476112267554620597483444892547720903018128361644617577689493794117845978536801587596699160210581455968939385106949220364694263355097341757381500420787060607444344397837274235210857542294691416952068762492662711945484504541057072941930258196228256092304142230373765114912683012589678794152017439394635610561479319807447714529413041716266761261564136385558391723138404491662944762566934661489992912141414062776731272352654122556401487277692971810474807012839536343988260103955983057576295992910308771990546559284961659597499747137854092158842154209262499577188667654826281308964411603441239602551678527903505900839521806492995383639081759285094875611025278908558356549610598690481969527476039192829273023293996812584584630357656657360913386736794515694969871967740569948508914279111396403979295431073320069979194013494813114677334739032044216757930364459672660645975153997595408484916528191343844906923594212659571426268160242719862884516117952484616352932995511086964573196234578278140480670251150613924606269759402615949906077013808484445912559139576366874053937299840767789567302162355197162009604619807425364090061936976790628600495718698793985514409572058330503203703692692913382945597279571645139007810614008352576574012400289438585086223721859514820238780728007548510430347305855538351253026183928919980922159289444094255710643609312570953939355301978208692017069295765460588545050282013059898201756902563653380873522874548305807656293696269990558774067123457355511848649362428631506516815205285695837257183800111998943598220986643237094343441107933357262701909880004512994369018934530303391722129658909336913783384576674520714132431954044390424661906188097190209236164732947869544614750341598755329281677208901209968217610999311410415922835209475957379958442542456451611134726480745477206815198941742949187304777961597152588602591242043194838513795539057525142644013963763766564233247170466463328344001588531068929275731164982721452379391238916340646334472424144832376342305589957632356127554110401303729378532643286162586379742730272736915359780343540692189454838147420219278249542275811483992534581544539174942091084980631668059228663211066434515981331195146841956186934400878492799723299977150771125478899744554021142284534037183224063826900319463858274064908340965352242442703296693959296813782296625181694844456863248006793182777412512621802939865052313781184152441468404813683365651468685343028908237264498932961783430858621221315879975117014358802534409407924633210622605993657570472578025647179821590774046105231105290652891596969879961913853926370809194979273762456103545309808830197761224753267588774739806299581424926057013874159088080448050852065328352251800691021026566283249857864348379163025496130251853938363012318800089548642513638387002926605146990908168231001282444261314443750232576897308630448218254361112575991286587656289803557824327516280271459553661594175085873215286352626866296486268615595816113145856854331905614508327742060052914276023341764780225963933608731416155494382297365894484613891062309005153966144875583528254046842052330252315322340472545322649176948430484649471642783045194526905221044012373634507775072984268416770765181007583422848494098569623450948371923260812893846430675880025057346782978662807730751691905544234669233642433379801762726636691464492821504189456055508593726529507892643879930380931483511317484141723273634669467283015987355615015087940469767390545094427197193585215840818192620236673179280254615631410748106525014389478642164246257708485772807311564482134207609784810941034623362786165291726071473799616364153292277524133757484019153648652643783701405799305023214333556590856515460169930128660183165333699980372539821515565567384975875317930504513316001738253498047842563499093280984559072500875518561631639882522586580239273465277392582141426338765217525667573476787068234848258571263231577466960687974887795331431075690615216091747207967071007096097287090580854509654189550852852248633395357317314797526597599709860698309551160327286436085445344573103409831469742598121083159811510701216925893884179344225368845523553417076661450989056569235899829001589624445043458697359418818096741335319273945727038603239970642317809039329507434086595972031498301283425335506378967951919644219582202172716382500631149248974191374497618646901067179215879109603177890163848305948469256926922562215350986854151503712658778060109847710404626396397511048179981766492583590789488826110823399301157951245790907856449281460663892771355215574906178459595749250796856903397873376962739569873416595752182676532573645645616655032201335955875475206604785424250259894978113536869673891243493224039273741922731539682826039288510818442476346797523404682965528581922475680678117606475843254077054201627995383160156262586395137022577212234615431833154309232613432620030017790811883573258068892516981880001412813318164017325922574485003063756320426347915295577047962549522309866975950455957318262543907453546539174603287359398268399979756199387733872831998396779282749710294734017425619214488808600397093552553781750513858351137050398068285195460286509751520033834461627116242002600399226435176588379419553048230285482788427366727803163589666771125035337217881006790758418561651335077197097311510624766576163963016518233517198149684326958326539727107338517009472436384683637664857721560958760637264775290658852817409292741106620870293492996038517689987409246088768170699048352980980527484235072207398862985686210650350430341515775203232937627036048616209764321836034348750743667794902047660495746351626993062219870581330344232955136120847952818372913151307731139837213966784451701157175565062473817687043556234370330480842753137728908588093705142059439846010914272931934840733272227374994470942326630752682035156209973495270590879440361031259803091725437526843313633676169780755582165602716223063763660273736549219065054195586047740369678051973516342548451709263812490686134022911524552247649992333412307884141560657016719626488633112677748912913101732105122421862089877703997133650436217882520816174459366887522740481962950923984816952015032132019617690688066861210556484509389450125719414064175523283920730408902607948095897662027771321080512086736308192778325291647232094952797503704965159381315246641795602295589145283293164855161512257184031311884225951358481811789732144183243250032183974871720756579249246840520473588977548944868930654626398029615148669721072858281359105829864997830057319006817442761495228537576598875824939496707622418194254529155592122884037376152018889682678350243987713936684787427956378850671816766308516575212620185935262756923430878989800201225728043269199919337024691723405852968376655144760748279415249948703316324421144935564280554643840837141798855666378978120809682746926292575778872113246620516281479017898254650286708777370026368695607329805319271290597098047095034449497948690904316587030995392901905964821544036649886009171464391207926125292355160941292494940599986515865052152714832181565879537605253220581780901793386585909730711077065803179004367181986741334327316507773428081310317095522558260605177037318958756292760454828565159949542996982871352670398704492458363827346899684517057031607580190799495694521775786448817250902068178255995081477754933903218773729210343586227934826464613020725947666387465576358413845869340235983557167658580406876513701480772455473455619283454811120931025186836201224876012968268171367604096747552219589597534641075784616743768815567894823718624898949858408697545300125431139332396918475900550745612501634518533888754763471228675429647978126060343725321528980241314755393557007125422565056541128543932934203855840446310528068784319344879410690906194026623122961660459241339013027408251879152787597659190669847061742365995300569541850650486656857082264300289134126052996011325047097372439730335479024663403253886547943435838661066984605032194581359965686410222499111455653390774989576434535686951933571740081602849676701606274930372076406644384628840672949744952868689064075616336865894337870191509370851244755759883339579917073445093169405662804465914647375644290189711236621832238205753738250463116656441888460003569367826119741775163419081881593538872317996009060906772848552995035960599720951331211226498624126869166598163991133805557986737474943756016423012046694515988478613002311236251738822679030332013589182664624508716595250350824346015313205626075680421077676545497191393543113181622896427715317836433076678147129596405868594559850288948778924212687407434059347862193719402455462721516341068265537363181817399740909599602749422324811584784178657779215356572374600423223885773046785354258767339415908877774648446052771874164895409901886982327029460706373230834701298638050622948428205651863272674376402695472185483471102133146661017794624427220759623050770669399291861365945256066236344277309327575724879590605932778255450818887703980425433147690452728873563952431748601973111407897800948929624821927279688851952328776241058432278408476242337673346489080194237028491000089540909992433178807110827894562868293547048549810077191954721081234888250660459855528592568223250596339434381874815235593605511415188417612456701056532713555379764951869813114869579380863198064144765017687154702305769737901878637553732218710673119151388573529295376358956041530674891386205176240668332883584877554372673950101711705030012500256657423383003686201079504038562367912155165492977775844203522290104970494861194751107853159850022849540786071224999811193992210837848733330512063732501775806526836295840550656912982214776672441519412759240751801060529746574405234859920592595326588467173017191285729561168603630133867175601665684217487572241368339987998890934543271075306292596333493053201087538036721543139321376428680832592908022573633670027278201334080189842689458590994221376397240478474472818942110090625047907034600244357521022558653454284176016328290738141993553075866176106935499326650969418920604315310178636542719057364898400926462834734878352728808054464331723346108885409912600634772167983887081087884049202543677854729842032976806812248509041143397231404883221142639828414173412101131550108727841005511033427009451165842815709422467340565217976791623453696862375645929556240951266442615744101098782823723671358812667660236584539707286745839124608664632303479306651179519162815574700421171086190524510717347877123559579405658771032570966942505283487167756241835844988342955358422274963033375037129877132410196735207101207890463679439138060859211444599302800360716773704448601064145074349145358369371669285394554080975041956266370461658698304185296664856708538850384350007859036026929295478245814344888156389818282645152248498879442366166354892799588355509457365492043085373649268712662189736378641343036515742709975933999862339501696588231069154441603224804499462879540237938476325490253524079209492909075460358783923356900580153144310195169667911565204572628855524709714258458466126391031541614484203896044968449869518415118959491759552472381148972374076188801577053385055988678396526777565051901746724765856243182027598411654555312664388626974339464179960140800856846253889164647856033129054698716094903216153089690856126408810495443628483907322149804596641230717275205899780237039898880557050141487392013415591975608592241435036753380258189112576225986808757111574046908223737684057461457151819827009268410502840288850103410284258438349816412799284884559123289427961708064593463102680347148131382062518502984870942329184783144880928702495534972137279615512431473727013934573964160555719367494270595891247410631652914690656205261506759231994736043808514194172718630043953311283048799136309436492173070367582131092098152424233914982986744708061318514231217452272194202698549924978959779753049665009888454101851192434530549823928675645092020277565766637323557136029326584514181992273832271407737601271098983140874111927054491893609866949706534660266208177595669314799291557498799054443551345168110145626067280008387042701842993612225343525698873183152748185986143785398206005184386901316828638313603437071222102766709566326998129860742421476909213868284667957028987324558655378443549452963760282180528221068191098758773485296043039109905695655081967975207942708584124558878140562499151042063253587761024228066353933110032228904728631690537837855615803397493242901398113980983369339389772989809472219160251421630260277931676595355640601255263079755094069930371115987336581015931187788038790278486763327930164212173228672704602520237042222475347872931466157198038647329986550190900204164536224056700120542165374375321561534682076913693166228475939997516341591670995422721548905894245262362008671191734047879222222214767205279692285484152639326354632566675555573784396713205893120589964321610593936041967325200160918043496646631656908854914429919545601239607553516283874141543606808953342559128642694306303566112020719590599226783495599835416019890836686468465432682932772284082758246934967784612572519561990369320558768943157820251534559000487234214635713137279886771962865969111811749439475041819694179660331539237699696677938472388069417081117830271574279588904164816558228313345860666185694509777643235140605209415290151926756649195727934233489404013002103588200108257808616372911082205860685731431068986944456254940983212329941133648749887622613994972909051909755840213225209484043474914792497282275813505017229382387903471394448996840938266401434599951517903872162811355054865163212955113773166024444963265618259684029797560632932089351047929598641407578310971045315787698722108118568616660172899080568467505526173034646236306189094989144316397124245133605659529415750200803620444935007242194268470589653106211079590886195853532273651401585554574993300688958910220764130807879824164402728195552493401977365258342792515833399258001324911905917526217948322750122700719609975999623563650706070386012782306434340970365316041225319923009238610463680496648129599437124536568267189026988437005947380763579683332758974507657262186129625671430101944092969836134906164724260581429041828020956135887753050360008539472205051080072170933052010201693645484613314996708250480171715216911722014407277602588543117529777704682850177136932904564343432985412525763763405560525233752878158722535671068331908425603203441007073611341718955983576155843691824181104954600371203969605215008602008070511441116644202422637966160963139132103476318568588042250824585620273314334284537947541179211866189114900355251679140325351720513348864815484639716989108627348150176359892271947468347274742088789248571089089287878053013268373773578456337124816527077021099969834283906647304679932247227819283798772112572195851179078408237045800656732561215144877282586691857179834821651346018930659569422682884826231213954506279452397451463437698880890672488598546451268679641226320800054336940068735855859506796780043471029030441821690468531374854693795793714110784512968900205289552101530377910218461689958105015880145980874323696113510629062725169146798746810688877881881867408532408397362247491910497591386387527236191608470737942247144709681103208597501945169738624297581379523377291387883948004121536160054117085332154747706590365356543912132702369672526644435069449051851933347002305634556127340195892128299412357897249503295693837044911568883171037370577411680955652790732061798641241908933836107174458780823621466508896867129624476944157499704974220487096377407397690959024060614226180990881325427847628005651200958717332915292698510128742107639821092739373646035032258092097882036144129213580382897503425046290774458305432617980568344213057534665060658441566708309323825357662936921165764529555245698021736026480210926365011417961297883932069077090641094595362134173328925029276820085270558933921610190416218528455210362618666127843928287559500376084015145221506184799205275196029898124334831391365588685121178312031709701490461035415979530529413825272284430623745430667787812922640162814158288606406624732902875170939030856145629806965316867943731809971082915169244154840709185016733125280865295052428604436138821578998834809275316593755899880499584889633778623437078381685018880146668007535699362603513748204265283441534324318018034846542358710916127844963046618346231901604897124167403207896701446609863526742705999922994683627757580533702862051137725783961196776148728475456878241400434218058943540461216379267264822438979369756767554225386803241214443052462513251632928893474802252562307961382266329312587986459033168831637602789165345588549382552264050768784954045836272097491276152639763674483733001963170514348459257237089942150004318417925665324413479415517462441062375692993829397137739778656955882007762940305780949773989032242785340981609892534357166192895450600556201465526455033249857128913748820600065868257466042269988772093014963244692353392059191741528500567275942585500172883286644112672035584513642422779843484210832518235453678278948646260429273530118913409609585475668757356397759533074942472239318800036204765857320096773982802838044445891830783448795195747032915890934966802017869961017029456478416335550624348893826682842616075392521220805180778298655083149674644807183447233647479534528992574242117011932123914408366067184128366032162893564928442048457356721988680554884844234660881140739667638195116047920892103644588332730086433469561724402734603826221128856087159516395003331228346294237197166196047561797573230678901860857509727527896721689654327888162982295552256708311922143284804155913684403054067167853148421614873744432336492770274643353488925446765117164042015703782789542158905944008564467085477539416369189133306179442183441239035795776083633660874588882189570824187624476920062492378161719052144710987109878355416493427561103988690077217907730932110080293808807410577320813850397731542497295868437172291865748315541757286504642651084186311510589778584488552897405341365997866473803107548761397248647656625061153383674927824469502926187420007937439528326428495543011036466086625340151869130272566473536247929693892390710466585674788804617394138555866302349938958065272380452423976624112013721219513980445667641057505168320932344387045249161141668602426951714223053292816356461711098812928227222420756895509474414669582427135448696867218543359031938583628077010016413288306571851305763891966259898463892127942292960866201094449333803146508585027459300665698821673652830323249535938282920185124715987149093953179441478042687850164459318240246654232977030028689780463465366959518770888267614575886360830640589915557553259059415866637223108732021567357921014982063313383336050093545653378417345394570747347643972348640659028226752937899468898405547413238979243806091731738201891218814719279972783823018183745843505931955777988830525093853036359177084854473042658373103695734162876273386725959593121803593926680229642570312910183282149193492325100830637129956111321990369059312055944159673329444432797507447533255966220390658249691104262914930391512731000420557426344529391458152570190913625208193680940146973184786178017502095525477451708843454870600114598470216665239294266635980649541726740373184484596758262701240528033819551688534661280703595486114959209533725413438242384958912610879581083395250284405962012693184290001222340033137831976817197188257428040631874889500744785346663616192879831725673597927454243121772910210504031811240544735756271999534775094638942671007937454771116761675366344599501309816466910578565741768495941405920071077069125949620933805475137265772814441577460558352832631243206731320777210340104100548779272589326624758657203107635574253122346278991416508123481871588833141478542818928974867097770635698650118767693598800104180707921308448446123011658040884719720480263155022521557758603667028755908868636308616932314040842182895779753340052908559847078509223412659011145087233073810208082768892732212128434621546642312934556912549424844531074113482448515701374808168156018695848021560144913440399830552130845377406858542963405215409903389517802521923179185425383341764814593088602334011821049125155113005772330830904136898249668501054379267233699440097505097458735445144593947485646935045777176480113076524111753623762393602637987147774271566774492365304443024166574281315577898339563691085387265665828783537868312599412652325182318483905874800152373290709677684080260269781650524006927194650500169053314952360087222789354273127395316843478548965849612121734489859356266312001416373536560534462937347689818949096989348553267911380047858090714374145739297685689402387799752436915808350144393469489056055801169403284577425974172918348384336416842496593316001009254904024426609866616795497804867269866941674556272386774649335048534506381128074356166068337015757793237298444685559557982771647598691263157517552175246249585110466678544502452138637588583665855355183991084867038109770491853836052552308655673812250164838363131024168506885966177403867019823319754863214683347653413062712841463099944157138766627014984779550621354818426147927111520355324340485150659958839082282600431521340917982136517290848969120333562598845372678817848699164666830466476066122296040351780336657737594270440966420377643964658604382301150933192793991316613213375129262173521045840940717574313819155270693445423852322982742091510864236923476160960376732406445567175298389530264230001839316531765198999143402505655776022609369836585311140851895352751606138804779069965915340488367714956386949636525733059822006473761319200664824814846395800081768568280017708479428391276354048138190980338729220348563529005254693265665036808366356536054498034287810838717683964203850390423625335804727281138617978870799726485880813257313363206529876549418859450748785280931176236435413934513453071512249783632658439711103016369071555339751905711234037541142110178090477740793663329739920442613111941379588420670625292686760078339406759618695576485285577382371569779581100123429964270591609113572692817120447211801754189042306490260045037658893043787805988470401317504821915266806748574072736394827715124616023618596238490226342204365728765766526091141480655828730189397197858998677526039284070028772115574622476027862363689238462626950870060897466535974439309122650741953480701152322989820111853966218877068258337512181600153701434045632470727243827025024202603571801565603541521368535386366063558670938117965994321012633231866180535837229551650156527482143641164641949473544894157450590373505569586553940272313823621262938106873203949845925586571373601596635174037630276359954660438458815750605012643309031139020902876617498150074842174872235784722402168665517578082688178224903243445113400048707586213607484904495403807021133987836941870258053238722502598713555660032018487471200575994784007782225270143697490741640247772742032601556393505422616743405389109892744123371814727211399737032020081750988124106536229621361786921033846003958891295426029778168808824023981166541759816891976186697848378339849159638894785175314568071200253546479137445613647881281861419667039038006713135035335993372609477538649066345412902760347404216758338335546159833626420686746922463315626220202439267139148662754090961745780459950829959823405275231787554126248519070276105078866141596363518517948696829712321620286260596758060781595938603350898197564788150433107578899710787951185038424269839998576609958688684080311383589916381065849052352041883926591647898427021486053479962768963469569659668542653615404595955111394567553384596394201169738201505441954715539721707546850941056289392266814386618248542427179894689630339670874826041197206032485935073308975564981006002001831690297653705603123795978963167301477798374263085410093312970852410838336541989103069148559717178664763316410107034596659522447639408216072721483729729932183589382884168338303058143121971466122351971288396663143697619692049648730400247868619797807814963216827336827062736216209069760001390038411108428581232586221828956713051926436528619507903432830756105488130575807774663457048427852965188481339263331988263254698140607471168340998192719234752752829728999475712077497364700934426902010929555433087245720976134188155598117472863474348397460619772817919361474682041332131918418082644128276923662337917082794720332940061062755550261990829395041651646659449334083146253166011255354492993546814787982629051867850671959989037839100284171761877742727868463073457735011677627459020788799296153646268996645650529099475227956542499782834572761651609743217956551409852024591436931946275720967212007259732112363436265250783135923875794815851633270879111253369010308358668618775870637002033336259836665695589338751604005350323181485860828800098555509723044632681376544925712063264336243703963190951737725282635135109436668671652214399924323244482905125982523339414378169829098278495016289922303719425655896587184073155309425441937570457193283148297824043926402730261633987970478109193913974563013222253627650636392660339572423536979002767993937617324833058285060753950364815311905994223047504552713249542531028607308082346571855892059942754142021515731882442584110380449543143283383682026702755846531477517137822732051033292049883038800830972829430713360338613190150930480918893457237539366470634632788830482147416395229584693902462463764671896047368138121100135395280437403173808404244888078032528492691310853808824712022720148646867077984642174125537912763418054715954651658445035146891480665928179749816759321877470420634597543822293583909324254178914323017713881994574728676901929770613062319895644067948314738401780891568166882811432952444817745987393302460301638092189776192562686213765919672707506963687855764394566154846042063972431097077096835172584698130149064499360906667249104906211161922174196843278719207007905431599328270608532282578265306868223611679711200945396699160087448720520464782240371180417300673102403673547021403350209678955203240926688628991345036155227976157511332988305044246436000563079505410634422878226708275958018335020770939862521898875294875407896373339046830263072295186314127478222399273405072264989876117426027567343153793107688280646228117144235923008782532290347029741155925001794157489964264512229841440574405720605429509337083629394164742728607880442438971668043541983141449536150447378016807761422813395077140012795400627602242048858933840757081310079790234706050008861084363483452524135423415034268937010943984523949360432852915874311869674680158801257995052292731307898153622537225039006674304240070751897434848463540900036448748244993401623618091533640504165791879228770689900331331278556510800524826294072062632940990269521783721922891096728383363383183389596972035323360239883224302622572743060001008764143574683467221903933177537982349276367023936560763423489475178643135744478577968777839407763899893058505372524230362238668696950743642469879776109029736954628372181494361370593691702926733213042338529161170598353501173491348067966410055497674248550850373982793777089718117403824784578665459674872630862854568935970263483754883782576302953815161324103499316236539938095353195994880422676681135458958022289108130880606708882792402193815479410151378838449252940729307194532489073980860597926430221552649724811771005404132671122608953612325398025781450288974462597100349390376614711169929619228415550852890970675846345471913890975818769304719132665868632388658260343135469741758912235197706133609962754945364349491549536224017621493520425918029842230761802059258473376848999388643786619091095768981162716657799182913896311745849622035304213619257155766782896132637913763741695263738714042695791956538569520465520187296922719683851880158245521584300427769058358011416704419269379852490126477739769386550485750017677527405608704846000519446618800186195632443997684798757498814172187155284670898835449731498937390213683954205725709270666381653900168963439136237010851553810819678315333740511549531191120232685396801831148335249705937619310829953108964461684294310571694472029871344877922478791336203471495214985770735917909129300036598606533110198510834985284066428433851563044061098070676980185716408292757266073547488072208142613280388925655220981552274641505498486625859567744016517541879146041770733482509023962714362656154166995628834185715387191107342377296228519752317953633759050193360167021358032297931232865883247331413137640362469209654866168543107546435857177246228326123742351427044840273785871835214946160823765156860123111451348927955789997637577657762967633340620850635769086891531406278472951848723117383240614070762009958182884906439501294863884810833565520270880238574187653329975863551101581235053748437896687234227052366379505724477812644589627348598713693271190166787186417010618840792391995956398689457768769089227961896046609212680638865757199821268397234016920063386548269591503271735876112750530246127235748835066241422469787667765271388782613269448738568292479589345268517695882433442587355148740786177753391223975330082155719507320706083552484637492640938231160306190662134008115720393438501644216270797639121522040368711750028982221105331804414438143429839179539648722302749970641472155973876785746509637624291861094966371216937279576402681238479387505798760162436337247865144241867165839355889996254527939865930907532697431758502362149631149355031988704612230230594157444734592936977115645325453311094321159681423878509787815100315991977175732304498058670177885609318601632193091694482444048091142444463148923610191893740060194345903001874065643408352839290381601397630665024900873184414892590636396999353542460865657968689497964298795008057153513779200322357269152569600185201188146229989639892060649251554808304753383949768809150970675845949570428384659364515747029031036896802335706387204799544069512824324838374134794724268255845363050928358624301033116210866649599268598533770541336177844525124148152589282741372228469820754123059632889435013557831941398696300419240331861631753802440948304522812416700156037727345314787325493556397252054259499069914880299592552597811250080262306421786153115620186314792248206515189860608000658977388357722201150108727440087612099219357054977731297025023147000260066562852571322515120792000824234632877576792647162663575066873479830434462338463334766549382562081402416091121209127807759419114311039091379720589570804391664597583016307483820451714495796219007183299561070071587611108258505387284701028055926841376721859963951315961237891330864856811216328283171322966658314467535882775355177703224405652613748603448006630785559482412833577547140793462644344943887325823576673401947009704957691503627543319446000222458347982479705483511052177295404207343591814926122989701070800085435680496690472630490374288311847883579473695269533017551510192474463575032518946047511115420402044861808054219378629686760799138429851381338273564415171851237961340161107153209219299251096152711961474146130637245065382175318639151957794253070300391180343796545220748489556560884328819957372887593134916344984552411237549538289765008481576114841341603898967083669115602974992225431803476214942593792688146083515334211349416867676087509562385337708658105127447189612868886622869232068682044561633366080716706984200974834432536064139012223941851826265263374896529889607933664590909312845508749633258210257343075526271283131487714216476280383202995480850940327898904955237813714856652715836035072681767962668310405621508006980509726199262221556430789619133506886201320365778233656065590942707139634162392104816651261489909846750960912792263714038989557566234477565463843582919980344208797895624255005849990500380621920170295307442927353169539447990131900460635543554284031741721885841480918428207367821353386859783517369234812294412302985831873601339762081703755320466486613689763913480983877485108092936741688022388694830112490002670234588234602425037534454718757792212434706707264210769935425998271665669876316947858335307769703318259360323480807121740533407645153739409959634569653156415832979694565229723789770627287520774490756180327726516328216166763035133000498850864328204956408455108968387133513594085682098354518949812972024375730892009941656655354694239224666597655633487362550999788368266779580335860112574259774077088992462696323120674688000509403429607371164090859281132430120720681379881250786660055556707193864658639495036730568503436261923624449100475842140266571184213515301037700664241422192110887164042079883047634933870622460169248496018118616432778156407059089945398578361987346484754118051665758026591117782535015076628447167038115760719749822532731828743157721785812327505540509905221070169270932859885954181197338140068750998071204358683149890442843708849102623691123371879106991910913477712806772078312319649014182078641436529328283126164867427731639734356092703647620953697091545877226440145293356411463126940012144306463833089971912527846187211473381641072085878936595477487680162580832811367630321842503851368830947840492155953227734254847467518894145429334257411297651290447862740206108305003155596733755891223325761521032385495849597531170823712969951663633837309411100740297417295200572179386371507321635037202272927187272815399328787834265862076142576618210663679284516915672490680763090060679229202564863850316783458732248173979560871627926994078602039104655656711312143263770844129808568910346943778629901920200125009526607297626593553516821003574697493372277178174615436777148468439666202542108800665563723744053075556729061963526358514493698693526998109458073837371059964430230328727616525396190504399281915128093254528285703319332223929271083483512450077008528031508825489946899432175704451905747218097081449065262648517343135273106986757582008900136550172618973950717384389721874396631336642820051679992855138296057378357161004284669328716339096903285337571580436418213718622536371426714360532007446053151120875266281345201049493838964129634269265466812793974553766103473951596264148791723760226451743841634546355616126473709669279580184381158129799548503741723908084985910561987773033963446638658023992725317827460761487776690306347369502134536815233865240372265693445485032211274521531169668832989277946093293196923439686080044903092596153823675505862341947037806410208356702054363788956977882114326951926036457421049151420295970158036326838348569416697868254173257959605560960193836361477151838588347764319564294471044265862524382575231767429177521762480091881859026043586625185043931602725815157763832052326605512074414721757428091136745376639429582603752425277068530864252836156251695884450959610548144867075479110338750857743511555734396231258378246450945935840683470137794656519123612350621614828298818458136545030484475251093129566667331527795671245519009468097383879667526947007854990973886855605203102599471462706130978501729645546816792773405430138188245693846586927070119784549874540555559800561296361548001445326515485924479433163944364494223657234642805484577216662126618051015435000999552209136345676288964999746944066002661425015479630728796282071227790827412023998474269342763598509537368145472190316058642165990624458902130584064639404507223783881762522990709055706688023963089678318880073132243804524806588688927336325462070057073634032844947260011725499934279902538432057619274004635540852582168553232298018640042276223783809286676777452753289222074958146035747335028350017783661956431724171511432422678925689183389409965881709688746602945525494383356139870334203149672668738460283047307977016853440157439416333600947511608597990441236242910941526165674442578373981210326527820016794446232897239688153712801396447606931290068494553976431888642418501729365459408811419630051555493791469884958311943519711906607790515012301267417214083908965243340850377833779936044023543411379144473088910376425895222458249737745591560075382725318173878823972265613097191799318266764929504685006544657649124885539711424296814761577246048462605927984377004149317854498332514921470823974823461077155275126986403402360392246827846686409962436570558505110350671150759769634728271634929757214382508891861323844297777081313835340899065504418737845866519335130449782724122860253878654908900613072477606271611793402623238476839731696670010910751328566364267956726775567402604045178203233507134008857040549235888126222973688785469367377843555886351494449755585058348522635063930510504353032279716503141423096986610153792330024327574466315590842309287715782080808882264355560355157080359862308431697043103637336088476017541423492120559784308833412654968160221676255723409799036400566272930663749620422419664278273663745045699494725674009655056906770012634148054662375396279607032919656760720573399343164740567002443116872586986910778746086424273675726349058700988730426328605496402517284488147050134817729705088833844766317084570374622477953144538772770876176903463310192455482749336530041875185725465662092853702871724311488106680868410871121235166662646703414097273227045099119675908851432223411270616898590161468461130878092305210070034276584101440053904572172823542449123931397680192734757016690500305674523705385223471121144672152289620138525217640199578598317113715682826424271369159334652695274769209501855744923548495812234951653045005923281546945606889546507634372158887429168193406481024455481311996265981158359609478150775711777699972207391983902593534096902817423729721472014646085040320602241238144556237630702625560707309090428740826765606504172498754452651687315649954301189317958522361094501987098087986554955296897736162383271909408294935233147154729207692825231215262136220371126000636908235067206913648668296261291194900542142441652482785107845079582715875521291817547619362073254109360095067867490198389201188947417105174064039713645151617516274090707891005425419204847089635730306831527975884078934400737197857388432474481869726725555600855206863836558662722506770407894815287123812114683295571364456817767101880535474769163851877697762148656878185012134694679494115117068525531453748223212753118868189801304744730224358846512165901660951573140485477487526657048219039929420260937340805098937586388672918042414366065630229980736807818657677875944510492107743184071484591089388428013041026175788047121674465720845409145908641309191066221592870379057158243019739844563163945938240078035127450123852431100695528805999230343384812283808684959816529245146529523652656310394677366790571250216294853577690428808633633237085939424090114259788558346432704410654301678223957595360529359971294133849772921836805451520216677592466311228429289570130969297212365696717394689544512645966831302072712466512666251235662923541832888134800936893123725734843768690857860918454527201698307022937406942502714533304142350878387710778811618609645777069697439486833666420750317590998870360183648665595064156164026233357604894056130856653180147123243200597576789251999160059808872421864194067944840376973677561537180401422687354125233575973984941876496117106015712170871903587332167149012727825699261904363444543069998281014765146429778663092451473962315267789066021708128645751144760131922065030338093584597776290926362638515960524860028081747943384066103447658669056738943571195244852440210639062426674984799722802698730685045228670273424556956925949026453162453263656552612609124517857775581428605230969839430342788314194517396046777907658788029238323027774478441340385135373341333074054857056068870387366730537586270551849690502140865115907969210046780556549573629245816613072749862374558592044179730759235985112013996683297056387821725887604452808112903678964355307888235889188924766442886707458004194538627439107848255276594891763814582349204532462715599454730916430267333385844248255006175562503315322337463072226490482990233349069758778713567694186337923091310996417530021184974799732787539530016040512410142550051430507888071720436986125006113300284672839341490617643522480193344539322854554161044294945336960651270045037709044468049543147272451567698784966858318997858502328979732950197960740614548593019701163301656351675519576798840320847102505199250560164163438802662119242603709950218501892210160100559005343816936842007491292303584392801638502139445699707020524923843732423665946208246895490590427511482390315266421436626573647614942231394771654678109909286663101185063866794638890268938808588955552921668919114971752751189288981655008933971014811617170510312871460926948375938702240980381375475466590242949007821225271961627870788484395193506522863199499086373154064849889303049102428923689383723918394248348809589437623473569777571386213142095431452469981684571359502739409898776977550724142174615251835084523684193598359358699243649437678459895476255299076663578592506240614008485033027906460082818647962790527897413103882276697602036594086100796147387875154937513114607888945344608352182578005594454121487046683063149245395412264731881403733063014345921997116992885765616789258850779939946401926370140558228800096157301111797539953383170152793862323704016789276415974400025998575938874148167581550905820242767280648807308900570146209321961296221207368599715739599771071085955841281741695563458718460463415887631046589747023053814093214780182484640569363787299217190832484629156333119061098286765547128686446594340094939684387813843734012510776314438069165238122140721739221351529415727447043138810323302953189972284933776657744202914062903036342207790087344475278941901596081270655321688569755387219807604242024413135475409731513511829480276673872194169831655592533075832167963790684272530486016254974251742887478035704326215385918748588471438708877957198183882033563757270956949425089814817304061991337707835178583896470711387063752196673659308055632945914932829699584647981470897427948843675894798787252785776263962866843166854551633485949595220333837088497563052339572518891542632015325541776606361139383178318089209772328142715010116480684055797752770857346225977285249331166448109907043198779719798031653496825157997011703811767313192264341190850624888080352597275948164999073575607980827010907037471461047017670829851062824769116519011956244176317154747508774076181751118251699662116106559724975010668177924781839548521442368175608139426933600067646349594218257372511826570164015085714265757907145036875383208626202044626821481298212944565290560844179622469514670727963438410322212877227856850689659251365044430978195771939684966285683121256118892483841366440001381461914773901799071649598259027765081185117461589647130845298609610754697312936556001547058628605430721093038685755388329716792510859065188996127573810587750608521042379170277545224534494462638554152857004984580382939397270252372602776254819026970320173036479784072412623966722899439590435955429469787427489979551155763684248236422016249176566137927134095693165400165976318671573196832273571933812251539480883356821370555540145191055108787990795313784690802330315002686089130425697063100532473883177820777148512940490242070037579803732030522593434222219128726935493102824074122662836374416025740886518299558717833746325869742769736536717124312844465678876909241021346455156013504138485415251308144350017696693810280217512324135016220543597481538345530085183289659803598341227948858000149780995520099352206490921490208295384491423585554319353403317549413267010730654619091476148985399150936391457712878744238539651357547873505553166623942295279508403356503820027229288518108769913533840110325896808911255405826872410626537621734111275036406458376507128315460671601124788719052530437615802485355349816323856544435540222533210381197969274908484497650739703544432584215108283146246439692735028229401226166567093326122333296616876660664929879128987414281390900025840591784558965478620164652161818002016662220520694769297264710658588335229669310292377247663548264351211111433577310891059296050656553155758039749547215898501960088951470299777508950033721484377822162538245575248602435829465138364853408965660412981747126641516603552159584864666335647228139290822871890824413212665895206408122489383327056165807895456102102516500467810584028471015737098848088688969181796347020784431217736836363094469677630039844454990487379742926162563074008779748259673837908660776981249167902392074440545398924203306723998046836784857381896734969072171845149191982045551738799379818257507011868320983814262939438328304656631494296895305152692504785887178129250995417370924622603126847772581835365085879756552609294985582595311048896420416255753090671886756442275194251806542802572303927179370131373887611199153843935400986222555458264025552636819270177986651439511629172020966062376559154222485833407663685601991106690113307810470849199358773909692062426246204280894136052518171574125666268569239921043023621390533051320019134159026139954730927807054056342368751137900299665305335141832081449134276099056660907204955110304229946733731067016089575671933319601127412960806475708869938464535111131341006673558826904050653312578353557540055234210210510804989641506971568040353769497505122732886466403569299203614557704096027890480877119699934342942857115628111688306357808758421250990260630723547059050078500679467044018954292394868673233476113628234262361382079040112792018011791775551245659459177090085676638642015609368133121130660762665163930689437359186038496701455467357928031841813736068625034130862307456756467048910110382327427961013674416762496225256986025550331864686467282490554418603457358238206739807631619280561222183382953744878148273871207789658005602266774947738555923623018655962595577846216965182616875227299523591805581873585786872332537223677688722397939290405414470288329516063065229545002536432089310753134717555600441475196024269550350405264591331335926003555621198454167897600611240607037531170109418108972403081572124004497736311253141258505187614507035847233893173162921431485422145906647863872247841061441376689130585401405065578340259769726030461513544821591684579783136418261484596293276075743854570663213421707173367198314201156488643527380145433127317080139273052223404656912380924214038445442629024807667766954380029764704098662884594679467689638181354798398237888925348812262431584030328371473220055403023045541392715304114474701190701241459725998607983538839828163255330309199310204864826316783653873061110415184283139477385392617498722319337124242770938002987506225822213576827435930103287462690175888979041543051785463787971782684134199534927625991117101418809581018311402299022676497437053773976476699627867659972390852312818714057087230487877512792749356593395338397189859514896526194415699095290098646647890669124080217328995487484643384547777137728971754724374146738905854551180086903233840934435491445750589558669019365782462022220282065549526763147087503061409121831658010770915298255126254662102357831391188154628117521576193092102878957718907720030551673012050169871830160448927572117219734241141307409059664965913345546362646236520864903430178422581490679306676327817824030077742608856909256673748381161941739848833792460182292805589375434101173069101189425684448455693862826225038268831121567676083364665655072720788077536289580083249091508218286018019626567005511451022034256010562425558978696379180211606320712720625165410081228651065911814393621862793403544972874759684161916382586441056903458598413545514500539781145285438399333554428850792157534721801158721812467037776702287013233059696095747884196425865261481211124001985044120544332107184268455951432674912049195751048737059574466356899573599262915220681145285043451327984942022639176449966625586906274511457972193463261413640598756372267632199078194503920055605346145160575668500247867185453535695241597868924104359875986204117301221553101608409264461520181752124412176902882222844447868003442011176206337974576697028573011290729312927713834710238654661526894535310216957304676205775160622964961804561846417299772831024746260235327933039687810843418143560242245483241896025115312622932701170091012188797997589277252366159716244927173810824881933917490690003347409123222208513896667449474349683089851570118010095878609539984208110930607675536242631837684279711153228956746352155042462953417641745850542160396935613278702391403926015604125829221529596277591510431896253198467205122276166666541550056574449349869594606847055414099592582241809442381534147591726848829943816165861121258170704841520966365080345994729743489202740230532587143071791030907538227108088980530419630565973089541014670337489375341452584591278521122128422617647327504497843596773604961133474482017574224714463067492606304478541794461724610924152311206265207964510859788977873836712222702808447829961849240662730732839548274660881278530598641050619320947645035232563697814641757683616504410398612519153648495559008244598417083158544250223372772933026134917671217417546499605245983677094911273739576256808806896557587773412022750000430320398428269116676292821605784787651876216006694385032116943631676540663612084077373412834357864373020725677585821099863498611516380088877411544387465542181356196734073088128932286947476415439382960902597814893056385791393708924264896267459321722605728930865816269183729679810703589724839949905049869294548062920450143938658673576261866615333095111277121074192735064008674504379136184508224170340376199997761219830661322239120184331225127975394275866485649508481520029644940799661617210068148020848453565625688898126278142848355514377556111437541657914926418185007336765163263691679621105197545795370985462722792976316898831664075163077749767789736392365901759731438547577997164776844324028477732681508750330299882801303348848161544678594105070054725932188608458527419360955552258298281105446217766525142659992345120410399152908009400017950344516508785933850960780422584784784448012046447544960670796742348800634524410592187115446846014660530104655015403509190524515209219760181503719487495070250098381833513321287940860777043918833425694555439770223464951873893231124526646891697992335778658221152048461610315164173739050601779153143040437443711419034952109248298065230717631574951100584480787222786315313447828795760259506332052933981584459597185189496831468010341634699895649046639067413135798215061393141301059823835941972994484982260995122750344692310449256641811617296668804410513596261234852387393375501775447291764635519839252677259290602365165445200977315869509090161604384179825726725701644358202951261946774237377334909756878356640324385039520500558450044109942334453623582710178440805897639800612936974871418580452842299902897010235903702663844712797707033074669359219018406968902868119855812369177056138598173419936063837114002709026800681633357575986389376198095847240568364388951090065511256980801769178464210190092885298113081405119761967615969209080207397449390976273369340775039258646700123236341871378950876155804481343834151154253085825675631078450115396506755533751642226440102492952317095049299461113658417494779796942802564730815797658878314172099986422526355668818476154797567284475192874429002582544549785500354115470277039980600932977797899184996458291616483014895201716471940517369435068639650513684776114184034235994837466218330174209825957908706661868730655118398110330773566017407486126422830606640580462233096967611705294815998030941478110905613967207279196354668996498784366996252821754692295693125167141884476900356973569083907231943605066123097121887044907046369703087317870888800495799920850616916201065188764853311525704127057473186175972865097290046448871746320644837670342904781541802296809447566535735789179748633391106156246540212901233069812103461683905768840086532356577141343521155922826235342146386360771309000065676518369553648305461186890455661729644447583315522036609279591950048669537468083215100122358226227350496094461028655708215937189914559524388533216963789815641380671745065834594711163915807749053153674621132392025275309283064189556258972421602109646722215340131394457033978960454575712959884544595973264820174470249501218174590438845199904282880485362026584134916965462777098747394857281777048090518486837555036208761998457795868043941042045733482196083857842992517066137861905748250681186355239643192212123900277564850948918528145419477520780438303421182836903581896646268422950593795323197020011899442229233211725122316382669852214151610223617750110476785817859346535266898309184545665735020662422343939726597874371687045733456713099828305670466070436161431611179057917850247663491011465024300112845902382630683703230730682685424828025230007308123445926957120787541751859066769156319420549754049645418409905987501468388952588213645434341452714187291784914879064912589717503630596164634274935312252616351113017508801257466488639215243099293925120512781883701372799652075462081080045121593529948389027007082772465013601485049751299374625303793450326185933416225066678060743874030718318577726448584663057461187713376865113609094217834003311568470270832032968668733344571657814449835345267902879978572099702395125058750632182410285648775972967401197203541050599247914597029705476978380419522579390721793351690422283891801996138098838879103484993200698130815491025212355549658721628679707905357039052642712070664814726688070869139603125974385264942257106175705335876758296523543547531689870637969780131670564663180594056769701704583317482608747978916458588632617611959224557541321137793605632433666614146471494697223859889175938643872546100534790890304879218181096865612752997678754048300813488927629854869026072357097208400628844450827502446288258495427132554583091463459405736837883596523590351982119011548835810831751419081656790805351077800907890074474408711294719526518995476757147251444937123561562402843550943386487808051419911865152743545252301483204210029569829677853238580363077004940537245483958261709384123836554983376367010195295666750778784329586108598875518688424430265586104738978507372073650664251995214724708402413832791839005645538790149135733973461412787639887584775271245629004397493548772804621504892218339350192331998186091490932665171497049309488011306401466966349247178869015790170609420891966066648861357561247636597262785251258354875044898222696122014049344202395882811902651865663912024171386823450535577686510650048913592293588629940197379260415606089417172275412416878448343744830338485481478625645561150078325155244119322348178731502599072400202320579639553035685720660807188463678953608823978155771108883096836565447578593844840788812590476627430734500013692413302269944470956490450799604076460289872351405112185965916892775394365384066591720218554811281830550174256209521389763757243186067270700194642326438427282633997162569420157745974725024729868024681140080478219822478238808002931473065604141230257986218733681274973641005821953065664411491562766007324268441074703545323584514516073037563022427994834321457958395617037879402267997636651042079125773017038900021939522933101971006654100638059681457743018600823961476984079713063061413206856432931852726127253951560352396954988350672755919369487483497718005725494157513070003850605200071879663935360719443705307645032770197084554161150563089935041485644257990612863407362110129289483908093317193811861193099087098036215559074086802101772916353530644914746273897212294598580449355894434431943019416170213204827019760569506118013829097320054941109206762912172382419927877021222442687754852096316397801902384737539744782621036786359119690097538291520730345685654987600352929669187089652337353466588550543537405960426817529195058309364416355874875190203987323249517154267095647450190750862022275437270863325372230706384790131236649378789566866109350436817546246160007959344165620796659451201020401977407587797285347978133534502629009365901535762004018125901211584954773486948799085304863836719573012105174109083403788399507307455141332404665724175635977873009087681584827421631483998457889479744999175374678254009083210312774427324194700249554836713516949875507077054959613858681311348843695630908725814878620048223365271248379193171256863400884604123766679597253096519882833342016628568182844382093539673694646152297593270804982354506072229583382289530685505696791695128410798375314820196798622120634296006810755836031225388910693539256447994671037023635123871944701738601899607042114137270146307273610998652871532047021808304189695419409968486729928736196872213130492026041042743460388561843069219731864334777236187785607221339106694612060364422255104718619704920255502697477748360251340552587952148954940523616363393360517245824894570685093803008905156347193160785239316915582666841102933060800294569315844642242700026085735969367067160248486173341887457215285400516501157394970087730697658602479939243025611964397834923823103350221777276142286919089554983342858155963082256781565390533765348153548861496482306204450682724064671057275566056223188471957212509395647276967365078781003636737464211536595693012074910081030895694050192723857586285082600615904507250907104470479452732860718039818072702612127162285010985225154059343198682879834630971208806036351127495921215251096358489086535845735526865218456603175763839722520753021230673102024411182331337968158658839787063651201520155054132261342694281972324932325250418263792218408754277857781859608866617631062964817009795294426858601516700188270855174946433437248103331696599205365366741182442781728520919992601089075859819754810450140306800960266121482363203090726303938751998977333813771549216063100377657091894770634432690185881061036212662494629657782911963129252054049213850712271991986654007969471423932563236451410082523815482604059980975085665542899351542620847263156224780372897426132222069954402023989928347814112087040479739142228829791817388186266447358447716404560773367262683396677615453157588305181872785138378705481578718799153311419891492446758247551679515623262995574022081554322299328291194197063881922055745302284192974892793175999163273117398558957216975049493272000774209526696693761726456076000982290369662242979067357341687978379387675923896222413808711236342782114147169432889469709947420937247288907282348866384367551728887558626288069714036694002717701187612616979186483357002789463939227815751014286892820276471241018937256506337649515112039395843186119595006869778241797216201541383687213557309151097569364095769454874863568923599102713682701302352725172474579394288244843485180670279358765146620429315987583586089821741568474586685063395472380971575346134798880450243514980373618695913621172533782408239325164233752179134777919841664437718439338890663716803916661196551326120915057110111052238442924062379015127964898954884867214258818910801883876502137282682605809744830996211999940892179558958904804013667526001796805702318243000219821407484111522983146646881578057604643228879751490622906584204068880109475818925079340512122742980704474193092503533100221061409204095502999452214355352961332250229103182568957272636838945164965173218622303602853138143106652545701789926482360175049183009977830801083015165550599253863975835082614441568118436376711822723557926468934201809476992305263941885680623423833571270838550021067449020392324112318461609876802283883603084856447472321298488016740650248051088861700628718613055961444464325547940004703050223528855679461575258459707478763576370815797156950478401266942272076430935977781888543284678500307014814489021127440343871313504636751835291539593805885142373029646297382467145259648255538720785842265004789124465365951010657686490361308870373218879495451895765357738328477921660629786574870705920015055153210171772310785557030365654040316887653271788094769382763715187720288181562756722743998978038677995326581054386506459344097316413044155582378826628512751060656777351028937863518078648826300447739739350269593983292591943731412996348347644263591438484989741185293678683170617447851980150598975605300790740764670780756209099879468267425134920877731081833426816971285128760190459327821072331422864741086424779034321423554821815517801905184375341452332757731016325762018272490686805394878077998619988102652371639757223868678199042736485439677501805657319791476511489286940657271060782050321199181883464810197530921710376558262397812785345870353503183901524114874973035361773889991849131071677633684591466449144304101378230974856897090140104204710385402611497438397544528425378307499417752083298486720568421140212117110366131848639070987924446841580546986759802721206766441937780187270586203421666374734104755732567560927201664914958233837404836760754779614964776533411849481137663693712002703934310830760284925616783594987772154084852447214796131848646350535179001158764703121267546220072471066753633689421469704978849752595011693043232712217606794971389411627886964911659077588238168390366481869392267570086149212046169605642448722029482179347288074932297975142144676982844173533937602630580372679834870039037602635039434744621877435110544374811547118582640488445394109891990266221346208390731377023617416237182865420322729760247481688702045429261834724491102825194334342445732863068009336726565676147888186017455755953934063429286899517569494607054923758728291059895228713913543061527339279038862942551564071053478846349326464080249645393645097151295686305237183555187590634640129724852333754994034158038939244936345779665678074325266180816742178302976918665104794425237552767065541700979424276022955009276117143425680704475114757822411356402493561324645115184464031786297577856720040429149744336673836502046996825472044339698368188053378178470151654413389924446213593252729729001042304516725421835805510481077854095871736739904828872793391602229644996196597677957715746879080499895771261402318493414606618552544326994198059808278749175042774136734043772773470086094815072667121644624288532447677959221547249675200369668936548050141322811211340997991852959322464168615279786466021296033828938040180538559045009387556321564687336517299378031546073344581380186051184675213390195830369746244813252269856013959971563856301798750315650933239391739414494689388620698156639869814083632150024277948548149717833656821009868005194675039188840733895853723444895493670985862732232150285858030919555170255112874204577452039689806250615317940763252819279860096808028189955231031880743310760553116941614150038769836004160137686287094788637133375299458240753423612272193946565072057455925471172879581171825826069426719541105485581957429642840600515106602856680715866371727357536744981646489238853648140844439693183568726919052447577267671703988778537115141440008473492718451156482760711798987996739489946295043983983804732630791601286298729860895290892861160632532214103372205535864266158511162238336804235888106334791475900378028961858725697323851806028318280508751535716514615334107599401766144790870512098890835929263080421491574215073115986949673730164804159979954044158006598978470361529768414647515649920233149321511501078223177398743069524405273945136450594383389082599816868637476169511941589627753936086664944732649290911742845602267970487539566530725426289601005726159363469845059985205844344545809882462248329169957379730600698243584710810514373972172144593925433643317264133909157302055207225175449944008627202739771769597760498297974834605135344154337801176280270032718748569181155708512755442923035144136035138394968461036365524258953114113275048357551978090081964267040249469670253861837351519494291693575543231731405942660085954392406856419676496011052171844559120701712809230055121845285745191343165507310745942845101652476811912415961991516155317629249644420074402808151475377131713450999623422914691855705974438983304449831307090917105757967796174991135997815671728296711781250344561207169611425308047510538558182559806404471960711692141672079935999885610516604406270432516880197557047994125118675653935090456028342028757749470117404144712813821104987901293551722606790816138670200107807568205796478055041592969761139336892796775519788804496429626147031227588803457572846753946276449785297729519060074893352957005287032185163819603863351347411040418371127793404110287584653880347425034832571552601021213026532011956096365519221429720375649741582699788323296909568940193679580078081880853611206679738147310584968705727900136888487881654910121146651765338683649264270365502723191408122717027521035624066914733190592947782599957939182969332713084110496126525324140568573496282858573914806171306027833399191391954166680568676463723680620985108706382787813950603694536314047785779236714774926659180843812753359782080610807010893061583692272469769519299872543470682743274678418622847247711010430730177169611411747517086822717733624609763886056132379825005358674176218416820559481328928626163273605544858543988236476571756017542320875439852105559138516969385763706763574992477816447576439352657181209257167287690849681723185813235776077957632321815048656004388068294951610736877488303066503089757151645131219156258421948557937252969372102896767155751156507329174642349241257714814492439321880403018656199456986166614650148697131749206328005379648231686933077841200277615568369930587429937357887460534916798275510887380048487891432930465744260637146981074404900262620404855399649112085026417354004276245798406438911407194710011392127879558269700796034302006879375472185512016898041368562198997140015447982445729009030418847773950579561431927743240393281060880862561188356403614098182440827854659943906715076861003488982419597578976457691823643431874261968366775810765736058389164589780856861160406984782005915939961491882267291157757179035193264242231200191721279380188048029219332226962400409064018425535992388505129566940130200057963544985563415221519137117090077296421384334708783742963407540876991329467314731512523700735929422266004524994587689823555946971720266379372239655636668026617412036308224961754974600957292860554811083501659036163366374993327164324223401610382165031291527923144307213170321366598019388438453991061829636993142820770513839782262960554272232931666613315046075587193830746581464681812584219703673947302947891212775430350630055600966633121277957731768075092992318504155292172807141656809719365435255887291840074580047841968562044038751600804428374574735357071341297818741367298707682844564892190149766501126320351973245379158586930318631069726283509358610963668166953433806288389824268244724410626652823909628806677913704315387965720284795180676185440370277362481202227299105604283232412578199626173599671781307797503597548178636368746728176273907825740131445133997065390316887933459082495451603055854314689076447127438520460783674369858492390123671473479984214672284692646739014910638536551511287614077500981448343200528433336328979203884994874491743381860659410732372719924388346509384317140986840279520544880085727619173195805368348215305253530846161625564993133009470567095530329379834455022590823017306104973336333295361195218075071329392092300716002862674494056226622716073947290643666437763604264319105221612923881314428153042279968648399850858729815300123549493212782239961610024403099958409998266040000156647377105577864981780407487884238568217705308543778397162854635941927495738364361801723595184598838190346156105127431756826553298147881070572176658553579372460854182357515107060716178050107278172591995405372593700077325664636128050054261606013664339077153610571733710730695505070604617819165706225455095482468159512251529319517698498420105081811163879458152808151097406925636181003571369666731499146019272755232192909172847765509211142124186678476330868170611067467012229637788328030810561718011594895269382177725989539523123567628258721392926842347486539489179963258675033457653556002227221978700477520036852944541945560608365929422403871510520579151358764905839496802719149223438911119611394272412360870103116488277629543448593414354055947496339285586448177264352272671659072919080090549673301529407525679105882089033595073696284152198852102665630085357748875078674933028800952208756983690310409750826932754159549623856141712631608248385800783435265220041893019793935671091975853370583490994231839349488354911379333230960592585899984143197873305756898027645553077782851297995973684484310746251630453212085740984352420986638382934536287375615405579820218675698819318658995543484282970655249973039668067311830075997843925927019041349134137462600955471197255880022078299281292916829602490814925837805140294883587481375417787436782159689970971974282936970277144854839172632063924310702551047772204091074611795061319151512545719659955690024165040735360269351489367942065143038405347933064246880426125259033619606715572862747810952139011005125898253735301792647757128401524805275323695849529121061151016013424163045521524731845511555539496220786407980905219909832474133257260387775431924633025005204479272008925539892611090164910676314951070833904224131252029497338718334003633682807299181120948076547256357197712861867189014341887665796548726646772812323240447296785884121846994799022516673748144729938349869764996028436158437718733300352869034904394805014913394370149103237406153310611128821877855578540759135989907474479391154460699642882521008768825967926504436159095647388208625229664361346857529826890583027536959436781436842510327137910910489931585711981530644661498466890077349578747380631634690475696728508049728849033604966734361231307922886795258349643802859743984695311424338679201450223799728243650272438813610487983056103191842177688444322101127327981466703053769943503461066040803514057114724457784443120963777318665064389689219569908343127329874782613516056827557087581767792670771838918948017820351837771318472763080340923503394219533605494610099204303890224382412492520336945366812211934873767554935157382712263837874441527034176064313233996478151048771747676770237253851966221392092117959151043407182895140963392407050784687402746343742725948466799791349949883914400976202210565489441556805536950828497986021515293434614498781143466707717909945449835056522087840223730514240765694525930168059495393829471900928540849038672327656268705991933956592909067063050109345941000880421375945480974440637614529675031481845043672440861387164287911178206726407298953536512907977037938037352908334279164375901913508545027466300994856785877380150657138001849162038051863870167369343130266591318439766727388196405726835244436097559842317885897893875770007311025063381522301226305031394934208320078183535891152107921174178026352102107334608240942716414497124222026816656696882074503742550935722115075129538090998188379087112206469032733616787804218515406789790066091294290683235931018706823899876958965823304053852312023456495132723926707536874980712642533354151470248003628592064385241705949910191203745297260186649405076639903286747794105095655380999524247452495402829546252526517821614447872859440762025800526457597568009247694075557955919442671517356143644189751432050633820089316788372353904357888917993382396127996406815156293036528310228552100440480588646042131586730824079701485781420301473006038261932775679984499294932775362992801872657716500119504871094813817372804135448430627612472869497697033602081339290463744025320958610200376340954635873155147069777554245468313504964301818758425835772249725557397174037554298567862695243774483447553699120585160045291487779425696912489316760835497219418576705828508254635170723038964270447887073274673327642752463155110648087821683005489062720685342474412094065681194464471554162068763256034946661347543146309622016129327693067091193265140175345732550117657778055770282359585591285867166150907546713968790891681802665228865587732436605821771552590823095327826926753679033523863382326339607956794406423306451611469051247952690963248133723831271306188097074273415960477397728465772276704200230770423176031958574558035743008853805489507472397974456327867750782196102388981065598896914628949604723325452425877686817553080321143103202089981783306998746464418095236585062171733778867615913969667593798249982662185882297297460077073139891377752275389858320011834452505851749538548385107440801613662192089002477938294337501639979950292637000042692880758309824294327033839849174311996406844225577705921590009394325064134962815368760780042064410825014100894158297203333758754722273488463896642582406508115533814496246409683428405188345381526749722952261437790651511859828652426098614808425098470708915234459739824651597090758715788959015387733197536633934232291460901384258570034487463454002295559824813558724777533073977068986512228819511406574332684147952195446419180120080516264853876114703682541107775376512339700559216716871459040240385689015027223732059548931426723065901120394680528405654637143943271320082458562065870743531775416768696960171507814775363739142118500421326451086389326091592872180342737213354629076091501500214099697531929081189039653956240753882951559686432087261438349783950681412089364288279618180807662787332912690687589511089946823414757262930104762612647392975395127833322934279852832746211706407540621418935971576468008091515307839218930855094880856344202011212418535642683499485595266357302357941802659070597749830880860143745170101396385406072124722781771781544588678784175711350543696806153411000843991299490284192019762200342011350977269661827464868693944683340387718089611124381497071632792388642323866129523922636084591533787665884111819677163299006074497549374489213901379478078570908419943247238595769797955446640535210406129727322355802399111403609512816516722407346507492175983871952969546656745059362524816451655230520559219947186629562876639751702768838251699744378147374795865097111938738982717636092763706974296677589336585779877189319070016304872591655108048791794915492981100199568723755831405354843230329611433540395706686607946936128821045886740168991546791847597211020976142747084755932985735638724902926202700550266020483728958813050197737612372582630461622095592813004094735975813363561965895627583444733089771983176563287344717892727263547151654717385415756205729580946928801503074951497012200231460209204391043160773888333085717752984236067351575813460585464473434988879172516285479629247133752003088005713823251635097241905673094553545147247420610579373848182882130462713636666323270871972611144652210605478431952660889102317145726945483444670304106005860980738157747986303596594037217151791133755722551282557484455405839762555459149111015634391119616353216686449979361700868008616342639044309015367983090868357740044723665300725662711138463373970970389755082799734691359948259165829955806273161611462070575411317311882416902813688628716768184772371388258957248218683317449757863562204642629640926971788627653569748725368205526398503210448003838431872828960798122930444261281261413934880353160531299867087202181613428868402543208935120162528056718448219584264766698361695460024705821618000602206865888746239324294038078031232070346093760798473620023213345786729968405228487216188896881445508563927101757120090268576568514180802926836050035504426379689015292099996818880839523110583277496237172227931256934433936278838880270745111000694979393214429459609465918298781440467673404810955407066742476334174578251414593871939931970090047373402476565819152245714082022795325073949083682818620703225192720673173802091063030616944476208802060064479264189240091257651095803818019403890714816837226440646904941876756307952360829773464572643476400006584946267490063390298606750758349661467017123985442570678325314632066479752655839563731346048737645154509736617239742399129958141049316265592752357913301001548695531054335750605974074539426297864506849666042803851485593363241324020866886820615981446186161097239453944303932924652903106185978866490896050917692172057045462913257456743363035320495375629383914861743169254546514957750233217119286435589289000528195287611090194668404652156703669340983274873099625022764252207217206602858557553883181201025636757405722342364219637998972391756305611568019832518439268587471615996358575903614170524152722523529304005860749312405478104000315283331831287449573470124694107028409565092349072472283106588171302211375569708818754210833851901856453745965452824399918491759672408695053506136769258049223897612565907319887683035716495027124574879204591593916692377427672603481938286915025335497732702608942578111816773053819632852299024899341488002854399775097889315524912714504335638798438414429888868292027504315708516025317320930132486472559206872022006278749411817062913096611179844676499581599279072859583236199334414826476472881694606979197539627118595916168020578599502193060518364188237307977640870774912928451079273164437921287162963317410097329996964237368168682713372448719423223850606422185942308470373003119112525760614639630553691513795186460852994562121086345078347713438213302772917951542095556025877527808192936740166251964625308350958184144847654748437054800888349824009367082373524828572775894737000536100957940797305217924936727212226262200941530914116612402597203596191261154872059782447921378343296573255988587353815803808048096287572697479661801938846384075672774119994055895962286809759901450955786409056310104009422991151372889429211685876575664438820106456417705260665398147017345665004428314291984711648152177902507978613343770151431088812403636608991142114788756562248423898766221128838203368869325445566913060470965593640857995223884003496305888425993225045392332949474220287689709810548812269353403200509659593741394140377329975495572846518821947948803682828538740956985969973441495779413644554617034820477966298716316451227153416757482573985427621270106628093444391451743820929364436809442323409054008157242583551849603970335514095066466648594166460082818752526257725750796259778669943650585547693254937627225437893714038652479475073491931596989667785400459408890049889256898969307075580049943328747702921799497827739341610343314763731532182997606192840377328115679218823846726881268956960788889998437784134249105316052308084500512163538262139502978274395991647446023600772100313271820653927536695716078329963719959794557387386524816051135206977881899017025304308712251065667199665636307819446041954395855028249514258482768768615262274037186692911206526339352256096167893077203420562535674208304780173951558447563954586465820746564902798363603407456717537975530675036783073299171949915621369073795286158755450836481244207990143942401797046707360322851162497184534921855321008477515145794165906102706842093509971346083051627101929317211874071012107836625640807366327596816186516322938214897375574050524969431772955973941393324802412796574760934967429009148500489185422702015957646512368219290722399510635080706964744519857908738086288603701336165902804098003257142955134632066474743886846010234346451189718452052200181429509938424014418950490714523119743847107136815110589050775108110910081117582755670983659508512834582963995941428995476287050616446520638377241078553842329555013174205839746158394572429010425431107729822888289415179928614081879447578831269166201294828105933215468772364057388388102035626121939595325559760520131006707308481442491585659239669936223822593387304034652347699592081105060288309165734138835181478760322770402652257424532926728430038645024724055451078933355171815468537190904848885541987241495109665334882623638882568611325940820246042004159796739373612855007925852209714705015730586102969372538487097803475364399996332972915943151546201559231255210759878528056012017667570965133688410852074464689573069545196445790735558647802514708480488830650016986236466863216002483410137149682108168514109832893458127301464949879253949217074185430665024971650082994650440600196425858741936388806253242645919814707390750736372349272696154816438335873663240989165653324689160103572128840098001805241882818081783511457965070051849249537137538009404989610312025106829715544945613197167256424505046035681686020223493189954867932510204958870598953663890987206045745977618429735503238336034644414753660514883006404902363836998086699016813577334449780229460329482805586548457079169251768088011920548626143843994801586556023470716329924790000337123364480167511486834615129995791423953380672503573260781165209435836704156718943642861876602259313214943792506836092946168770035957744301242986586346160643846020701815997163925212008472800103918489753674162616757646078458608998887408087833348874009981061666298344498983095561118787571414112247974502243353543245370716584911914118163695073255730064059649989472898650652545609639678385466217025806330630286064339820850744585076200902979754126026595728831758552343718434731361008039874924680635761705763233880856145185944638992553651517727455492972187994427152662343881724952442894161619039092505198100296567381548276659510274742320916993481380876385329084770070878205439392563182305828165526099132991344037494648485798516939865610156929869879975509346187532231623149867778531314797444520532872689222171458205507605925145839426842201242011260893915753131936685440772913625815097542920687230439992781177512338165533062757103707038964013537649374656322881250510549569548183397123812789565361726140843429524188025705430081879090933737887004194802612772605248884123680726051725282699350237174081083883567211332820328240512411772721828866143802932939907104790994699737013246894217128984126685189933852568788427680452017352589128112173038666191645641274882280510681894001330388911959760776694764788226681521762366069223520439694883064019853958516326874452986663069690927868155470257333740206211584708777907904942441916888666594881666969726272288747265265282150422781097282481024003753510570514339369867240648164366546145347063851238475315446247328025872824387141914653261044390189177033558567190203561081440924139721720758943441414779767533573391077859006551847052734424289040622975343909351405858801694805078469652116634593845913251360134614020901108750967566282218588986314543626344541311745118047983819483575659641780447253637236967321715950041611836168040015075214152783348082446475946107365501262776424254361073221649791913339922858281227880856726409269696655520704837387544292100057466537890870640860950649362954086132674303254118869962682039191105589910013248139140483638184921376548517496812177006806990666466251907114045898671564393167674733800688604924130621662782380498688262765009016500176342876160376179961625055699537862463788617389915834883380272761838948468592172842949696894064992173327232146142633385146037601805880782290768192289261783326587917590919960468636861234714230261259844790702117093902347672007496310155959871854397933321532228015725987680969838660554220232974616404187132540348681118965739547571278405543659632210336380382387777475342313655375015180384884182374734776562426206832785394357290859246794852340588184625914638813942206762018294758659808183343872352925378297456131909885516041552455257710448069452891150307356913834302247861593386199645997451090080666348493790279350300425138454193050415083190029972798227029419901397492609674514007050662964844528314091478673357508838148022798802163425955321051871590496095295157667334758043414974900460657097571220375016224292530532066798790644538134600700622338770011947368672755657122148254561495839343548028455584111875842715804691334177510797340770712649714554877765201957281563032309664309827596464213724525900028410429055758450148966348552796903721556346824471893883412064330578331759250880534299344612249808258536942593483744256765363812418085859822476914309119269100247879412707807113539121948297566943907427281000203394297527663175560404003968187008354921771998855630518820504185875322201674334741624282624530397578361922245758814073591577902289108003363468711929786773677422132223108863656581280223743281577226632040440432141440918654132863117251658136295087967761889993970851348149440022424667818054645892804229058687497243856503333025134106410685563002291511559114443032237834232877410480226732707043611460045228553980096411801040627873295917173083074292203707790149863139922746888549892646062872627484699339822396749510289616579194322233690788106613837499883012589026368785322987303842022952757963603051042502874694826028144865239170793808966202297051262522179845723512307396518620081235700270921649674592647236490959170748810106625881596321859792166277595272396149541951499996785211156785660502821519746658980199521691231422889512865459115005718702632258032020904417720420385833786682770941538365581435126991614377854829255998647733050916048877808980878394784666494283439694186587641548635750672723765061450326463154555530453480108668039539171511541318776730018432050816073503700338747902609364535375720123646539688889540117283901898467943381642391180189850707761726871985023655627389575042457409910292172020730223878047791108514575892781892223360129789089134973318269941340036995724637818733450579859958561043113375252072574322253420670570043370196836506805659710382928179993405759636882571403746402550967958985489054177300870711761847837631894341072979449162430736488488236863044038746954153884505540150548537468532759477032947124838528762135769303382066869454413190869495215422670753405874879974945500800265910801347125296056698127962245095461080381326488652396327004044539151880820107357374238541118943157475410959255896183450964039586320726895768309849050747006934355288088104027229695043718495874780301092319295304160995827957513331766188876867978180217238369059937360591752818023637785911306258057336722046721107541194238140690404135758886985428237277591477459547589731194733857488510342737097939473753481127324395848903143930692784556637542753780940577005030231198850912546500125042298087902280435039696071285571674934196038226040598476286283949391459517965419745365127577536028616529226329083741940849171011958876944929086442555880205134816378740368045862371717616161348305479908130740507255768140844771071299364345903832216048620163335286481571744095959925993114210961259131558670849422869064333654868644205897185828283197915315941650884377371090568575546603035980705445986645907009485150154118814377480129031723031811360522740806640245969846381392199458622849089214328237570123526451259182174219680806685470504174489320349828929135719040389217000663922921737354352619637665486283401334686734261772196657213833365275143082960489674380788599753565833209281108778504406363284936435055048315883460159677730545829903494811265446411167217774810015787557005391684459508960979162841680788452412828485781193483251976390793203507746120559836490628993456650870193664213246654762571612951629460148456123533244781939072278866061413946705419657403199709085191279403515543876747300844655377042081586694558247863831306565034502439891080519064996215761549875927129272806694910737707940940416340001483055760996285647905150819424161469899291748524654039003871555708367668568309381087716412198930643663867187679824738283805257009894037069021769995334072917857819839061336705387747000077636405957457025060767345382431601018528249550002078181134224166458541552588411634219752007206970438966293228895634433122483931808562981999913044465164462366449368062757861569168273873718138767135797915327771401508688448331682306997686920372423292421939715556370385809015109100230630548779312573678154055724207368464922400757988751574465793488669949570544958342829558741114653006928454041641656914841749934296544726281683836729117290945723134039217729207555948723099780167996040586998246800606978941121314327638523596470728328336697069738449121438140582751308791258511290779775763675372296338717341310058488094591615952180826340066008554820266738453114126939216340898015285487248813699539383210217918162179621942899893750263585852219552994339228048974235366786333545871160451960222074455770404542214857485525566866717299139581374405949338490860868256648502263512441086545948403852873545063712345810673070786922209690015530757085724183615633935606103629260442506976629918414336160640684049445796446480259813821842256904434860387149523770205329394955504143239140305704796579834445314418836794199010152163936017847954062996226328644255489228900625443736622903084061160316286640060092676696330138225792759850968895536499728158712987214532193274991521444697632467243309003804501943367080644052722621754632245474183531162628634901304763170818779848943970224983521998480400388021237378896374720746471229150874811426432764058864396574418714158431058767823097458186070397914822722775733958069429500500272100367721220170969963619347874279362508755588018799667619007299976348844681140326340667966051887330545159785942344208259988555463689440482637138336814431394029587880997765875961275889788059798129136905258515213152460596484998029736630192617900226837614276375880477622900109883799121494676801467239679427016663358868223354611276018097703892499179706567254407782294466359550287597476102733778861311285627478707050311270589647478859943724709406115891021540700138421970723753228816718631534068991065666714649815574139114852091780310984393007160985820538520943113913340986958365487245497720705659088302248928198084675082939783983038089078716254260487070503537620454202912471412920367168087909442532468992608846645643114054199887386534432697098105748308573267117134849646899240808524273709954093569292102628244188309533786725451980960093022591494586863438271291103297513783454994978675063507015911110101623601111355485214330225504212938211240470405336895888609774354003866133592256596927552857625395099932783794450462047877231494575856610834568633128529595642318941979774834047328320748719446417186076198315742373935608948842915488767704434052398436397620760407634912102270316355849910954142381847969652883329615124736801226127069049722536288657464175553300215052680064759651800848850388442085497232869600104254354182700568668347501690458085692410656335231693283658917380546745455395102135119960462876220110030591126426490108749772306388638977396384293801308036717141585626918233608493674169717108819698833476535796853621203496159323045096476275726909235665152507571209349533674806325714189055669917247046791305089460485159427362130309238259842978950880074141983386569329438110215760374357259356355502852756914307249600798332887156347354317565667592779112164080778616246433069101063470534446044182325488506199157575916541079539809057830030528739311674556473791098305840891840783144875440420952397727110856563584998480931041914847994351225410491240590091108155657807082714404277348891987633417091634184549372287239981114947170558002047974815545304966162417817065342556450548234242411164731250689166873028683470822847729926620649398397534348549497921033751399559903056911045255838656823893539066585927567670178107604957450800579201960523562362411939175945356119756901028499599638627230927638516283547289578718819580031800935893198344169151672942144297279849426286313426790561512938116690707382867721542094701805679936419344388376963482140539112708337365383761434625198883208241558036405071183959195176469504992572633767713119410374676762232259845066350076189494486524133207145889238022545586745158629377208312544979495118150874154075563037487883011954909763457342714590968182241287124135676203686504239125999937721280186043820761608394272996169172643244903703638776024841458088180292606295497519388712520111368936227056752462525326618170584182710619221566608571345000872481019918599728192942065168544697669846160548696044636225351836653328155066233979459274079021349856752797704146648013513988952795857385807422760239627507390429200911196096762252982054790254707997083365728996010014550844576513154341924508913085577889024542626127692554904312264666533494380596169891827671675699928355388657908891092324716971130868006262460900636336634158423627826870788216994736476738372419634142619190775082998740343968578629953611289236368528007534046264618351635917781785613167787215982150422981167623283261654605834550675097611382560588672648430785541717269509681466924366362189162810414149102062738658690809435535755265358569320943612792115932788103031681341160241753805257094149390211216529343615599645186075466769709240216027045755353575442688054060257621944333858865910290940014651357481683546342748410029146187392549017527256258427130318807758035626559546695174386031065052755104942376570710731971459778719501751673164317113491941049884733009316739201404005859798812834731978690350861388391869753190790126805857881914435502893316384338489812155409606324298238580636306422737286542380356266752154650264228614308685518283713683360296313893620170149845843202999029058445458289629325964354196922235208618011800466814874779871491024254097495785523295482249758391304652487763866009576908430205452795713045803732049108045323951531651050613826316924918200661673211811315075100132333140306984969773107374417399704117825841478175789145455707476158153124364614012222926989047015862114594381355760320847374376114695400479916931086816622478861695886864829490495321871994447436497132276065290715398204881352930633533285332649618450356360741693751834741171289936841473191139507758509930930853321772796427618687880297679929433394542885542815488787758052560596173477454004571493008745133636983654972064122840468749866930741458603130405451193141681731412430931429362545395366757834751669931295760296866896964465807280575588713658616293121179058744495580628749346486836976659625707617293970840574243254061877304837585494019533663223833920604657373606340035587832360820305757186458540018149575797659300491297674143053671831407148937262577201996341075175903638579008493783915687949062178119300899339233322660774930317965228531111187420112636540285349170566286901112239588057405715188885964263418814226578332698623415144718223977885487600369890862266544468003992260523636124028544467899817319831366821515114937520090229527533421101733927729212238370989927019379039383956765460048047618623815467314267389005012011964540349985698836499943012920839340024445265348146908485769729333303579913882284862779881559954870956397005706009617862020041919514910381067787056822196105455321459040574674662687047567052672946200773591440854465360673752801445459178371029076226882163137698981092905211239260800597449223727007924523961982582960486777547947234891445351935568779664414439453356378277147699564913488242004036672430876562951609494952845719106907323935913040852750198131852438936803655707187225450613352598689343691717020650852011471718239203484996620199490480719356858321393307452097207305095686669971058385945699815622548335785640849295530509113341025848439582191520375810122487175986466195422287897418359735696115124604849905615770187176649933290764960171202100521399016597516208716511183494352685885000481518596282240752814180009610930854786323705358836357939748269632447344305023341593350565811824883129478551237351604486840168324339159641160054374847872269326825404918569143761365806453720670010894949042474502569884006063681200014772695747682750403628448848364370342227316535766111411272837050380896111721536969285552383975068190668967796767756093442850432186650308896184166774284716207934789024664410563421219177833962902936158208750252055902899151589919977437393020422619039435706734911834303659238638158449733666111510745406612884259877910250765395947776561544899182934521631995408599153105100970250877862583575597320402938479955473829588112611949303058971317942343021178752524950910205460928546113988788831767608941604554093075313623644601297138133096108873493992477490102747117322966749260374543985678288972843273500021721717653861513266641615476453438928444589884494639634089990463895995512028228615877072262138226736196948576885732138200670154077735382967754079544345388262044138427817250369651525197281715996369961494205136752823822566645678219457053371281281542538899171164732545124544588828443851380792100824345470889539561688882339472975809736342783126251158769551831629303621971267341715942640689706619395776367638043631097064758568454530729461588028745224346856346319589171420262388120865048301342524761382345819776032524360304677688651851027841277168315195016290774048470146130642144404883401287818936331780545657636075745869460287245846469924029442188592038315445425161957489696416438313081292261541954293442339735104573668033436310782849395424912910567314494211452663462713076229735265257123990624981578214425813561505325388445948145425776138017574816419971032640134044995600237023668711089992549721033091326929133207756659138978253393323862186679372711429167168798980940205738684400879072234707120349939974661471672504372430445508724932891699813923920383636257837003764207469350040437986543728987659744881233997317274154461826518908948972626006469237323460164641082770335951473888605803487683685103013711014981231643932829258604294332192651194155881153237010596175677241422193132591790363397345105039372211247267052225581042571399370092675482555793715608131216807906090372993119686831072243516367838440660994421289513912281146090746954360509993992684528538446666383241335674741119934067503062579116822832536719168333666373428027821795545868765737379418373090790233394496101308098110742345325327489039607281848675685387324451851114258152238601947572794710926265342771797751980812598453191077909625057171857592613316604426428254863599471236871554572828269111497671807569838262041905822775739589983273408552002872731609683586119497961921644221841596491558468775231778852617283652891419587366248411921685163560931471662709566665088824210395212010222145064137003227040954158921404459241867265479309704632588975887808671141547391580363846194516702997074476582844273168759116992149095604596608663318792506626447805415226105142857500739846925543581491671768259339170818717261441021811341283696860393228738804816877222985367605971940337842620965437273200379264067849330939752565644334200184040889617164299411143118576367417900534955086120394551057496639995120839423442409762068858919125001518221530558914314933716657766216137765935609768073484434811495001861049025255011238187412499735786352435676625935804319774498958448733496505544747589219167880622872750618429413061630924134605235499342330788845047963629735247628850600256689398202972286910614217967067494163260834137683843991793736942377542261167237541744337871993450749429975172806919902672486910977578475373141997540979593397762934704109167311764418121481206185881999269350165443611380734207141592023863075098504253972494674128132482989922901650767288460706201960399884901467138068834369999236202068439618137322164568989073341412920314845008649446683410029338435045617493251310303466135929053697934763039617226765273917721557950963494906234796379443713163554320524073719866187728960878410280012212657438641913741844352220814074533171928253519230790275567070414485343991818043614416379932337698785829114276030929567810690798329502162846912533577104130274615118717109623710866813985439232605787469474415007947498617071578369666892248203832836859144090333293635262192035801742394716340841951208182010098516247186923560253080822048137076277222414404701327484555586167774899226538434394304745357235975684369547135553546027878079468338132643236363680848231280821446365468204775937137324520232436150164560885758625772313411626118196592906853736822088393874214427564023376978839402454891288617335944266040792683285282225579005075177768639966563538187801860860953679331918550299058732958374180692379599251884192015125735235783067035069137330260493211813729563322196261229377452364678674649991439086587764062544451677843693539065624340316777404631306961204691879485249264441219616245694337988837654952697954364583068341552445769862586617343747385516365372184607040891065676705673520347634289312058786520221671422005822177398594609738828420577307399802341154391364934059867934757116558632710317385178394617328846453151681424715303943393927593124265752924826005196358790521248451930892056992800527337279512884072581083259223407968617517761441073022546492894829330002152543270137208599863906801040434935658619762898257034609855232756960099645095770025590129981532017066308516897455535049093460720119244943607686074611263386881330462551334008345338287093444465931957431573237547712485094744623685626000121740025085061054505541757214598347498097820627831965491037357551240607795054285217524496798239296709510967533596673013972804501295317370709428201629451893772040101936858058700764459450184720480727770068047387242997989274143983454618612707233910288540429029450034900106005113643760006318237776984840970260637509960576968630555678475383725871042046736770144213957372246222401229201491587370725479320998450752682165169634452778462856860440520696076056104066530162297607713959482904671470148721842727510268331592567022704197426770631712807315634900480497649805611642899262990157695753333233976098564353359991747550419373110516369489217780959611465612384604056054118516887986165394479300084812135766429726207966422907612675762482838921490203744953743078199695116450808835514691583109571451625051459296951276381905007137082957943499057006626435003607513939764998370063397476553531867369030431852244764153541131017897019025670769928218162194798920684237051868403382579099610885285571559535529414181947656559343738576028897300591075890321875471767089391840075598402720193075940480088883416811074579931234757280116423557995844411776059295663141421337774877734264496319527310662170890975050364907481711498415267300063267285790149924520847360675142909418696561018521155946019841173296833482664331686345062550431464599278396905729889094352381270202208054595150398099845761526079326505366779727402530015671548796900754568729979463387726380078038831122675244934675832177518241512033409975723126211311183448209633988677236362496423619812022298318270450378596053266842948420542422497130498448400752868472358186938559017580762315608004675243113788590817878659453906169783834314228205898969159087924775081630656481509013288876858046906669371610837768139863793977125547667486759565788028245425894920310577958955321541240958303558051730539809291081599342378352941512626262713718894795664145941789696036620941977339829224650473191064614709300132876217678580253336945227676596077440048411720266206916166776844913453549854605187241739294607856642235268239390407188437211049260346324461943071518484178502305201429406669861077809951307272716188767588230772885418438068942595569396989896998694257229276977751340934687395577357749562348097209320345953368174896380256021270227218502125343706757735939583946577675987461490250517493538574789086156442918199180884286701241219896017194686420369087646562700103221956546280347591800387235272399358229248724142474518814367862771889005887788274290132961092696463653655564441851221578535603372704581349692498437554139796685219254306916009430349128167441066833344130819234761735080667470091606270468192267949520400231860882400557686782066546227867438565596080296483794329288744159941396163051268809088124746865254274203281306372039906765625126124875422790259721627092389889396953401941999365045578285512602298620106864891935925508657511327838011719996212477493046129479357565880877190713171090160659387902715005035235419146402763763370405753964357149921409370341890376222849760971324676085595667673003596289911510646216482978080125907681117949766843203160960566313991065078685018109948444464722486551035371600151150504084354815229816353677907290702584868400020681783595826024314050831436434220967506893475543519384380840050573134103130047093081820208981689864120058230831204286115645943763412520189669464029660592476025977968344489870238301830824494226697184409603428148902032606841567743478651523451792727418696730806981946129136811937629687906053305684585694862483242851314209679694856239731669264962462164913539335855189288048497017016159144430568343060435503133341188561229163958283044664350346200548074424911054021557612940613264179895783984795211384069423984852621185563176045865333921413702077137330028099208688515031645810374429891122336820455380112235467093711525288248598168307156604050359128273599469513863227506475788360749113300422428676923547604417798475525584551305949917647576989870925223012141963887870107214734043507377555144862778700041635788801589772932288294559705041454324327910096455084100246642522949845919186269063628279944420284358964822010417551749945687041116912901324186861111737290086669546207010914239572504242830394976551988229228339831288778505700743613089454132549411035062601421002099988952785541798846865177684889918541072986182326650277206593145565690087469495269191129101767871745095884299919022586429517222455387220834595134212357639156826642704620789234034628868764587388222635300995291820535118601666708538220539828607042894730961561246634247078492610957721326586161491548264533416363130279258263655248008219891737189871848320796789698582253953236768181978281238990045521256109426407133144202524159576499758253987141976835468065797399359290391797664441652015751670727501756497018861816614414872675875059369818150917801237932837229761477289398491569190862025639465183339536273533009129660733755797269268317799391346639007537136944969323860489378278275569593191896772756875609575877193924653967882143251697547555337731583803148710381959807689290339783468095117211575143397512718337778473821295236242905067058679789431377113037313719348273058790361020327513347283149200877734685008959281253256260816565723378620838000224320513078854940771684838918179754699584769531928038091079587633672214821976175756258391778007804473343167466321949750458217170124516960359803420866416059720241683175586793598299554899052834714222902574442461985381315368149071342115909958902274467719232739077896241356654322927345643431966997816822135645650149460984907658110825547994271982002166368923632103713929257432142163543539805335637387908914318547325398689293266072037137481173284080416280892506498819697451735294543705578100308218091597287457754670351806179364166492794039868809214206916793506894886698232725873059536195233827964259158909983342253841537724610824405469232140673182493140191551284835409884230135607296583511187094992513472907888465331260707406892725616666473993961298586882823743542252331816320831527988109990854997641852677560549590141075381067118334340046844163155580991544662612242323376153762950198186877846650062343794580621531401780498104194781742012267036000576009066816426556977156941064062348045994688592291435605789800362582181965594872209295316851801872234283592068979051299636644555174003970947831798160140818044356255386633515062398157221038542078057986334307197311667462845931934742399322827790141144226851190164471996396093971313495153771882673303947844341101576108976531391202350078774841731892611417957479973350746702940068260585996558128843491513846158174552789430818711339312369671801497444158709792840198535690043649318848905554847046895821378438349646001680317185480001094184276021331690249198953888237372988282965309960623467729012990177382765321707088186074142196993480832449751876003385685839740168385690245432787965629442921999929169914700907704320897987651054261705147312128165514743416898131738028610693930155214947080703080005531229933392301066220279993512150348549470105423974386485222402617509237916188342530675841356906866605987151578605561807755748342798829830776843979174112880034256806276546594842290839877677778368085274780856423278200618990369358099719811355080887287190855676827018135651643521037638069971203867692506685355258892709125418376087434389161601020033982551754959450904572167167677109493184378838038856240687603092333335745786487666606171123012785725915002340571445511156832930471420690681989566328652815635193948333118792974660637216090964666966207370695930154568715602806725720248401123138528562007709343029309562382197055577929714133077432904590683636133654593668868487885948058780132638185461843959504134085134121682510748886808890827555538339086454968916539741575065191605055741000380142139552829888405275182711988148476532898860602429460460106220737198867527593558617534433947083100110303492627698711127261568694066682367047064919729151877754979645752549494526983340202070442824089293653224659809532254276906535913737069574408835365050105116405448613331045764479704725160335034046429608005312056974664869010231532660784407258939871706934898597826211050992152369489917801710651055747631148192716001613694384424411915457019682259347743138201058317008689725287137390228453011907787369562871886101125637154006063636971631398815820300841820330338716770293287359035315580705857658132318056010670543425068579225944849057268092129472463212942582224131889831038217540644132496372545282263718676884424643310764785980513573496040840228275090968177643051411522204013300728941409242389406773803706542552505467846804394883598029942541586627032563211512906880070953790101257671832122927051736607547596532793832337310992595779947907179842937071317774672581413898543906064412426540947009305007060540298799801324807753203351774852731520580918059833386000932603620120216384575427181744931425584931173092429579438562912041479752216964555728523386806646148901846532717516664954735893522059453514841618043944268257787247971390747199981217698452064126896270443535036449956423783680608637477537290504511423553143745032740062823518595856823903118577945373673132341753425412849274807708276195961281068207704942901027867533939610287042599524318711152110319651013711053994333315100217374296018647651103685130195836759653476186623071274205553552711239035065341016943502420948316957619761698289550692061470460041722509240027674667957976210379781689147225439766201382190998971186329952133904885607742133480956228683212732789692845272725862263431319397875412442912345210069756640870187408201483944811341666120521237959937674599920083949222707124033600049553009120800658502235281265802497995244544899475862462474174719818167479787228336452909202152014429747729388418264533557389396424525153932380660966040960007921990670822770114374989424649435776427409447835980394744698406917106536821376668576471589329293839100602632581142612684399695928075455347078608777406339062330867079353052358713076803117409846087291272768321149066720316722688338479050993891115541748310865006277523285815446542983403988916819288885102804202417315288832367289592877927201312090215275174141982367501071070818024269544105287524240384687017693842408951318812723406117532484979531548335692054273674133138143668620337688179779340921971695186244622916802020093748504964501999803295981831165988230256376615626791394728781647727925934116474948469977052126065535107533011092626671754427606719502977882757204411769716000002687463123978756943692976046812481794543141908037899992570898145890512217353017608066823352419200088699051165087270932114952991163750208680553115462422625316246018060072455589147678106361943559786911941376736515972311759493823166817756619957575933838571850601506804708524519289562192802814628173626122189714308072500142453700894240853485413888314386214450516653943317161363318290695091668037068182590398545475558093138836606929621637869034283014898089035679717289984820027385088058527599760172790904524679635965150685168377987495684273057765014340800006023895220247886062960320648089756996160815383136176239423760496039523654918560988144355497730030339166721365300926743820913259792498409173076114966449576670592443407069203284432879927586258395030048656793079830900248618314805639288849851242768760715139643382963616275660031825683187828360868622982840007512517229564364999276843154381123197898541895985920044849309361991638757529832494356229634187234087336307515886895820752966203560776019906052147897135932154857965877452942017236208382627969178408422210571248977865022120803017115745563024533290448601940656707148013388148640617972071218835447576071073047872641025110524919444696444681683415314230332908612405267756470676273370107431910491612737992636846835472797897159429985203295407207960220438895574868447751967927713808113762426755586136224138147919975922881234107103468106951805766043665530777385815427960082298663877297265313972738916673447478505598785183058836518494834131119650374003020605588646663727875968355001056578736043253477168039052039177604165048191434928171193032316321922352832801711179305071977691249977395539478168494516706408688459062089160536158544389724288204854587858811215256881548820771037647201595722467027407727837149450683041383330820882302706488785782225115200461246083063316399090061768575174180771466300546463678037221418596807195898570504189089888467940232436812949506756820545161797698871374297249873776303207456555288104143875759976119669196381147660234703564739722188619520613821063355848924035584348357764687836335515083329874546795687895081694544556039961077450857839208769069959642215562671049119913304120015443805800906491676531788072833499077766626337195573048738441660196155882286867429664540871645101967757612470543442589281706714283003638453034747846598665281338949579588883507331790563583023896380119498172588134238565640234039911795974546944989982112117402047016350825086517125935205138138209559522494011022469526282618734126451354979667870031987343402163166597691492206438203325392652196427112121567521450685525175703421897562519425754194515157050394090316480691938482304075887035716809769848670424949813613980195879335566751076633262161032496667309238357586671449178898919043143607483789975945528204242992509665355980617978864305736884024825047375834717270160329548541733154382054714670261364855282663013296545918383924937581145081170950644587791396074649949327556050337334911860385251784098498161028478648638030168011917508338707056299801476756128464024187632836484348510186463698029539052542995944533981524355692642553834020604521665669930531778862276985366042785364805873579016295137118568752152678387373172742343435869607595844997023333705778803033314188092677642189621608386307869435394464379636849866873531194195537893512396548037072036504314389678734741145145083992336676367377399882376831432193478514358675482922695324343852075763150662846629637581581004863401772542770901954703927324148914742592058819739047774999646625141315232454555540114211067053111129417611988914063482203616688496439769012870744699362321123869993224861154693894949967444597594379342311398939970423016657443177855788965280463640963670958115805668904637470736856488552485987036400430089206916434507602104596661688917485075147986992380395627800857211494931476056072674055596004621039930542884138897488196417930280384289944052021175212887604516606511412900274050354404893279055042272240154652179195250511695738139867468674609599724940788986550134987941906736709422652701994534648735146395219754456879765156964941634761599872415783721279612337989233714885420793058477976814189541963208781684387590771695824033722987398151734405379914735978987122864603996260361117153872275564822830122638547660533706498868682443663876597885743672389198181413351802917357877009014031456024280404690053736322073012783584023131550590867121818365447741845247258182470147488205399569110884236862016812853067029389110483774425609031872203739409781851172470330890904434609283658801401750142340192770847785980763364086325191266033561515494788903724187948856380271640590710520865641965447747606379871495424064665624445350372845938590250791277880038674605927570511716856300325644383544312397527987317364763728870918863197264382139569644762580160509231620113885858853326737107740839201117114736072907542116409864243512104418646154820025152991195912662115356812641210829740473629848833261846640950211731708689934785918750725516218788336959957815933320536840840020303164588671108235214717833952996866572928037089091259576922132771812886599572257476664681055415312570089921579824924665737130205687562306334837431871704492965718759935180240054161216991709090889314555308615391964691684709836238769063706569462789479898145801067239360774971906319492735970888495904350767912649831237634976020082809942854352858726613639152936745041014961703347646970491066991931441305404787851069535257399487347573466298520877939699632698295931593609312803985180944761281075770039235585064514324520993310742743674732878654722027637278820247337441084431659078325482341004951324464462891095016395845175249073885135586413532498270400577052160166675313395585016833049802529412574890107600687711192609375699902297513374497069292213983645728918038227410233145638615087951665411595107180187968092060582987782101233758958448366919153709378303733074170899995863139552901910502824415040200069056630262792738731714065594947825646717845658933522283783611075998408726742540528305350520808351436350390694813453605384771008942171931121766071681237535095529341077091687459418630939661292743386080171796558624818471376390777653308644344617270131535440220926805429089125995741467267483017701458214728909609471871525501058505923631993256005839788497525606020086105440370671613675587849681710614919867823422747467120769949556374564162631183689554688625750038892834116153266759811259857716693003871720161400463765381812410769665513963705682965069831237206303796854434098700044338130511892394856399725424834909673558169246103936514684657154895674529794688747680971464823475288962143958015222744164947974371831137295648805326589546146401017314641291707557037744367039178614979362362321235829397934888734835686328183155411012464276507558332347923060106600633520720808869939587665585738670024871124062555749512618731708414618548624039175295575766645239416891640135759648264014487626221292796991910515103810529105687986152605202926948843107141652071571899277381411291927519907512362098633157897426087127676050074957550344777104334995503801735797311058689133328502914130546895226596794330145272978241293676505344872783150416449875644475804161431094384314226251025994242798432534019891845431790537567204275894081092412539480689969651651606707715838033340707127342241139099850786998089164828574833132899384004086543875868233244065673537215360453449370660478778055438658184343977622863087816700187507016243145647294148866181761980971540261198409001273150461908877801272363752714228477263826128844886091202554189874184990306033839684924917283482750312258352297742997566733638584209986583555179552075235531026273456068623906826468226745338385630974712796791589769367744150748645787273432220762145880641838717598885908277437082519146778247353595053796458542901598421292508520445723851582913623430401137603720129653040944734645517803852792349674050292852966261423072156122330420092314262204130888075578437469575082841561623954231506058218018038863237327109982436086649929576777602338189507449282972176736452913023132800937893944296364640331048921125232429719979470796848839688096808062369943161796748648669224480024462749476136694812845943866334627235085728377199285465981901810235270882299110435364869607334892492760831759294499816709070461719674581078438943753506845740077389313761363109075909955319268397527404588590286060906044653391412372657315174657548199269137241364601381458527348304018593793703469177183887861059599145143941540851441546326611956672995256341997250617691806409536599670924789200656129252101544844486572772962389976184340646665684190297244214281221708407336568844214114557332274903278131582699003248122143906517547087883527040635725427837099088372649340348701252568672795831894850910363930834074016443048377373882863436350801648834332959745384464793852463046681947235367225499592768427346451136211946382671980087239098573376774010208869112032235184447594770879346999067803740971105615894728392130924866741245050747639981813347754900596224859200737304586495420124877938207021999206069383951500189067835065974928220643216244713853906510667453937974078031967174595508935671590223714512010145461985323224726382261517581671083228672765209785276868630472953837897842926441583787889006515075015847935130259252451291994994127361488328948586510344483977339179433015299162695093689441320665388197678145538377632780843638723497500866441685321444468655283834794890159949128153876510590445915827104080262698267120074063196200868970875594340974634133392610867528073607316763235981609122058166279953496110782737713468858702956087273183019391683630522895530343060519341446122186317576425667886723477745840805400520253910595158056735088028228113538804446214250890502237518776525019988758927469906750923426554392610444702455702376593647037371973936543060322127715262772427436674294440057278360455506954193679204548904247843481174325504105840702262374809877029139453672484666496724954807895750412579155359653044101891013413422362580137815112166187355716343669934169341573960176009252586554143243462907838916710359736136424710405714863733905320467746669620289755221136595971055099089483304644790216028871446431002845821772474945805807747175123818747760512066390662344604075436483860614430722929785436400446299829071450261131813399447218013544438354125089010421606656482742191283737441025874087373601973200258632363513316179491740023077803153528602619160776492685795510015127359644890916494864443308385395084536090244508882880021377067570581969372612883101944009115139817505032245343631799004010998884136276352380993640009119436815677104190176788769848538091023830781541769010949483079351265937753826244132614064988237051103594605370100468342166312178258548139656264662769089125480112665152902813100450075155642067695639570229445853597199745415667585078913635922154019386451442136184058394929135966146435057203923753701363307623509982015933112869192643739227112343555604877735903442865511710806134801552450845832487809249013110839408642401072683941176907057310969294376113668419629793325186420564640488889051925134814503940334063769774655270414595275242753401802289786470339230787977749211845294053735816227073388129051968007239715114605892202500244068359652169912423514709643467575864881025288773855346447218507912871593372831136768823846395202533657074089773856645729732640632097005747853081351719981678528061005834769191608379376996149208348028607378290207821326203714722091369897386273020816771450341638472359597335573716427590466802891715481530247794054218412253162813125046264092865118059158496167438351058319264227971181851383010376138713563475183900739585765274254332848811006987106598561857611391619907821873263090722028558113843062541922527444197375907945414487636572504133189352498492492420579285104773962926424816471771695840745331128287863004308235755541109550975332013162664474967170487071623890623323677790504597409914521700507401344102130507853943292516160979483422388334562949750137619048207629293039037027530360859134415390505458211429015952958638408980723951029390332763315631076764116660973310840327643665355352247652171201844072509471580852714283971294306529013265462728329439521957715184648195365091240478883459623876368089463309473304428234522078940750915796369122835503853524033875387380155422296215356172759905934799071301541104064374066170268469133077287951927114010004173636844273010049850094660361526009497561871277185965694721958392636832678132848547457894760285240587584072656635734488307033568344510445455192777316362099171183371833979524911598351831225443568353806831477737131388733371107195356941530308928677214434105175764744688003406027792761532281362481510396632067177364295718669927700232374098844208502504139443146939618917950589465798787594184343020472380917406739121325056490546944927024334883219004620651376926673115159516700993471607021407546389068438590354205543489527897134065691494746244163320592117996056210653877275564786842259382462404330088809341258548515221014403919933556728601445169002930615869306355595674704775457567349758982557945807489539526354438145666509929251464932102591527122218554710281501066450764629601741503112207617208716159041887525543215141652600179633944203795319160201172443603175165270676741511413927974891463436200423260650701753072079742114710156009933740962671861776054800297319951008655642393039835568445476773922687925863054154652546641631493427472385338523083263316317775266950171187081556923179708346064881056524413212043816391556667118904036742315727635763561518183507651664365269476787727323930433069169663026818858106586923067009712318224631569179853063244141506044488928661808511695407948246852429903031591078763680969491794442158799417910786808323909147899193775449989595394328296100143832087748940790945834000892391389113246329085071386684828977189507237496941785314575229758764006050463888212334738231109202874823172757019304784770469090449049183293977835776808951894921835649653949185060292774003585407545065765618276448956107759942456121502606240564010271317729678389403078403905989644635353746564140779214403584625711935208063501971333393236517233310038870829296870880357385179011069967712294787455190251304718850793122346026553600310948990158792141533292564961178229375918233787393980060464319293510149350909975528986568672212046844532097727957233880878670265235074120531768992683891917758521165853717404318154071171369273194289259483230778652552703158856896210405900380240072405931198716092568360556016498684418261539050277387285344774973529719292338719781355038904430346885805219982074820267714313028377707852523496537853642227816923388536589546213085254547679392575266989202734244640359044834797010038611281736270510241081617631333384369516027566147084324935303296087310965697656508109277956831964198684451720089996599953640774957459542080972569294079754557118597514006432520687765058403768988712662985382837272519148541523732734261412847897983522139738396208793289366503526049691483370300726013246859860818810551421213840521938165738360512752476931337638841317518490799291314923659890134462559316074701381356784553470167063929564811332316550325681254053432975955573909053007086593668062075933366727565449894026248708241215236422947517198934324244946475148004628297294085518310936219279323292210145875848109822915077266651985971151435149271217183358686254199901287755608469916479109385155444856399137838468086350677542962069558095813981298130234013558509301868176012908513914208951671469926288035649568016091120923312189516098929244318072440388958646500965577880494644237910678767388059947394599203488679381845880548014564649727556015946781113903365376190667690471988810033889898335559439434778466577338760678131553531639026526585042990575120793003200176723111086361520886952953734697095840215122521120606579674522898143116920910512541041603813099169888732314306152655089452973579537287589883667958993175792094818446032176286007542752667390572881423217115403145751103862757053689217134439002549633539221731431593744971153784422609510198983449049849849538023049811772185272738781190128339301532734866151476313607647362435371500378000243767897184932176952479945869908195400663561230177165263157583227710914138817116025474114894062901648092543030012412670700979344453572119526316053958362879771115938127185827277028082934182840059133848783173737723290538416510824839935693588586193100514842846022729652217384963954738369976322850218694485852718460180964301142896251997066903247999839027911520870331803832728592327415398880103057597622399559791300000393489506179145249442482669611212772718971853307134331087211990631475693743312945622104975009689786968889415413470236744879056047137889772136773270438140479493438592144723355859398549662014516374024019761830583067327424660843273929531292406796844997074397069947245306143017986856519548947642858514645534035204782938858147070899440258947038437510648714486559274417533271044454930728290679178605625130660633218039093603505358151006391039888116909496259921608273071703285299500266257960773121560585740762989388581773688785309590531195692710405374313364533576267519565974104288854548893767301267698824241760241768744026431245476829445431852043159138299775982384686800195586565475203418870827075278715786249775774460791492985665695007895561852987666982565030391955750764161767459100712499260549151961371203154438814048149367303558881453637529103849538870346715442155845450022796134085630361586445432579047361192368845890347960509862247181810391474838703532568464185556407609448341303586555993301331735260140166333989907874922002559979489856081409398022605543819243633364167764687269022067368219651631211080670461720810742472195808749923797796564153122927943561772309823491633218533642054462248934996952221255469285679159795189525509579012587349248563146715188332027325583915609770404660508131159857387228021795157154714433284461149268895389480469181834189852264800791130050237305585440979874932784399300016084054168487894520637682378568487836338505793137952807142992633761060974631514117326402515033919440461472550109775107867176928245526476616263191254998688526534993631342237040480797950014564375581450303145262258318410440705860997534014812529318264835682105961441244469900341905039439387610034764590663262938610899182500491798502224356503846843450040476627940738056215253925706728830200947312911622136289962618294726688589972043644438770543937743112798753981951545283105303123456064451224962441547910730558776256987392574837493093123442372290922488451734276210268865873410980910357352716843505213611138767706079864347148984261179298499188833943023247659289684066962606641648886659357044146633827055170398962186728537669972108768697660783551311735295195799138243966085451246592671023968276486080896987946191816399931659231864462564877929137918119529481008146279540324689472142524407142896620503379299419174777489994256690764000011998821263731568099384947967807418644599988486179544622008807962111928552641926421634778184959904723939542715873378550368395407512255580721173415879518546924912179398819993995834411217758705051512998920197550509351055969419000335786702424803129453583390801901920482267926807724255388607911206705086763199550960517176923841315152679996579920447269215956648788939938809978845909481363176324318538636442987507658129422857570321909276039953442958948708073174808163297073164008750960248783858224351860936876993406400212115740941702385786235754496986015467618272453785698428333270417870890886436041889837113695428527503960378161012131779211452128168522615709358467076732462540901021710656166560340030745937026809207394671233360788464094413884845410487374761357391498108040010883875723275404802153059289850516906991417901296119030700580840333995425290986472116131031354163573824218572081933513525105163821917792649964111891743061546576986270403369770260575608060176884358251265514380071939280424084348279826466034590177010353957341817067586956990161196926149889637197904252014903640660591189974691252961043523006657911401084085860286133650314326472332009715666329085737106140566885270296196277689107061457650078876180687902023798589274268656974976922689035471334203861536596904588638099704072082950513029691423284165797843537422667835550869358617253245378008134665783498526102224706810530921304259173090672495628114791535030183148441828007557071637232654737886022449456060516115384106760727725561081538344428551271535977042595571852541899725003036292892395606187833201245739421175317881274382891795960309639971073977424576643577450512241885107190791196697455070751685954264853631549473441070478999382732512472383079145193572314380897206830652992188508861307077758750409433269061949981493419099390568886078567261858384004732037155481148318784769612685587323388388466094147445026561788976798791127441764541579500230602295922324365941594586608757886168860887254502195936530974525911013975952567870795750322282895237432956278154754030665963106116765509380225270093765422714191230022983549020361766652059553049154929620550668706167014741106288228984996533439307877160816466919705437281403236288096814195897534809243588876626676754534867487744976000934734314343898359740130743210200620771322654037707692581231040825925766121623416024521689618645028196675556118904802591731137532543435021908242161106470525062238829994296081007878083193676720951601653701457089754389807111910557487634753469841558923812498638905013860579227811055204572051342089696180247350774525926110081548170257798930217783731498989419871838010635455606816370584244741637245829271143914691302966996671208467982832784790727677765488834938452946890662738582549226783002921053081974160499138778092157469166514570422595909844768518766990292769383477691911432458737775114555741197408005208759798087699318468252365947485093521808091488493965852508889687694544054003339995773298603536591224692879195087628093130097373168040740081802936585572202433178241417616676592510791040942787375116127226395607565664047349202108773312405530100550244286326769827068449804501291015189469274156025594056050592432223286542869508576562871775900361990930713785378484067800577930762003612256362707375175023267719160411164554419792880758718316000881031232158040239364151204562758480587827133527117477100354738210434332067426417848989582104319198966502840374966360194411752765008394073503612958249446887069359754882655416360403661958788197201220570546650271037394726621751908476693542402542964352906853500793377163621101703732250835507659467431022701137807008945191012574091014714881680190221421429953588252011934295352869223113855174759550973308478839440434247102945231206828707618161664423892703574206558591233409527586103308447756899695953148350539844090980518818113812272344398026948538378143647553233946349727606458001708676903911532961769681684988187015175656954124473244473453825119281415612994208752287330261541325131095974526287457821278344068249893299159098808833392746448048550903795278815379428581874625856158647109872107094430574879642536793890491297886066495720497367312953423190007787582628363115235864234453562387273218675130464382194295058161406412389353931434569886422168374961763590483741340341438966046198159078036622075398092612387094793793402277383413255978535549396661219483094346070619480736669136849313585224571693708152674459746520527479565036563584122697250671916108185810620270041279661542010805116756047948049512381439821306929456328926296109111237681064346813163722652430215985049108520497811659457823504359796091447593207538321305622914859568165683577884821905761783622406908584625500252580577094523095398643220407023852704253248238536939760064227315414964258011925611477968406259507791088424588910177571104372671426746570559112399957682379274347244793365387967880980309746285063810124356909862792955647387814633695439994046904661028223426976551294254408284850518319006825727295858416807154765550693989682461788078198432432170381138212941227941436044431096083278756583346680394435044191812540040429996073696407496109030407952649642132501889498790958845128954147733527350169092775202657523121560488141314346434493817234133400195809828781063337309595746834480864071405532905116946471952370299196990866373086199398127739141445495177650196802979297289265083234364908095704540146215467161627281212750718210335361080810777590117822066806505269324797955748971428003064047781824812828142692473534199383181773739033320668005529872318494934888809392328145186515501173599865631322122557267384028335513067595299157700927998691347896998643093027044729252124055847129398306258018257171768366404259252011860084968311388468054542506475509825555595952027353905535807891052089127932422364084984111147485104293903944467343577301461782879578322965699639383202331265062034090304976252180385461754649164944242472648669558623902445228875171587391863310182514063903491773416571179144778980078033734988943791023834005059697274785727943649492146045982481319574576114598133215490817584540677469941292794846675515656917921480793363061491269360704976572163784822375767305103880847137903716934568410723018058766282939740389371412478179995528586027706890615749804922213964022662436100905540747445892742704905616180939102860692266165768708274845492456985194093129839811858250728299389995925269976941397363297325565727975072034586160267742293805466356232110766749823945883725758559220976017342056554416504133063449730855470417000443059217499546160429692041393803951867613067706047794754027320874078698752711364900575968796716984025389403145906868937120555174827010705519907608100143065555256377688072594701339684618023931016457350220767970511902920513603248663745906613902027269014310115254967845056204281858314110257806087776455516729918268314589769676399343742512140303125104321264955554982670848165217816821227151397429577328771438639562025452604148535530588379013304740996832948855757499773046807644975327356707084021017499357934849286488435105496800708405881950835810693170188368739393279497078951538808321717359364616180039770260034982949691448241046959413279768435476915469195513184022841423731737941967490495657040287794375051142762797852598853060256668465983469996104488946087312325850111595842614241174360005230050521046785752455904841015267293141617476319717733716522097133616986846660959098628782049741860015767323932077031299772367480507627663508259476746382772274501768140352056648260166975225947583884129707795617075277336734879772425616247707086659754152285124172427626790821251275194686363040668829706622908465439641425484755797284251230588008179008739350983907928342003183353312435022646940882442819692492413982365616916745276704578853163707283133450354446847229570164908575296555439757341449913990345357988091735852723605506476135854004342730326165909506222961708437272564722852478888606082978663014393136364768379382766303811375263212908053647038861839162090531751709528290745251777540481631233114858763426148218118026183271547177619606861793339160692394700004006695364533475130437017329166724826285900838984973117948844695488573355780251404184424687728228681776796925074628941829018209002927942879303014235623405479265393958134337777565840528089363539288106556536524089399321038158478806166728582127371783269529469331667195537444912794582097623229661303600953789758589956932120880476374543240251842645557262519609636435731556230383324679984349746562161799829965513206661891440449006905923315424995517213857567458924774196825262210167749517592620062260609752304394100891842496283618978700931793896526239301053969870674549622521275726654517963040812178067905015210034912959085938706257768238472489747750040814816314056477109337761567922650415783482444433328108179846757306901757921530451313753286214537116591632029863245192128690965937571660552445780379806051282473139653826608331175911114182137118777292037264781491934278122897629268320999888412818754020127332209486763666134586047011114781991712810417086683938550060046799423238609326786382016005965914514906004730096238456465202358101953287836909600673939348957161853635239522118152183658955466449819497104732917113602018399117660427009927277577692540416303119352555444186868110936785628102438965505407102586776369491648854838328590823891003839845990698177088851840083182814663105191470438502991523646920167382764709026535561087770861048790292514301824698801383975726800555471155067489558079240697852844123106685381043897897607312408147657025411647726114572505316924331336959689144732019379303801673363563317589888588661917864657344343292936773556988250615646519555808423260371655199590201122476133684752280843477661107774918923551865760413369345387659832308731720849207391698648266906139764785133012737989891328497756878186581641228183286637824118106148099330605138142095431759764523691539924069932750046061548115800068916084588376489121237004289812000862627584263840170071213538136204707189277287581766430193486022391724097350159917384206682854900071646765869904682896601272398356740190356406891596625695265111223056245822275617333161547804193889924977166743878567146090087176355558512598635654442475424095336077575220438064262659810168516123308584118575710436219100400573576762126692370436322127961341993223958090730184086003435796125969115025812761250589182535753423888145555440058616691481925166807908483542778752064034094463824059309335334758353816421721689598608034927399607811514418632585650992528251500332229118788447742688272036119769587065115838914442748558588319357523859254200334688979303859966999719773331412405696495525782508644145084454643673107053874468049741264116752495302383098828837497779942939083445973052829448221201583664429148233793934809149827261349638830459634713915774300962070177174963240704597206272907565734864055208585330650968327163715721651357490989378804025954909162201046194114138216785224977404604679052818496949110963404723626913736132470154805070858873425631458770916567965983387716939605707254721540531288974528396180038766769680085535318310638298497888385658582084650527080560359004041267130314717389202905329229771083772270587550254325633498668006279272384932551253733707699504012090554667272934721844337148452426409248630217733745129117052489328721067004974503915529811826364628304738036185063869703432591131861576097798182583986695230078806943577317778668571786783797922254756844424020527121298424493909305941157258266917235717779838581642925234909507460394734543483869426183756321000496682227847204317120718529819441047900612235600357910495631809954009466018020334886102480152108543067724013501587768741239335801626023715717524384672806151105199232717521033463013410578290262153992757174341040449251763610677811401255287776249623748216178652361533281962417403652886323015843769630140941092313218299013964400577825518097031911297941676248446410640602644284530343181498765562814009741991798978478417743585040567041934662509398004040501819288092509490834534076269137645561663400664798774969433126836219113797668224916018149395888977356335689658260456892636678651510450354736022986016388389772604805395974897219679672394013720613201698527086684631812709917436765312640493512270105051625891532343701045125380832379484626521651927921076822921673084722777169288685875646062904510060355422169250528960061589342701070594750465409265422916855217664477456489474499956166302034924823735713812993257793352728679541976134949362738285144380331960431320758363932628620563027453569670684854215014655770198966779707596536000417079015583134433965523737454335376592939072266416255840584882312144126461116552459430200574215770066939444576447936069843070918393494093706293958067282163324836785329619160829296991670464588541092184172148312168506966996700497317153453398892452260207314199230471064778880691435506073821499811560582298209194561549004436658310462531764486509065163089402062333676970338789383408589540949446849177465443639297582831395340187393235711000644903609836186782253575371586898066525061471365610145465336333115267681164734878500994427606504979539872480179160659937136012087575315317058149856112014813733069099343495954944050418341365609909347177812259542239844636266277864874310105762561763924569675182727019427368929059813988677807433725525448320451912994463716490389382471465929830731932578272820869545167059889075034670654745557885776845403542385286432232597707979067230452074208931982863072974075545629590579712562048803287942391088264046867067678914773687405859994384351754132358646394033147977175645112105396634278968557814726852921208133452597605138862637776104760624815962755218331150502613629014438889513156865745514516332991637113253811243091991272196085096786124906259311355880202684806057682375100906607345945834948703399069473239012181499375511377389516676642125606018180729724466571361403072528969472183404611691048853626012600264724283843011598888794951683042867714412015489357652214135084298808132468295042658300398974967679424619931919395823182103009865390255809021603987726280616790424190775324874156105318671952091077314702853166641920379546624506021314189313243530419115376314519247175046502501855331759229633410903955399944807093660521316266766332057597107409961408396685435915013444540925060216201502231025780657059472748392099574294459725199826378983495337292149687649410782960872059748440754546522574792960959485570056816215104032749343884003920343357420504481162313943490400926383487074891332736520103278949403774686689967720427230938958264617558554361325036714483448101899717068041596663415144587805716780731026956506542534292082405330128162963023530259023504042802082722884330574541376034867541802474165108121870916789905369321769730815878152989555849466445077626556004995402241714213773986388025390774124484271910172521620485604481235018723978860188373970900302659644907510264936986664555686526641293548276796971889536719244264151971262911328925337551864374988176724416765459123628508507874640490957502956743506221066422466830872128326520003290662253324394765119949180048175518560551832299823171690361865457484282897502327106875713945191088354854045714252075806720526110220666348759583412089349631316324904174020435788915580572428384456034224345732998947118710487809930327727225966139580759525666125647299669833448964756071805502710230221809314761664976254768297984420200498090356881435471413230188619857507359930360864199833225596696192926338238185278842399764308275799129824997029912770575617722695316165205652333391637206128340400578462406993640186420651026922477527482648651171406340799670230811574518891148144965928044123093600410280506545171411308363733622902032703444897748082346561195882679160778394452287437245161241187606458826271212439799859870949561581535634243920924495433046965501027014496470006106654164835225628015521022014483132120004215256062771000115156817366326391379051339953122153128046702358667497139355975293783949071368923298199232019014930703810344765566574805550233656362687034675867351918481080012834824777859271504909253473754205720313908375367076709314904598519397891377526069540138584143231618298756309102483937295528296826890557915822157414412907862805880111602935631120964660831898336193986131063051356488641905062999714251204703568239547687225216700586747552242555139693374108194233678740904548253973733960363836490471409114524582489242099115268201758650612118897370270081150403725392892605390511282150744655589200711039053598802124977614657756255953732038672185669509051590456524094577042199715363223667733645539261593996217390834777372659184540783605035205200806601678365971215776011398245317653362514062138258824078370226746225624267525398080154741478515404308196042553224297786609086852665548120097656279160207017624508593783121962227295554142785365697641044548736285361909729763241417357661113910865585031218647731495971642686456732354647820925813708032861854364886211051765101669659746065533276468278224543790321994861072162961088762086317631379546580179049178920784179907035484340670128318233162794373682568305663216361496225490430797099318844206547059537625798136197484217965301336139588820500539122484694786019570817912542292516855998555427485923839673048773684592108492723395647421126624171518270881307967461640278150435354638759792261886890828369761476493736687049740764901590184599565346306283462685079048622625720189177265921180164682172243913443422535305980779125318208067782427323066267865520878352928899081837845418818201448944077277279546437638120747268921808903145391098914550494683441273253904394939484692761119766139725001374059561678783154669730483697697639160593305420051917686944586391836409966399867696606030884468212243732403874874024973400293030742627298156604216763714873486521167560131120987656046394016704074946809034876765415056659686677503000739447933457848199964891786087390285365535264430197350877207999037592274869590644274236374265217431779935978454475933043954284259073532183472267269500278984040989094838905162441599187499457817528745872741854342647750846394936320840834171767834806038116850090673702327622422980777407706509143041412593733409384996689759205499468862135357635541856075008576756080573417363496102351838481609550825637130636996265555190874240040347849719975423231197298277831717386370746939202507452106864706267962641779985940350866975229197595550394950000836030430369617077929398703907803365355428931411129325544247429193157179290289834309200494266809998762980918727796001589331403806244668829231330185735309988787792638249838952831318682135176960271960291963415944521021528077025889775647043248916737927735110011636835751260973889285420661567396421576926232042796393209546678825814558706864186447313988416849472453736050986487840031123768754312004986398161345573983378880645773573066932010110277848046390594571370338325641182028761080789630945772766881236693133522619090000887348650208673291685191975093565186170271493666863305654248441091466947260491595122826135022731584646318954281553661941857667614402047829493247865090084739251991132893197409403374677240242610304997198882592885438633763054016265180705899520026397126769922023381004803741217972253345120814253165309167497743444091386162158647664932220245664540031874132709239904025501028187762961661424331967553312731690011610168855910506647739487202447955399702034784820004661060708336989280135643780721333716884000131927196463642685627698789322283725469429898223617785506993238549690003218924993171566950231583165376886757781555517497515737450771207059359833994746241310539461569994848492228857600177621552001127015307702215674577352532088383281600963197501118458914780637039612914385257930512161331344440628955571205856458885877619907532883493919761209947041868284154851205501630098796118626324082217215796805363334743645583721557332230425716357817771587816003852664696623212296259714975461574159611380030158382253881530439799012372551277893804917029656084768655657285500171891582424100273866468191167554285070042266566572947940204363804696825134574037350008044815695879854223332116453934030596383252492590652196419592748848857812024944960003222311507980571210780448047941749301513661128515711535645838612414454533960130728342231625564426249257324937198005837486955558397024403651216252098537087181181950624481690797799080873242722022586260070245919733815162100787460366464340021553391925516479899193897784815761972669986892602916093731796698846217304799535567620717963580605535271510880806800616912308915143223380687763376269127714788204008115931426252805488158672998410268395738826005928349720912817398256763799115359895403625277472426797628555652010872936392688149416716927501563116056076939508046742746588013837976504256861226445308205135342390303963582002660608355803826014600245059077726876287186880921115511945579937629808352413828862772853353512216778167591381394483125275944385604398358012027192346434412135020846982044235102111387298958674407237884074648120063665137802601450399703368305363409437641718374068046860147979024420062901529063844558686356490775066641581388001114320656841662530954781787922393276680821148714726238796429965216130453281961524092465064261108219683300244958067497522767167696471341255117911784555414158671213696920639866128626852278575385834046177957819485376550569386384367795755449372745641116375018811789247858752572571645412587853512225638121933002087744747712022888228459076515369175467451958212870149902068704431477477318228389982519071938432987569239940941422892043494961485641187757353566313424766255170632258403315410324123172367213356558253828774939562360827141168438436373860503200021626728288599195758994579944011952314447741411774742794875755039152811784939162662680636975074481414365759635527396087223441172871037852491964248590615654680846233701428831661157126923434258338768619511083905833293043925464987442909013944679692123339410702122643377380512449847688970915964667741042976624576927352933567027754828211513428204270468776721600555660786450704351034135794348262696065887589954164570400566907476459600517166681255254498671224390238671540075263808227763124071672488917209740765668230178653661376286044778823828413981796259163307953127566256323138393559939288556783471584869379352089407473981843658362092550897841126886628157264659119996383453554036714128620918026639569607739159451055942889027423020937546448552447550086032137418341199991237218805927237193446745446866810913930249343900108835558112259703470976785502136548695502973139959902217882886585836397246835908595221730523475235271319352688857025639331806426954916792579078444445726956521903938102352047004190625490074128909010725640606926946995170880638410662781543263711749501548803688678596306945680565191253366225736711369759600084971997536213336404664357083037920120700950964230258867712958642672357781207293567427686354028227380655559765351977409106369101658980724131754418976371151862776697188984788383715147000651288227193070478469845358335223561569194467776542410968065910810522209819771807799870092437366116098891633852886918051074137489550301817866841481739638950072411068919644497682004998281114233508173461902197701486687877531063060712514187313569999831007557173219755102863644033024170659973068542844792933933134011425609283290298243115184584805321785605478170271084090481607083503376536887723439429816136598233869784466750655951814415932268993833019548493780402880543038856840273891884854829889510440792088070270939827903289252472079057580641114533736112950355076596381321476579011033559876560841365638737553206499786574863462278937084549721568573829233251085463218786547611659290712141364748904107170387710446069626435766576424709968688573654435329057889196568524415231476939485416767402879244412519623309867146608006334119788704193276002385323504412522623009390225398831927720981051263513051252262500430881753278493745516739539613279615861261690444963395923622335652872222339050471844888069365520464753996197144429923654098213692229200203135516002653320386646609230405343591117383345393427039135168138068533941314133278404714361578547162430054144817579927166555031885680355030850479678926531423210721500571091852031189025187288291754160062100726256796147473988422251798287875869464258638292632960213774654907201787708617313856766358593865753678736542674345669879311762318907015318584786687498466743960722660803205739796848335345280051245746790629377052704513915027233299108778578486821249577031036598017191944262757800778700925647498505865317401720084346648304863544977394177214539799939368227098259504509225579922533956377076656751643078256835679737970194457841837219469009487997713788934146079323475415024049970619442650019745827058977637365326715164270373774719531760479148601774186332488450225461494674465415898734523056512721367461212754892209243868803939400279113499881399059202180001545722093653676502554576313236419756426516386456711346453262642963232088768457494975610536235543722999973862567094166587103560207289608631342433748262972781731436377290343757997884810093188045837373277601839936515760608200757384650993461191185554999137649110680788984756123711172004307140159999518481823916526872655770302751136984769101965924545125598926755641159006066532751361487441652330611084513367765426538942653803903627901443055565512690946069024236233696561415514728200343468149557432388906354030895262566188915029900256246850842920560201609436575916556452009271050597115911722487794096050581071241623957629292066821642149878967288749626716495168577098347320153042381551280406219409761061496212087767645356859906316917651228944116572212616420139281468682711910709731674571668767129580797496303560398477030022561874193126344114468708981971827997589824215038543065298830634876044574084760353705549064451366934892115970253403130778160336695427440394317803302565507025483911217806598408511669305665553380053794723744686203973125220433825258533701559398273244189915701088675904298097708456298354780647916848779902940518813848762247863215155540437607868671950146069559188593105060403189199392079942148206213487660518616292300604451727082655187716100825038460168462283400906851112899399105697584077454905496948295574218196732104984113487796933211974692100779479680004529075992036963638236656073836712568228940003464946107305705646052221269009536447719425034855569752440419797525555754886914357872002804073359786843559777394897515718662487211954466263083727154175362753649770551034442129640148146183110639163652888327308689406561774659792506493057031443073115001646353075833866597820587824731756691482838004460974891164284141808762953443041759553783685494709343442231411579298218214873122827574947540151081268250100687899576426894989372180449123003898089229132093318141843366653556193638683781882147503401450219716831064329451015145059927107347900440768700443305706054817769272677275782853367499401496718842178090403827693066748870251449024160179336742022505057614689452451852254163244834383473612854410871072064458417815711190778084589908542865526977730750077704966145442734775012434303177938033726304202635095287699075367044574292999585676579578567787726529159433393039079648945656439278771887759995636381956551149936330270997752282040329091898991915796653901440705838683275781103273807080958366266506830433682042068273264962566054550691647871635211622659309418001578496224915559294796411468232921552739158143106052044101172608662425389505067219231564592324841783143567727627811394006711908621566685869525546993308270640378241532450885274395850243359640664278266640415721624804489822593061186034003827598836415010093600795247100630660338494773695000032841580832896595559308205522970284547779306209595925011509832683963507207938088666625157518486319002103076778705214665906645299656873840641395994400999580312454675579881009885515032649938299649599778795699696814104600741852179719012777961716784577345246816188428033737548565053146659950418769021020770420323101110224854169354841070824715191916548686210468580885179853662883655279512831269922324183269374131292111878890367988399416292164160432482632708349687604452270609919620085445395651330089424811175570004872778265337674720636216799429105270639404476995983018204042019963423103078157045888655540736428165293156459060716655942150583180916264195875068485401595522583825913469424443680285727685586892409600489860327579371838147453391876869866802087878865788207512327110365197860168979365866794418841574787716319919728733762976686615409173650873094695308563367203213314312789293676824463338085623783377712777986606290373124426285534094581551653951881842735089436496459067877202004886260520455796124036253003209407383994039703835304407596794157790899041814523958548453405573783423233010516131247698557850907413828076968103757031209800339687666484061290849020537852775261815719729028599133100593880270216841707524815171112205272494759974644872303050930369010513281395314964775770847160151008419967812048600200795250861411267440873801824323868009109657782346511632129791708105563547474902190562707959641181598890681714933363125036948381029195409298840261145073011696842399630155213181039690226597302300827088308477021528331627848232946640184861878507570037969743376637657241591571865485084895822535320689658954315218267870166071341718822164934385164208342280594059456887590746558994124114944801756316256231391380284927572882202889293544877089555025671608956684627713179585937363694252120761030843995513903718570937510403872617677810438539259815428189236038019927064745065647073383503533448025854326098173279723005641181360624325739623335704684171958749200410527838882538154162721775212100362433254474752062004764427290787476701142869770773632630684949097122272725456079009729749919405934970159109008793404339778787907384193050269960407862670737739496666776681291517421089174397144241369322129070695436527222855552150178173741310214157320326219148042485560898803690099503440143275310045236907915151275877813589320119589190535497534471379010623960665742650480989903677670584830633050337055702216188368559654879208644529262058953148588185618836827848038395115025102322102761725105354725839440413263480696352874202685452043374995318083987420077730931041508815929292346781157020229964559105683882795978894248671584632386112306913586089347392991718169163331650734113496424319872487359365850599882573221624397118313479881149884026646181789742709786892553206895194301038177356846027551992973152327239201586042870327517015363756675816570028294070550802204305759271638411683307232105873865180055276771574468429176334278115251633662729090143990884162609515992897476933008270318090494493594871869423297920037779858460472258311755652028771737875122914691681880596918082435875959632352565125648439924281145770276598600936010387090722901047907228150201881649830523619644777477843913434868897843178135715521013498956104241741430753548266552576121122753724678865240934231550124232593538214643282089031595406501604750553221383596528190887456487134853849655443977674188646166429831658604817520786281464679965199855921867341688437362893751281473145365155320206486622224516449029577910003543571514348705524742924119048777242278235668490409802107072903980529507340636143454393289924870143667509457579519484940108020048526587517252778290276978593676330195753780291123105532903879334631735217269301394415448976201582106384760717298801226121884051693794573862778297765532283552466449969418575704373994954039548450061357205784699477775287504122360713048690289977815650537308997129347397553641940284033997847430746215234319939745301817625676873007410561717827583601569701136214001540033878200902403638532169227881401733962060149496310012462867398313045309560793209410383627763392073232491843567984275172301050123937579358942592037343955213356594689534534976477112212460689748076045109164096252498717490505617720749652702739417756149076681857426058302573073449830005343760471336991475930992850298981623682437191602754350552445570800526136322965946480373824282965095655645815016449760197517224556740935124345112000339720496195822029270625062996208173079819728697038011958941620904908774258370641586926295890652637009182037677039977535405859960997204547391125335173870364445548793372951306939550992700848903872075253222007382196929923163345726586750777717036890321907421923148388501695607239278478231262097996012534304089311856220408945676061032892503457100001312060922465855967159642709976925801802388300805610884416640806842598336785997592170422394651074974812559110229289464529532773303669128176383540146514656215919205495796744011733559648353388654247542391509114395164199271503139877124842247783540503421089783052119014271773556157468602619715448806340106165850669420925406700915341145897972840081927198599524154264703836542877023064207321668487742125356615118510138567123406141382094455808711999655950133153520274296564160971367473501968123629929803768817366715653971718772343765095016917999767245902064785368643282292608210859664416965241328116787025708388666118079038633095869469900217734801533388481983823721761074421329950778311737309929878969831175095291152361710498357656562233521350182481647108958238946748275387581382075779186504807994844742407189918055505263910435487748798524032831260848432254734524480955558355016459398422719985846993946870885097262918583706326823343494702498680874686615845949095667926079642091973009200004920685768935915285644454011773616392578439881323850605319613060399660509734102121181973901484605684197308058892406365486591955365185218823059767121748083067037291953450718267657706608689499088422091219355358459893644702329037613650590876215297582000497690440705411808006327101862429224611565813091132077283421160827390549457960171275653817101944975176248135326845760279303886912535192243732897391655345340697306354439408216892289794647316850194444667502947015792218420170022300793802860557199034597721641094697860875286168711696505612442718874559216556699345710903983288937303576961023755776325249854535094502742645809426644644810037012059407364575988104894386764737307737028189017224403953275830215753744168675641840721849666880255485446961825990764070004201733605788494999867205130213031683206553344473468376782135511416031843585879292887005523223689307066774534177318892483528695199418223450156262933688762066895435766283885607397400155787746527532879590373562270754854475867266074100317326970447143435044902767935481173754868135702547772087436116879241781038628621660588547381440137769284169347926116129976911365769322433465605504095121620940075840299076508823915454647649567571641126142431537469356345316513881388954704148116028373060025651124223515879039326044152544255400563707895983936174456695377312543609907268040455780983808533027601326238048085943089153623931871781493108650145287633151401199854562147603986640761249733240531157616766868005493625529927031829053522802058854825329738636170678729798518500224959939476877376562545351706227699094841424478867746051357700752561176084495900192529177176426450759455629256877480851711971432795920686501874722644315128683053201452164076572744618676855540645067241119554592012708958205487749296734168339530569384773002719944055561893772744362927673006353363219470957804801611419630707942994057855337166192414516980752306789284869582516414607480604421099381971707799272597250222022058782533898207469211467281699885233563608179561346902459423088195693811147064236456255005497572525308743620850270483130203740249571083619445410385927224616037299244477823271797425188344130413157832782692646753260813958837315835141671267335872698223043314759332884840727927853939197217548213147136964975296048603395068658634289431765143979894106710825428752417827927603513510724058631637504557478856740136955658487521314403716886888137503925067917338105000521380979635563638653628294827950313487668487454811418200812107133847141461720842098323267940398890750715262592373662858857423262401095789883909983395842942205142272505295679871624706746113153091550805196623615511002595007445155829241792167963183566047622777511427176006771602556180717144632769400757377747854795369098435072769370696160262021995703624871957812684929603345138281420333464766051446291405412099734150022759959740785195787297349529804541266131855163765929175065736087595830867666330489128276680747558404219456566545589843553043677476210991224084977765458300391276751181299136265755902975555018728375487922651607135472915012951931563056112127665521374674131792550348451444802190854378448267983489766000074167329034425829560553400985285918854401439233955079338703813210374100936816652316768695416050116849979400402354674576500828689888614232651417842738486322543454768188299310422585808370354083550741738787938103939460308784587854487137680611237093978630174190372541203927763345300083782318965165948820297319419392365620603784527412177726140661071974525766347869355210989298348945329343278920187710962610816509472309964640790054433128114616843292969134026463457047910303001990528622433166064618717020877409686593798176302023613467076886880159922190696037932499490685412533440298046003301805219220988833018823432325265078578876704882750439436412647398081314722206995589651890460469319609451112236428376304281578130734427104317812497841253014529729134353105903754192444519272379939735335697715034325153359909187474868175821666887848493038126590042399377639708062206661054045997024633043220354386268976212593030994904516182408914196157143331645523928834873943352710630298193837648216530253472273986003805645362144648400971202809725748398584446537451834019812643374934046169582951257169417512753988891188493406450134460613810667273657827683425094527477841617444990967476575977731351401491668933311178750715835973799366345150820748028889479388623302008777990103183009953120582928500295650834269947032141860285351641386523038886424471976452089585018098918969562848126790518128247983073490661322974068395817479586768136369166600148304872833974317324018750707799711607818806615899218251355073172709687807289186493721667655278552980314100354104874592426988524084708108414891093486542396867537194024964246963292877580442880396752757797355786978716669626134658008717898996710297312509477665573645738368670371503826019341752649083473811391930703138240198613453602634320895656992169171941944901514434806515095220011121127668134506825020710819260143338152013387709612584323440195576669510009108941095468314728049446878614019387536772285811899412815075877453617699905816279178696748979726142175731054864213547830494998902813718785969293241674192691445881905701886779438965934393868696546863444194526994309939683145146706876792213840541218088015579790939514519571730954834689668824023082787386816497069293565994654485162361237501530509078943039164822931348225966191344787526082163790842280025691551604627619896505127759694579556973007147922817973501757688313824609790748994628940667115032786803094011665564631125954330681973918222546995177083626142840796839563095502333374025856154451777436293911358927149911693996627028940614863774987731062547031237444213012350707746051412932010613982225130975268435343611895095061666572564015833001791668915013720161689174911659963699560591274103733561593814227800550288334358987730324392490936767394416685575458354568926072172388571652690768260550830856406360574826494632948930807258054184390518682017457012894996662289240223866403983399497396405277005807120808624843723260979058985518477094365527256133574455829880237395849670304947672604321579774688225187370663043716983307987778597558584424345915823042451488137710487430979810832985625696502717422235859159021296436766161307810861264715784202850308094544244739573325023814621512148666331474971284190803942051569180468037946665118542962243804471430807567681242563149457383490899236482376793453861310117035255426323371195562674617973116361531503831037101112486005654642158098244622685580681253136444952286590781635872421314438887544701108165521484721938146770066511934381629843062685565396186154535368644190517253128806599208065114976413178725203356931629277526982218972232383282672543919251176666544870611014835357429128256830095802228044244815444432316536431154547752907267990529787251405960344711494216034954849922892637498549033160238678126036596715074107477572157453085967638401828674116759942781200239614537623859511453437240349079751210077407894712329017779590768921493074782552460720772557963586893818249342909913405530203950527869367481213087941453757365091196297854174098333866001125289704724172611673782673684220704417654828434415268177164285444582234335355001520838936907288495747152727262260401159076310228670298816999895681354164441375493351372705758875895559546950249786705842799167269207889927771176166539801926382547766527485774025000723230275277035529269600474042959038709903821027767931357493188336560068949094771296411912481010916912231124121282523639206895006343196426771338856863211710884765129886181934215462495759608095779576942108284847015234575464049788858384482742099997273288611450882519147793293857575135284609255935719187834688823222079411658536100537891572513127309339146844602105255839103573390018330497366714995206072791755583308692918726149684739042855511060123782492665966153884754515073720424332287540131647155830539719464748703707128911992422169574497256505392929582609796647310121267449539026029000436782529557957959394202598190194374943908087352817497997311181660909720629155429803762852390338030484152623531555236919510030256676308093143432327433297958407391689972511844035861645179105215175579160655960392549762084585380268739974069131989056998554156471849871580445638271903669628086411336186621997631501595159403703664167601175444707081839151533095644927618962494789297195975251867448001712913018776795944759286282542280981688388483278923899679433791897079535475776504117643157452589932605017176423519903714639982431103978774648633442940725232897756754083917536594600838735768943884781395144833583018533752034116263686965821287662657941495191543992583724177547322801175267131276088346943726516814798321207670958908877385872187956468141727876344895328908710660066517766510054215786507867786626899426244512996909643050615250783528146005640806433657506421414524936765393347215369733357116118622121732172571406203916415984923445217236051364940435464671545971312750145903358769488481000612437971787347417754106794784681341692620642904781302418972969067479999411264051631223631004084708116511799900332516337015361810667366782515506815810595180026509954856920159940187824405271117676215721593795406199781583378203925756367498159262862791288930234881970825386085514346777383233656917450907644824140011898504425534061450987931189084804738472272100765926078050268290157590173401196154727985277533728438897956806281265063628575624403749904496041684891090484576773840056091817516338461654711662631320352305615716099463538040371919564812769780106490066336725309650988157058599546074186710905992983443661623912788096894862407908638757980441616880459346786456642959647030383287743026948115934975759489098673587058985575744629011540316193564157776155604511437728085391852416345709541142022653959958454295107319386045769833581603326383794412382433670931867033176787704524226119339822972932596081470573772370414703012044963416379365452749306736062522463687387045972847847540312600670451611578690336958711477042911192010988752187584980893549801123505328245891017888250968970287902326724991217681562726860678959808922818739749963280124148874182880748364244040843724605547852891210311381160841414651878499461283414632576165092233814969847232051203632493350039195664801913127874833899975318900655124288308497230051398351012893708278161759184037097401795919971664313077441171981084616023807534857310814174579664499072792996975396563380865115407135774845027540835830050165705904690266098576884423219345856757934970331333612252364459891603270354445615885925619776777736302984649071675970251985604057465478576970756260601518455390020231988852618443977979043596129158607030635314667180018500429868463104594690411099130624906370556568965050858142938355508111353498442235990668536964744597772225597513369957982097480527534009786610302412331761784683159438557002341392733581602202609570260043676897697434869690471058415954674456351750401897570061795282902790346011688005253599558426376136847432048479742326657228673191424798188754662980426324211720891959981428785768081321995092047910655864514134848816921244085435088186105448467381771978314719818705117007319828781975406407245467692390265157922889209731261640142540009749448714971112723461998954721330824920682348642698543643025944160423587371571372081842731483454664409719959131512162974389855833420130305115673625217077561300924667161575916989078801601027610177819039894189114744847432980841380745723643050858484203371288638964616861632942970878266053677587553033326792350966844730445332288702633148684192821469309972963720669610478504788005805493587800318682089025497669165397760266563716008678867816412793609379281200955806771656157281990042722623455566976871819609121718169960676365783047548970634439885373511596425789873267049026151521050053382415135196116476695978010012513297413131405165201944724444541504293257193289623035719990054355494924218388871225917586795888570347838835687395738531025765677676351568769855617871488011306682285936884040461490567356715201685878764431454916915370927400159696781826807202232979414567753472020856991475562433537176922807451606115552767891735093060166892346400767397873768253546165709915675573859586296076230496555480570168348532773276973694458814036343823988519444058371977976038620984405941738004005386242597457532698431068970603066753051570064117467774646070487173079565280616728604613565052855532557937712648907571346186519698460905239882425832403790406799854823498344306721829868131448985186269303696413710848880607823602109587212431141978764138754243117560986297250682107437507010594896055073846855777389447115569929877044492494957050990072043152796083625660664421222366651012525939314883824376160525156419702672321802432606378605209100529858818724667235366442165605098931499129633943714908794556816217735169717251851111428374802990511364618227463467077254802332681630956717709634236410549589766199757228045454087523499143932911254162443290787339386769443223006243796121824027566051469547404089432947000825499794496282124629961938395697595679471491446215673989285737110718477749825069634596060108705572448634039195429714757573993398069463339916827233416151801827870672428543406255403427884958267843336833893935448916869733726792745661367300779661098641351813004877243716612767328976219562127846976718232635029341781096814787810747541816591124210839743530248042202891641368005557025577603933912841193134315853424727291467162289957488953399549739835944573189065561021487593108591948899168639049994666135533471500778642282370304755036160619145342001064319936906867948583574371017199682797904240861692158634225132004092596636156901509957287116982075347072460650435838327347490136813148174987134154684687057063827621753282490533364789306156843959861808036795712559423588045468174903151267590983528739586586775048357087125960958967523472470874950984842383534025968616731298884172689512122245211062376170596549322476542200898381098850695885718085552565614104199440834285400298221532067947905887323595048638943535238957315279783450098104689796456827691718745341787540032238800830836422930134950950789276400776668159656870459221432565378203501464906165513738221247375083993989220153614967830710269528933966855262636523855831520198125331622277045746301418755507435448184856123681739524215141366236876111803820631022483124220915489540981355086552037260574336137324171510343762760521995496450604827121279138938497295751190618961736457927567775471582422790895986473638946287889099767155779024018324941681059607080863413073461555273764123354904570982777823698006273706580902726385979583960167779339477314489468260618921353881298890090271583047132551044052212149428248938289096185711365269610356964468520148706895193416802974970550057622604721747941769405603473420730886992647561498152704166066685272287693001532532116537128789517266085421354255201775431745820183176578139904932548784675747318440412694627040294766042135512604088478570575975608773320406136934360662593500702021809904960491484010990077546419218346864041520242974551605830916523275656895158017686236853064025371052234901776166287573064957569006108979993039851392769675097260999918803036975830512513741215158619678998447368256193956633702051753112544277550307381767181997752905546106109552646784711695476571392120364316462358638316709889888369282063033976021277619902894187011421034251406637410361727782488108964862571533824335324131246215026885693886501237139227845333157377392112652328187982205927014215164588576995974291164823912515841650545241679583618161751654571685024841312420069017449174941007246883294054051566307205547186377851608144516217488433089571682228305451720895533155753427498040308144758857757384770039112901385640257545629601254318643986057943588811181119388999839134858448331815178530658598966267748142471380454667229636344741516889033084927543571086517804089434696759525247839544791732381642741510785824828648538651330994012625180363903005542301139472291870033500328892875418179060893329884605812919117656638287073378389342056239017183517656126949458536143723181651355857022793141093856112877721614205046037293860984519675711743523042986495778649443232144927293972860970804011288936867502308892121508505120168715860518808251954125401109370240508221434589180454740318960818121834344658287470092347131392449215766036671673374797716671921456167908490386406621550189633504184509485896261014226200671118777509564515533987623094263032325579327213189431247318498658198439070461394575986891254211664578382272855890827654737417420083480786451257024228140402474505880271646021287747958573133244382106943722540542097649824643777783812543009013701671976290880968980840090756494157814557754790728430494002659273545063049535073000487897388173543357955749568227624269665033664403280488162427978281567575263716809038617461914152124335491954985375186220834758994864299892067642417556631886865760939747325302608089349882980185236595078975734310688347360957783170078470745232800904069199956216470208291689056826251598435951061135172040006612824159877944989249948680695074701691432209147766330311411592011883176594034293346646719214379215919063998101842650017284362217048002165142637921385211416963412557268752437445449000050618489863043597641519262079435347196403142099240608915408702179410190851348243882542208735508214783349938016940064172063600618012530823971487682722185385048232172128420069167954127038805702036331609664934103763248878342220066474706579789881777587080338788233058805489594794184070109715557210483993045974884964674079146026436026368828074507852253707716654374578816997332621552932682768390890146946634277690577267561685138833139955508855549182057572830887514193240831619851988616542335317910459957386000524759566770767394068466030846174639365741217463179066539300741471027807267661767157486984729682718862456270321319135925216033360167690520023185293504141659646608866123235100481703700700975653211220399775887985917551130473979977724683340466456855214285961752711153768536578001381929173285805951916986312874206239293509949257556896824082656999702788488255277965337688469888868843004686408416705352880602461338678374330553757519164641309025225357305427427320902223073893532451321384204752672162501187098321473099075034458777949587694864782645438242956642382212210235062719685820644009178097068002311722262498806921427766823051089826075839507646245599358728134798304836472524984086792121053572981892209532898177334739548983209553057382507812491744653315688273771673456882957779097648324442569277075442390796837425892273509638638776641902090667170144611910515492777671375077312383400741395036562643683741800887297612112377009579026242208307835940923597717519710509684771593073287475457625488505870439768658383991604324107185280128040515342689867890226231377620056905821891088291397592449897123274664870054932832290657989192334137013096560440330922753592348656680161434060601224545015405011271700905616106500508797027546482763930096140100674104026839357551507017522382964851593860486239298716895161762954333698805980319423006797131401769721369953360752215049802307006312033879217667376200461282894142749373222791448307042784641336648844689850567566128395777282165179355807466429936777076153849691266727985816973520091054474436864552547973629418605876609165597718010465211897987730401117533127246743626331497510426024116873458036392628628801164198701646560768870842986004533581742319134879231629126183684656247252554046424078581380568451058906227623834473957458847432520424018987044814260236616422176591542023586069947031651239873717647956850207850559561485878912026573851621150871001935793956788861129525776855142632642089657817346752207912913978681946058417348920165578770339430053781614342616981567998333456102521657172010950847615610471374644320361792829931720441990315256406752150200457872076804116238489275771080597960225562025583349159058039650562910418175404436151973158353212914615291171349877052505679636953777614491641254463744533956091116095677195079237847917062194318527571510694446317033521609056777969587312492038112025669792086575883038427609067756626189502688439338179157531325027365368882457574557725760357172800781059462789926642943517556548642474910835181281678175491757241075504254846201775545864621262830514543296998063615597401113055400332207230801005708222516680222641827953276486293159851659319318820739694374035036916322479592868293630133300268174359287407736269515148769370146603068045723891910511713412824953247281503701244411032861689769607348604134007451092625589868099370269360370362587471573095046705704180181652110876147511672896622758166541206259332085216450092437808083295833009424267265548483866994024464060055392618562355714122193900401662839771136918766158079540333276755434825210784854479447754363908901207443650378354936207446836098046641904020372508366463067547385352997687071697252947476608010986824714873747785184415935989243674618347056889886559477573418365549939673389385460151479611972014739307020720058800342092896812020062379213457358225640733784936826648418212843998071946775221798709862844407959285833365730803370402724066469936312755251531100367786501670367655374605805055593568737011148304473877074942003717015256122573681300129703778084417192428946246388342498181826547424471313260067933587702798616118938822777882840174707879410412471599110272752651930719323171191887726337204722802977726556963074725195178252139979787175571151249513212259108207701594794184531722795870296760019930873122369797070733470572977737563709850411419509608035850355887934598816647979238190713463772077379131392711219438223299975612869037619717159812136981202177314355752729623561877325912144333454647510140312476336112780243642027319427444288272672962704099825574834443305823830284738375388703899034797527549454469829872557771067623281391735121249815175213651341347741177038625541942017196304509893768650629107678435199572234954374081253798451296958735716086816497087709635591556254654665458342822016465950348480080630122761600858253451836477846270968407732112225199109322663618495478957086106631225717025448779626665703134993792293368381595693622836414750897441459421392964445594068237619974492114813209873268112463539423271982000703995645783509525056072051779660861589815226858948558627090082277988136030116478890366533948141169664976687806170045829035663002815959766080474499374079245226162171265775681929327379185865344206642261329395585827858459492703806082342531036881968605950348207635713776477539745542760402627711414766601155464645786013694804963669005249569934892242460287659076939469656258632278798098722598172218743816609749441872327352242684134093720844161578405352115294143975682199906010367727046592092457145040190880057273396100930945202068038790764793053618260831397284576418848331721818954287182107661567534734545211371393324507479435630878247554912047458884129799769211426811262194741472171057428359379456766729318563729427864451414416191054396720908377080228996016245469758756323949845677401519703235143383638751222614506925448129601750767883977941660619602425668664950697291807538272640308385346335963155273539006953331694760559050301778598114059161973033813028595194865279684219528476392795588552867675147168046781110871535139486937093373506026743751433652182085844420538026023363367064707959564010284547042061913363390716993059640996580675343617925854096783265863675383951708357897413295964228425555080056449115143305912458025897627010190420194358623152724033653881581325604588442805138103444116676802156468824868468152598225863566719330326942677735946239219729488021008949355266362941987366174460086473926820437129549466869531574474322962884815116156851237083183048836224852118446182973863396089502221014852819912024283639003789918642779784462956481994402122712627638501886430740956065967004155767985591159165694668111428088978222595654973133267824870513245542641232640603923914843666834238687094301910948721453464236994583141645646836873071142321617341493577208516070216964296817122385006138410187964857528700607707541511798828142737265798299836646298501819445939623837387986553067654135954572002014773430551760690335932742197383623549479346814684204684446993014442558850644155483715136136179831969637426742804183645137740436799764353041628732889577188514474452630242682817620294961642620103236326433640862335781602574435063740152773384279591020339794402695795493294528581510834459429403138721444007174861324593879894310050319815801268486636227389576966980443397450118290949923363368686533815837338914264321511438364957735715546531499031975047423167996403952990358111311755083632839383727058465401991421145711799302222283553569474798092063717739808512895725661501145620013722642521194827106319650587776442585753662950012534574465983048277829299113372675468824260009049011191171680625365222056536883184262415846500011291922123611389419946268180502095536779266772937236766845041098585232145191473918536786527239940772944687362401925796373789711842382427337855152707566999876436080801345718597804778645854774586487525903213779087962962566639892155417356577116909585443321986657317131210719513253594000223709323392968812347370176112434403536692200615641985135420789922169842752616360647671818327804631303006910756437388760215948714751079913030367885097524081981534971962282333902301159404084841767720471711759502769804192112889835038819522428280281903638825016528861101853059303909785629316058634459841490746505879968460495781776739045751011950542203208725108155271549761041629359439268816739946738120958023630493718822541784076981437784114496126301705937428226223318089141829160791999792628631005290431990666339141426778358974526612281666683935588477880853735760246405948318457126898641282019250846974153082420279772600089622007683061934910857462809063741936240400888831732969608442737040969266561405254698474828313226191667473706353711918857771655872682846455457191100588618055785089427923052783685177313491425233384248834626899164744508701158754641500586028433973055616282594355796423768786530526741240515174773151518762561168421353310719701572466439545278245092601141238373221256302863774864680736652626032950656383219388407646560365819776139032472099825219852459043137398943041390085503870111009943692629522749688995617315313859146693953230540642778055022944870701101604122628703326002169192879241776298476108077131196597555296491328518506217249439639398275962515379613098199294193180371807074264645663408106511995591201519406407217047181230713672466648893953223047124090693568162580362189716046056305509966132814218918883815637777152686005761239707422099212981551371714367999900329971546282263783082717717624090181619761189963786495549990528581735681805353717015315088341059659008083997026694184853508996604307741805587792102912235833696241717221536319974893907470877093833452807741076452889248582820966452500337767625562107379132619621519384009198762746955839876140356341541934498950594243409376730228692698640435651662543698726016781180650543096201984486792234727580929382469277487853726323576497977375950624854454522996582447576885815355152742918108710332724498226586648154073462699786595543389380156855848324380107079131959512307344145713226583680911803106410206140450199769258354412882263126593136408783562850612539373138886579746039156126541186375280458513184281328188776319957199705420023963253812240489728796386401307862564764105246071037789264781980813138008886245957351900936965449695393648706886520077207732603606607138592247808776966655813975187133864674131494714380634223839826558574898471247266867930594016911143915680955472050023624752077504630042226653679983146152987476672846593377307826889118052178781626536761634611097483086607235972245259925785957894793827040086666234124945968303336989672969987765857069985055474690117446865418781319505877685501545125046866103872998929788857690313556038360551055197188967459613281386137168523001614919691300409406427591092865341336270713994347103999564902234326621411296228357799606275728728518761117440176475679546395424028996941756147797423541192563356883627115806480209700134023316095218694694150056444252718978114371275235249684914884058748814620405598449649177013819071496514296870335525969754651381364046508042885400869024418144345775195708818742102693745482784223256738347354814119015867126649205439498930828893569176884146048580177279499653190383419480626344128258559987300273148173698094480704892053575238794752054694281463698062649081705847587949476358879038383239651937482158763419343165264278411531151311930366300247508468773761940391782516016870529972542253865749581683004420028166083823858846619040259189078464634213395915644067199026163385355676019789566229632903899832175347173009990482905439174489645077412790580246340178485214768456317512855077662830712168082715076241693609649723258887468504338532982160763267941376641688689029023058515418845866252869646663992190308476027697362676631953400798318895203166230386107738273819915282742417630045522493059258413620101632979266152057439530429805824754590719500982307623509958219992420627132331009879668580859891452101099783872923429937565714650953933512236091517070182172829792725766923037230225926429681977934914572995124271910535175636693616478281484990321250781265658292413403922318703570404930892826239243540966773589093372625613933310912618256019919043092514468743037015579276337068231748156620074143220060391804455951307186621137554947692434728599202702929361081934595397581178651438814349749333241079639867403452886362444067013017818427297106989581823142909140759348873761000988786487925521295693682351334468277642823652710242932893449787404061941043635374382468879275523249604362091620998391114725098501371259824346748764433205955295761962444666514967599809899233875765590120264713470410425457887622253138266443206981275235824096151651919926952925056213999418280541570794259319236037783636668407709708696270586320206093746146612025551541301337813275327833555291590079083413408135003560521792103493706273885225339813775023760646898488655799719256149841004791156581114810747249068781598446481529103967968882113074145465020534973940716601110717339960079766400089625461401052308285674280227825543631948916731780756283801077115581903205722898043905900940945452422329205606306407176571168831564340610942079522966777192290665286972202050942022857950870541971919148896937149578114618592512448973960545133406311373230083555444473753499491508398004441687378187733936585907142775937142791469607124691636155303988934651142665042364205217152624009827020521963327998367145255732528929864178581803119317057648446729099778248479415439482075391370484229820026758883790364148477778241103022639394208741024146858781146757594185516917611969862866563270552055244120777153398771112198313454008718835770531664663282964285509326632624498091248506599997010706255469364213141370733255568161315080388717931186973262845816842912108955969225680939065541805233084208824849041561176825744107230857357415808570712792515059242303211352056142806047240558931167916833833345813450705146355279317233606170382512820610274682048428145068983141148899632531398797893391392849663611461947037427985023851590577522279728913606591194687183863852595968578778654272265123668457137321305950436267545415060156175739043415530205609092379074519501717588354392910229424422357086309792442087807419428467581950411609928570100213708310338105865312717131159302978837528960050059219803207160578612344423402122383503122552137841386446254113770120732634218755439183923620104204718011427458419466110466170925277678605867399982092049655878236198399744309939005425887483964796773993134324155984419473837664059436458408472041051671294035247474304593311762229028911855128356086433445135040188711951373768546341001666683047134120410486506877465097462186677587605978808491043151051558418340735031396901311553182057864909134894473149220109543478440968241884896365082610214999659206466816515630591096510654561486048047083864945089774089029853484530687660286439920974810922270213396679300012416857093482596504514776330139795615337525359551351215487824752412605062739696975254280463832963575333988040364942378160749794451923313046876720585433463038987766461402688191362042942067784561408146730359401608048204337349788805253696126232430890549217455610851899913073033081328981334926465573938528864096981937686137186901403793547560012398750060444066572525404577960893672563441930220787080897171608417682749869018120007189248346365030258613546722040932773142437929020959257952689128656772079971363796805318756810303454075535666195197487175482298888568707281805519888443966521534526532025874212063850494384180197862975425980742967760065623723138666092432592887364331757892029441284952772514076063667975844337039407579225554586796130853082557918374392307586444108835884645228289104768077253548202860812282856239464220864366400311421049115034457299595165969676645608279027663922014424464532756824763665096034958788901011529933415180250185096591318201622342441412033489716966884588337819909912422214013046448791837632174198447315898322709696525005482857073126579671544365737706942435903806586495800307818885976388363555722102178557940641972959990218456185969506108772909723992224555361419781523017263348998433498505694496210280437805528153870911017325074672024436864416396770476871119783401617585361197653227532271877838016236600775357259612582683142036088875004443733673979082217519786755312714822662588890174389882046734362786471696330795317404312627154140346511608916009791422228518209097228936608194047483983751327021427706594505586882483587971194277382575763897262323706166392607653397298566837891358485917816267839363910958113374114869062218277769329224242309623090411575648029201577324311054044166467701136839360816321606380866089395166200393525856371681034705605030016197256021529708368989809848420531301117245413338961727547121135200830854719961449803739735658948344240500017623857330321737426843119553826727864380216983398149495625365073233988370462422845476076926417564109452520361500658124646053492439100214261883101564585874061614569222439590132510146658273314531301840408545592546863627686575900564596129766046740147801026673942783146366910518124753557393359113688022084998260805522036183599859378513656696275326128193088562042394403416998931075700640883089670690384785414922703445767880848425409796812240968798977655760933564502720516288167849336250258005148316134421970381595811074656222024689433112669712826513318734569013128821500655490841560933640055940035429813559806304579521852078322526347439753124716923094678482367340604302359197735409085062812601703750048448015554048680129035292657524331080887571088421563802903863948963157472608326474422552723873558079177733689101258768222753670725849766276842672175373121494246186519059309095097723616457349771450357599204418937034618827051374975411563128036334343931332504173362654175537284268373051307818597777674587871459203331864813356185869935921438866296293280758863497838591224521100181054430576669414006924040403601084023895024033398029441323966890519967547945320841738115647436630072523429294632084128666690673785440415566923398328384298358613703049760642085504746944362041686538816727583862904596201106186808297100368446650662618255488911001960980900205371209233509489337701368063146497643414901253851883372235403474199300084446488895483521558835233557714007920915001572622661924962196407644870134631452994953692659397766616951068833280054989486037332195443094318134665228430731620522778661792015598405693568769289400056225661953756452981409801541738982376637176137218207036079568673581755889076588273355713844477938382872745624046197027413256893595289172506904131250525662178011882883902213349153198933051634265236039939493520977275725125016881331524026350269324730007197119957121814265673956385666634513340235851970270785087181132318911491090279105766474102765989146884929407309580606562615080626840085268501294996628784427173779791902327568018622362938143861172110745151894712946686720060150612874865801773660048618530739547439876628378001978968918611734074750450839768461838143223399561218077523517936781220778938138139017971649772991464831508450473966139283776553355413152576446387451539475142089430049578184552590418116970756424802578065730946849472280262769495861754591514333512274121716056272927497789891988676235152982786018026694714952305633811314331541768588023952175985418116213113111968064590185007676910062907347129608192117381910682515096709108078090581451426441265268232897461493250512454585105835142102296662929443724357110036822335390435707913957451920624344932900433166672935158664818018396099299569339358339555900848899510742036696089399247197391379690272232642883104778823944383111462202077022046373466131015180775841142492384659954618608046793741733961258968427177671580034474293334982476947130989841358003656375692726019225831342176644323520085807446215000290521712044069267413873991433079646544643576062708785304151085190229604805507889767938206644993480781469119795700309868774339088497356277857551031377562118264047410140376095523256355534522716622018558150017339882285707860925380301475336120069540849825554433476543393842531853494129162177829510057431842187367805766283544792501396496029833942822498328785757421700996066095297687697703251469448127369593838749446549902928894636152659284210520756850401097911423161950387325751614994398033316968120583852014042793292019348313914129561725579764955236517141259064758549895122117024580646827048626032991616140321048864868044548890916069648571732063697142057017771950969042250358073881853308137462633271055459321516168490052334763728309104589551478518647438285167986988198836096649102007449288899715261284220834304353152635600432836576862305823711544181605299035217610431539723897085317872697037320457043593515293173946522045063436357349025505682163360666756448044512278084832729828392728393044460254567017022869041878580424770210280908935682338503468961894710526724938714962306706281395102770132746220820997810341659987138110839685241984894069788035934223435028313752259965666625840595290225908393357215998337920192929240258346806691068127942982853340005351620128733607969079587981155902639332856187588850946402362932196311321515197383531435307073771474395874869897468684679725386892727615512598137907891096065078710652401383503892359853067969592352612689069486734482749408366167213755906827939753728684069928420949444909040238084103135138428578679070679828260928991904085814959095739095335723488612702532077715116238246615020520620111349210647077869994815368598500797106834708483723495139347054993142077822131727077873119445456296254931981201457993030592916777996223064552100890473777781533758679026211695195801314160435407407409119720316948401967067205752489782763849267362463247306418033954420821934322733302166390274987123050704570367589817287993085080954131778815674502278079119321066183431490619019305221062084895023685893221525980871133095461090226605055548476914743127629972902127786815234158026902815669016797309726033233583496864196080764043892582575738047110171978950385172284398808338385858386370615385493854165586887077477395582178352958816965242548962396342879332257923889594966386508769630756332893961325400652892935937740904883690451242779044872543960175030496166912106673168411940626463147612837460990632105994946659351050857539338733684753784207796367184502806990696898690266602585932620565051529682759571896831564695435750082362669574170106257188008560021679688763005010662355886870738512622718156486619323697409119678900177657663835850990964541626098602434194526937619519200385569232370925956580715378360925534759097557778414514366965195195164959402614193044598945588218605215614168294313003089319248580749906492720662599194029296611440028823062818491209679680849627178751518970683299292061362210846950700341407322054387952682002688736812143194992686931195236872185264518758488610340151060201637500090191094801730229940624350413457244488094932310227830571847429561109205506965127836992054728575717386331652995149380221074508144845867471055722659830451983769068089836815596831514061005398874631787776190155175309275536271044744086698707753825212868310889278531472255509524536692348285618630394324275022290394551701110771580647413722511777335480852389144883237295528807057805869652574275487969649297205305151544410891503367818996640729002703322736089304060265242289542479955729997228698982926312163326504871714626493636124024229032868448849575910720394925212122299716870704309747357546243106049533195748410122975339703726462655401620039643698397047831127423646683741196112361583174539318746736065339062443031574974189538291605331665410999001680208443033476235482999817654205581018031125715101678989893223457294282163181563188032178569692765994049747784701302417836848194748719815510989770397616073759076310631378038956405745874259374340792597910420631116549787306777093769151583200776496365302781823800134332447568136504407989915997185308937200967928678395379417081361485857947635344693948088748543369643694785245605137141557979238145678837740849361663823607682221947134933276996238289549650956206885475682979567526975574710752488362643125378182731852837427651881688648795669113365254526211424799744527665328164759485208323764604120648006538098286022802761246649362518000716405011187854002133209455846782026940700432410804516271319633506836248169616739773071831741168330759145660266516100943905562878450473988589933911388291577180836994590580087823568955932594635062031193843284309630274886604851864230683253773531399073082201946993134049285901623171979448554864229968156694270362524976424771893193294799529797634016617118274815324277368176817232983463261031638884304297954976478508278255002605646631255941859520306301536710106809337250064301286729544745210884021448412315249206752548460966927012451691408646012383490229165159765706101936441414440379301983564821670250809576870051848934446032179264016902292720011828920240839611799483107303598449996756250705629128110984639008357521477697768554849534862834962806444902562552665589779800754194884110672439215638052945037654009428558521414698885235981987660281586162510194085895158935261276510488209797900557699834120151332559217908754882730152419923009872932779693930318467250145630678214624730230185701658328028510124001959617089481798987218691745290556626062261508902406425244913915859311635117002851220497452374380503022302347911110763699084954418119888875870985011772109702910188338282412627554051875915754699158207180830079110207753316557853402451972923564578610487972385142564624520861293056820204795864464333594601390860084001028020282510541795483313853877747145770183512743232846987191162630467445855922201199793514816080017212655127995543944283798185493717791445333321957472212100326393595413324200613658632715058664985504103100906445810268458838824775642580085696942321472770281112882992594210002254064064724791436465871190303398304646435027871149522672123920838619269819624560381086858671560455809988689494807053117674049579192080819882101953273790410857040082831614584133711804346122961129398666606125840193974284427458951628313466646445961231738112251767781152265801761033631058714775068264759963914039187269248973666684713108859605181032844175230274654950104344139769253671903766736416020483801706386289298452198937101194409450444670893766512187571576819586174670150945779056079356925370079838386861907684563889499992930299330155736042274931069252422569031159044867029517365628242793843748469991924671433671895045433694488819352189507475716312617161801793473445540135519600378657954225658000487988925047919396989971081263112740536776766678183269170672098369822081760296331349405004491794887097673432346172314786939876891256359817242033879313738229964531031221557718384057976140961046033750595777801980047452252365135684888393954916661034769300606987449849913716003297767337868324973151824639393749669432080652833401933249908324847617661974994839685110125317076189336288974253452595719250913199580465183684154002749735682768211331381549357884788331627219753431199577314674240859747309379005400039722886111164692339916007627336424366463449685328983877684252360867230874332969932444176240245137966945837005701907849376571837694137743100366687092517486849587977697935341143332750542856454170804875728856973270191314551611636250869542943057298811088591081445109628279134018875170168051060835444172837653094581919492530964610657960331617888002979391081568809274607656901115530957103724785004625733941263961803734092039242689590754340881385542756690480416422505563224373582909296466308012204180946393537328180075831649762288467513700471644793412880301950188673800713804230009034363964413902299175098063958559407110508906226096432931659562151387096877623349104164441704710256051333229694789755444721905770644703993944011974442270465024627026775258276719190403088428847228506652789539533934071205205959389389939299277855886541060487774111048315688102972455688228806416091669821573208865683565738733617696292947367494108861565793365945472391620253377869098810396148053347575449789192676417525522405472661343184629510636773865525072963397268169121960866956362491021806438834498176114504495286885008714891832930491448519220855087833314522431102716518847656899173441041044395936804811210991720705217687862651338366319832150539109515307974419087699687935812499439271934431956871152454940665389293919226805303025014153007473607179746458885197889652012647511248941602043022815441275703326022436450525224705487025017107505455256231419917474712963116745968795017113394461347025586760782946225518258814603976268257175658299873766906548035614427027403190611188444003981065158569216787167610075549557624793181399851411903028432329834965460509683603554691882294336544911181917226911890253677813771058524750825997817552938342804484513108150375380233863614031487994887483888017646120235838220800278102440758967659875804813832774974199336740655825471651726532491951721209533892514137771984649915520828154063898846141499832276015488446951290364377036418316280607115948029832988628004845743698191508005217466550877042495881439070725660464718310618205186682871973497170377427728825778295427660314323170856255809307876554509107163495513234059548694423172313021364514250779031401630695197047103639809793270566227041788054029724781547226704643917317093050690514305060162158732478375838045700159553267523351659922951686284752038713751206154412813855249310339721006005635076774541133384650316912166041757295403593286189395744688501644939914856560915237756063278898447842991299782147412380909194097432775095501474030468423587467952832881362486422972525184599685636598911334006917908775371501442036917282469159780969670098486069889759011568104496781771986945140581595887549255498334989476556756575363567503457984076518335994162036714714635475650071270530698776551334731913333854920077648359915776333089862378173374873882516597015364062020959995099918226473578440391790307284381370246416867634807079332893933710543843243986040327115654252140066868248092166997022594387466954746211438632841129238292805637020030010665737052744471503972458898172472934892985995338091935533833295213095926469105716423261239360428196259792432065431379568259491203199340611049150173143570503597740273998253615875462017144780501620982896960812012882100034428702694484040868155833440904080891760904156152107924337442136636802207639752897509516946192148535993021949137640401595660641991592676872672797455790076997398173553218618315908104604504556803521220067243563497821194998304161334507217470907732054954065437920155746281185170809389759835777776905285476608242083624342277087949694991958526209556158303433751528300211935725398743332061914689257303386434075895736663848787347242477014009523032307105456423837949830411359643760681135060065161647567709246669130019166781584851441092314282099239539251883015739817460363794044650965413810782745620449732004675456882027474488493111214112578958193486412308540653725812802744065207685407990364885521836041298672247478323932211211311273582973232031051591158883761535971537225316782214049681330791847695024817704411449982919109991213329201000861198329307412228244318066192076819381216727143786117671272031399096469010512100982793448318259654442955115747629038788342206004422522545137915833299623761804647886440589337881746315777077490626355286807380489751441195528766392387922614981534791178993138900620068786887047104858435753022342685672095462939350628273419552758532896486117350734275970226629197246214680788434574967082599959779254881689329379253194583355064792875107013628494672230251512832770977636282513175597595676459002184541682892741294597129483845798354461350591078128599523498557924901393933676562141915548445364002476869398878554394282823825017239863702632785651434254778167768756245790047390107709813904871493031369846395687542526747254712682164875473214499896081304403865114986414391671977038560371196262361117908209083643406608728641355404883016338773473395562266025757915828067370221146796292300891310374967325406836187243973580472014132875220944173103060316229830331595203432118032799731132781132484260818164433306846234496960500822076459613920539420869701045377063471169909907931978795806625958318868912856546207936928172287376284553412691232445803664295293732714265839632723303455123567526928793235822200055181545329136857633497799608287501365918821184537543249886769059863422395763406032481944427412113250649599057544108329434699048592304636742725582717705057826744313776301214557158368779841173716916444246093254126546691735643589348593053586488083699380404360609894923062148885565478947464562390112689407304918372052749813450839779928854833264666486067800490601937452624956688764041746355527157718392675750759090199018083250837910831381099681802198869319573345056770462842984187836122995181913412343179883120100905629805660054745296342592941316299324405182501178103123804166741019941337434301153713973006078211374175558585934801647950163645744456967264951388912127851503364935181406200458702533175716966544561197368041293896237254798226293921722925866959382057538548342240356835247216815514729552625994799794903850259664011158932672498944000789105116335731604241378214068695687151805134918460118311483735171710180325626799521061236190058355022229541433884484981854133800379142825845289941179485457901235789639051007818733259258389777651433735789146031925460910175132515549910724849892227896699020771327280526360847058393751034725702953601394951242904998888197148958890932028666776072565285485767198146851427980978402205499494562841169583823473660589646589487055402303618752133099093669734199517760723589470058364568402497961921553402819396482111199194759285850313053009464842426509630137358251478832412489570038584225796272221249589461136682331192037781128440740175414850281772861663333691221331725196086197523224212189147164172210831611789749439594980232933884271879639146528862027289672771924905203118501614688655991624203892578571432616496295162104438964299334357350780007898104399489652931159832117932598937992904142249061195130612535344478481191853138325631132615449850606556788972857415846863530810949281261767507878007843382700623013998484157517074614151780104518477817434541394093411863167277531284441703238994387741576344298676500632291897062367502590288201677967335352654962438259714917942555440251673842905983181174109348605762674935479749828873531931983215864976335715031089255263816374201848347308321298419949150519664646765265681916179310594996151102546277045794196353370117224004919260257339477430190166747002712620509372390550250363266990352939756303122788227962653883119001961960047612329616862989142137273817315914152079703115993799821315703443517484993062021628613842815169436637857104586358609834010587299038246883733514038944121279100830690143240965465513802759457849823959255716412516085622010651518537974473749878618451644583316820928689910822472052026298348127484998962479167154223330101738355319747824497632744152636838231372485104728224982757910764308212962006870475687670507337388611230030108716754341469862068054717192154642225305624078292053615880694301038631154979810672520094070891292868027856188940088489143891545295694822738568589180683252794813064664291545999405052052876261132306840660595965992913826345170373937856599292510014468960207565402366113276363283376041694319684896628643392584745822297969756203980522146505635585658604394597320848549141654906386084809868912800376325311172693247866506758044869750876999933573987276528390231794622325901368021515348739707359946790526745553363430363956237236563905596597864458990643713383601200408718735677963112292999532900620763845304850692815111063767557703594965024578441352390046053953975216212684842750536212458648137349301791917921961565768832330906448014684947390478275064765835166572238549984524758517028199421155436727915004451434028083901609885911114358406366565766324546659005462094977754780021820037647144754221626471958603465488885368733895423784802156863895322519601285889554076186916283200919314244465166185599711471895619906243207414429536565148311597332711360323314164695919250043101300091108339149266419030838468077436070345346908686698255566820252570808094200521967957234582437334954538010095667023469109094615681095240511596581221929441358813343564204066961205490628076732842648531658129462440151551792268479846478358026571121702009573587642260347362969660082334965028029522777157457517061171888678953715585879695295130326437533280942098794296023249717502228517141630148592282611902542562189355039386386279214696371442458740347596130905120157697024641592364878607104539914046965892567094534160535003016125464951778501573766835865879503143083915602814646927445318939069961575673380579357890689670462259233246543693873958800202166986056000095366103935951357018931895470768384227429274091370670103827283490209180558331578154083525389222372889832730351451619389868442092414585998196494035846381213070599156738330729805427821196427761154875022965934907676133193285227027659229049954214958648165885852504029485246002505063171172455006569821570422044462972108449963523088385916680025099307788199191766008959562609355424295637097991747944002990506018023837835289871216074912405954305716795364369806263887700674947456696625832923470594047726859129991649042001208949623916531695838506994945033126635622978303371695148649906959963789266996789452332946809916102704214246298776413581963151759706863685532440814112611604230325312174908144439644991980784633084363859718052614570876696112990881657081715529690415109615469577916658979365386504343257028572834676807885929208043273886453769923741581357162621913946587442397346394148102459211505762941562998541824665147270047898743035011102749970488115856475597969723843150229128064036322382249930467576707099824616572407132219987343390089662067764527719678411760337656299348070716843308215905705630911863453087840107270318867670478272509212975461918412891075028820779065254994916132393069093630388248180567045026856578078659669393858310678892770514704177589288753540488275107796119930793874144529520395405955977438054015154976682104058798964730071576428937883832534787282353129227142503561398120914581237023724515465078046951959916133785973422241622466466288677623009254712720143996232274532442606727369388893764413960719924338057923902324479802254120769616543250980805105572848908361382883413641332678397282528320310356523226356644037239433647844048424705295263391980883027625233675666711694175770275409460414153783792845055636673557513220305936716897371359377176198217455711183863873560678804135552667344991759830193542962327514629784189885658196803419406321407057662472873155378230747690939205597315080837516292145362881998758402319507543567869111363692957845529076759341119691476195274489579036596261365562911071017491889312620855564264398415729481034227777679134082826483883342675902500518426393217077415722292133601215622594731336657831150146527190072168068791199519982549414694560002887053914272859475632451995900382588820020419615671249846692645918164947933488128247008851196685031402970740617155607033757791524026003781403947892655179876186885190483635677337742819996334183684261956778164656935124935952555596182480912604586515853330135177051249892839420770521329328214151656194847767845124306768830804243358613853023539332324379444531631806398580962542474914891312090674952668724236687860171956861528839772785014714930909835537326728213787332185439740790877475447565253947993503316875385819245969428957686751256000752155052882641577011507978859263346045385027233997396067614443659292249536013895871324481293164881901323055637971741416342397974046052909655237352713703806972569809452523367723238136596914377080963459721742359619151364252007695575035088341597054368726664352658277253159832650724563645664966976166709170438306508869140266859023306365979226072659007403941405240209554478570579084570595659842934979027203022904517453449175892639501815108305710736656881774665689014190957018458911673617419817174364545328896804405092803180291597645845685353662602687127942883139910607706586480498681428936552705849724929122002961941638732505315108344884006032220011872692678571207495855430616420149024969184266475141114784449249373969014173677245322241448337450478879685419475337551569202414656035962660718325250738392071863521553254948780393894815445225976751654714005056988134953250751061917919161287874654203268031354469591028429614837026466276757522296907964721935315753499811268306944281428104334239114745896339486170905457913015654502586218178103269182582062214808075450338571726542004111768587747169208183257996357348527787761698987401909992638521033342141058236505573676250636668496319642568223321022945788441513479045245570177941152475215728037270172712700033908981567311773627089530132945492040547914330157709138649915154662829072818684134172934542911035081634351510351118836664031987065897303178417458911671930001897687077249979160558467076338681927382601457630514701886522581260775793435291162562205212502101119673200156344499332854908583444230559055492555684333280148721868055275563327664353275585901072831810854802158696398802064796656927384674631786552812834843581602985827884982838581594471282925560197189481312678467907867125272035469005509811094769947579250688048911586570150256613975951681509216201720400947968030149227417059821350603379286147538022652666291340283756421298907819225367548629290850577494544168231308612579628060626248137972209425496099637732346370336585142190980172480665845328646184696626903565056354744338479993339430430087556127551411642257732022445884451249635046126331744876938796844522776117293798603862705588592781054365936581794539466561438263241433717564534978272175801736861677854756233382872353549220567549932969038826991449584534814139974851885295813768150731491089364426431691092899051482298310961409372672170442532753649172327279776309935303141793394722908095476514199146069734298391544697117905312085320922103774481773838179068053529894148755323986090395415989052242551716300680554766636442435094813370363406550017542908227161928488997823741096327481262087275959943282586071960097737877462971014822622241324193999025185583280329267013959535659258298276384146361880386210253586865399921933913267334847377990841099145570410963025679661616916215195638313002464914606343511512486790655287473560605791008374997503539659109252724917633779160623563171034421259693976423885368678304766121432880440138905286456776828994411095569374747451488453023269165377961021295028314848038304779148673186909409579903597634037411695017824931945137348603081598048880268811035697079215229321163116119873638094770815274410226602176014113313154817863587486184826428027403914770345669111085669224869879180220383905165561596355145702619761253715344536122421592372132150064621478306222357190760033671368776940824324327299857487987965020348583670044703870867176157171878777518851519760697001074229141404400501283310787144465052823939139923311809348741614303824622452839441980747948207272792288982640145136693321401023943950242971645822637941298461467579145945944731633563457519203399891080784966056565275684760195668303719032093954915689046132288291404480609558115256291238790637192900289448159592825136325454979214847966386351698664667263658969534900760755889710254599321596272479997823120901301805243925043540535034300381025116591085400944424242260636972820001930664891598613245296819292263566013289688886318095532376550315339472469321998068905004245788573540704462920744894535040268732538201748915499138457871572555938530959325199283162565333094708939427215135544211389069911480244228169688684378439968729133195824254763056727494922477182223512352371517035058660552781260062370178641967345745440557301717448815507872743339675695171637920817496949696852890646106030720268135020969599543368086325534816181005094123566483224852220274751495139734080371151031651392316858819207166264675524288470582875741664389898073073383657004742518052038570256110465597282787073086381243206568686032253015080262364158917147786927095695444305907995895966979391758033103334549375864851585227175114972788289159877080125715954021422294355211145944509442552892172035645713044356673222457268469696113695555039534607884583574924701068593711098220463105778738602839303542334489839376297455796824807993359998418298230303801245541721634915141228997193279556171919459083300082116611230167379952070030078589427310955729016372984402377889368647799884066903964679465908509204419385753159429701952020883078084061689606918741159283935133253104611777027123349946533843834199648275585211040049220140111626080984715133881834118153345084563571547171239682575478252669071181682136358045643622230500810156796892704953356968207028760542999481862566992888569790634514149966645844544751293930891728497704684766117168816278799140156735524886592243747711552119349449303806493439545200149062615945808420077890397299396563197223995482189598181286567955709838382923438527257634536050750355759871774986614870490387091658223278742327804130609744006195447027269330118226195060715138292253975323804426038316418487469042783776172668195611596290497460451711120330432162047823201017243491400100966344728345301082530622160792629737912956042060944234152330694324114422510355924618042892563044217901058220864578997588449977209505576607660223381316177969495498613798948531504868926982903692760601442456174721963262380594249935792828868837872863735721535132855515840841211511288934012505519715683025161785854230846448606765621357147809523746643662610155262085253631989612824089678595541978803733033606251939505367573137489802706697699976726448381619480849926329890558897100539901469882705818173247802463826115480523661996108720434279393223561529173986998000699913972868827270422051675485744134889895396292498045387545022529509138323691033585904104139608249470455563505287147410720244871137368879383052881457229627788692700359919720056729838934164297426686137152412104904847227823155805372523011171088455915220305631749300621083767660850164544671985405098142259198425063554168779079969624518799533298432653533981355541970068302038549939516735589438938521418993566958938272950001226294526346821087663581549822184070732548641028136113157349448932259268515011662158481189775546926163041048368783321344401699091772888358638863261485277360136210315875782120668414700234073656333926102657389937266211146886360423809367370500005605283155748994539143524859536048814989868981408149638662925386941256765631087534763203640326589973245371201709146668037049183087916870558579346622388057692046331693585599385003634440766087489958623630515797860951338194926853250567727839829933854770629158419911661332232729323485956844909206035986786142473765424584151203796434363930985461126213207643967521282355892192226426675072057848136506818325998175447811972163859609710109658767273501751736186670180062185237395158856831553945732259252716185638780726027744001117521174203174283011179969548532401063546366253704151694645483711209625820285983641549490216120940824847362152755351307052426084530040598996812622682587032064340633619320883842790068050734380306798707233131919384542923181688048981921015432850451853038980759118054360257248215068998451010417394149998276451036119745005322813438546455814365392638819546751358321565225131342384919919261190160599266573746885973615031299860641376096739366641492882690350886674621870600739557837477280755779514816063290772081405812212096272306658656793503535073322224264794875942868063066441909529180990734325493621443735899423221737558115134713043119645521062847261671516622198114599303200251783377861813406729410601892969407638033016487211983041244148910757503368038592714728160781853677808104807575084006151798213154801925759731785669801611913434779590127907464810704059076398991781461037419457454616035746697733736206364405053040849973041891991494721003389618761057450696964886715651351493187563920131284835665435732107103881307150183833542149437273073707130495409057975113916233224491020031472768550426768963646085386837125867361610272561478930012080323669817432263659037254481943075658200052073732948635004318579760781681290072368248376634033052923956500691157301553955298517776241138493640689935934215590699085650863124827672619708547537093535725164197607989986372796134709479995202330354370902029917418529256233772365498035720670626303772218273674024805923205574914478174293464637923808865214033543455422919512661128081870917144094356096659953307726780144178062410955121106254400334141564440999415416110524293328305169238475839845280358738824994417176711834396904113475920487199903246032612125470854583318593721102423718828221551544033759759991895978832902318683302794034793503878224990743847021558873671631477927689651847706786776968016424646864578176584767937541695775577443771774442511849687874248201552498462328338186284866785311407012623951063465181471886034946687864040199138454731249625056150441143033786754297782091663955856110164338071845640084933336629264432097155010717524726153106824040300256802491372397086737578830681656083540262638973738907135392671389759734435147671667651444404306841923831642075317289663943946809707146971726397725150392322253828479521228790550566262144432399385115558082306136735929059058689233906452121504226053330126949322992883037359831222879686582562357775062506588447096533947684406706888188332169530109306673568691905428087926175444811268684035588285662657337553553957957917713820877183821585277704301044384695067653661639773181272079674611442005337085248560060753455187781046432795112450550022429362510370174722280122105070205752066461729242263847583942210242641607306153661565058679357251739424985923269469442729312199470767724003825486709638041132201951994627555102297728763808591333481921507430844276824809438053662950189757621171439235717443520924988833884241222077112626166265001469304310645642678493355509508154909809861947846332551025827160225539499081908270235132643097807868173781641484452491088795801600626928314704289798884760869272431553817999094601501230436180238260391632843714370264031998007450769447562741762079545711601054002396981839229694453441877750618301027877304137993763956480425120441021025740158211527426981326469113330973704747456550030229056551614887505442563372189977295114734550737152518484021181955226989295474355275323143652205946677972702266609394695479011470220329155232789610254690742556703546194579493316876418738874180340679664006619803924667012970836125156206755037092146191284032751353602592742226475354429646927704390536865875278466380146583527654526360051548475252796812326566472518765694006901963841367189647746177575271404178447801269805087510535223602971174335406708532249534381040871303418630594979467469249051526121434770322699104877605496478620268126956049470127282282292756443574666520347210039472948030600773489116169330864222077836633236414868618634934944889303769288908611992892526011635815740593188199015639712386955074697940474132108382719157589358287309875561775604301405113598597791136904197762994894392683568040209428759879301712604740669549725344975207567790085432450714154546752187712401901073161031116229167532360316373624067457730031782395997595664688577123080568281295604155844698397606592500440799207075105523594655780109548057968411391200893242479341961168526909560516560965209873014644117178012216382336905447085878166012657219229716409230411592358939958941723114737173600173438170447467341154670050179388496330202106363212893661896037560377687030159058778375218260147986691834421233530080348371552645088452952939250318823288969431043587468144971465444358982639554773760143844985351157068902123527193595679468965364765980323342889996193170933330481342309320024286594114830824531804947562602840145746293596920041521294290271532370443384294289255250394351249167436620116642314340147175797089987534860539022377825652592007835520888310529136808160272079261174633862328496941976650976036612775968508339123494036207666686751516309963651992980130032868863437983422999795187232374329243396835201421761203123634191036335508385257879338284924780801173351737661506886024710770453834161682681422232246364804298550388584029000488743453636887148102435640969240633189220869406386098734341868692168550658005343074965619146078855891951124453611462805784901531012801004584756208015076817870310685335744457564224063020375355926633629473757776802991517543877157585293334110019692823139842115103608126627966607938277634276257833790869630357517985026877487936602638715066256451541870638930710558161032325346418940189840827634368307824928868809158021343089507820834815072947023383882099981690387092526936357533699839952815452881285337519598119356768598334550398391199284336333989017213132073685130302889258330895949294170377716214329988409148906689713852935811568919178694733283847587195166485452620316501861957055487398994726529951146485966568974501102006531645445462153647089856083450197969014334674661830366507697730937347823994776171961752333650327075993437251581163531334526482460778432732858491932230826222266940504659509519617931279481146103999578062584105672629431653413686208213626704484578289766865102463240600358849503046637131796433333494524686838898769825035571582336404902871252862312141069192424857508799602051323165259710854910851844329778380105882120826916750000863974441299046538219674950601807638023574899957168436292213167822132079252630174519726415581354735765695002085674893520727511735154254740621702088243124875049653584499360998019116469552507205167381237305995913856524598166461374317203960147711408410295056506040406437517315904658354252567409899248147016566969078358965362853201229522816665238843945145973274121124010524963007059244003240688907424437479201951041427044440522329076155106805397816832879193469764666412585575720007046615015163857183576657023852216607968616106695663939220224355316719767440363873499382838062750062981511826697675850891644627227825732352912264778974791042109256491322247648879892139249485207001335279922630610982835666286583847422487241048672861130542197812659602844271237020913805727627424387066127487816564496254223704755649136265506892481340918382726344236323848415246582776568233520267343397665587774950486497755376721829247475752972692355443827025733672650280903491495297116327825251646302169855859106007071793689233183006898910068941088574952210980706563849508502900528728045601250080558974862277079368001031888594349619716303427654975584341058357672683319852893809998865625449520798183470972780342927461455774218940093555865391313026902541956014201566735904851512307114514534834142694008038855814177868097172809256485352930349788533110637244617229915856262697243071760739813653505624490607866640556873756698072065830972664165248882930226810432167900042242405133026055893722737967869771315909412502917175233508756280110318414168379656984842817731497894941595961651746758638136521534558467540307995267223078562927592975025256431541773283172051949606853940847151344132971895084777464950181763408796568586584971447726641370968380512509350471679246630506287774419333333874056047474849495454160390842141664021996549557409966261428589455951525071298690427337024764626295712178127629104538824552431487624508269691814221044803187911394389555968981356206325491643332484309231903631329452002442422057237262329384634710981583800587019372091212470874593890167400924051232120239703632793061142821759844567385404103562994617792614030219651674781568702534892493110949319410729894678347002970717505969672680920387183841742001581492112917721293900504209320175849756865121091384321888173500603980612908602379626008624458112253843994779852429187494689249665527931556109292404046264346756202561148593289411143147859105352246012561991864406375040031441434045170685965291205347148388443290240935465356585868027523963862500266419790548703808626384010831757557361449152780201627233557245939342194026615890177625945002939859395003952865672029606808401649764312472635846725409512868533862523596088868743807220433524276711512828318555540445504667381123745141114521358417623721288702832748522234665450822388770035200747290201037527110912144678710814726761784749131274015552642466346619926425756633010021454709143772546523454371097206129010010594740549289268098468456135051786510883921204417766048057669373043766600770766555510834083640031545775025700111425780305046936508694796139085050219843665667152682575921310008872521733711161232611678358637840993573009849579236950591342296719838365063500947228651462191489892669202943913934690650788252471302253151599842034442150318351552527535939612363240714888354762338467043484009919820345720164979535944182312704173838044065179780125626312847217705534213044063325433593705415664586501484896048221051190957800243762990897932645699636716788225778022232150912907419470396923404617130056990117953457374051785324733774507009366277206278587913483338164500519129156277370549822590220460238667077979969411896726233225873749252241714581182609083074122568776403292242955311991455006374674777336587393177498430103723294182897821540244465573998472781027238904087849774698846020491939505036316298507112378871684099049021714036740095842915325852335302567078534317677107750164789628975618871117126647749907210144235616264751951746375159174451216511606105252564218597453270309586079197552019015323370879635546472755425695883307679564673821215838009819932526822671812317240435125803098362102767996068765010846373836378885633533120245789901502191086734284113123272729622717955107805034730084275082045907010951589691569525864823121747075702574825085072421618683273545134770489321737064442217525226130881343181742014206278515644042221005608554843556172075677867827621073490026350422367337307627752620224060062955434238350556958705631370406887169274645608026023511503536797217326185513935600058569653644187597356758326597360991124511997568596422736087589309528444510471636034297535998931120481360722635491132891942696930748990770435393679052125213143407070984481736370842510247592587729448923867819927637255968600126949419989292861233013643269029769150226044802066641713124799634644955869756445831478786962337612455566703024379882036229852520621371813863107053910903364520303578222181741324627739745653718109332102377403654055846201980268248695703392895748779079945875628325646690188023721130933327439939555641172005907840632077097402168996588955127075495750478720986165179762808107816841092986905109353712452513045021356300943292944965384144026242462621801460806793927372548687082439344586326029940748008877811371602035795348626242123278515347577793145506139056773252063405491361065192157406774559803974116144529912543317674666023935170202730337060336294277503755234705555717976388727583114911589074618240316715854178160789722556942130981299529317378401426672641858179531888380563872146031286898102563741843117862156104031674004922787500256497594433500932205705184113941228084474908659605837285905069855258853995348157401211803103389566528400260436868212528559566093398625580670531128277081009792805771037755431168592791846788351524219139393362264000090999010255904792845734896437509956968907290808729209951686581492326455877769709087257014624658969480397770020841436269230992983399061893161011959354172334756171648217686297905329672028631142264865751583149616826481643953688074824466451242779748904447266831662423210384381689507627011073156534952256530099371188625978902663290982683608135710144294034634551253382752321595794267337808116489465031453676995950636978926634211414323498187006806283246362799333066566608919005974757265658641126655936881867129980553460406269013529348592313777128286626462191605274387327501267767545195351079035436991695700964936734153149763715122117743160786273976117336449306492436847536439503004131815834782286863006451251066094325808470309030371250464520064932645974827721508749258980150764861579501055906890895372393904777869028235893850938942748978115661683570623315096736129054120887509128257692314041614899942222938369183794397883708368913416084907522273164369666983437843132769726346226998015174770041564004877029494316550088566826756393950743333072080084565839699226870690180724583514951731556926546201624694035584214563985224532726806902339699954081633498358216856920586686282866954773774299352161135728362755325588949289255232045016310955097334089002962609544505444177628584604550299546894581831458042341374932702979933079863194104827949765437622471592905304732665351655254554345084195464430259249903863322775828544632584966179655842629830294442965312755691048494017885075880509728709917080621935182276354028191069209266597898971641199581446213097882386480492791147229319333319686333454326327755676227872744366877464416688299110366930284342324500742852712500866698317351545738161416491089718150244390333581828381022082971581976609212950769782512690444239283844563600779152842829138013862206002764842470689366047844654100703674855381728640584918910186147622949232959472001478001528341647789790022617093619238153195465932487742612304378077940330909847694775405638255696922873293914912212065982784809849182362076155678313426248941085098452681817703937135109186289242870182530313802291718061100657907126417948302461375873987085704353296736526889732356238738342509927981137797769186147943600156143575254226451529433616494238916129710169220067559830618989448012520281552863924581283641944372269891278214996135263270064128659825187505567464447035420291503223903165449935909761336326982651070833124235215405482503328631750788691947559462445082350767704429395972570932210891378797994391349125751699820711199651210020001874736747443462712929118568843728426324507797708194471309036934403208437439377963481708298012475718769837037183859965696951567199174757903906811008406995793830854335807455019777783838791223834210531364678676448620070443314974631462162946921268996189497216993880140171739999471665738624509526328834350058015333126022686457613342696108770945788834621460518621268444624863310279162158368265700032790914919688807273432505060662195127936438741406264600110697592761604816311805813687361198394552026391404834556932954208703099708111893573462401282050314274607294607333541845724302993393979395399635979722145734159719884831201185617038812836530264230919774280434083037471701250596892201398420075904874594099169652457650970602848888247909691316667437027598349157261675050143354617613505059174216686891448491609203981866844375151347138028686066647170222047884833257777382316630473732867337441104526901601662953971544642652582179392622097655607869001278312473461704647599859235991030867452483769535275347803535084639561513731746164055690566786975322810085567538147975096958363942531738928435381957688826106682407574260028545751686553252116759571628448288723334857947333511083080043337863713075597545600784729577233684546346229264036245623484729602160402456907398367368806433979956701329484562134504575964001159043095574934539961252125640824956179128068853259720406523316120090482109378592263347406736048168615103798217001027606326516532365160849136714305947136151068724156458366606821322736112920543100609206887873428518360901479730430054107272514631977039431637610322817423530864906320397440233514387722403926576550953984061044232921579908096288601498324839249996021072657844809513304203749103203922061854300791886264238294818324560113462184511766816626679434294536381949651798172249151357329070164296937505184087413290917673214399915749108295919355724504253084074154212407801979458671086023998066754898967443029534840337009266706737695571867278326445932724977168399640207711164236968311760499063409639582189219741023476033063540842958970209312521666583172043313434916755440478799115224716294841620395486091131054122608481926451941558510343353613303417692830718852326945736330742775603321990127194984639013010316534124228576977936683741690653995967402424068827261252363938232312850316096999430672318115149552806879093329537243840473311543787067288592478715650869247989845247318896755867032456002444687015590452637218232737649446566387994801013773916581810528504923319163923550650308930305681347919885240511245086935056532292928358156801799057949876860124431247419835762744594715107029850629618879682049558250229655637165318254175609785830152531524611893426866313155525365227487429767907326547309530635099062997135152995152633872513084447844794892864792655229537177104790687041886487819668898272851055911530617544494827115646753117340083070808727982506179657829532131378982229466343315023243355166256641133757255318716649314856563618538816850981996839387429811439385051810125069631153306106650496858936790412016872199334168748867272452564309227612181286058750204529991356964678045194942757552747851327795432928273899096996042336836544348652182117282881832562894557902763777533402031742901558130646752989160081232393695225084140259616945993734083097801266921691378626397930035732591160237274560480516632083986196302775942469242029072068644393163010904619716808141489162114874466660586457896240477402717304857188040500819892915169902399623387077694213328870205053341048898298198524305116452418490035815731997425385337440872245195543560193110521202052753419636832541188115904387924671657978500239230020171027983203247943687354437084949196827704193811103447138090733024759353607962954156589162198170009760549295023952023121135779625777773091922970485700871614170214246797691944851655945529812866553149788100651222959372659166513953980776210545668178607864784038534905799497309386335616653822671114393161563566962214154750360896161477159548542688781633899935910475730008080615110183633012574025678483261529229337730434109150404059395346196793848549979213643134314019507056096559439155694461567612234017845413588867423280004902414438517961419517836379870917174430102026656721830243689815823532074503561576288861348454790196810276163407127130023263962357548048728564611078331836461444424805114229165216313235593373941399191763586982255537034267642230222139919969009040880089576459172364892646784864832322998019660161773768255602646468421009545720106467826227436860147009017228066536380027885110297151306169442218650778037697605420078658235812420607940261934778074708463335505508575461757915409780896086811568021596017219322975186281092403105117588202418343040178753280498384881194311710641039563890027788591957247897175536135028369685940311862475700168692383646096691637300787981332266816137129933159343547677680355296509799248113585494050655914076293102967141186033972748978385350610083618663747906064222755645344276528737259659828168665092364347712434156702110942248696727769662023496964574980083789726869225181515436012205613741371568319245588536231419144384744384050149634420263020925004167968712537283227129054036246934878937949798008948977830720532975987757255293188441541013861210405248807256313010657430549325282287572505291140682088421118309625805846436877666773955370923965241946388359424883009926326622832647024529768284047998716095063880928660902709448344798595229032339526702545946120499471553335252280207871895030571257879005544565572415075773516813695701250434518987740524033102156319885746207381341749460831140482294389871468976579801802272056529934030638367112495210938053976468572500287148308018879225584673342519601497139705964974845195046344371974823539644395204951395229265321833400920816881897317338146932055399472580902979453601481621567187168991533276541559747426515577986715409042710808296133269817636298566827895222333677353268450906707643633890717357301345424218497624377796178218563217478567119808706717979603674627531356477348406042287930604868142989423436216853000501246579182711294978672998823336051318178638892107922958636569745901496664947130196348660616523470645547957123256683784796356030343325692982161571035535108046104015094975782739795872308784629686218050642906711608758208703904070669391516624637992876304852712820776800987813107401382841984997509319709743645117783956724504002230243151658345425625793191268561711802040505904535596873480548276475348125811233500958000371702394739068168631168816151422159457612439626949214568603795457429446331885811687356626431894910354382288667613180372506543351681936744910566677449361670234851650022179010992864930278914740755615348195885119308756790260360636020886777765985364888256381794733292925269855237081968868563211119154082892354192880287156068609798899519133408477028480686721858367642902386572592578601862660345496197522338116566646961062481429221302195605824816167061916704438475854365794537563667440559078799644749937291895162235936818133696789929981226724186317049129462172291935076065058469656209712129218751958867479563579951049556122703747600959967127691411070421577763147893197947909109429268576077119025577909337679663889083646168397765468752311282924594216147634900536044343765262417123233148432734556277137852492407310915091327187421680490099222394225491871095750660956057581240694687960908697969997811095123020964386423136419643032257526005730621341844643241060066037576216052037684899581201759735687152545939444528074701543366620649348874752771568124374005574370809402586773540587061182104063703862050843430058437625864968547977372335715339720398722859736175288185335730810220861765578680632531143893740070308765483353422485172438717874018183292562164102834490380401596905687212179936164405687086619244025206378897289232393582507252097806645035832125000029240270122575032405085215930072710597767202104630457532909458395532089906324129493583980140353956790134145746365170493215068440571983324061939638221457459161284410636962090724082717110774655761466512425116557099143889047060282707199048637157003294284662615822642389448352061649306272755520543525329907555473847878158873548662576449479824790366797098095955101591863743354945548850521797355812423504778236581800913131871461842517534919618077883957254968047942752821017358250658355967608964757937088146772790021984207414740321755129840559671257731434729261600265429012388181578959588159844958109930007507929331446643135774419592541650939647063101358828903243188930859188464547476123210750844169456116441623588341577376374619022811118373639520998056372281753434895166275552145210961249461592857037040730487293726992324529082576338410659287848611583058526780310930057141885005703845107613625623122847815603343175013194063922601632893172137990676131480127469633761059612811414335196055197117363141598882252927228401192161132028200354184115572225166800409608710451203812471060756579425366010785197587556144988140720994435479702515614839649648436628882076023194736213479939086110623316911287860261559172621355966892553360286785308794780039712854160292727150893093107652829474878356545118908087347510709355432276478808856262254738130556909027385162787686270732200170390483758406106251088003138072716596217992962319173234154833280511071974551110884746234676063202601714840253264809657585099151379750083302697161723583414113063777590090406674886568334655260330929761821058873800282339509855924808928208109518739620737410132373550088950305825661881857416376906926223938209426092021963375393436615065132791442287036316806739785241677660090284497281612234974215958372626954983291717576569731021906433511546410497717393450882270245577340110193253958846885032165002977804122934984523184646835525025718249778147999887045221301579034525489357275960675801872240281135529950794385064501374836597948707720344281194299436481066834525437755717607400741455721447048469161238158406552282235038364416968293148247360009004701169177506869761170517914303641492641327978796635623237228146423129041876355082712781305702083329516278169065548625699318231114431654109268738002018224752005213048059202353174254672616257397627790153879517344358318166672840109966690912527285011028466254184669451167619171559246421481410800897474130095966166635337401182324215219962622065296726806947767388919653862670780409668143373411729861494256586364619310093249807301193178957029247840718560401096968478441217052737192019863615784584218444295800102116389465392562225026115848868421564707600906121593422428047657122801122582291590257418265686853481559021564408328267804720103830786597924570882824978555928050928634041680596218233545256506719083971400345776608396416046096386359946213537439945370310273642823531924067937723485313388105571510485534204906097482425704966897186761250959836428902662099737904210904374077124227261462229928832886584938406074619736084782189835423686990629814099836716911302534391042138548365488723059268352456433506615461067595828018154266214557878254504653427549039874377288250601842648139951235357751259097456255868761132097854792360113971852238602318065730072738769092228651846980354814067264194390372918276679868017221314285825810810383651443911905175636664018878533542932216228769192799267207048924942597286143301975184345259570391721148244108617921087213807238458728379610787911118528985882758052725124645387663724936468018197882331140350664477420593473595031286868195391367277401151860616598675033286459938027706411869245645966821858835528538354626984213048910778361562018820528659580314087364107597311967808755792543320685878120979647337360028664188092297902792057799596726949955684518033190592043237121532858685113693751437332406427597245840079281601132360162729249406678171011562369015694593582063121605887119302892279287588533980846606527792909165024358993453300330104669276943602439434632177872537255526569663309389525148612441313361649199967956962795328557020157817932424091097355371692876939545024801320018077276624430230993695762480974222927422227890595854487931100185843691736372803388638213365685720468354149519767574617192649899810828864145181114001551397475875891591167168627481052460778320849210905416557614356137705623476733557996042546522716831532632926349627242019852143022704373029866261891299045367791201524399266356277427863092727277191219509064654514857352762768931314062193467399332714727282673272168836467985174592515987429509152943535905445820557221890125620441304556918363715971372110536759856654897004087733544282292185930824511153402473359744123332877693358861070941435409265039725127319427060199581057855076661993473451606804366136074969261996428229506920718645815809341037060122817991664814031178667740494308852020488625283615706601269615848947671696859982380498240975502031893308492421436961594984413092364352019156954450952343579077602009813458365812955860285286791237275318473351665344112945868188522017083775374979531242665716913305423191412602674121087446095202458688114917463434549438458210480935471758593258251511163550854703753438050285050358894977893464544053565603907043088992213053054460315140280493223996753204858063761566943802831304849082695065189218376309066195467830965707024891021694009165819996662182778778637476830003010095181409974990547581050799801368104433384196767313303592225945965411943673913437648025997209562658258392148458200705138198526606534808449333714377637756251787074691597064350561398400703765834011742679290751117363349086523193790361318438984754211256746574829468753843961854173972843820258798214567713617847441492285010741957194348713708968505113663000955229924545997409219237870647885373501419335584123737574128919079851772609178191069639729774281656820952946483043003432213880266107808281384864652834803128399409452019926269275306210624494922721756534279130917540592816760663572165952102710044345925160684514338983511451217352714749095303888527952526235693876730385713431302184942566996084769125531350630195491604579637541122967604356723182717666963088216788741831333222363210545780368784652603720687848737688485441863882033155556362919866146994213404140023060830115303412256610693588312551124099312387813471333712932926290409171498107455431301391554413725989753360099803387694173722268357743854721247315836582562942864295523415459450728771972490976192933745873962049160956542825691654620734095993766235234098827348966473958167922607265656724048308987382637349154439773150770489063049979295207563055976659621655551406960468992505131382134520895358724920047765578382729699865844700301512338190639954500755255559256703073584791453371776324943150792283913326302365949189104688732252557716877363388898254627738282279109424306488468610427531984147321634870598237820536184350600751033854078077041415345012067909732372595935557299795014970951066750411296101917229559493241768207305973562359071263848154674103329469671721148349445209180024127353897335926392808092187901694169326397165310292531651348272483057508499215009785186282311805863181314011571123595031651168227024379290642310768071412079949825050753619352573125606328533704736021145397913245503503707417974597028371166420901257040264657445360373666242992401761644453357356970876090644601642026091599593257930489626198200650995730046516685654172895844527278152952054924670790828303114987485572497470345922832616613143447940463734058017274847019106783344994991919506604730519399260858230396089073301747325366781169473168324362534409092494242993512849765774955422982180036795894865557709778884235420609185081518973018341523489072531275984871926134593453631499385446868938025323103066025872202838645737778829147515707789830755782541688398318476620946074805579654651110000380736713793610940740523796457245716924509959780388424236499540821035276162196684285346167397240867300610351807598598860521282289224684750581129944744996497613702042799214367334260680605463673580581629074449991743252395803776478121526936810279441428568406224308797545699907039593118324397748036296539816639478666788736218852676491183117542510159434741744354012396833663131149132751569703664954794518967131459456806446533805162126168175425110620238792697167591242246133309763372039239113128935165193188925587534500767187483259389442169753755618788997472279120410974657017219957922345721566261389471776055975268179330207129220574046467658946952344564792559232924522577852883980789166887647534760950276239931576378458103731290859763688492560215271946134482520959281828921694199175300140369681539748853113417636838638827110425201375126153452268971181033910395616667930597137042160351186070138725213193029683317236866778629714646998903188036665682863111675332543732984485344350746255817442387609120040645538234555677010033605550899422022965488626259602086220683412128206344604357030698946913831770459828877555139531610624969218840712484102636397222527293123054208464198985818488048450670915009857246839905993286725676562946263635744590431897478145121362070810395681604729765421066504936964288699193140218045389648126804552974079051930165169166301102167841176820206734798696958819161841051661086644963705982838129353176124329299145350999181451467846851807744942125874049734777940201286575214484344536409582797853148037594947894551679823882273414057729484479941813225614303850130175609821419504960135302127405632672603282817989268720200562454828897770664102923024758760585616771264353380705660136171279940007382767395428550485765651273325025706322624219982214478885604489404268289517281701090932904444898139043776504739915436222499839327620963578579800983804788415577818869136231879068198579889322828893563178861184743860165989288289167591327771146946437735883571310501071917596446661975842653476234202062485259869213439108788102464181641970699945153982352525310456731028329604895039297710316158808274775846304310456094277371584327445259842055017614093506365872879491633918650690655941671475113432595360416470537329756911380995217648600417832166952928860690876366375677428912930705574488988570725935283142651935378065627156259525159716147952786401902216081555651460649889646708481178454963481922836187257071655544493761234243229684615923032768878266940471316335461347761663096763435486267488104286158254815363521643066709213797914808759804606054980216865548076408235346806030980242123935941948812181820154190384709158229646525460076926043098980746318531432616896363732184018969621166119510660384678676109859626968558717145355728084372822117123490083999829019653662864595707254429956783079400860390471134524707232346178909980207216085294486310768590461099294278149555077910509137994840520252352747271303596007020447189525288190092296328203687531823704866412099765635556814301126192725081469765866754336953982627339688162612917137872410853596949802856315711657194475308866826970458163496039833781125911392524377583827642902879271338152826228133342501097628594432333830952037648186393687897894513344964800611277641120374274194910751971312743781585813623172590131061207696619296397871723055420098191658136224426053809049605761275300003192801475324943517055251376341126377305400563085669676845995955965912903859475669733679783713231593525098614741040189947328222110075313309324383688128799238855390146382980475859164327119609482100717698183434777974476844366892339091775374141159972436378151157585992087914265642421846561118534690882401265477386868259334076483797435559430093246345745295156640508844498869917839000679051342060471327188876328011838128128335108102805518391165724931013674043688577520664030856008808659779501274016296840132645184478772994005357697322224043449644819334047114196660932668718856101401677064844720224513915837394296692950825986080249166718878888068294476453085181002069969620160757785533235765332294724963470668339759864323708357416712187301441303294404645447623752904277984411673236662575185882670502117721353029931488493834939770359178000432319706797598298720540679154541595867312947764499564331432082590188855871290389592122115638883427985118636896002838387580487830887703981909219863275303840590668052407341371784069063824932846137539701842007617984930192118816797979812832172945864088380529357046833084872961257664448256058212410721705552856083055031608030719205150511370208866580753983044303225472259991680642953729725654171402831991273816256954190853999393351233951053279222337845179313481799719867829915647692075565983317444999603944473187625903794777994994346913366452709014050186319466308860264700886293178512849024016916864951625272613742434980581232551403418605165092183962687018758359438261863860260763979506020814520886885791913005358039315189558763400994706118755239325836930530426614638138937810711704679308699132494311276425974343389251021815462548235128659942329779041531696673651293728224038671298419183535608930818656497451739415633301039691913059764821262135776210558318605459959614000462573181673665108438030660606024824500394020281193466766067324392297217520593283363230376377620757059066798476804676284622798868573436508261521237219249059491582911511246382424087994189670949071523149133824763694087399482217565949440930137303311436957518667227632859257097647360597894352940370306728428538534384665904346430712760940968506767309885700135159795822365617054199277723385007871324363035099978318467215962330267379648653529279346948133373910940990936669989288383687740721407798254362071204230847666121980129028439831998743145130520935198261965302686916110465669442445887665328402784401107215129096692509306097083984534528043697350375651589576412862470017146887556008938983043511172564648590124175121730428833039728926663225333773245788656921419396074148105637777237798143538943214119197281452234844318133146463034622046163679863860017866052542148386866080122920022322857880670475728392139514974870875196804588456426633528614807860719659192537819945871664099971330110960323915408624096737262724459584234718685336385701860913506836203939238206470019726946991026943080629010778168709684470506095549414560754209065477495266058479309060477791786728842457700838936600180482006026218619706885442906693530831675151981837512309000551917139571998144980763101757322153970603099028403644372005660164607446203401140119591617198409794460404132881310406668559345004123911711571382762465793544217796051332816228788594514538537508118648158931903299073119662906015825139794396782420648799560660998872340496583612008345804789149511136484054470626631605845826722246504098002418920107394402358936308039105905332704292029457482615963318410174674143922189152472647203202094171925410777641367004198616121257803235854507923935024036328320013091477357415055067625428646083470766695280552045064750154366108291221420986707176189688076988225567634044772948396003734921045228334323933804428608553754861595557998986169341079818050679805373393902463540429125761164062905133594404823905513680934645828291475453084212547479705994903620565912364585264017836245192525720788932607059262061578199150724365257135089030581915508085667721068995974451036528146366285867645439597710320409189985297059349828431288417956954857526706388601196761796023064924957273676246642389541022423919042880239123484288747475628852674199307049710259369706039616847360619153276554599769179092137464671600885341017736443825636692302290634781576918971293843795729250825015036858640974088921268643964829769306573402180896992317312613460431133909110140360933714106820423426130726395993395774636588231990746950542418816793562697563104717993190003770306743607991364324760730276550968870819716444589328572981818645425707386696131578382662394485358896326406425413492960989243285838621892610214575321270132282953851565023110879872912279981833009572231768607138902031190498164294000846126488965651543749276457891495681926295689367830233160244123971924336679157609372581186277841524268156101291144066477219522271679258346019939283296606111954480686054963673566568922607977186034532109737672843395133432703885076196316256841863498498433312619159559193240514502185866743677610209767453979326620398343848227118901281726687275654066649514314556596741701162582837181326031682866955983883948506618333584039546461248224333763583641046137543230503646945811596419587814758680269232329062427737420561823343080069844379487446576317224944334661529011147690073515266163183840613591847075217324676302018513466727579788577746198721968993796246961378371230544852234729083973935219512061084762537518440031444462629858774700918750500724943194953947419762978503747067973793191598262616434820453316997349759371110671708575229711214258289956513436478268878949296457982727145016705306476257615665200693798331364527048877138845445081788825305592437750474275749918512996994911829351879004552783686627266919465671333315439172147388791210843036441239940449175116081311018464499804130894232850088832167397858673173690200460548245225675982121716622871049143891108040161098971526398927319390911103032933399105504045351053728957459484925219853965887584891064050302953419921206965098781781316491367193111435151467722780528217082771537192537890790470668901694269753370294517340732073985265453768055466179412493901315650752794667355421794593294038404621549488404519243605467913013538646094847536361038650393144540660249460299518467408818813716182582893330006153440274124427509733017813783690120692163407434805851979580605239150403420761789092555467140362316769015751244512322324187879554374543128517725200151606571834433015581947139883104455910340176043233153162814144509765538181880512831605237508491465237939484885795590328390266287820025729376060388980481022266667669386831239612476815846453429397564525517544835434336908467649307843648519131867371758989711236115208500184177232420860708665108899895477214387046946192390101514881326276220252148937229434241939292321944868191866948993635557507792871249846542708337480056244927847082656196173916600625069885321103276097912861479867277918336509342205013413135039810197899499785773787164644286253462453207557576793621658088043317359067076455039177654474320864645911640941831689774772202765470806537752304318907857381800876448521674908861627037276619335340137608861748450398329119064468411028484526929854937428293064895718720604668949410083515979965004056623067033410737918490674452354228064063851801599042461102862405819086290756030581822750960120782406598492220119613105769845366085090305969161680417008623724886798014313295376453514743028311195438420742492292286055836642176794196472240620090416447058462778221611732855509568464289363933612066739207547402852348295790871073316536026218546023324665181424713083939172723122258311939140309723607080420367081755984934412983464389713095204897141663873020518243787898515702636991177943445642176085999096830129911513797514414416501040293526602226523225938369938411603040637528642846465482617643525386755219310762374836697323588418448137148120592862024055700642367752330282074585095884395808736381623240871428943525003963729229303763376384994487473470953892498957051437277007003779420821476730775465944206927262729020608154824177955784107673575766318013919151709315271743979391881971722325142374956034958841712967929832952320753489560012285579299079455847034382819836077324449136472654163656807861944541725474487884048364004175144030094997119393281375902268008215516313478589649205200237770070676187597139325875099520086282425667991369494247687456974883200835850753212269675894102786401431499305749972796449639160800106162162223924032593440590141380375681077656028407960902868431547562032100546992722996598261610086543145091886315155250078837007122698030705460873647553711947771813813610930011380227163444927453949666011780460011987263344720269888622844905680838588182679813017498989977063404608998227528804397344497180251415700165022782485676822710129035014108310332042450523578167659124384472515893343436108082151807653028735862395381202860854204527068448220195381073509155421617103956962389691687051940500282655022478430524386435127531770858967677727565792537030350734702414638846146527851286865341202899757731845150813469916117250041176913068142712613624091881757630850072880730282068020558712605046226062215258137058600774472844844457587298561298271179472013995186724722158062110393156373275533373399971412148254197902344890324856438092825897981894694022280653255482617682487046147596473949257447538438391218199369423845196752440574087036880970613093497666026008621057391962220080717730079891069924420152440060167006484708796029701623958832134408660273298337615631712561003486370367384076431649879191355447290026265222263081389874765815491646899398203675509375192826072763234984543874674353379730509450819930327834699132701215924204682963614009103345039794920011694157193016756350472700864560547095409082336119226302592068486918357637277239763982698546216222124427598774589522542828234480305528071498517993280958003619773744060591032725880577520451203004598419415624260404425461004127305007438118427687333852927260847720771498384837645083935973737568092411642419938387834255962614534941706597320598479323638289895906336506775647864645234949701401152050031515290855586877807110250307316179258689643549378977347757772996487478630730414959086515357493414554152687054528542715695527049975798804729172282594701406851081268107630142270109422896709040922902358538447002839841770412693247147247045240654442138420733389954479407327354783366111488062087090548810800178766933151979292205033863235535524866960770556630572496578313012051969034636446963954949713280820527210540958331302986043543727549282169715529160643026527782438188852795561509600937290636691051873527292100384002359239899962765722626832267137814639452220830061584879990409410163586500893804988775618433723188408047697966711353849973355698327513437146013608424644733220448815572315612778787536856924323984820404892654658521235123535182179722554387295738691113825605826957238992697750463187225730088441785477797471047149122851036537461081932820777513546761553469174375515384051658137593007793998477261499653350233848233023965493422283791365820139239270499928984888722224049430397914006015839344826772987878441147110539804286509954802679711588759401321644205460979026221764542605848923060768941822989218859724239879383276335000121580723167085616009137366793320859721374258819199807850585636754503688620539904524925364111996403696985602037823395714937791918687440654637334327261403376381900227148564479251227063114561172056344168818912419024464106985599000345386508127854464507667851056165585280190323393553015919275530438517693957419207120147244613581177319680246433903693359545295217095548552974997887878203943741069222056393575457615020029977901436842469576421320420072642781117440648957535834845375856894627089971993579512384143231843620282684160897457141750253086869776511077795216242421983171298227950022207405949235231272228397610381671386719818370527863892962239945594146793694080397420104555917709934956727500533641880069836212700202860406185163035332542475814358760854357383652922546385738114927623488686566559167811289898239303075979845702567736939772334022101487617021230474606470363046763459240305123847505789849236741632138678169338363956602279632459527647131703502617099442403348480521561861391275623546848681488795242445464046515874349896624346920595345372747707631377125565133519445719444859186401641775255331357673217014298282896347421411523910706286933537514482657241362671971882133903157337318023316496367813285185087466766715367800094775560056751344368299681933170899107987010147632640539228161894141579622587335977665637285985217609296732631507503785401850988997254364756585572727567850500803444672853533519029745708601422674334743264769434632919837979169100537056585944696738260232328222709362763880055413663057403611900549852508215469820146185885393392836680839354125940583379494099668342941607496393220125186722180696853615771819034007731578440827040430759534133162520791446597202608851997404920747604204630221587435439468027210385636302597661762578919708999000614331212275042998669548914257274954535603194385404872747235793842675453196149477391903630033706239851890740256183892831703142808746020416087020734372580577307104895237220653610101181084601419085996827354194406093043148551781426205526736825249336411371946090632996462271142941606692636344561780043360378401658980295536711275130861629591474468798147725327266201071832677672516120133137289209695011604497344508140606634231627318005154990830550725037561701027558733335150080966224283362363961386010806320964223122011142932248672346315205051446281655087444137168627379120764814744582075238513089346435360619927884136086433633208834957114982934961035215117712786675096960643756022579445271217790883827684104062174612267194937395647019408134084142826325678953236099881500190341163712629559178481331984373711359053321177494723949830951746477150830065329417196358472094670232982178204288482677013061019618429499487196923183253331413219198855822281144360306281410467005479783808341040020969655257682862839864504098196950071583213036744356702911037985023902615686243724120675382001918724070115215528012214337595119052392058972229270124367379450747198779445572121972125003243273001860473109558421653026950537133799945640153970128131541219391509261230914035472697083690400779861714231191433130357553401187318795397491470189542376955272606400531795705984103048608415288286562783556522729399944594226671125612494580858654130210987359441398643723813548414879849395353996341211529312661671116667932264085644384348577037294573522474856981458255724415080147136627110008408189806190538812418386709922406725447845007187556526583169627201776648987473619588284993253182249692438620454918013868755367831514752225032020533837357354253948948943928949528328750669025320600527865292362010492658341417060220584574180642627742191604850360211644281653407412949075898242496484505134771088924981065864596499216042530200431096038855556792999548102973464179568947189678511037197201264732945457059019439674256517744537626822527086061595093511137190149443688204055876727882767753788217590829289946876028926467345461980060676205376318597701643368188462641873101522942973431049856761911145670548850474516628568216579572969478745055485081813343403229163529971558999809195073072256719349398920283319617081775422716437902978735222392585053660126090621332046154686054320289147169482893560220733987082027330500369946582056016870103788955424128397861088527880938582738843060769072135106986790789995056104061685405466214796060122765400644843969134798379081164607085449261657046653695095173701522772976997627228405089272229298697057075976836813035861864962296523655545414551134961319128288746259063867556183604558722284717002297817273999645138120933413579535075225980511796679890881358090579125200941550149050315876514096807496566283178566562523580055748107765792619844730759255180892967432536248537299117072460164878091735599098736027728948704564665560800020367995021447643123001159799737772242396126238970229718486538642317981762191980594506916983607911768753492268309409335954983605428547336132840703105426435970773631102703925592684639743358676381579093606082007487711902425757264643387361410134766924826040874787521018379376851297638757150610580291237300224076039776676679471628060385166011433860212936400436038713306979612441677687924767255411234514432747884590549675896669506551049459220110514505991649953101642008165161686998111849009540546951081303297967452858165135882349767578796794610542163795740585396415246197484893014978563523395569193674172805959768523783346751396240364426683674474042867824429077677513623259758629753706532951993919623330553067909918980700988392737502934151048903249640901292820340818442896211763164054965492549984646939812145115670077830815804593622832479579076685782652823997666647918210950313009706171290747098272596846110652981679604647462214028827050334573380857313780725855014581898928631563277776724454746939429723913951291269577805101573577393115214372232836299612510047643665119251976471255552304395773223149486692201156101933705568014182636340985334940394434941189511559293685493813804966794341193082101973456463440828945255524677139999194105197115445850895807186489903597833620642936871388638828066698083993186873529842173297629307193185014449499683956628896134500738863491396889028115061282521693495574114773296705798292862352819686738562595688018925753905740863122703534721905771921327576249449986661289913976390244217596540532051719032020405830610264493847068321822357391782426639192076492260809141926465630638022249847813253402182039077399206206145632431013055328129267245788913809237984824486085031315396445672236482583932286221195825376854157501411282219091342318519540181519415744054488682344057039322292258038986995788526485457584744983631944048905476463644771027966902876217498622494367738496656850341543052941304510989395296941078439020334641462449005161942404963823163236428045945200121418997562920636276178756143516368722984499163453953209604216761473687054494095660772511759760103692271838461405247724798071796417881867758442314183391692390356961571709505684445003764447818837190284152205569189158167777306290408356040660774511349904835049846758253363983753094148158408091149770288559142580934778374446745747149452170004167916030345811341235552013441679663179023257553571521537195739875480316995559418567325269042389721363586024327686239607802882282969675826731152386943326288484244745994764057148449785419689610106242375010528685679506457869456378248994476227396781046653527627121158477737278981809085758508918142998809724935975593330999748487105059959113604045161446513303230400531412500748503938404969524794710646680371181919481277984140849330139700425412171559411003747765914101519223291180881452117099230026301531988291202821482610414627492409041138257269198711391722476131281858642005244785125547622177068724234620296817156014845248599948219613694468243395904230524689034706433520358185169599727140750892492115026551700813285733361656471040989769508807440656388082168193906705310837797693142840671232210800780142019731354545500713455193209057630262148265286944854101278897687252760127372883834791236888606989426924116169989375035172642577341182179946540509485722856722666737914781713310452086877165153419610778511308674758738021433032575001354779230831251592853265952324131387311923362908715879054558033028823276602069492096926002350075631034982170186746140703943797632966221691522637293179524907288761589599780708908341965046497884449992224612014534235434978168060154403691354454146903242016983048833317577262285681323453731060570636572694753403821224723157224119862016670130112741864136060208313729034051490324643100972252202534168552583128376428013006041527016946563554519097067630976363661849829653463471778559510660466902169859779160714846211166307040352725505363898029545694867705076656135444854993034804727463834439282574929774592357410138165034231444349801348555779895923937598520369149866854742702082596842189245099537438861996743325739763455973477402586759092620490274871319882695975232747530706179356190997511389076459495157598159139666378512469962550991703394538630982762099700760310250144416448607898628309894474301186882144820749954882256652557518518388155340775981039676349156520317029626402136988835089031481902932737381058227016370861731063173084209785515252852529043902708196341806845979410529387989344395628811743382065212720497388626053600034019795667797355575323779485219332836903559497937825911191023804516284334297013303783293479367080996970238021609102330329901812201866224484757948753139904011514895415543316787911925493821358449001695784121933118048072558420573729160875006976914661489927746633025768895512651390751881503149576059932722661442612214789361158131520332232543547834361431137204494129698777793570003492673217738051428722456464982016