2603640909067049249677347748059806203235548903879911519798921319735641798347510051644082540541396550299794589671655640143585820656363488311561578018813111492113774597420243723181536864076544301231823710254576128743392087709969186364758584824058981132106086327218506445286999113497292334113105685642178363716238629290176576247583414397853789671600229674326022052833916095658816686502534097948387172943951812182877981252702555526220155626101156952445097040775392764784916520830654912348071458271251434026553672509667445528641160048373629546194652560396022715474781826338421680943409259804828396694649206787675816184395975036884121251191997716091630832665162144815275751930148769306123930054477057177665493511532138756394371043161079417781270821172210147581766746408902365958742872507480226458746748129084434991999720103369228325335946461236299565387746058138991381803475786814704431530889487140818040094358671557253176615457015400314842765109312062476249898450466423118877714384882974111195090439439412560638144617672956764250966970866355241499415159011388508754956486425597510144989667859374809954341268739759463808869764241189600705862836016177855772426421550018823656088265244267513064916049321490310344388074964597859116298853453759958892481158671505265811973894047502193230896377028823367599113628681820213939060243843832332294829865895389614643542362006411233083297965809973541795304639878147586524289017326587838777623545569211261435044982378701575032060347317882250646114672144796197347831748688727387493474670021435452042754190244220272075507231009728882248391469749599776095063120700024435607529149487536154971748555667483229247458607733790761628037322734951520373327197775285124371089541181444733387675886733249775014479132289341433853085938994769811971073368049037096021588030342093826748777939844527191441058773942204311022305012971490010998912226260012745731702758515890297634089278215169944062930640742492160221164665994915110725920408350662039367471583750037450698122727712746920676365331176944555409366377347706798041579140617205220867365989622416435435313230241105378849730695563482156642511459330770098885496467704651997947441130531493387939043267008633470076191537444050168580749274818524671401316918883255188765988565276221823112079948666919856722387262103187420601800214370353591257515568933916707024901255014842279838253160042304390595718561999643152084545561232606290088951720824590324517340348509331788623718633031430887621121468241432932300247944054750448807962167144871599230646690384639281110301400673312578190526187670067074098987823812438866233094127420057116805992647068079981691426452246527045824332323278771616735355991664738423234108136510899831944284923357673522772740090224975027805037089236309866180017871655531565046402921568499112298728905479112867890432453016202059126246197313566870937323696598699463085501781705838634913246664321587332838444500859050771361634541758397785425600376683834590481883183042627396679956302672724246607992404855110993884605623173302429118435358962573913102163733042208879063047912803729910611897558682341123054340162556470645002818377445664745392355719934736193887416817923355326258780550034728199290731512915559794775970760281484413372150306179930281735820904767730015549487570957320800427667874816765040260762524053663125126932580945406835968913711845989270144055249201008209642864087093111884406935763739227415482012363538732092937807438806278863909380058651246789798530347785194901089975504865896670868652167387769414741508223552919627404390530849832417846048851456655298050222556798339359992974565348867275336958146992114498563623641507520455892008111266978791672554564823312292136139494841123918443647767830325539095148648697757787500789692159548491498233228857029649626083627180538472870781350666528871286568611655350214171750974607930993282315937636668171155352732222096799663449031410394813172118037209235701899408111110549381281799907441592545123926415861809065545523007964689356698249316327443980349460254442239977627810196464600892390035663352985598357076412741749510716023076190669137330982415478042902467791829508612998695609205420478831574832120410521392440526453988481704216087026523814728501286166535193283040942126202807664612146631758652200770633890281080819192880760753697321032820577773472635180571681894302995228302260468978615132355308258419023370355071734557291220560349193660053127865922987571074504812900925611929621689003792193054806396512548248930899820800485377125583223686654815451547059749368253369787971969727680568232154132022792848323866561656130438912722509996481024708083445435907371603686368408824592019072694161002090482316297528231727783762672539053878772640994654305207993292845200128916280375800458043984916206334565957897352970107824455828947211076797331916831969197416570177902587510018336818472594538633550105674151239478342380479754455567217909957704462522000172507701576530962958299238427214115645444165433239133602270463458889368185613390171879516636339402417434612059433761819314281845922313135290468216461705570846780192130049266376183823553427997461679893360651626274521191472030328072378160244531883521765814306309571141061265561942265392691177975281263110310597503247340715802420335297696908928031305229641292828540875417446345481486419897832852080413893747814099438149852153862742452237523878803558287982228259954873009396101309488412087675057993665116880160461604611149846573636467826574384127840713408147579810020783819112685549133975328414654178434389109739239552814326731434884605476214276529423056257366776276275806275146436809891129763180615214379076361478877577053624704552402603876835608331828832350643916218559233152336628650858415638316007632837155787395397491581966294269394627309504111197369887597049015043648887321775902714232230614609402669680851531374517538257692964109933492172220872749773064551250140290301653019907089773780610897419196368777782905748055759820324070630302379199513943004848593939280279843640870230071037940932852191449513203078314411731193417481499380901087145495170643988529404425716432342712713266589147173738618655834658636910569230580325942433519101833616220694526181368065740590748549963317017684703289626103828000176261607426635016480792819648268102526273685859127520309445824456385300404289194612629573002028097158263268957377444832211089176845929452031713127227209364659438756651193116403148578004211345111195857499953647714919802425444430707697334474305521031791306727865998223498419687533211882659945562832826776394473388784168085089870520886324906507037384709089717910879895666336470937224213850109306347034681725738589922395346597306371211232424102366297888243930515287548276486936142353885210564198129537226318473562483575629655742778190204950804436356493945670998965927059990322155563532412570179203337213785148884225973333333596710086929917606122991421012437361710574767263092747524885738361619973739088711195497611016219768052444102505984217878135664734319870167967895191309485382433984791374639354094423459068431567028303064181877709670719124405609625302044471429373088194234038863970889291138732069993465434111940384663871202930793353746748897902635052453213706353063609303426639320302533467371372378372202689341437783528285491961745268536811777776026687026758332712380786929138180138332728525479344030497169481287912461395859958736008371419351397480718936845338335714505538300513575800837231802047276148224168537355241991389223603504378743348223145031292673295267775653077389574613316776355272820834087294104012839583737167904641675772236245054820247030809846210426183626392506156150622122515549318145791194896997361259754417042384976481761988642645172412955111771092966697803999348601818679649890172432421552806454673500711816888949764474571272332821674065821212792161803666564327816220274798569806796845696027516432670739248484439447574989898193226324664741608441155352974115448089207225032243716301936940313304792002569215328811461173230048148818686133062274825830734808125820741652555312599864888017314449512577540201894278634014846896542029909849459448798815607469728234174364817011803272751247403040027383784621114299886648937137558855345655442303808909780827009663215681782544266364001280228290655913386690637471569341947948761224523151956582312469265643947761559263062284457215828470750666527418503899472193754797634222099965363667766225268054956894691317420757710383195771971461733298234752071847174556775975640049767596422069422916486937997857831227850362810786515793047071667801013080321711817227311178387002691610232648222137527808173415164158222767026115410925099576166407003508784453816021561296936835270828049587670811714142410087071906502332587349154649753810683778742796262308809356683582870561584407383155936204867915846023918489717768255397294448683115568871215159541118044535617636526284630365552972632038836709014696490899965971502716528463128017381883964254507623391300274537970446611078484982298008863646681661513245049686416787129653300339211594833571457655314070516788665927695360675418348902744109502701823000505201390972581670519296778189067277695356413221092302614565778785584635802449114512110187949770873355841563354426182745348272903520646042171669243665644831012204136851599011847009384147328450912193766310069646101769203272259166636751111769645379416458265754056311948316531827392207413143952877842884665917015072089760451425317269235978533272063627926015775646332263701669803454968399659905765925389098978771839833953212006794185271070346740653492422667117222833719189468958626202857183265173157948530912097913733641091913556050543956200781379355619499819839838443570242789941246086487374227305761719530595197205727695159659497572482846213707478260695495874789148818695938046078410753243686816405500420791577255058524617734696369969798531149670304041496637826547647444799302611947200701527233216069576850643023005367493693803563901194862187224180781703626999318455903397422138407719432369257857998962771376802658238311047027732239978588100484060673013737075971471733532783206115299093006662836961226338367810090968741613552817544777465144220629611590462417101946604190568136277724881317873683848740878754560684046459784256343264144086341932732800799640659620828081496139128075581600170498797201524036663058396998658866461780195870130417167715188770530625912977911982534107852891351639346147584665150055368013252796913678448757769269358648179411760537205704956748577871004218974417054490052573128697972283327452162531569955484022814070964613348088175144934618744740739917376490868077193547338896705141833828059080168874432845947930474383880778303828033958843068215778714128340739596627091322100926664403968520021650842516228678254840057570061865219011391231143652545177681477864129802900525790462735384572742666630704098634976045372418727091218774099799863319009337457125494192116967129479127019240116590489880467933317786513668449717662511842718459463688936826997555384116667902832037460431987352943308395671316078955194901023394750929693102864186954518209556937935204321123689607871554901856140371263381627972160761179996497589119886275140583067961343249673608983865580379368295511203123937034208274715985651371167381278165669096246464271490326077516389826666972785768585593926129044305095212962849663983083078962979441973987940162299758215220000024953257920822771280021503009900095192202506108530300738092043199567212716387668851694012802756090848049384521567521350208148282282554463056615175089280628615714104915582289396962877523111360749699065503781905568567052841925639125657483552405093915469465112782200188248355379569001101087841738635505275990500457427077131697564572422464547363465459686505217506917725550488111862099022614061556039884076751523716930790768221822781867798953744906272912310526306704412938128918152227436827405432507935981113615725524720197972841397728324282634597737767387683745667582611354940378900041246744425845670791824577095617372675090470473177368369947554916034571117315623275056005745194651659429419333487559707519153445823707869552646788189035939541480673770487239792180160235453215434398712163630902767996248616411101868308374060509175069787900980932291084502400796442903364957939110300712297501396343439635286741769963896091161391168292824399864772670231604058719675891601845626277920013009123903455959202383577317607438195190953664148883008973996388154221572432192764657941754197716528600164217334497612174201289903178719958404689261260195817843733279833941927908628384649777169003536029769456991194515599695599350155674024048743347552825052208743772513968810561959293957164398208039340147490178736468106571220439091061664242607111574684980010006499977307798156870339662119531875319477496087138677182102910151272997871230509515333441594481373478340850304642177439609883234249803274644197648026127064828450790384800960802393941316584237340951212648014207042713263040159055067584567374495434837198329004460472385861497799779307964107200812638359659883812672717282032763740287991441704286738745247377878400561823452206931436433421182734980339542672948765182030152650489621209952814306378362335978534699370825244172488847341722725510858936891879417772198300739745777684440434183274816954657640063890557608599275309735550557510296378598995626561930652247777783685071177167571403647930674697581928314640415090541769716786255435909036664976963155438206613477127422590246838454898333612562145398226222919243160289967364897300180530147165339529462898483163668210512370743341411753511817867323298648961416561545972919761513210164232971807314256849065957193238194307399918190542880540779560159920638306242893789670972857617629944655994185636443708431359681562830440481457644788545077359164490298196688668632979112612651330146548090353833352919521845580710118779441877023146710399648793150317206989979730796269302673982961913996037726982096019508922090287378046479708829300077327192444428182456813848165073282501416837348410829221801614425041930350580585123841641924925276062951149637162062828315837446750101557164769048536909502536567328677597863300243292180478674399138345908302447677471225662331609029213079767623080928897983871542920300361848427808723866220676893006345747692713164688730828730978900288355458260356674385093135415949002370800910896991992697918032844521408580599911183642020149618029778148781906334401507292942186329113726795467357543096917765548661927071104020915258841376011329978003883114296692911903928686726517766419881518669507408810057561542154905512050408076922595115583368666927641632775938640584161798242540428219095024427400410219224728654164842881341142057928512072760763931011977740263775368917441845491219939795371956957750396222285375158672219992057651655596261567244054543418107699238708763701986765081582645382059305004673550638929370609051416207495526581032985685609448904406516963859258971733491003129411113129741524624568556335161860508256284999725536091423349674943129315242748971771296949340838138730598951549108971558585561046323055836281111007016432970792684629699296017537143211787525196838424661957945038838497861077633809255530625427079084980103084571526550915396229164476602493733817134616271303617959389017961825748812713443125790292110661292281327312757445261519252383008023877752738020428429247330446714639868472858465273613700208904003532064177023805124838997547394972441407335562657691770139208463865503678521411300592088949258846071752497392549544774355499596908448700960929956321481097280338841511142160021045518243912081012413150533469038835306904875376768081548503002189258788791423678351424775988555421331206450257462479680796844400059698277752062084864832538734206905250864113300233268956703609578303262651171415613424250049567422765231469493157492536631863262358109493643592919299761192619806872723729566754729912075756944784727153158520990736891878162975012036860854450646361129823758780031749024868947759170091179861728190735039855651507700813925902936519432179155915979065940956273116128918680812081399221203832643020052398439708150360175132759618476100916226617718640397521792540691602994633350369410088568977928267661040295299941723017321813333530978448199990527514413387312358652779626941748455509480569610627175523314185182706201802031676141931800054122115689474743541913692458261669748470276480194232115811392281186622500696941464942658968078342300013102473729952548163696070552939210251720164868163376285453224813106070074171817237792154303710522147634539033434811483155656987658920114548551657959312607809701924308805527478022929566809732356616680011168997200655100288504509127483221442878212462371579438193832382604840405451040988003933909751846801409063131676260262208989823265392763385834862096698429346414835142733422899272266721690118712972547675247868448337428852196976290669228006306041648905343994192020198787190226152079986086301388426411514432590947017043689838777459003369611663790897638727406731867808703755333352962600454411767199051939400082982069835209772044778690992829898734915177001273677522018815903806614597609987638243911094408456866384381309033807673809163247192908284609950383678353281741744227644140244180214350797694344103864657973037212766563850065597524985218266476889396883431580261643289157292714575499845414591092622465890237013110946133106559021506312006012986193405890767332631856067819485464157608622374426852191752920621204772698100350226085629912998704191377504607867875596239233513756084193793724128389459730770907444326884289629328220176878446370916772093156219994725135884696232306974750749573058517080380503714085836436419713988638208075317760734178589165699226889817312689241501518017156670361691363044151704842493702005055169339263496221714939119560964604555723857542453273756596346373709177539247655149563118819468929255193867283301927792544770226004954055389953592581802012988124200956269463844459876247214042537658435421095346326385845672831997934665177133720220351977028451919095137071289117479988886889788039598582882185437116616755437958528129379238986003505315324646995525781837187715597793970103161414207069904389065796629185180108159696390180358221961547222193675906203729305119518814530985930783659935489442270538640255062494781080451027005729909554626482162935668241887955301926057893468105677135126215363603893762628776772467542451029759374743043109162545742298995586536815186730683662507673349344521313672539233981891354192967419254442143543514235201799208123270563479070022304820555206569045959361362572189078847966270124184199406681721147614389884144513391446456257275777988722257547619308292361215814537330219248848093762020137432539949840021343102524100900395467809675112717225119181203421721990812317686228480666706358711456447484939940364656077550539569215489089479200562246567980163232626075672324970691963523943043031314560790239184439741121210977915023618712084852229162107679554459562284325827609037750160944222598727618090317263497082085738407952770975449044196396349576260950243458163099262986661310635207061083097935728991872537973407874474822556411545440438060940216851337954001161450606688423090166547931582367586704843098523967136741128876311317884298369348321493169047036858599518154546767450447324293060482838633114401623955782183655359567969646571978086207308993419013834015169566597905617317169331780696252674903140728954282762231216940429829669260542814092761887538146553461972490668635798291001157559653316667823342476786091892633367634270803896324872329835181634227354225081997322121911658695179459481019641895508373792155776581891890960052588989295755418398376674987236074125308458518556693562176101551760963727688359207595908632904223555073926326898560350965291787881344879845112480409525930951344205277554263226915715993315386050255277048157676583053063000837078277558110069215654892796785083387749599175445586068877165049619035131260188992619766263084773567696407550554097508513464839462820879052789992437900598435604953862116509539198459674579643660563315837674315057913984568031607430154326185423753055060005935992181201377172090723762225063873898899308982625555071296169199205248094540496383012948557585564509996516529359947198536093309092172790777917418222561472083657199579200841960958195508758833956632703950708246403793693661765996818135417381880856429279339413793187970184863192712443180804048830541298527455266875523920976050942410493612285215284998235607861244205942286890436989265524859755723530612087557357344502836111316986905215997642861291852752805717872258677390418921136419918985987742923091958577061489001606957032108685597026860505413816438742699131259046510708617559111326737453982918921024205071866863855857064002800916661984363734430023337982601888286117570722777331561229641802269233736759944100152431283399088642594458966922003983578150559180304782496538623273801420502381363703169373966623816599164953381208832246663691137499627239441806643216179223766562062025670178212318159409903054623786776675246417686070512783228289915402407090463734170384324442952648879524338084878445901453431753006463397267773203410718096365735950791831153221111204644416412651392228112082627124076888190108152370580757088112721177776687108970397784124652228983957020566430576374496194302866382273706117208703468328957954183914129127803457519055669145902769474598321638533154764111397743406120116114641144071223443600148663148066936475630145311510127812550248503765983722689507035741767222359738532791285622126979235153902588796896535739777328227512333096374014667211206339279379426185733223161692590490900077406543481244524412386921594953066373919536717910348642172241088715444757618760696918922085448202661508816579893337181859386422785372460218611361079048892166340696174725251656336000059595784477721515852889755341363457060303893474081418343975611236187499167420309641131997521331958380956509850151571411698117715988175992226336756557105530131175881235634474776835777478444998470234841728124327591628830945696578582975491577571998828607650525205840034722159176722654301010406348029211213496914105129870456984995143457782751311073257479777119585585154912478798861509903819065724695477576870572545617338672847490230846648836971959461363712160601229704198369439777428973378720807464889924966698095955138903647923548696434901483312351150615112707150937609875707746156020724231701115628658406862131529701949348340379288982195914228149418490270661261346906683312136274378682275970590086462700831600969267185429913237537950520975670389973571450037407098934159027617607372152100648352590785304549881412229356620676106451973457727301189327394915699705292274513806633623943210041582502802226005857867554253793561768808479978372255974585138561362555779331260044501223590932066200383439780850177634451794264931384053081542149451968441514325730084968943206522696089083014965290719477028217171895268254403013358514067467945738984886593163906224242139621832447119367634541825577624184754445377562877801179314126430014584983770899509385655588519321461557556688684596031046116049441372486496721883979667606362704925204124792151055766539513278290780777310320547704566978203619144140928335053460539548553637833462466438503557344127945920690539065065470269282743790039900176556851672755698699390749921323854070808485706835830342987473196010770935741171081899458783228298867090841340752747137562688285515172666129895360024221085049149802690125300287780936425146770502234683198929038154784810468138329411457981937547143992640800871073995914460087237882179408289764284141762663575365932800385414283823629974438303902816534293409292811707562629767886162282368218416892377921437443933030601196871523095876872158196946271737974260664311342650393100476974498146605619569467742923311438476407171848128814998235330667911578035667108477523843085654960695143035079792188963651645004988684766799102732141837562862200268374296057272288925158859330354886455405756204726026448463717997324091516970836804021496230249772479710117826227383466347850720981245305850313598626217391477654209799992150894728483835286440225509774346115790262437956098512456846940965837167087780346501578553024946375931916160717654931264635342940352722269739713961238882096936083326613940029458426928028851663868945759271847345096924827780368353576972912399880002714426989698439672701558990131267759606072230949745308675429098558359265713280013757585776441490595472161997353201615388596143957485729917953077528130338417362484638607849814152514400539595466736071026515428212577997018258357523904883230977117401500090776460779167016787547081101515507755611768771969738170382647054096736012984908303565998029467539796620811772875413174439701905325542921264627637258349075450918489601115059090983692885730294911316243239749463594303443066443895575355743155749164809515234752673602507909817964688919936017110136912566880517964320107156701407881962640853640851494245123506130529601230286187006440004776861438731234426339942235639643382586336474543641422345897472813861845488604267727014493984469965350238066222623447519923520090598701882472485244826307187261575948837314495140658800583850110374848617992941969997231557324697048773659169680301660276323954844661937807207006385834109088634365054727832032901671266073245522145478792456046942553587843463057227453315863176641871578867930334373718720714977310523756135776346294874473757011106914718040253446548790385540394871522799269402349527919406576546480261208025768850474667513594363758246971026561859750617869154516763563564329988850844417925680088570771011782105372121094886299044529847416814283737144003019480639542610215618443318899960766637800051336971189060617161006142073679624755490505255794215303024039605344468929603964311423105822577822638955915228116831522774628904592945339842789167198374740633450046812683539829540645576054494028059817398332989798304624442837320681746640291801528786459759465954422257689033385117628406071380121872782576583637359702138739112823608233836406880224191295786543376694561192389211064720766758689467420104723709747077310120099453109544608981121838161206243132570902452865722582315565844399562248870285246382613571669470972598379235215482143479583697530668763299097459877713735208718792305265811353377387792290445627423490744780123275208426331976793617052574071730833131569360551712191530252029853731644317236287914908186103778042597780517207279171673219906724170931779483139258510388167705458915745555524954719629636956561233954592509581310698848242140591713884813088230850725481513665560328094381749973970165872478726544592950037763913316019429100112071120667196042120766524440268906628496199973618365747220116644320934608077794464160261976122782221693583244039557927562704410350119503261422875653820731434703202463653405443349252274918861100050206650282318826286941360504528008054635395059869397744170470787755513236640315743255602963156546231002836839999661582189341357646397771326482375300166065291044060525609409929960696826041050326728480609710254253820508334755251267187956786531605749514772015859268112367001941197852606007241025564409991003192055672938426593295262350224547509066529267030574065956676129187686424824053776485091353721107948063447902872820390347595158576188108854836603712545042627440440297599504262436990621775532494449490038238782059530764255150927354760100657955106918662169217603288753627375051857564582667399896454188447484329150550031943774433046319998217579348310512508154486296305983399136404879491392504791267605977897594481191396778804405935429405379976745035138418062298696235432338955713575906472757829304104850628322771383556768671196843363431608382334357814535394439198784639134705970942610664205842485623192942434072477806862163628239382375046996133142556591709496983113600906236448929210179654849807502883904153816855944017714950880014007045244814086584823658467221509038410101719325322694232805428497105836026717579303874952219698721387635111180138935049241541726857187305398970306456711434852880042107771195241704416831967055419944289400486798157195049459071296333578520869679492776931128189287300807870799737028848903265708377651227338876764643597551390306591040018767291410845560116935541319784380715886375491251857037336126487112043213270315856012139150216228115812203067005104944561079408394135051107620595958842546552729194271256750759584384060785407294489977662805545028993436951815032289583428590707460882582237461006138933658211621433465686127030770127253496973660435447893856022723299405811054666254925123514178727953453289297337944844515600486173017307049093582261179854571370016387978924732258886793018921416256112219541256377288719914081170989288013847828340694308554130193530680891092511460398094376218185121888458862454737009039283984039166885645254325489195062442481958974579989304716439187751789108205406346019508023397804706964437044212501561653862631042813817801026355319888733554123903642157967810351998021515307164123153401321347071349074589852011267109464424383718505275176976384037299899032064281114636082194993916250862868606868970138083794703959708457998678168999068751038862246233876415494476090184009523193764889760376506699920269295067911738029215811329951824166079934300566464777835508255059491041314558910226900582032905484098297897475071959253184444382273052396926116099675638973835967107549726191464213262149987981887234471845588207937282502690882754768400315032724128125438622739459658712907052083565742946468195233569613887288426639471532403860848900812172877789456171332219462924170585661329870344555531446298104572948801277284349383481033174059565254186615145005904573183559858452370011327412869068233812886030420669933728169858053542089791764211784240591748453765377059780997062199734753121522387857539795118362946872700858545860162397980623565483632360659546709054159623079488306986634935363533252410785945482879922615283659723490663255212944775167029701612076083338203410812071094763663332161599443018210273517874904823994448916615853037443621271181775620437072299542521546788417164721235702439250596542092992240592715163685543938589823146791404602701061496973619761708095071804313347422779516143775414377717991104927467628389780729007100080754542672016817438488618129556926048799325418785059779406572822627787904838542196842697810977869252874896865291041611103616554875864642232361957299492702441712486779043699013438344763988702755662233725315856491534067442492712362681518709135179466842898997550504243444915349653517068824965844731931731979678420024263489249318421025172460166404519913612346306422068876793534437926873656854589997948026181722363295821654197623009914618633250667168967824868565805673808010091493802222529828773161396077863859823240360493564955902848859057801597441060048177812652603916869720749601017573665349885923515081450397654586131794019327508623623704982418169439349752217868455345586548846437825290353359553812803763099946595737436489444143250657151407991246015784189269042937353705939748614422571508231615310653511947100393881892789646160425005247680818330145483907871793002962375594256786003793768879678824678409972495079829150316497204784092278603879294722926099146581555907999159381364624236844154700755001840463151222786418285329816107448679363970113217612459241907920006293393487428249192601491750101965760120734935132438458578691822093853225526685171072899188729071992391796716881878289579494647204515628509431304457489876256358517572552177608074338522864765646953437876075209536943786187527640667239510945964321054598261496286013096706384777592770515144710581853862972521766712851542278054883446095939425012550873225255923091100330109349772673835977438567389659337590753764067582942370137241527616544767852337511760909715377123934710390414323260207562292759787339938608312986263152988880829118069444869603395969251760601189379982846621669146881681226841087383931841701107390444090884318049759158942305269548859970198046781539459594607054921267531969346440223044161788411300323211726871481729801665152320127445341399004382183769099992986162980653084447287970397389803673413545660892662957591043444211717630313383496986816365697994942385377741016559150697538629670525649800684375290168260006634005089842724116219147091484682464064815200860280621499980018629693828697789746398707543198251084276346589912573671398381910542133328250362674480332394546417655836890192455532510644148783171034380203104261802013772759128482347195866657865107760353582058755232127748232865872260151911997524191564409467731373808851701924838584993803936487985178811247868827390536337419539742467249523965251662597736196036859692347528765597207280129741258136049225934111327902303854050200911893455688424717200033619368601057075799891668239689987197473402695580760041558525796228686205394479170941835132561287114943606719214237831546403609552505593309868310789934616856923045429816764611693137047889326824739070537715806494849511957939195858096739152700560220084286226926806634320667812789457998762371792902939798713235808270607672915253581635256594787216355403239612234012815910043220000378765110136794210399199788265608070660300396450485834710195477944607915323674515118669573980420993037682766400086785370750715283047640324129855746505308542528097482848687468225439578221033901056873049054252997503967145587568191083486111067942023744263336537034069685918337763452748582327995469475079535267926244903904523749092792112775560604635693953011664641518044286059176794257510370229657873156506603645137575284869276057515273405981688790793565725233402855600912097534407305976684528153523477603746131063782372267359120014117163710234943051437094023596890278186152224393490851574578532385331010809415387860218142898897117090697973789901695957937217148652648735870911405868123483532528578048959036697190363459554354818522061615303032845781865690928321418339249802810950799943956645414455064911768998639325825171668180178251622435403685739069812742441463597646193432149418392809497753856764062776461973042538120418235943733998112793484932824802259671814505763124195589383160899344796667807126894630785771686864198888070054383807370592163050648191363998669967657935993646324419172822599912627868433876036643917908352178831363678809175893433886245520931584468092524437470978733461992832369650799472445685303234362977615927047796072451361289273287435283388200631077908858640036947776290600320192970183445163669043224693125513271340063745190741140531021749610069659757132331216504240797859529153917301766014648718767010748819006886027511721142446731229830029108737940247093948872857877008695886586796659003353382447970129736913616922107386967319947476433710046368198407729778991992720143939357392659955240070548254593741602782785100019029750741610204857923420852785175266717228345073459231251663682088358372923708349616104483864371985486627289791262456642624175162653728604119815186314186800294821214377808539956836060414341542419637089816398011198439920924922747005301629607671857221537883544617966567654289467076033796182175233705167779669244945709253853237270646884566808471705940548565700502229885225503063432288691630899606508173767843901192208726691993145000481335342490183556863415622062524340356745200818933113501990820988261232940621872851199197869658900535920704513581420901215672334403284995012326304852477915109295072495860164979868705216073012703894844044247642203817720385197999748046913679028371961000491338807783187598161105634405092054533286536645768826677301881137647519939459022451723271877770266011599155324584293068325437093363236166751675439675102966613302980155649113099705326716312333895709847753329032468476537154050102714782819677461203861817201613441571617331277311925514532414683285075207356099615670148181757645579243750123472806977659045835730571853369383409850543473483713446464192813837646275206999969504551626317927062916750844272336466878448599796170246724451610049375656610029552643546107722042277697282562498497168855444999349612401195163469079170355246646196636047654461035022909396813862231169668858203351590827832193497140475336565378855180357592918346972720545356960761514695914753708619161220548922205432181240350241994025758697943645862219100889821534873482290732583533533560973592294146710476646115371731711256727245498055165043263687394832740810554969994512128243364976488964920839171643331174330251340960379824379734241202468722467144800643041234530700358528647802469631699002441336172702151190449751643746824943381337391238984040452762017107659038825140338741769008008702119076369228244600212887247339808576853587848471827523412110315165653971070193697161035385078933991380491710195195794617576679845854711953627556883826187963198882733351693464330814514131798131558306947247224851161176744153800066649469529149588165007235767309271480089894034747204699918747916229850189531725788318487515045659048685549623742283047817462382501432666492912922701963994996727036073063898926936358561231218568471624110232290797946741576983181394874527096873683212552941443939398895190299729879558657576783055385725983720572623012748806761848305578700861657219867235305964072616418946148710039919934236537399653741733692025256230379191601003906130926665593101083322565029532606685769156595247869119152496320372014561424079078828092021727737943069206513868405765059634720914819642139397835368354635979548945442090687289839570066841307657302705743944071019731457188987947639770084648587791564509399965381520197858519642290851800173100975054523899116473666268757524942599495154483928691968587600543662002412692156764585099350194439618634251574855202089551797235563944856488573742596112722233026874034717389917655718409617811873247239083691059886115110616141337017289642891608002817320007603500897969502869160244720703580240129215572428701133519889930384076384842849269244713622683698716640737060797326631490887924140145880325079258763726516034630204835354087517472050872368499207392299230205091332247062982970953210746117469293584674662817075389329331984424785458022682522135990480356205253202239406730531622880642640001660322338281277502690082912998308722355565456971644312887626317813469552446600979780663951037472563973733646226006214128464811211849500511780822606279266716846013594567513494259814608859538897030822111931135364579644994012445179970000943441348028997991927290054430566557882927116350164359314622875001498039364144382751066798405310991929043621934761122742131554200637378444539005430165699258637625841878090204565401291096314305955529559921847128314186107138089911152626729540422276412145549473018096180643224780285659273304672742884871817090911618494899879067872910566384435058461422111515392793405988827652250010905182731524701911639452011733155558325940910668673629468474631085330047688336269412316547590957646510041743719569582318977856410933469456130357314300794990664808087034944705222125228261290955655548939999721067948305682356461188549871916247006336878398438641185120285559051797912144772617516485479385878868886801838328549507183178854245733430140301403791971281867516385253611407362538516631248580738744282805281497854185416385675710078185155222234485129717094081088040246933149666510587526644218152480579919668187280062566173663595677942357238318878630562433959029026270993597635543666022436311158000923624622195614205707339016444644248978964512171704681208708627493976335892877109347022887671552952039647310232370850671628795626451280917259662450305958775850240377091770991128124935999584630510327855037707332367530401294546307959717816489618215388072772462973155788371612914506311484901810876012038454003488530486698815774434017121231989528343651196359316885032831181437312310356510690407876035742569845418878035490774479170511616274993057565738546268960929790110762363817260754989320807343297041726449311612705646468400686944311721723139916511219401139414712964620112029489056837868755300280851355156559069400195182521333152980632127888761836148948052079602503291885735932831338540244278309642349338270327577215352650765316371756031803353233345806711572063001591908705909099215916417286589119332515860496363417535510681119316916929253770834238113494791868232063082254599201939935132215621713487838866377598186889626316686943801644529485644648604181505798049547151329210936417755243272037979126143499192396774055408472111648784183705777578040627893572040106953549055379749708025652572904038881602671151498570095350163029776120654119756115236734318524539275458715672893182710960568919989163957721332025922980720796526744987731261567315788908402335656919385247150529657792151188847059269522268371637262648176756811972557237486597298762491198763152094055662490879964795494725551087223242224763891188576847101312400602213125600830861465092126293831642590232896708955982380572234933270628446357321913165151836624943191683806918352668295875584402016546415124425649375287823907563585020927654194902139204812035118006797033198170892041972989246254189317967272447514721258312835503069297667100221874086495623537962339602218285113004175817554075191701695906560835784399027046688195482089453988144054772761016347647173152483485867335931279130401342430775622860680562067814476921081965415908517497416230116311457753163040483434946617959201570664085666504179207772739723594880405460193002731236972392579778385384309602603400630670237387231573258422047277262235523399710513245355491480817016998262291611452731326053603608975409585062594363782524481342897286690787467900239203085617862271353560766537309968934189906884122682047002566176757929792054232503495510953096122722889389715202912989611275546624743917447433978368838813023172396844113692499425488227358328413428832764372313478990567239364831769209856606565040508489150355282446483005004974285840555897546384282432361979787164605056686808453102111710623566378774293404370452793168016789930102700871795556299734529613250893814691685885035523663409412165502077520268457493566820434706716869905849609422850642181532707000055656119747949476036368176948939935269714330684027250057356129440697147928379314410665966196495017869656325889541514113783816677003139381818057594871546129488051511303982254296398597627128778456739307334588726601174508237631995983517107417434609673204930898136713213626819756713213231254474858613690508895011996445769193652300713387298272207123101905449314790873873792837455842240155250099845816945999351889953310027880224806059492504130133385143672522073812451786711794287022901097088305441258676393994748778916751600494143518295349102980879726782898856158139241342673071404085065951526864455411074201961809811224016727837896402500850451520206203835122273421222951203845679896894509794512958322119147725159049852228893551502751125273391732061930459683402155931059544983491564043609619535566095602218797970291294437560845067752348996182671294163302874594473062557228603195676920253324964746996677593491321127531677174566617506365930532297821137947848420221556089354197847333539671620323052065012554663352242898331212943026349561209250475194258707247394823974318209982384859701683991254579283967372855663000538213353796256355250524570730861488658922066371896196566665499443560855463226630496418078997444274754352203583760534121612552976667783656569931619539592003088990699414394022854151189151745424519002595857814597932616473341676566486820442895287293781367705022957648137425538023016086510522488485744871576041711357734320091154285427858116756427238322782331611835151744822980083768991690624998161790255162783583918405920383139373140162798108367785351014080859107722556601708337607522705093596985932534329938106242822568602918629426684127755682523140170149884429012361727656566817707421802458024756394416444036968241610642975669072323933108640353645365806887014576603565806831722124110653505209839091666423246481631966711096940035750938839133767743570382715362033245933031239592396603263947715210501826944324532161152698296692823724202389598828101343523217224475443338223167865314272332701181646388249858566636659849366207746003940991695717312547386893897123105951311746096099952186500819971926964766295738541243183233421110933742876068429688065559752790216223374695414041304371932527334168701842234378680556360020122112988089012477781010889166100385486979541641023800983865664986041469554240989887443670055083362126080042790008614996922640534548470063180951751303298612226054719967090226351303985506997728609100058973224565812920512291170249895259472977317963400391817130386139343179136422119812230818236916398083229999732369507422148042010886547043866459942886777389229801360069067318811067988116611639366927671800450411842621560775810145846586723171612976277972307776732792366816341146174472324386456853215480371881248471244503964501800020845475402950683688437401141495035254602463915391408330088987259777900221643682581657121361533724362731748441833988140040863678469826610936979280161773666556132427227574811929801398964907142919975844018993513078884490818331576340038652962371919367509406688809123248492063972942568855648190406429599184535278238072175630438835702778671988214350548373583685727332593528898669347142434870981610195666021529985703592568598774680838309922223303467423751673383864065915476137378960100396071091977126039538193186217542708185676199983560306640623026609064005835651866328025399982252408485982541158934253229625250671033616492843037975370980957231713100864540293713209941494801341901955706070852516138173754415287664086761039390595348276805064881881427797874260024982795764749523755445889550515316563351823448821899471831302180856012908693259989387103598763898733023665416676307758452880764683680697866626205551696700125869281519067595682875247833418343113039829379645245821082608853546955569109265686374523773613295781968932320810875547872217106567063609875603265144595339870669879752652814637550987803883419869611491630066609725605368602540135850900545940072081404449630094634952912797865330398229054019044308072289940733507387431082245195290105099830924936316279158033475698358712841894718262570856854005270597933035497922679540017140226537599341944888903903200837154376012178730410562194338911729193833566304343675370685062576887154954079587960146245500435987255115052277454534983442716511231906716038448406591455320018946354656440700767316554288705933353868917081653067383454524616434070965389348050380158399700670265096084655922768623147900517811661250224735941309489465959861527519645926884628278776489909934950835103903479140759290101524413087425986171811079019877345831808305797267870514980045073735449836889009342691512261311742245035510700932836767961110284643821501705695198481493773237685739327341417848979982626021612237498669944318833492558677201360285908286482764339471064303941102674484714817755716811990775872169713736977579335471782728687073712576199054951087173901701193213134182681784696127551149152243770091209992808021953909636535548291185210038946598193339817666926776308721508257311325745284767563152974105830362602754755069617890422706545967613565683666287711286416730122218432676647917597266032533245600076513588711713189614729597316603726299521544053967543745091029679512110913608062936410152567500524057601587604296759966517840724287984335561020225627726068419037180813948092544881543358328934777686183622292402746224003573539171127550175523152858991062766967323871631406980181829509913499628714392506788677445604399434099657410462929851251396606716408046135943027668078338344306273244186268027589794094880572669878308479474532275944346382904202687027966402133273586387567845478123279047723262799631421114818902126391889423391789431338230313032688265703085928375926203221261807330695787385412153355038488936130249937615574626104203864283351790199934825348638460859937242751048242905407713607635933289919386019889606790160409774679160279958816842632303329203340477655026341210891020787948232372739433271443615554173684851043689757684566248683469034268947053107943047655552528375718421396314408378620865498868297379249807738421053211536545437257918431578522603982275926258995162300464706593948824387498421978684569928519654362228147058463374067848986763918664118766579522978386201350912882533559153714837231560833941231714562191263454231289771267426699056270531382645572238357837755779247378476864242804872407627382114105485503423046702747334513373795061885013455041332874455530875465257692115543343377078361828872770413887866277498532306774847657110774896588756194416566912753903600184880023857126218285827139571267312955307068471994303666362208429034971405497046172590216335696636214970911980881964280605533009763281867533562110570790730519379807037563327195825489356784111470203184947048498569448414281186239307075871049211265009576139319106301648173010503943905984034582414239242858639491174941827486324247007812726473005096930806366950001284059285994045436179583825463564298179149009165174866639855018352789519017006205385919832026705722056851065785301701595979763491897204831648346052147791978265876088371947438311040156059079094640336151092135513375744500338312312526044355910358909572142322313289108378510370633171200124787686392014187272346820147096607932124022900085027270098768456960954911128329363777763362009555173970448633486707758903087456008734845792512108442040501125173966646767081701182428410486329588099804966097209181436414425221545859563173751218075055742884175361464968813417966813690118542654661270317179863478072691814772457797313146175225301475750295278930976021474445088769132017877575965169679916126366076063999881814487895525755320273165941051521392497123557323019375978039036514175256039572827908650856328899917124150774513611744436894071281049552957017444842910608959603936449359347839813880252061425992305972910710319342654256716982943364005080664854023203143214066121575796817339647610039664361351119606411329149135608639311355254034362623568086796884930859949159649419565018127898881129315762755869260136310532474994038250803988924238793064273236838326757580200936929211990459743170346512875172343069931228522461672226989840053440600622720804482961284083210995176483977641351520698397015876649794213809810277915071436178047260746602700156730685175506537132539795984283855129239954905699367976179454068267403993529762483549843400469716048188608980048406555153849696089309191792116514507806063985873749396156201710002834612328543345938984028095395574197891411627599916744393018023521703616083060439933035977426601868299940246549915876928411951052146548728456170206552784462457611621634751486142613906871759615501121422691830311965405244656272009637412137005489915338183401285384298758848258734734383945167058430308016412206128055413960803605997024324872820374065978586589470662358416991064674496176842389340960295481911547688315713000202138215555829520816390098950116671230053229288758516899587829026127897756318587006695238467329338837759840993044406565603519723203242417603601368333074060267682995722483976577160615144165006595042242911878083501835826714370887990887888102326826252469167204878233078581796885267173834028602215985157982962921683749685988305433235056797234614207063337112032395248453061832130940886558112483564268317676103171390425695379062100688324288431208484957555885194636712215458874602907912000227144886348413510941782156008855730620676182003248019202959628157227930400418492888551067936295632519373030561460892591640759047265142694958096649276769881462407175343642843748947704267756103031394809241270548216286945192158842590758201171397485843650692079222257396381590688197112971949158042774766519376010274483176530994201586001258814410908518480145749192543414356191909483304481489869884003573068163291147693215185286494552288184687112121487968379738421223608873600270256604584833389966298880951780082153175304765439433025845864684480098366861771224692381858348650270836673622066531290989021713280156727789056928748561926750141761898269238627496783010335094739925030597146801998457087784109517824710972916185723248570870353900295904044747674591083316535998686591018658168586356700710604557444608309487486549594494984375524832015119374305988923252622955283093464729510759609656716075728360806458748802240820713542344068390181020661966673178603801496533106821387739858942161251041025101454496146907337390028293781863242166271873245497112182549483930541729175581040058849425785600109176906201948963497769331574079321955261033839675666435988069020565252850308200893714700934949023389529115802934630119881508134960339429111681309899124967715390094919134608242844929650390690336685595795523541785787905155570165966213801212044320201918950966881117849644426033445566394830105287082954956407509861879550308257829772120547718732428967018246773511294549036020251490330985779920206373968215840721874306030529639051370457816110665162942479357159151420367386403825486739097834225397674844162341235403627306017329479579695607758017841757251178057658205582515115889810735796880176560912405481416479315771480072258788674762962450332851425891380032740796263203107141998460665339792116213085967405158557017869286711793032870572436692253033332038638398628796493576836830459239516551528696511965072285960047524543275567649374691123797495230666734940093198815797812667742538493988408994753194632229850419965299527888815402177256575703636396545106820147723516953020584094974281657122175280416538298170298215183301729681427332602456027247263743552935179963324268492410649870195269405593573364194623816000562992490033441523635741271187949771267639905780861667641156497262866032330178977699829769265165101640108499811297999353033727980950885079956243580997046617251699279380150426468500396389764628243710030155180341786141844459449620613760920253483932033104983868275230791209653353634123205481010544185804778057745795197043728252144999322892445863816294932280984028355754298465117424218283073614108937434654724906112873081519811477026747254791137010037278531599732960450599702457803839953378562895848546430668186756005915207564098274491773708904674519399410149176247973528857820041677939479116497281035973478622729707181347114858156060473682218398086156019862031620150077118752972148655244303953071137125823894917329820594376147936881128694878130861946990462011157812216769732209384424159296504025922610833419139577947607425293302507821968721426739573555820698921346626788886169610728956133129068609719466457914163369661154112305984741964299343595355197138508337278711115097314425196453968299642785426048904675798938901842227774950611014705987172166184005495892046926242621847746591771013176429459716675196473462291815349159422157586527793514373116230831277648615687375214156160003428587463751989965204777688455632203584288710510959288378419881185207617377278452932880793320992545796932738092733394821790445592990245820851616701921805966456916258020822956177593595948398103955673926128807845202500102177124928510370647449037319886324911430078849559793602114534263651100940122993989546454563802112763841728654194092842050341430149674483686784032086652631819337593071290569071055282366252023287534997063659336320881940794564048819980434430132128328216461878466678879303146699787949378382801574840416270012146345629538657941226332784265077299441067834243087436858800765945749379673212906782625137976495079668305429603679387588723774477095343937381549710909259793877382079508207097438140913085369316477982745775073408324073478013815138421504304515181629293417346819124442329764765957419596460913498046045830109628538750686931346714210763097371980604963978023025052849392847631694813130018589303640393846641316914812035894190157787792981474391645468943970728399869115131882061958287085689342728500471356828751051299460645691692262776063604321409231429410664733720694242333311793486211629715871792818944265341723522082397672430126653989768580332067745182835015503714308791795407711313145775630823750557707594968294442092220435755627125906109312799994669158436377541544627348145926976647043237589758259038927009477851541078123626963035092161831679799189331334077020999451969510298363383711677552253924905084489747768626893231101147249364519656234076626177240523181791748445834526333164146651367060917678472982164274616223837764108870894888413765552186254781216968627666749522867000732903521427564652806042864102884449494060356359378916926920329621792370853531665122755936283833709409921302824499079163242785544748055793638709313151909239575978326614777465739841300972184756275849397293850425271877912940108631713651538993306807739733334975278885863614642942973929886951987192777233525006243470666894720119154789932502628754619062284272346002222946671754862078007235869071474477752715772385318885002209192144787478766938521664251261806977913951871977800132164655417059127045028047234501450095974215121010167455201793669904449981339153900459792774232944287896081095302856021565434675815061975510825358791134141482095589132491444917867658117126995775911031052069650540494164051751403436372462143279253100660517009580023168107581227520805906758088698298943067248290890314495650832182788497244688288074842763422023516413067797206472258385724448406667882325560665230544650275390811709645960896895521890118060148528078814772311018390851724925799444393533100429154820946393687051777933958175949966933495346450956412523186204028870108126193883688296005305076664647885486784796532408360939168538139546137943577842324874490541758351574179127903601677557583534745249024966561808277005378481964805411973976398224837180788975018336831304176208978174006487287024952662180993918211266311905121225363363989702699939089889910332607839213312147907731682324150328285317840831530319181745829493894915445534776031930274278693362030977486448478778426524052582745575639900253531525571175614245490416969831451315521852636380045895288626956065778535494165993328791564245851458101391001840162814600256075213896357704106935217789550813954098166442381678578910160983979860473861324717473944803065561581847509193717662123676483067647219773831142140804710973197021922891051847026360635669426550879052959795335556379292922351236162545246737670726616123680392350982445028571764683997084595074756693235871913259008155108893615891832826151013435051422799979454692106923225833593737968814839373932558078463572320345835720940015759602476844078003731543521857859258517099041951149554771949356540553514486543817373353141883334289183551779065168741189417919807639891567367275495290381619420745686082326691861778965945409037969037739294212220466240301289488484423824483918021670026630892362595320002873257112851837683020148226742353251152685415478603436422872577585748812530801378639072250535009527905700835679301444199604974687172044342671201254508012669325309708266940762375441594154803423102694929446793784442599613852444988543152938149935882466704647978745212178438791564683605301796153468570284361362346420668237714075692100105190987289736503234325500840282730052727900523867740111476399141425566914849536435144492117403140167256588370332851590718737011161418753047834226340312766872342963595011290542249606562567511042710078539984929740942550476831643438764998289828962135071519609617083208444492008946625532319971497416390939718208102995890361431175628413740995642396167350524051338050642423884230395267178955681957316334495752215302511107818655429396794209375417831757772921985215472981739240952453766302485821431286831962407200981892979615224714286516019468127686301924255097899151575891271940706333990600156221037259574919348671462257443943068336354468867656531298731185010826834974917840013592269621499835786913682483414836201716884825539854756370513114957474847790404228214641755493241302351408168518164430756364102896019978300512524255864046999216361717868015389609516875041054420991732244078743553078480287258338712585986395587832893759326155791918556664766626878819109762101425765359412482464718959323564575534269726287185000303579044104207116114399450568698536760274223888253872943134127277027114775366642236469030907077054956885837824392301857946033227319934899710657441482756643789370989819983557471168239395239687825097637630767382888234980928175460985129918154990404388442732795995057900596816010838979611834076159105618886782391322400257033000768674311295325764611019936572939716020398783710915603741661323410448002771883453504112212184529210464222714894645813944118925298519717249428075785315069066846614818145508492243557420487958555117818182472661183385670304042638466341718711212312716841154009697883202352251626121620698009578410549534025662087524176544831397302288898594997525571883551707355755602643396761454225312203965623278703381892000009511863131812475057469627242508146833072874742728121071106441682348731991341002349725870039877622404986855857517610350232975447096836572882275573138835393961555790583405254561088781696565044855161016888127768342600801649804469615546641640839589441830606785837249959447684618903168322341689113253927296016184970001647797137810471676704953010895290055297075363619366065513276568488637322759948284402693600379114978937146262869325133611839774677842241081759219668398083731018437395407217631981808926686781482948197920197170440995389661585790192378811855411197943750944454948676580729066967761325210307507361145834991365863892266286073442324481283588726939545801171714319728569706365458043655741427201929718671640188401072217523060535717789170023623279873767403412765533182009722508972753009877913321989303450077534978934140733778460942130382521571218499811914912374845533974409718284960103389724208693845446395656579197804382572493481868382891004882551134811346848910668997625355370112590454784685487207708978481297094141745907339015132122578169847678710711715155023323039573478684279803457564381466511657761256620802743044468888764463698343963780631933734454080713454265088451157126787497549710631682155079338743722411919445316674305354860409029425557472942678730500603312237826416283079091431944570331602651970571344199232055194377260950626852167438225652158757441807752278661472430927521690890583823765587119458736806291829185179109867036838146533621025617263132904273724783337341065404073175467113680152870174523717093811581377993235017247567392967849904101297682663068815546267328147995834082472794670489397564300872885276327367288600075002196758135970854028722679775534135219488282952368500772221595138398129657467885164873787138788055672496636054501420884516771041548480816860738366279671537182274757764483675144953040383092176619404549545681115644492619488531336666021978255218950266089850309897159718108069135270766839374918896230213231900384520451453585610074083272432317189950517976305295956804158057606016397913630673309664126915398173235875126628653279053820490503308429863063989468346457756827630286613373149985797042636349229035290669982049622523645593751726688138417640466308946100292015937643270314197296368420660289175622670510915570021686758456464203541124478166563379319821867806364883410022954510729047327534316150607564121802684264143084102018335866497245737235897648019436269052347212021997390716472613856693817321499050110322249447110942569160305004038663539065893964326597354930008700183808772105663273843857712919210229479591216792588354810087704003914632652720210939126255669799433005160169799379824442048462781309049228357922483688579792648694143014334203632515147917122368673617006652449015161292934440715485099953413807954085824198262679636369729138298092962949696311079351719024960623460663340972620964331481282659893869161886340897687329198159486976202190519380706823405723401559833290313080228395896839138653112340579907843426978066744400796045358578545861203410339893110469243601281758264282698999967580931617518328814704906789990158184138105307975019524756214416943791808087110265307714925362325956428226703090666930868106899114317834393464030673884907219956928364189218935750028916459570039097592608691843366730172161926330047415943776901400267684499167751790564585909304652881902610451637251103639133717111526468256138865047693060798116854791162354912776674592812249727856608852421566579803098384393266920812962747365894078054629276933736952468527402729529551158154270761156131468455629794639745661048568644810348779944431610099815597181035300748787827444894767875772214431986434047934806728042675071881617288936639456364158863685653093121903343603008985473053005994147106848794117146655467996605839663552438721863671982830938410406302466819540608116684484358920682173441709532090069103527167853411932099951655304600662172475508445240255944967808623048442422332109785405853110241431436564749811872928942774474044214296552476519561955023329900408878458423270764476845980633819768224396083474335543106983679986125548800188945816933891347601481776254589939625052109281778544333568837676291294400384944552530143805487362799847044279554477185657899792190081947380857305799714052556226221280860681009392525658811539756230652479923378970435182686003340735630122185384022724069457900889270364323859612132796365537702782157500588715678175822109639581673265271340150814035232870555461825567177565226281446344130918078457515091069871079785366052369662579958746238071657362698018892164266740119324940718783613226304543937991873717624883326530888632471760139654065939379078700031060226984844103284166861487080987337806588969524528531948796450703300500597692636511645198936706965350853559208962125756891052100039420560321387800388034538176667298569047207191395570735913325496959189304613922197457891544096793697453995361372323213570880973215998221278171771841904395221073464497521016024015023622871008484555855192970079564664523631649342216166522845978546055545912153124422102266458968610547236825664535587395158987552058465014204656259976178877309546712003556379486891060585582587651392701668864553082638703504210271657334043408491736801632956703873870744137464635825910269076191011750297228708074944427199021323898275896980251491029120715333724760629824290447663297816506963712315414620424422223217730043731061699224685294535518729364323107711058042783684935346553289971944776490951825205429355634870891916756719030858841405841401351844902685591548789598136898633242295975697356627270981795739216617829156613291486481052202016055496155094010416577264332339642356857725995224780215555933635471729314031248627720636102699698679661666045280228857486579470494900512721064460122329153277721167509161282952832745308312833125315745553743005166142788237883035763716765682223309091331332402223464591227257348132495889838056958826998355424941865646316106510132271003359481585214615530197035258935843148784038869460725968015812255551405001893694057497547270476400390480960158605959574467059172140670892655022421369367366489329947709788847304494044688091106753160198948943444578126615404374936811071128819298267692909229002774577669459210997373225844262831806171485699359755643935389338076298661082123746428956886735016240199100331687396231615282412794890635006453212362850080791571534915992874303078960433180111950397585710398143774683312883490321671846051585794174905026206180847386509322680163762044319220710692087201500385687027765169566374468467407154359857868436216300346974657245821721105351784157977503782260914210433971185171573394838525227018145744271813696459178740607491370160467985173160079751573860503953791477387481845095560971011103163292770008801073936611839563657047673235203485978378341859518369882803718579276999617566240939471805185223937632278203529120836581034424983171005604546985349701554080410740237973500140795230155295485512343827398909668514768784469791089668362600566917089401784684819157699788561953974441575122378751552205216574750117080037752067399624585307143674673197095922582900113507010375572750204730640901144092328354743398173106051579751906654694289818650433648313409033934298326489916121838368356473263587609691186622180640202241238242275547117213770525114476608565161808261966364741355393061682022207601478905364252915139048242056911016106108004682979115758460430811891104475385404898036935806530832940096866465720844793765325497256686082485010167908811269467383496110766775021963967455752784242550863205237152215646510803154852752874416008238937823539134688931515013551407333334460208578498985713010190121712127935140581988299081135886875937873176987844058273190871049616523371850184202197303280327203326249648568338705611495975867575072662708183000269569071689343205144235795135555986350751730311209116088202416991602302060781296456989241825418199083082493412144770312242532133243456956730591466259491117525805732266829189049583782261610862127190399562278600791392015574085877438130320046682260063918576254276041770424999562749022071725236912818946422440047728062485520870530042371627232188068299280889381682882524421246089903958649435658513825231942848522245620255843104264980377373870931314724064079748756975581867322827538178275360910762117268168826234488281112643391472404911461430466486790886149996755992406738928086314016803715420629229371498124810064872202062448697151167915576953005639282985297144528716959161247115252156574114122835382299574276562623667566379425758704237946333898028403935374282471714672983007075803968820673612512842310951021212189826545213784292506172103698952027371696143233093184704046343936775428432251044407914662256843933431126576986103771076351531255952775808103110694134539370440169987163665718981278026196052171195917085209330775561963562052296835882366155052379174059741940527509784371001032425748717031155546261346542385851279620146942129656508075282824817757157697272193317614450454647117139810384517654948492916236050632254949231237186439842716821962573343269166003796408091245297215267189239493796910936204383848537911395027734510478086056730087862611378400922216438274142734993935829151420860380407468877502170076932901924812969433976679694635733232386733564487995238467760360276679335874542590160188180819560036895888694389345489379690819936276791482366848864919440557757552652385089580613654346717779545143630721703617212200685019912941281194565384477270110352255837214211646542823679942556804145233347053842865165217269499704622890770659846392091634746248120746989145937810170812982925972729911406259644449838020571952950898322710594301320709706504761761641773802272718612441780722288218012115627150389577132364288596945477060385689642547989662674517579514176995663055773169170933466336983458868136046959176165055619970939986105876888725413514557685020963096060549105104790716158931667297418192974783125774698088060540729665573562242818358112157940170511914979100948957952142679578582288006892263347205724378276144745770904198449525846523147671052381077445021418145004090138101879065114623889075913875866890117164251570035800153048609022745041551758263704108662053254646550762430397448186441318740213482759022575761398091258268102995928969046761556427995918826397308561458388514626144882550641541054789680866683519239600323338651553262814970180916202390899741086952317150477398975422009163089394671106572064477108452744456540301391750256554392889725505319209719835530272073202981283561397671736230701546136914058837822730007036340588499517938326683454593140107942570291423221661663886067378182073395548967002598455676640947106537366043025480975375379039380896888949656894644111616049797862629330735876847805807629310901022555644196642207027478999921239767595472003307826354809658370296155301552412365160048076756820341290827167030075343346973255334289670042532647622655224133754140264379722470296834763184835785881260335309836605888971995923186769839002259003029045032331153517701867846409033218421990144551271796241248788658398627153607632493073350975647137971167030744507329609185400143735915978360863387442863703109546725450373409911666372078759287292493868812689039888631701789662290221243692061919451527393839372025089166642635842293935313321362560258045395101629535503455945632596568299038850803775612611711706386970095626776583972967986018606675771457855373743800329712187073610164458294628816970864181714429767279528531526256405535310045989804549156272710671377486139798896696636926751828309913573982799456049422838738915987674877388459194952917958374337874729462384445151409595824848748203610255829820182239329410691076850326462777595791829946097615176010807991677081831746149544978537267581378899370839546163389055008883455831892958204579937686980264983518003063432805051712442888088059386308082808541689192564538965405959164980830861154143723714941513371841278634322406443791558512304402478688602002829329107761187704655377803493689462409810968400406311970880312554974924914381015554155663297696670103721186790937605217339722531301896581342591350313021572984041496480267368196376837851801094754617562760057937542936183693254463351267432200753466880673465601598547045733339109326465837272861575198177425558768155733775451772430122599382638915818912926425523255022847189762424838438847433023294936852401880758930810592420605898631642987557086316091569386019398576973192334978198292454753271863369742977577567223032401904022028505773600616604146864480455468678574552311133209382561088845535338934270311463963889628599364844297892391524083307130806977925970745283889455951378754948604491293564551765710878415168804928371910327594011013295197242791268675211363594240516707305357582572980986419325184462765529496126807603859582713517667564706100727635613458825825183290309555166597947297447473171380626278519819351871117973905333514972938736576731352259852927211148418027600583737340174005105904092460198437951568146980668409038054859157915877464389555960769369639082633768860506381112947290905828512438607592132605090444901842449765364623804441245652359191454666729407096128206757067812026021374438148372566953688927806939545583403156581816198083154024609691473743244129546418095374776741307054583698745985181756024764350917210738016644751443364060552427536044278957392181300945203023983060218140768289234214730630402375722945259555930870337727196363821239217273469431313669221167100551263638862145809107551560634295484729317205799795735953839990908903065311702934646378702301073141461447092892990145585570791655932742485508064882254159175775813264193638742353613825134311964406264263664578742639623845663676260193334200761033667963455758545870608400631877056219280576622651197113978911153917324190017458810863353193188958549825336257509853326246822060149482923432224650755916323689384651479221957883421262191061086906985663136096243713806055297283732393251759588238440190450679276955232591282211756390862605305015268343866249811618958301221473310996259636811328049196946918490983162148078069762504338129306261464413859775017770256060817483664876573219766984434857619987599872461380253947677516779479948510638172531527020772980726604072537204339442100766072461444743141430436593281373989060844314000173647998134843605554365375146468096571482984312010973322830190373538437941169424913425998927413431542936524289878828885044847134338880939108196234799972139578675712028982801878092054668001153953330739281040760200387968093933142427071480719518602519871716064915096745253151774894570310223887212763183082377319036139818126714859673203424855531541257766729967470159705537265066257515122304513097031686217290725258871438899034171682674072503765876155380014791856580567165145395228459535481345883669777539955486701379811433347580996477317732432653468876487112484103898271536936462273099985263412126123714592333790614363524763252961854823156681986146239785712203575581753862473806501833343484003100076676831606303940924039275205470902644899236981747438130734007949173917997839561478656262268801933756331050952537872791683411664102148598525482058455641618567544016814961571381349749235505343088181790795273595309684453082339254320231582683192175912612353462155427223250030209007970180718308289402421309634974489549767932469924331836266436944596388104329391785914865519078970962076699514276204151654387008845220705242905879548485914026003144485416223165462974509391699505453234313060930416975368144943386109310991275252841991756077159102379100818478826716852546256837552965189194090010291260601834043052173217782159909427656175186856671270331207001522169658151535056603246974778079426510164673254342583513218029368886113520951188806524932605850070216805621776822264470720396929504819988962472170455909599004281851364225375369624775022367983386488173714662663630255393421245139393173251513010221777941278643116069837305336192674157140503555983090708661778167084112608462849059013495775102648079354944131920150786755280635460084348494157581672593608551742380275945793037720084105584829828921790429062446037408760567014037367700368475646245165039364841964716454159733030518363470304631904953247485308130087409071485424160994638304875994560905101173338445082356727279604090344124922207644615382189590278389895312333614757631380822137536199245200859450878802748950215766985155107800432714233374013808403215877218259993018165235659335467152843618266841442196767021511240818463633864616079779701628218023520574436204737021420990243944186204746676824243948141828258744329768050462499904969268371596256849097674890680276875854298985894337040170180794324026705673400580135709910195584573533178020276820240121655199898358385946885110410140799456045889425469602524238882786435717716906837260077032300180586241978309842758302934195896114614891955824454369832953330919414877901726403164583885569085869085116568154697264514178398624929217538413660107004816045850836491768372494967049659526361561355145231126779320272589283677004872956802807981601786518617117282276925911662735914637263208621303189400404653866785520299819492485518914069158963817926563265161959715773261795965373311841724025783091644604450399691756704057861850214536894956382078703721029289815519346279115286707939671339192038667868223312649769890272656201073301743855935355844501667535315910080998094738218328843025797213078478351117665773347593999405592304853253333215728952645308488124571594457450732851963413422070746436993560309683790690542119773494719763109823860389055951312265191699108004312816047274572714164293433515260475944326763879654043911594008297628603096631548362526488856823458016889263338262197870095752564028620399818910841203458830187327977864958797526528340468990659511529537667560820159764999216860666717848257658728154051514624225634269952887621764982870228649795621909515486764094559684040656322065327698084183392079879975307936898871573602654832229639622808602358915589085197468402460105488797712675457279668593300538436938302675340140604498486024643909813967392395889404736157680819946168295942381545451759687154567094445960913143449869694827470513563915089066807648769144020772814244115761665906720362177703754825376166453946321592601162849417415469251916566100684144464697623195188191423824426646130199311037404943581785084994905142543224736266855686805125599782738081297220243429935722512230651545776532336614946933323814657057700190251315835516880106355888319242774293834877396332728878882007969782318006761367706371179027123465212190536200511777732961564874889645536683686845554960431566035251755177077910400451830572406042131512799976627521599499045526367948780458415209947362429022449895907325580697816731027171176498432130675395717259893744104329362857349840383739069389085591611215301068779503722710073269004007687520407418805525165186936694025620077836017631905671087306170232302579311077754985409033628023675536902231658508194411773312915905963027334599735736625501957018013220168808711679656204218422481110968138941086545928320068235858219679849538252438499278649394288484164082921531811942191675716703551454868123784659138627326427013058727088062845419110884104326616721747187513417813331593239734937778676458216369158583485580099506153845540035596043760192783705039467155895337730461386665666575436768030296878001214514116445578768212071562786025132003062318745005609032130383028786646958932541341151238225898359018007739139746399392683883652671576198602535546731170539108393513366769560094955264887618930817006514629593044498456072967736661803715923530788496738202796803692160147388652165751127082533180942146535215043821693477303703753856870510393134271604127368407210720116422887212234881776963973796412735613395182532065602638692504006328137401654342860818610431841393995607756112361026162212430147202036834151595076866508987789027974769308146891109869205235330153806001055074281910897287056617179312810179759215876987201759505744195113287304353694265120527341009914329174549300482391930822389923606431824320419476834299816192518132744342248629860365731510617038300426424875420322946836661437373489503316228303379071091547497257305206965517627516657821226628746068559444965849861934740309951423748170870457107469258617592295786924729608758209080896632758698746892597029292012615064523690393255402889388874902510889019100352742398790080862405861563958829873713524492221418531847870931516512166722792322629291790114018907415803730743079722648562885994386970755584146706418918022266704710609549815681928984988519940122657317156768367111462077037412360366723937612732410149349289005710830078094005690876521460651034037927334407958333766498798671454815633520401160696087085624803157001520969416978113909599948173501135065812188650268000927214206954902992755858982414649800326842717336470203529423443180593644973386856376149837338428180604324533536190624190021964811639293201913917864017274326671766368684472008526661627738233838473329666221594463352781753750899678069852679355370940996273198686899255231960496469500958523332268936045605617376110563292930906993303813831224123910951589236423074369434366938203493889945560474448052303573517964328053725913505544947597601516082329248076059177948366569458835900985404972667528466040228432621663527133317302313164912489099657589266227752607027641499468448511449469083468845333273676993995914977953904327087286074179394346169001964420782589532242956002005145050888398631772016406818978274950576026899195063213789365909336350145782492022941840286669610072890145885819501681833200836849355974597451581071053132826194115985080982974491341412997887152003900664383451288107229564759612699641161648958329607904046544637572592567488581396582329912041175311908372544900270000041509060838990002262730364299515798581062621191808244906357157087412814113551541783216093079496880522643647255752143464634826561419603390215208549404668285460623814673832782993572599158934649202573994355025328167546400617140320725383450588438213432979367250362850062308039486190934225867141822807336403021484178416716728442287938609006841934892086519035842277340597176963269691164921116305831203556312321533227266648535256171416615620543067880509830650999202728834055720158840232208144282170963203591971473868432261589262151013441719537769636521159585957562755120706554884198497764769854150861119933502221633830183660776223510633021570103435253477541772195794606904106393980410799748913943223290020404172129009832584710971334724813226041004710257013924650725005795543727447304201831109359565539496484857237712450297070254620300248169955460290709759201902253999552504795279616903858071829906103332456422818530639499468177798069595095358617977533289801210560632358512819771389481468482729368921593043507159847910762817458462223596638743002023059536654982522816756632913293097781402882183626725442658560159519989996866222637082847260592838349916889841959434943063498987700045505132572314160242331135118176586183223672137498628814969709758911612166535514819058913202323380997918973918434900029562066422823044682599609291009172179749015062594982384015715602513300838032790086687932562868794589272423407565549797596829472481684406120424435239759199831128134714166520369533872503768306795196656436640430470564903098276483144004613205090803664199680075755597548762271983023879110576726947887919201023213365887504326315160313304765384283323161832602625706857308762288901171509581588066017464717755369283394510953064578734996562944664285453820738327922443848916204242302127052538410778671872542249244664573081374191684891698285465601045095860661941292999422247332649486283488070860190933229359006809993292005443785798752341834630188001117248141528953203767162764319555006164364104944415864798194337240748355004065640806630096072834571037879048437416628521383849501924168503575347756207077105858248938009524003502216347725550474220119357679414135908602592609497662750994765962299899610321679547243302883592524606041054527147277906259538336650184410155503051219535485313158183450396849289507899017665822564010369540453430248801677315905968419875833855435091944741403474215229921376652635659370567590097269681113227108209711655468886140279664941471565833230161413475491823448592873352417273833004405164780581436782662499387541870789871657373314864284626230000784226826945701263998840633161673573492911736000335653271922289975025527668120535297399746581821517601697930091777342327350152850050148910738123624994983169224802243107169974300956245388766789668015218676854524330637814275101279567196116912466898465273757905205140620094945522446392156971867131320391426750050803220027253015485977272163013491295201496310490171388570260752836540799566160271260145424294307602174241156221857670984644999261537127743643789640622699116970524723924749436034463798670351655742535983760095697259268407263940708084527399777135615300594355452583109720603597201580416680745636312797907549192632233878219984096044021179307563758709823610988062966789664460346666331950746219434641711705655362250706848540756056332551444669599758956389828060964826289720520571033158058589236257970155517110930887256037438550681246230652580420279670385173302239330047017052100457794483908357428936140266702039774490489737527956373287686255154091253252204147839581484455022555472496164736321522930514320411492449460170091758863660498814113647096338628019397092047274779195416266377752769364053296558797307915229213537449021296184430544662448098173850297697971480636211528085342981630339811035710945615524020053735232767632162692507109889316878939678582260775627231667128028611223149346736650122069181496497801471062546717976372352368677625681028198858617164971837175155035388038312150353870795813046784357201871280949641341383575305554628914358274725032241074429218622879160491658725527139780184338544122809386824952177935269184050407213165637246765584062188268264990375496818873888176993981839019996672305367363592411635834955354220137558502294747708559672705264573692332137074816533556926784886674391001777293691983726440165089421074723211827557928549856442838095072603515467252212806667062026592999081379235067848530068906566725541612692789698352787639910311027775034345248747739942265740985388772558519779591990952448403449015977285794492525959601626895767324649864769215395025202442763828336211924140602120829747649892558274169513233252140277450837362643173276110740321781501054424847514487072326883844383699020897297160736109844163622359073847861829348257584285139049949925916552971675027333077791720736493837397985630096318268905129208129071800345347358131381863930691613176699553977035198418686429401126418822758882658156359670016020228008545169940616587485174463901260720504962969374421526344074586288056062106010265721806374271193875031144275597974674219100946750287104528077260821080110774288148624472588457701476529683336698757842385902128420676392557271694211610489062699964271437952551903560976920351811491979110847344208621798543100766425159825110054104563486790985942241519408958422772822131725623282810218646808999654942360719637208092524517411069814555555475232515628301706831539080349202612964073305907962953247945896629876870223843745021978723018484678518740163347831048264713851301862079757681388709807297867484857050374003673125291701144217485744453822437016446353173539242416890444962692256570137883305488409920921261599576743811237266062670212352431028049371166423667452793025689561028238706835719862190617250676584597649918737746753750771187017360517492628512265324459865691125360548400402255977363262308773241616169227015412013150452987567228083096649489565079484557587503397863263575535099599940671793836260142785385166651748564649575856753375948179645612683328006782087475727117560250685533007404789398950594520920693218047453434130456187197589356049188514615795997121025559466409122101630852813357226771898786530809263148791538939741281417266048402458116288487955906756142392336220788009736201407325695541725896259981999214009337367828256959486126480182655363879439491435980985638131209425833526054808937325444302230715132251790389408859489322181404031881632040098622567057243693360234277876883651477433374295102789851352689503672185728835070903792633352199664155314210746496954742808977024217593501873073003686224071445352111109445835418352265307687515928120939512927946855273040350720226059819568703870507335563361366993803232684727164326924411898083726757942909317897367779417323851237936169770861179082515915907130933578931391042181017741088517804081735459546890951577320114207132818601679000131487996102878001811369256719905228455307002137889558651809442242853564097290226540709673018677618464372124860066715028466735193237348280293013102709470678344811440564422781203866648396640832773850385254591661045185207869177568764662329597533844228290695126146123479201637717032850795477696833606053881572110010956805666599733845585144832660303158193333361575284914153884142082878932621867861812426261075618355642654564345701010453071445543627402205434984215644423723993933106445197971527967154716690885333329417677496424478343873331875128333811043207111558794782464948352862017608598633370813929791979708141997992717632360749020407179657714417555016922904922373493934377470983714551549793343851907250070499935870383268212135781477209630041056564688800533903535177167687871295643352264551601881066258450937079315227581085769016808090010118732613273514441963427162809433540308528356791700523272980949581911797887936663964881629050260818869097455888864456839501065574017641688952997206503912689730795625288122887325257519031691379352508170143470360102678551580920902770423018610416235693837826114474639927772988746189604967001982738462928610160179657343650053518614982801132757835443930831617470487563336031841522547973912882455834977327242679767013796288157196191472344510455271242894019098591491762833590928260912052304067992069601303801141958263226394716405405540870112613451415370814279490643091374166609300196515247816314043509911809932438103849862764229365538106713814095454530559970395043027718638128943135701067658515797747304946156608432549826835866112796577743467573873079360524177370420607729541973389320780685610333082297674390699162390800576299015437784690605027806380147051304493571694146776313911171730366812881101323591598523375067237612794332935047396849950670099153449492292463103572645296614189284491817438754474760437082355662997346997473135271506538618592777507008606504706206193911419551061952884552785043870536345653256895108377076418565943510890079238484429883399802216332668311192871487096665023991705886673529321522102934115640266351124375784365023261716838275717130709509579919115549036842389468551084015194523104624273810110755298836552931426388006063114581119906101206940621445113559308391484950793540809003732308352611535609101603137059842791902564938044195979812540587480356393193344292717252860665332090455727928278908449788704010247191415056363589823117408210403677773900100138749142614236057184754942263015984165324976461614206617264565969910731478610485232411218676849212200749082606383382404957133983203224642494889911455253609194850170243383996827419060988692560472076176319603183663843848645368369744591169247205811198812314362123021384948879380344110498800732014374249893051211983053491154310228144671233455557992107160788808693198351359546948941173121251752291119950716696622207830152067519607955323877091778474671717766219098008839803042605483343836024369068544490274203398701193302528906761374976978116871792394899062276311786490272780757357346959744180712857572681841866043651424739813524720246540235657972559864250529316480164521447712455576000268516959168135192403809519660363556856866916491928280076385401944361110720194223598709797458935483554106031245640015780769545688492116972121136882115293921564187362008786318547520370425904874400001861709728740559401987513894181706329176898609798073864344390555778451650566505912414319737735468791517382998520430232679599784445723062962228583883137992211956164738298960541690491797322661027944150584155388315131814456490903451400827011174484415823990617158258384407215752789319300491607058919930300220524733861834350090510865125500202545218918237357702978338560224363374874854940271653833079033378260667255366675019920501579702548447944700459884516123120921981034334863170592174539999498589671264830516209328368738889116222712636905408161409659476991772770289427021849134849148479989492660883251622194033016853350170062280871844315020945726124987241032902175031993563959492838713330242093137279984783753291123271104290849241022772880509154915841840440767020025220536773597870265822240971123655719489981630928458017022955929687885513553527930812663457506783212121318310105761932455759092421024107178602290894611094303178470196901683424927272962242309922128227132873738710830501535308231652376348481515055073551491254926355892414001373028179252541800375595976849246417192189314236535041314259357655623906105538118287340951728741611734236121829493280898545104634154780817192655645275967931601451030199429328308163837138414929721506586435624853844350696314010735091623346557475859922410327746835206879011762271250229914324321885611982501455921295644573449989663990887141059321549278864412321130096539419910525176512046565841504855789997005312624213170010567489542625465300364720760163220990779362751289603041922387243362627812938642539028854784466771701547307783252039241595382799061153037687359625608577382657540850998085588173896913051714442026056944333733621308487293369420474109200723151496373912685194267734016137380211864027547271499977863465797611581814075966937776987361598996679018736682160865210657662183382805203892637394490776448323591789833848688826740134645130340222886084611226058208259694647473010749778132666430296549749945693969791408073509583928024581094676467952002910559877768451452240908965559695210263468423067598651661865596631723552605432227889037992613578073981955548675094299278066076671443084529962412266639209893359053518212239914642423268468966459166144242251274129404915520059759012350235331682857331252554188890178086748345273746902124704584491779234485435233199734412112406058537144501929283889464830860620984770269440694901067099341066352496092934711998646566897706575668823666141726473016348435987339794186575651551091375670612352251246572805239992634322477646763905461003555854803367602452260050617714151356922575964424604305549920271550826779970874188293476791558114208963373727148899047268491617083133121927566217088817319749618519694925540445849310483711183955051923808480661088668409199296520006032794907315501703147541669315142108037561515188775693418133945044739503783010148641796666293021437183413889616297862448719917124028483597212152472715923972361061221354178340765013772946210097717347629581923634035781938603781811892430127652439147439285944516202644570557424595598715330666543462769752092389660554041280957716410878655597145020902010551079161020366593189719402334166077141813624221028871629181618623608481971281155859964236577485341528605961409512964400369119137271376980569643326184864593259051829013595699336768513351703745932476528144360080160920907471652885425996152656004092051974546015923869393559048518169161085705516953692457189462603193162667849557413804634120167395139173003325322003184760898436894808263000217598854329200883750877173794990521067849848472749477359931191365415865484475265667418289997259713611522296523077504780333296861952504808093843736218783460551284946930456001576457860509071686011733641406305738649553391037147144532130458990780983040645802212587217122495728909064602913836192337220316965622591431666307724320092745865524129168982180247045809242557087643258057807467399274558781019456567439872844162296924694026119311404306197737203171930283881033965464342382939786151352312805642446794871395045913245808812806599923632822568096990550086675761062555912475370209737218082325464418961760171453046030340995989117200824300564203902546491698425595946530129742570528828390475972301072241385824498408361801329050841747842419333159969092825767638549962581414907315224462686669995536539368092529200977783872496515369318429275361870496799278485022570145166814014202808439214613390047146402314363284268513832491480233857798853302508071389150089762035323970065827472122350039082778221637034834241300100714473943817385904327941090532042524724922581200563964764949463350140862238685109510011788007364650505384905159675093253413331383664315545516464906040259463131686226741314043701697741855409921785931334729678928955724692658232376268144258925512876195982984856464744684553392315877913357261258712982560884955931393433125645299141204154245065657042743848702791856188518135437032301346912006134906451329510174242196375890622922402040311478569798999112238831392103949855656683181184460556569646700452461110334927217684615147908240662849684887238720443082219064993823495102749268547586716761577619072407220782251634998197001956443420297548307398588669810596125444791502125847323090208903511542529328273258386538428910293852754859737661529480686845593974352205636750894097765799798085064513078689678787089948081888973787621203808712383380450699893400497084605178404649720035580109337085011283537327440260400391429772895053350338223548087885829157943630508361341327072264066117340528998299156667588369526945844464873552617145478884374599685118517477998795912417096416927499112338319791291926567082813743509066216728777415691746105116276429111777840906995836689650292417649430158338536683108728823749007159337878850803106978458899008926780600075610928028271313631371249905644071032081841349882489075773303081907632571762104532820350013762828652143369333027324359980958725165104721513892574053056556910304239887735161458900594996479431688709386577517588106427432346363931739894174153771719037910238854594378179527123694851616223637696883413349393852431935522516233866503486555425402879507280235071756619337222124320253193834693695318726443907858516270284994169843744286588470018579817670568052633739473090391294192856534841727754853637886487725734041836268531358994141205256058401143265946950279753248196636859989123924085435550209590086713765970367118132980319427111780862084769527209473797843339656250313583625170295020427318727622776393526502769237311481184618982883942561656252178735407376041174186709435460649022300679205165901594276771016172199019280501398453351026024415146305391225608823046430666399495857217241668529532123136153974591849460622882977864321230767373075982556961307121879554399446419119571019689923182085395570050265651724810015813047168037087785950792259293977553962476217413873383826991807097019576427003107667049411623246746381781829672249423527124134874762866320432072999239907007551469705815892124535651831995794397323640554038868350021769538772336903677139895199930848347195073801034418037772261380522410362282169114050573712242326576127754226574932152679118925423237814188420359069997528832091535436082434550825654780961142077678733442213564569064082439965780341496135009136202548607241826480431115490789756662641390702514574336136356146476269179426451361171662602269207536257188442795370361996914409814292995185705977343246192007339011894446245195311048688980201752081055899251471923979894793702408235429942135870100115252895386669219587318137344118343953593204056155577003611049002864219242902797996278538258583726502975110091733889205676110697989145659593438469321293321337051703857692259262918447811013412568328338978397490041506565024855992517675350376212448315527763814817728205480867090731301196555265839497603010018442807667684816795889219268019497449468188056083948684781237592122773185200777450171196054023748104538591961292969021291203143587579457684913288228094287758540732656151469592940827621099713303471638891798878837401360392230926281177560244733972880138617758440395030548715870045045124245217527079012240019497828825480698961410388572067720915817471143245721812879006518798722504341111089158861695869598085266979428117798329306171792877519884751431502862798546428501764904571571792462897764711187879614961466700481549476643391984771500258910469825621826125235136136795282468898890978174071019002420348857202078881899429651358191396912577524840965884370787041950205684683808718806011237420979187692742987066176868262158257057091194007203967516140163886457346426431487547164426272567151242513068801323164724101728476983867858791069093771596779583775200689985138531421628460671925360307533111044078447844505318988326440910065495881054345853415716877116339596746092797509909742784889551254685540100172438306737827002187196249296015130808158424131614925788105439352872793159232673234785048349222477961080698528712801898417998987233840232223712673128473526328073822169184640841238150965679303855080520614050703028165011256510076814955917968010411525658346110063262477364396348559139326796416158436399076460865898665845259652834800595793124091427693120157959479109874246949241948658478709694324228587748537566285928841472476045619892247916172985092346309372982302079284870447116972613217569708646958187441466793470957847143443615683461660572678114547267373414919940169474499244453104887700935099332299559962384787167490082056833864232688755206810159419316934320207655573476694612525404022616697533141199054458273756000249613002536935024803033313827105304547590961950467282084061777311330356651454646170398517737183047133458624089793502956579531723986569774208905603763124163103464587405296195578685249554853974132971248656682224006549832273432836434347178128417388024765235699637367957490548703424108204845196561966421246501189052400290385522056830013833373842270716800450499396463589938262551235086133742398511501967866888719583459026829756526522190526373754483399841167598145019089686358502595860129409754905641375247369848365627516024337100176525263311698896303426621919029364769511288712193816655854049219415470969977050795842856067371120773488822673042273936936847787352299395507318386223314475994751706201237528764110622546753334449316311145506328811908296440580368798707378549985606693032622133577964189307741023637089097574671644455811944171968522261673985348244221168783783880651636548513759160749602516966441792333635921614848160888415172276275379007018307639564224884080253074090265633359720469692335160593861447518617518114536596106259821195904953083206561533014484658642299824813514114119373500613061612438061209729675800479141071082855039303785441104686709650687112446619223040341814038133711185689216491573709007847129126694444410512188401112761863176449915850953402740179460303792292796504026281558657277840911647095821703614572934567816900420625363701057716313555806915244830564791741826701662138857035669952212307733471977631051509859753965820081495853256719384772866952710846268077973796372791740658408484423324863531008576629036069097340006722477029234677582180633707097826711272485305385823974928764307730044039718993285161541022732671102631130761315015734671731781578743252002431840303308406439783911665327687835302580530445976467101627047679285372572933852080074384506190652299906907983467310153130212852186596487682841567709170595351992048304457836888442856328941716462869914806461251756244226714058136205667912284509669935845216568335786738580873777832561938652918124020619845822805003422214616169069083230930175733673996367343429088112136453329298551937887925134345580918671777804496067652956722014445431162799158949324921678832703800325251674300040273850760548979674708833617536484744732904038398850375796098718745390000568456519684088667889407862788452128688167162291074441000427668668064791343069882377981475552588883941564505343600917891761749712957702762155194500291775236955982226881289324087971021828707737943352168217309715508154181954060683328872234202924159739557613426064848713220458369550823514995523505683814709694806520599811529980341282922590561669759455259836763207796347095393617354443564022402778837549189577263427560410280761984168513699196731615205774309661457267982773662090572172391654692593234285925863278586494854313449246036747290605814530529244327815854558029076244152285650837167880921990079738754771367336802798669452409643828308293044734147552671490391560558423167301496231165753063276690345306109221026885607405346234387126262249868606486661093573712137924347729106898107641989885432289326816621918209358614654063622471583872027451312240662135002018562686189787865454115549782437122302759335547531608993521353093960452324842848479516556782393852699699866913199085041995615785829824198964947859507236985397218075465003655309739166271216224844610378934555596914996164565742901531161971337563067414147068440669164656889774324324506393417786937650806155202179094515901484533664515298706530223030486689088066636714827250734328964729765536487828518841224886831326000961676434424158514712526327528675770842767670030547766450656749503891247044435823543420598803818601455639206268665255027494654875581264031409075496809136593464110781153925610194458788668992147327838151751680348592862715803286476863820730701016216050682141074522320458230280274032211256056657596030276326822888775088896886337835299494336803053842530618739948559563092729033102877941217309540324079384382238789442557572844810674607154065641643863471563977240229637154821044610411528302935335269773438553048129011768786399951098288414775552410242839033231003023073523836242277748577300066902237826019975974843369158960051533951486065813708363120130380369154590328489834433081341585738638591668239362035850158311404722681594051871786144833322100882649142908561047544074559641172266484760351741868911642235138830335430944210390030154603206306196273643497687540072345636697421825402417272884950227294610914511728989226733370801726003299053220624329442957997895735269209043081570888252212409911208271818376826371115183584238397851812581097070344083601180130162673154435016623785929605856218582399658158488978629821115839970074439862347165730134373981317774507388396061056188185670858002955448077734362641863953416000196004466674680265593072178036151486248224659410624818786511439319616972193026051399287834004773535533407895169369791912685247064810030349658191675576906720584617332327616992795359596089412790278414020545153107126345693816726780113995143127825614486048764571558910672055561802127126148728083974560710223025210372342465740322145688111782393259829492141304719457394899054871177907506415345467246944685273182935253276999546796891902035187222320381083029485549164060909437520560207625059200274634165398982665501621786209603653409818295355788768183717567329116261184394365397297285557935329038325520809455778856307148791205382599861736739223289904435948921414404681016981693609560644190157505608663669808744342784544321355245492140497298097423891090794833852670947050403463830923305739450197924737321848677986906734560491406200190509170960918419871918387816186618973686161985456854156392266611538494868161338393296199133027945587889522791506573241513631198035062638854003731864919726414422476280671211920772379776207418826496238702850207644767705379910790922152503714231420642190336433844389446834430703003645369237215269819370851559653780169174899868629502423287478978612741707402360023713261770780904942441352363577356422122402060881606740848820246067137570117164205471972725925998061353425829513066573124266249569842499446708418354380871253483128504793787649144407619569156285202879163714080541857452020140982798637441126183918061864444511027258423194022647914114409042685260966730259766288678738794756684368242529310353642221169847450934632285841680864312624464234394305789378996873413660240807667658857777421017263261836161963721990362346544876411610888192169989362203133899985048398043236160092860891828654055966966263945203487689443714126449550552321913685326749486160189944297422077831195472862871557870577169497003015316604563516900467866344996722688325993322601744748536199365338097653741292098289245392853906762365953933927628567429587368323923009372331117837051803925115456549856628804981050119149755549332960957904018730915186733694956328912133467034483679654283418032032589733445509234123271099075190601717697835721995887493345930319836226339255320515463260699340371283077878079787804344227307804557244410059368440205839495346274556314165874255338689164223408816297065388479723324204352729502631136644237398991248725522753370621744349966580209548914559514638504189753755911634172584782670002050848503372812216772230090561260481570726306189496783247476410743092941500244360575081649142460649042008577831377409077997210857657752146619031710117235396595910804761772768398246487926548918221244540044287881705611577428613072173807376880298444878509833960666608513333766275167294616341277927884914649157763964533240945800231138395275529688677486743214949807465481886360819544014524504044090428007844087345724152003406092475100682322147989325392892094156509371042316050621109338435259127981017204632426138278491328315514648122739911541781065731561148201890022377701286154917757595024806003937879471118383972460701415628912129347202034623973446119261510621953382020064487190565613447587704980954142448127156287499281400879279681571478872088026828101445240162264590157342050417448502562626381038832044009993951051952894129408135667414713648502156588583552061169419747260411377362775980575844773058433993857133639919953866856122668655469305921602204110588770235483090318200094484231922995758342736735682360822807890820661902681247939198001990032508124702283977792374750210650184118201078848696544226176731188178835730002823812790128910749972002539131032531976845566147953138175000022291972515322349053009523263237277943372571696168679629878338401683631296603199990994784613183865605585304992687381544813344516722073855984837018981020461616155839449634046136487333625741952260670952090140007222678007936011518090607373233769437728568397075370315608965730434271269760110623332935804859740238186449432630942351292981705141532923266826525738406376760979287433158307334848360207762244963073913811823584610489514929725467117558071722528978626840532560838454024279713118134455895849125480620055469572353962784230625268466398384255717642911320466440493172890079876271568740130178813140010587176958984894019762005345370420290238289166911889446809546416179806445665505568372839744552199318055215812591257695568604609102427551282886364739649443684212516884726792978064893508068581856685391351187022150039069133846627731657608954733903652781461804826272565535005889064421644208427639333329857563528076619764458569975111377230596458689538173909204062351114677847168121695018830119007319449110462708833261081857856287664802223875353111815735261768183866828193022115798767445885502916545972260215937562634654734858467410240033694947015048121251944625152991884105141568611765299797805777891679288083415055474375312512167110195183728204707940669253629256776336714290659300193129239388184528016397493508942666621258106304759018711306475841049357495513951420965228280332518391000109892304079639663036603966648960602461043684567502042491652066845674799768806485053574601798023692509578103313890879548218166404909850212636072188681886353016183502732161991583956987971254588556735179209083914372041745956955939858848004610699229416850847001053893680041990668716087879986764745139398411523762500594491202314164446686538723618342004051556218070212142763922129702861365312138371698655816372283261415427648619758559305582281028050850479616912537192639372104653370811421576333468804477971559717623114167010307800234155697732708255530126648115008260155490057345560495888919865989737396806129590859742194007559526167772910446023177009052589476825548638127114936908658205871762103513705802634271791072329038118589524621251515687429698985117889183682900052238369632444811977154453547819452666774782741008524746647407849827382929466606288352767075792088661769712921206999324525285204604671250299489771192267028113957100006325393522585517902480273149412633122036534221871368140146547793104699199041932553923261648689834724729532084879936289690925318600351708875742115215586833236317945355909701634820991275392950172436897500754266886946994733588265128190487128979471678030160777899776794761965575246130099033420351564222713454619133739922980399503882874099312575108220225597109120484420570689847876547587428495897365260934599881388048103845336210303753814465902201451670894851896834008948338615921738226853877907177518958915493241035903447816889007638872930857359325612882162974670089619658886656439428339070986299615324797904613410378563154596534291740861111439219428481623399766317312065374498801345894835641239353134767104467635994938714383870019634442613754559491825049478351842647649150437079475611890559155266443973696640705100683435798731648757140496164382005543688996004834307677868796011176290146573695424514095307723354532306570000847904674125854303264786891926191751214119238698139975787530150931337961692032942225027235770113884522628772166607816801070907955075483418211468889269010410163546318811079288827630034110841411800719920757589000790424095021129225931300365698306426640133345805985943003047696366098783838447135182668993318476258915726355189041325186459161694184098029496733293248499946967813467691668292998198170145266641708101840341915072724127610491894428192839668545762462361206935487077223039136331862293529284299679653011701480183952645979790575696423984248936802428861939469861716049234636101851311501569890588062822606955522273638295762363656628990841958986542799173638950298621037928136692563168462543201122467807951397009480194886953013765939163304124760757302048382355749106597195255901462718909251960367111174883774735521918705225367598791072163582022598981059372018965573755485288955950655886880296011906479561758275275665717212199869592997868559589434326789879810601982401480061990537292668296838582006099194870231575632268522037337755612479127428471343657586216922206781209788979754419859270841462798201932940243328581943008545659878284138542652406960133788483246622636117111970681206887795730909565884573996974356771275598067556613019188459324995409191275658754379014540287168412088162358364916739318765711728514430584154363614494728643274536299539438669485227662670812253021134162988187283012602942888921057413426259420786410152468836217706112311424370944465566926137371073370424252746569450462392307432810434748572067804472302911404970493136839534650842014596152950339680021793408976654393704721486540362140220319227651560898933819195733055174907515360097396277139314783872577288997616634573267715959259962373179762111991650591451501968928859854764520198264054024564010740938988644455252024082081766720467850156168586713179871073359557060925452440916894009768469705223211422691951854102279547869234939857094730667181024200163708600385984002628073287362142396392281576772295312815475323863013032502132649268474604477260485011064202775981321742212906711179718978709171781060524911037723797014325730758023617460504697055079519546995177372682366225887960036415651441585019141580158705548584326740395492341104504531476077082867175734174860327089049980005420171125146092137150668134598658370570779343078313935648860461296798674093303913863261081611833816971398102791033945237141766033917647978562467687809109624760912099329893316662304851020071573640903529951281022742207936925169498531283323544032474120876359349638387648722470157796292331239313123025316986718934188999601508039521711292567520807854592763729068285051432092434110879329826773637496209305070246218070839106698760437368731628430895119442449084946835118805066310598517349130798688133371704125190283094931314989710408213182150615321962087634213931587904452407331076974464446618813785998259403772776571317020204474894550165888657918178301283636253482732520654753299301119032564913564650703876860840643759133086876382282395740630796280285186120607891615753914393801377551769230470889604907197593478226812823241700216611957967859855601067537467039923734867884008050411545211347737696327067476420719200014763424688657775082022554839035086435580864858648057536063011598601674242680773498080220734900172856534313779741697886195330483840686310242458437059847514595989288878766691900887395356497246287203739566983542787822971743946418485965601411587525707328348708148141683958515236304666914061145801062627927156156404865007385555494576443630664809547105042197461314523540796675361024992964527142866304632611218646826603803858588368873780707980417928318784803815780373153069808479934212203360111652956256830660302796640407543320040625238480475718361957582403139844693987403889259904759990051705989136146892819950135328805642958111125473813878804129499301616875388650613836125834775931631941885503267237006023776661126670146973255124826122990637184418633623854607189763545330367901461841596967759409282449158435880069875105848098333307315800362008830976622702067374583836766152538327719263748884303451990846703664554197627649129205257850312941965646931011194326728712307688536195657882674064255503794628724349542009526934437514874921113524413634808341525200075773206595148295338324656811990897221473584550710898212006588664838750456479280881837925806966140759197986018642300199249786056290550685801018113345880203529498025204572200774791347195185503757758842917832028568834576069709176930434929807097658207067386691067220950314650602832771701866829402689443006047545228428445683455770285001949245496314689724260806506205898557350944822743634484511281886316313646238688672907533931488258243356413279694817017572428930968673400470087222496804932879530797624172247724918253409774658999940745890635996274948249238428664777959035528010097773658361255378089167884593882955724620642373643214716394813376246198139058576639763297150738160106721046274476526494999010826881244720878946682281553862463298893817799788844309043342232681625195556653024208793375364821605169049493061193370078042851648904896659476349588875654441570692638962247998697496689232440886687159377487751663132622094133184033920843082598626197320534521376988883244239070422350012013558189065636794271271240460242678740491470230539573715125191853913102272896896485076347808809815322492355872313962617732738174015332367725726726945206833750297519725469351886207073367085185977135785029990691839133515969125741387438022939647491103530254125223781861529168533145903556398528843594694931845331293940563344041813240964579118428019793735931315927406675222324036260636905783158713367815712838428524480248037131969357190679074628306444027305925871148840571204814282287459195828333424742059625444069771156310678357513512080086901960011883076672447503136742507576039749556998078388471884943094551373010753260332281423191753863274607295500347258772987422535398121147480810414560092280918237496888771322267113791889382978051214438980902530871357006542576159408241456974226759626363553165394490478438161787093993567111790497167662672578018281983065707700349117272540272882706127213292762289469990901424055492914727771733719297456959381698037246565543008747368705586077285784142271584478893813615522065980042773599789419493090316996529996727600672266015837419211503629534905036701585506992836819836724870072405166468583413986781313429417482392364734294085164033011831196417462287350490876703153870800060746819869821587793199654616812287494006741173231979999956505600967773324440003781962321450368275595173051503922427356573508552925494295185212781027709800301641710366923165307249268674224493796795009513618282976471416650106665673491490992103484759023667530627996301682519885014588553576857474204182246197047077437599365172681328762960615240773080465525885777064427463683370869238706689992379424502562926933048701392003689528610945144807623313484929287336419178526381756498395854869889495044652714229812480767238078191228858916859116274514791676696523405475340172106283840607745081597413796284837090763026088228877522673307789229250623833184893740136241062361759592102892673099997593379258266621281922505891162618982205022650965478168071646973684641744662875261070247597353406175328850820723338484865573738162863320031904921715721506384488142983867639266813963899505425446935984431490783517320032259409716736502155742723921037498057084639635111696093205275301318339841904182339332720891619677750530969890373363792877636889831945773942539161281166034638176377122862496427102788844074167531825962054576542634426983836794635491161717308366787391598075780935880721332474846013862643345892186330796125331062423390493414054146174270104993707247900603608355092506859318042055046578834362619165417552001407528138196268749107345590174998404931593137730338293477891780284543497336257300545199810656098239194873747120927522679577685817095034430604970631686295857531042566831092864920247710078819840537950199974341202549076594175404587657591086700563863032422731485209382351866033543643338130799384882124708433498586499343265580630883301229886560427273014498228067514991428840054296656403538580876337902797350829456119553826789549214520811537383327744096200491721909629556693063196628879420472093994049470301778075298657583471209303620170186479418187022037536314111530463473951821540642387368265761701848555786586564868930530445211115279496336889540339208080943005747845605147679516141945280779189766001044719684188816945597690477272685255628151098063015751069878812202663318279281266847939042214776987573692644492879887926448544381639382329578808035333526337564721825519522753757241637623301384248499216326349403593392241888471020700380959530999526421173274558629081115272610093229618502258075649492715257957212896354552351586357121765625192877959450832020800753516379887110025520957696076554229244883268741376825160414537852341560484646654628765842145108646724657716974559635242566081385829273631335254109989650119824251035146573884566484982854350055020445304967267338835510801986570176673388904843333906862006266135207335645508777099122566993246420019479194841356440945873251606331134080014461816526068565178268454560271875354148687992263093003687456131015925246441331293892434009658235851785880515617797749945367281100590180956819176496375261670125914730905251373339741038057248176654202358647160773712946814285042579854912116093876341103800917480113660894304087632627859576535509745308652759227037126021903809195071706117674493225693395240864114623811540652781756397802279449727244156145025664572779074101149048370134201283228222662349105043025963764653224949178834317949389276185296606794336697606142449379908909944397575241933757451847878121873304420360998601070324536722167033677132103588335152358632650508771719729768625077561446090516323287809227131114096664129525488657715520302061841763440153142792734047649215142390032777119065324536793755904252139538684652483170312025735532923555077160413993694551198072431662400649691331579353692981381747697779462056003102147740183430826826773695277830264485839667160899562021296177661190685261631232534152832912541223389964228807088271987879727292728135547084595719456733982428187880393313607692962632359151178740859046041614301931578534343686865477512929235632551353795901393007631814991715004045843260091939834117848525822945514267577835785518463770113185902025395937127997649253598609111008302668558432248822279065486524923245944873069736147855313082930526251213117644382956601456481298972918613136573429571282028697499096538155676089289713817087517428310613703343546370349919913645895504574559614618609614941844500713125472084519056193698717384398670181525722960884665821320103274938204929987157623754748546356863120033975355278847903571817146857229251163211025502994654515848288038131567294520831594755230524434167152968033411263567576993294035405404939333106493845710560971013700173694608453937906021637735037898679290938201846727643926431575306113572354705788183227169953122837488934979348405104580161110784391143575009084709863727029134124367102253906264452083519007546537200151038186253971635646089050006190184033554496319424871872066655861420483763980847726936713222273802772255083958056635362469692063629392374204099028311324169700549400036346306879348729253420392734492631783900029055752881301006944401819501665148346765456344541719591034130071466105862145955022652682747598678273620677852804467621183822650735667635045732841003971589318037075131389609972173509128000156777636728891734531230156236275114622586077392176394793318358789584457930503351980318461526491316984653320183221411335725116032851288543584222823572943468176930854875783775305958774587172333463410451799557352721964445053554078816454805007005624369821425727677019418999731587937604385148787342840947329298808925894609116521866418567843179491007470465688012092508464382987320159153403422234628786743369131044373863251439017847260896860949607755643939280758007070523711992200178164995296191731387693797355412179915649696885773279595132161778673713183780231163165897801241003666933991143175948073889447134972410573619676974919583369459085948500756952128303493712704177222787435372656480739773099029379154882249536234079915858796478678076771289564025177752061826695447660707697526654270866040132347434070821131729383908113204191076919820124198668067494378004341914558284012410025102237414224223607490384421718878988281377362027017874446232161749046269438449039680150773858375857376143073029460724058830859667549002796659400972553455502208763650708665499123645965427435485710804456349478499723785341708723114527466232056358704696204798343416049479179661055315606135104810388106547316603683416571530903282649853818378168737766924234068718205400868739466652490907620327460205339650931546626231386617601568112322520779765725477341887064988921768542341336259660692405042209044578162085766240130536101492065695504970612219000872043130173115644856859890365379300480563794602415217106961155755591502197116465272710703819603909661247539314801200328742324538185515120002574365799499079679724952998006149743410688655955475786124154205492849197621278242025214249592194944000809569594207373941566281914007423348144283395121459666585012490550860930291500875791484009465258386204161778791263944996676719277926272009782953748070314475609658464683284040415993718360536055324793351980959415785879158948584395213612793438866927372737586318250431139043723902635678783981439789804395832756921729582858754028076961214316272728217724446815637991777355532029046752799111458025495953226617703154019068275135107111052295481784190046162483688754702037987413960595412665550504155181389734642941669404567751240022099537239037406306172750256958816980373293324110780571744195253131287236359274868056494314601214816698013154861917187283362517287027419223944119846106842269688891115582627555577187871383251480503701639429866830540835499014454413247531933892467325522543887832271197194931369531452023610555940652754546101232291433713394885162802662297471905057688626639800251505715881359861342615351964388216177877466114187189466527993148341362316678009855175316848311143475024949929360659170208879277620418602737910908781381013898140688602191234298315072543371129739104801166881270284520790517621499322409197322626094808426867069138836982843589523866788331798821561690281824655704879895237144938011469527015814686039558909982300642942688746093997609808049209051638071465821168888386466828557876849510205426754215551211551987997537748582166087341190518024659190606925026591383536577360682095670722458234724612542904982957157017185384225569221900343177087821166168786158939203631640316122235772059878270341013869591595047541024618522235010887975370064710897539615919942508372044626260426015054444787796159315719465548473141569566878132442663653708367991101693433887962723749536787134302170595149236903985918650808814988523638929571395549300007974406654494059682463796982182392607751737384554414696965990476019383158845943020151466177544943599358380143358133520012897647723701760695114376115973589814619125346839695375097494234612481711833295883010224468501081505469188599160202087943366793923948386374586452305632460286882521652399643453063434405269913375005201809451485741437646313490708226797918449429843629873793505038187515566665366730890655465037449207336297377321100907852510311200833037757851619513613225932746048821763015628672428182127842103614431963788280711139440978622972888973677985605514489342986878162867965891565100372653156786929602970718153998776261298160353009771239023038662954939367338168371525231773595911197942083720101530375410483719901696637480199929341294437235860991280287567441252062808268737433396130207651109546514257064844619393355127513796683818215001547306338288496367970344090767342734758841553829933254088334411387628785807968999817711088963861276668920935366895575784022104710527401731583844687978526501060486542168173846751000273530939826097628906683387860083265130043516602021493203369423423957386312165834525663813969302892424178471568124734173593913340464420391785442141462565785796095359560094177928167397121930326968973217383110100469480577597835645513616876350931784744384879228109167936710960575496729970461984167749903300724131010889381325945985756279838642973065170849894353314758834276229099958516671490066578981909892467022690439541644681432251346527387775187880264381434532492731015238839545409881637409786939294621890209936862357117495566216683447286300886635278066999252518773642825056627941294394257204135486390817481768737711102988179606121030000453541534912242833727131571664365577197668843239549544694192634632323908362214653638712924318976091036366663984635982043260201269573996628423914541836437433061998571579645388890870089372768926184038577911090381842932789780348543916031651332137080134251527985281969669918791503976391507274585252689588195627712110890594305233169297703185141116387467193962174802638300973171143603602716849089307592601063205182418330576723968161299070920290026870153917435967051205455408403836938048606899849513106448065154101325233046463186218787590470103699390040498921278785823171376337937641181980888378569152906853053485970947813737510801363484809104166561525695831815228645446565216601855831237372899855878067054129276819332124009202030971651480146168187246557036341530286199816452346838232841299815044387403996239747970361864558453727238416396152159133328228411988222360868623502969019645589734055492769103632389053382034360442271903458795056790735881859391738831053350232701918674457276074138431658047849304529517746559557758059835302601555648955808872877388441826806635878223866860303988665002173561595357355320116351748067341763396767986166926491579884053062095405467916851915801652178804351838415919520040809029386410413162964652841831096308945158773544151177036496765464159770757355293438233749202838871491068522277119093567367092200003427717004005070787631657053267709184939074968716226335972814320441293281628425889545336916829633352714730871009337831838380657013186002951692983745323445746060089437114387481067510227642215161492219522451363258935454997975740332781305289552106242689529396168807243993795943083029324131307361999233356628480728947549951280855277864167199940953942064224817155759988624399601940493938261054514702117000484099192597268270375811873856962780202253937722507417094526195554390257464683602891454939624326525326225863644424232677245497510043928650810033801111977811413628185633385683678847089990033848788287996403952523547922707010839742047480099075582061267022571444618286464843924026415527699975463340077382753342685446202917498546781969895033555469142113812654736867931974440497884310964615984830980536858315410270615328666027536628910321115238382933652210994377756026739581717256474717094457759395637099347118551580913689869030345782452997762667263842753298882758485261693418838734349343938793647465243730504491089249316767232863224808470802681567253608000498655093786350576061102447798439521200047611226760633845350726633163871080768961495597948955606812279684467430171277354116261118531064348865446396957985943294745089630212025386097820021392455651429784535081924853788324158290999986719493559757559365094525479942359271646615350349178065831415897407767267145023576074044039176145391827640573927620200726370505630921651935618693014376742272072975033523937009885838424652511793304037910199420902785725978969184071823062063894943317071085449468891887262514078257877650823347010914218453732885644219640312739641983538244411377276385414877500212903265072360303583591408043638543628195793061403404072605453959040859593375211573690477543821124141700733498456970645613051103067537041812901801657866202180974526248029407058453503206774755947613029954983360317971658157865699429072231416034260993141806312840545104598744260881731630459072156922821845327735946404774556782378636868881011947557497140819065128637016614488755059573069932380400920531352580932267636488054627417718998940435500972143562998922997938763282674785975981333671932643430979424682174600446742363410079392752695502138863785707622564931780717259218065991226443193734298195522407192773415188587849671986311333990490869406443113498099139612427817588531829318447832827847743019599030138845155016723375163147226828701227033159709656553170290870361610547326627990930089780357620679344488822820519231967331355944345334126721252777705456305171347160022375790866513088578257597502213306883044468950234773669619147045672628361868299887341934978569645405585237014898847943231180098401459772435310202164872102199085191767859154010264630469810001356664631205244191895443146355954108581058838222738289236050281550153310573001351509288506379303682817911214505072296401556321551047167979683343978390239884811443030638016739309341735849796679644412051752927736434344155243214943009082232497521302048155902875911985514341493180714941603856060335639345964680119969676397976024963351858789020887801534091752893864273944227032460787399864704516095831227667803980802344111662016354587730098977213046009406078434659888806922227652381660065178563489345515619966704135614389619951374049016659190755524280948258798547849447420318370401205010734948365783589209609268272871344017242847232755815734631157667479507633998569331032445587010680281675595794719317170928814863411939055425644926016003654426196745832429905303731091340300816754269007095877917845036249634788647631182175311393484097867222492084744324648840722697959918295929254924688832942345634356045246319537184215262092394677236625370371441008546809082028683258921336874166032879953891946111252754746084300571172660250624822252606688966600798254354193149484245704672080140529114922798521124428849337157813652106611882392832917411424731811824657889556844664112350270528797615905891878925389966222864711335086864501411402787690830757657762295378764966266531036750608373775119542795289925960272876497173877092292770332143755373517307045327600611502525904131550367062290942577865478061805617709273029105187104211903648277802300817578422084123373947098100355413128254958418330090326312839892094550229872928259717929784598126113167426065475601120583445954071640738439171911181896385324647770839271493739255940451764981802481921044707645400770595686930735731437201767951212057413682535158366368068433041058481533573925787126442490081801890771814217863970184486689847606483297887013512536617917502918714052919500294437948550611110126520003519395553019046321547228263138903443755478378413112293242175726763245368446901134691990576729482868158052433678893463111196765347343669977569426913739393432413211965405418119397278679387879891878734919078895068330685052709711627325323672242513501485968832389477972279878981053116898622085172246216217349133015965448381487621021278007104518991408654862718967888057518680808597327644886855043412103027212252268580298424711568456438510256726037937607080780370837701843471907830573897087906481619183616257133326734433032338061430243360885211172288025794573343794649557989375877154699631428329515662114598930879632011734403157072974438462860371908562655583203865216655961958624834087714527018737519807162055725690973517617778109095588475792217362363645775087777700179094214771600319074187261649018598398231159694907846103618990084480733728294446610354546656926495913031481527681196239692967443611007264046251025314179922313295402650146645333367949274317273883250104112711340650917250877449584923083597356482145105490133185126611099017045799685427304450431009825642368510509059054868227477963579102058209131747938102473399453263652214171071570524273129031617774504290038058745435125137576615901686897624279879735441616193948650463236445654567727672584417742038874248312338149136911271737001580925774051192655586627321937921152036511640145318095801768205865411961120119723179365574552172707982304366725667819751835636113482692344685500837598571294352180133580816010806653081497078581141245785271780685567039642288987944953665320785593964802176003251857700710574148342302332439612495208990020139275602143667779274499316304939768185126028334080600669703483785950501520159713139145341889017215907790605088182320418213060903551150902325992480822720587886894825370635039214009482935856879212071292540763279692291781240172880178278111592921209055497558116379213941534707819697226183435158363005435585242020063233480286769666275782370731853396796282391272022403627085652394736070327657221591636502417325393670781258514268913613878465498108700137303163549877724782413645004921881671232678983718697775037670475793373258575883086687841004209537618318374517325536174785268408531558328903768818936941106458447508009871767372942280731815661987872496140536458959295685357275830574152838885376611956378046838090068084896840297598113219357655716494873299337725752801649306620916739370312272960441824605850692441484599662854703070856967855804255181824937747690210466010588146020029226468473635162372163206089361729727137577565346548615995783639467076111737199794686222791729959200263569559530831767155371605666900172421200112438789668012858147181356307890121519305964065427644289328123915323215894273782522238474544391091202071936209555437117612072280554527002690456193652678672278797616961563110687401681720559808321575885932299335240015499588260721251647943934913276708358061627561022415885769978710463305597253623676811055982877449820360762114962475361171402372749625776966575925953746940090873693726746473065157084255870866912832544856540537483503318023418802448751046226812580471416897007960384343735076756323481105545736813726378160213528628307142840859428077551645165305700577829877519130731704052412976620080649021780814261609345247026523479172227407174217354768418177620651093159802619804777366427632675544024129290498290011642852087411249091018519575542886974993288508828554380637363318775953852956899408515709913935662853064714136443585304226693233707701778943504018050580440929756359532146708901723385373007223517924600702346715353182678986681880281104447882551371515312402271403309977503073678294105279848512636013134941173978726683260117357692200172534488682175857451843231058584246939833068915228159697600868939936250365861114752853054182613146817690884432140170218304761259870091720712873178610161534684950704582385352025815753004509852770274372676742102579417883075930599141793025300780504108662517394463130783399961551444327606117545733250799005228152062219190951640063168170116124028832649583184438436286356042978816079096446044367124786076120321862225880090125462279845225820356101225956197096865655431604901537093196672543239509193876235365228121932868040078643641162467488812720702913399646254156936623802382080432887477701446644456383563765564162470713495073263177183946379646563983236593526379477242597503054333440417772158120353610441506929174289796053966241860364909145491092491822818592292301761713476422542284762088141142378812752009759490296231949946267727329072687967613468282593099206799316827096362186362801675354582753567724326950632381540967124434296366500263694970799993334679380829143518443544529531195799280296384196367613485648438771444804223797327016755879543061694961400802744525254077108573233012733137385285806390716271594592781072304570422439609942658433426196665434756211150172737757252813444027140145857819915978080461379347401592694348235426461562448252444077082796026599549720226018998385055718754104300848361271859834546157202498267221281732305049604701270964962271689692358916795943705455608089901199628647016681535989034636277118914601581593781104420524892804180713239153693245603402220500181003996092124690997814400877462978075319942004357951095555188530332968684862807135622594613570784395361677294243808803028950814495807532880140727938888079714680070909082976102631878746605129104616583376317756703375498480109092624671298802537881756978794573311875898099800772302859255142867743283436145967588369681270781690278670529355861248181963007924160266211213284135916670453148908482655579124721545127720164472431866807721810279672400570028496779975821644016643588521926895248536532235166309865491262075095554310056180133122423790553809096002552434452268111490831755344661047878535194840036862805883852511815875948860667724638766150864853863877581809867287019606536338080650392414253825098817323869197121933012423338702914970016291490880476632588973200201074967270106990276816799577247602713965185501857714348829687430511171584155125822522753311118987297736243901716125097493163995078105518102589807747447321820223060026561336864073145390171206438181107504118736196808902685036019897319514321064125865983007050384024217192344976775498882292058824735198223069993531352355306632991918871817097145700551477784967969562215992693548650328825327106881708479375567395438146272654255789829666094998335463160883835130071999418589551887070118553364176804944240328167793701314210470697097873744479963013027393942510233566406468470882465073614091888661821879297952146516647442851448313798606042076464383713888134120349236750161612087147543416201612311496068530941008219359207183099187738624454497133712172256022470028559701730338593865245930693804753853497233175517883944151418151642977232461148788804773927833877654546688191384639373657177385920132473742568802934191503498786325049242180092873510617137836211678503255548259966040808803340460834756323983464976827856371366564633994794929226234772939557777230495856578653028210474116162689966732063604602690225325325087986237811029101325561943198567491196287896174394279287422391052532289473450413043099845131053875900864931961914451675084637648128265150075080300877732164360885586677548959645135623488930835709602486563221939331714142784790953991205578651923742128941628742794333053085158499887285539595805760001081973223021871263559284100329674856955346403748573226335865525153923770704415069549691908056878263301649401274169141544624403925451354902144621067914150571910348034858670210705996726042661774866590070668247737801833353762504088119549114733116463917505856968152555181332814341980381029957824699180596444744238677221713318724935581617240218716631934249025048902653387489189479209448033358803170544393522637766204119479075195003851482421972694011883763065413833530210966934952110411192952714094718162078425772316160916682630965834963846149615580544334668484131831956457603391867478417922672366518863515796599649059583455201364482217066500371046654366880715453204299908707863155290501477844370052748515975000054097036346548921144117101615107794168300806737577728484973487785937818024304690205868822880254778029879417579278920851791727231675023189563683000992314070600644216829513547805792265784716508815661482075909036555770022479332940706078262042233450537070924185363586125702777574746472513659635624634438596479596707182100834866046549596754162539850999638469296533334303975571307728865324435948492088021619655651015496782463853294680497193813742813143831297308893248186761927695542982387366971592677428763297757181111620277500031390814818846755840357379995652951877094062285338558205541352367311103855472562579605389393704221138260147753619420504493282655486351832023282272591311223366517304005527313862320376475578266231553155177512329975488580886559973232444636321075004096925362914115521652231768086510641857008807281219167776175652930203325586020360933516717376625257159656008171941158634072939485936220012644958366534581508538675509679063252589893141772538832821617162820035618184470380876634629056512279551955663825137196051585926920826022461951659311657112911185828955981262789299792043061021197070752522694700766994929370851344267474762615198110379284958600873298633752055561148299058258795447251406953437437886411915839044409974845616994741749136785327636234781030997811171000029129665670154680132350822555015665496176158991403986497170760971245583184435390478651921353539925605775254561671998852205413076736590794375747090334978358829190359083176489206230796318257486050478729768179343089505704029810153268722342681138792756399965825452890986671956424727070456488393205780731909742108823318307260737122267642173404840661166419712289250824117240729908872335973353181621192884394080317568526985837831935546058307664780559415441639993923003821484094222365498862243719048670056852099740107261907338106635145998911965622194404335941914845138409508598228230195795649844051687193548767902217726920103985620959314534255893365483994535404369166494048208224236166318467466046285823150208989599889761092555591308749554267673973599140038626427235070751136814450415015681591880558412503945912346639410759334034704991492809727122936503593436496729903954671113063757786972917861779755224724503465994152578387714869102814010867924739771091888089257079581632914221574016841871702824986837236881745886382247664407628311583247344998350157120777394944611335292338506225924710067987211126489571971380041201704484626252696604963354385788306370826596056727934385780715300990310523837183350261651690129792452023316714413129521939518651110485320176247079742508178261796589899411313108801292815563492904026558455595070034673957554229052181712747489083376522291221289152366907781969726771009560749038939803307180674504594820200950506408463786352608058785002747064767774655181068189838458163620274288617159426515328484611650285742878212028985558406956987633166086133645964246583829856577062836010428588780672907676936448858685448853451406586092112382528790842380953789696523765038445945852530486926501127754818053509124412892369982531479916457320073694395525132775632336959562906334993850600878792838138908364907857977050777032310534241754524125987992893660988790208837307930983516938002983599874141193620445025446058158095853324697263896009593870573246604110314047451005261029969459201373538883150866514085587887252297686790165662683928786999675237952060021856649638312958597781350359554480016953332849655241421024927851589245375769076818409709853118496977189071406651247127508261026123305481748229988413045821858521591647931232868046353729262341534961440227043837548032015521245593990526161510467380336458992509710202381028804359184202449688098494617209662200661531727977148296170759828562973631228193451113628106638978426673818861163682805340153435308431187497665546155310856997193788020760138516618523370969796355671866272995169479952011835804803974649803647498186234286573600147670583986306623177724878674071523365252926318556055043927166063599778191802966980383640670119070960092171324808096533676287264065482763321757065162636474402639985865171020769225967613229829923329811513623015725177655963671647187725404844928090699697551310264761990524076014732505456239753176966483344413743925070205301419743231900804844436870299918155854756829051812078054777050231351180909692817763090821871413594628928476863281343011108120431003180107431127327729715671416852072370842062681205074147705782697376058454360846922532223494004183275811965692857369218266625949162473669964577000205962238248639706006472461194577326706863706403600860070445269255074336291904233556718752697727081875230927394303140144351781985686496065330742323929072540331334658889844692909687107203874063344420199229420307384518872689919258185292917533228959046028572454533805603863585009926386407983538340871578567499934995966825653942407439827523006554873152951728542253333197087888744947550424143326471795899767995604894479131447045756983675885421144236765217627896580052865070309785791520240844732704641040177172055761911829086835503104392808023629367811239324813320306386897896091941836612219728224283185210606205226604951943651680809010861453653749370712423387721097861536924831218132280512382647666607153110085229069548379712866001593824956291523845677770851222305687019220237688140188997954209355780924879666529672216056492990181032838445825361186336595492691619583139282318874770938546274375676037531462041036313054448285314015620742494440744922916259931111109531368070696706925732411396329403161594205059379172740267271186565514416037608263491709592060856873246070561093389931759281321972921544208678467442981708829954617268986584268333635858851289614962552299208269763259607731439439372945715488938820990340974006024899156503621676136216271580639723738463291638465525615902464246434524750653743772467335894463376861231636744144665061522187007922959915799755817840168208569979503650790703539482367882155452183012427277608343624432207060201808779296240811509168554798135417965517437199089261839229954771829707323398020627257972561376792413664077301762564105149229786998547342128953598954345735667874125439450843247351690217584075017110285864627775025680201155154088307228006003080821818396437569051135704455274969731053934011639545604222934297269150600129341636097757656998789006254226574951920568433045633105779203366479920786934604984720547450824207353419702745375154545791955763937984329501312754207009996382885840028080947168009011088872556421966165448475457750766192704691222126156820275465768099820980905938862945713319159367111971032844460187490706641064693633908697837980668811063121689670597924124407998839298223380538699789503732809513085936691588464227526208615072925083688729730578444779145478387433359153857810019441356850048660654031212944447997290414694812796741418012274736760764472343810934251557745306195971950658613314921994980468392694554883272033028873067832849772748522466826865444966078732774787320951642833274996826402938035670768636426763896410614662587258690313843776412403290918096425109444210010116565582878084848262124698136416256668599681448052114040512887295182606919158181379964093917900240852475997166856906621607609806129668185097098232805211296500311794247690935671086139482751637425560417251573136274204777447449932745103777168527168772471811485963983318258473381535606825223703150662628725927828997189905934844359199690956549532925079028683957200862549731025517277252318223400053562648771591975301273438976906311813488212791837859535079968042006404947954459237475344484121457820439827626156703612362083801694128020840340238466317841428808800173700993442352187550546882347646774559506094514146040191031099748851254189924539603000507623674701299010473240434661944464579725166900708957669061512313150158355548000217305827341558646202911454532494819538851509068437781917364962837781384001407429901587877088543779843546775116755356517027817737155854253988416188264374641906788489872639191044681678497158620150511279133493848181561960290442691106761757642465414553825612806787783357823415485686051154469903085191928524718856170047851910463483811947757825277792848625854519803936064464864169876639296628757519351285729172237936177776274428089590919872953609012270272421332184857682549372470475243137917839093292155534700870404215174458626954342976983787895440573337095585516926865598523033601975215323490694849284942986010155195197045101153515992152317254176729526398913368682504378804612049013312642952182473842209012593889755826595218880720478541641582140105179462429302414761171849051343707445354013525654467393030890374534974022809122380556744679397184622190364287379169328999881655102708015705206583093640392064696760222365994533051845199167923697272740821362653576072593239837118495613191084240688505152406437270390986449737521630988718935052056158417778158050758826735004088751955744436917823360168644670342774022129273741637199126834864533085565933168929759096528189210264270484970940095948129391778814737385523546726756471444606623218933101210234469627827727136502747504820319917762665326545061324513142715942681915702334190365379411050690619932640974151539258630803705211259898621176358452992180289548374338004888248840165731452185577615229634213280836950783251386826694575276125728549110830611431213953981132817390911316130689828641422613681981224641707828131880688382687658685737963415985400622966616336973081342975779765755695563842463088902313365329943509396423551751576979885539867126335411438176653341078696926204557284835655705636402451940205283311231967155933580034375485751964159157737869435218666622701163490431106799565873891866842638647182887772996883304603035373460796028275894450801448717321934552979823228328078799144481541827334835457458372616730587408990598293942818640723597860647807607068589914007840856525358708781632161561123798188893869642619421777992298149574975351915567747509686081598517819734989445536865390751780963477425337568514933971940963098606703469340510779019262611088304228907969805406089552019161226967476405665510932873291414225350495110700595814251807711710370027353298672802642055040129282115105313156755676771674958342835438037533745526022174445295679325716823793049407379390476243231081109818675120930516122981084329119955958107703181581232456998105193423380946853429379750456521596565598720603736805642238346100318202581385222160048300702338118351678405763054722976408672429557245577375240887253120924848101693280331150869854174092394852603217113054256843122447830367575168279710090448882889995812869306991750365740385767114727748514847461292578540154155581765379998277586617208583632702815823403940948892886514945187227175855904138615016964132034200115286335028503927419977768532224645048248517821618399664099023360500287355350555204543601240291935720168679756835615009760489683716731871184495518293932864009661473942141565162565727010998681995974298436763683389755652166736512693178918707313103803070399542162416056579072792506619626885296484896302865012187053279505566907329889662795254680019428647113882799640222177392771587887474920284010126147873019180601362105172271162899298826271075008465666954520518109825344305781677153570069063478397531009009448372900521119118515598102872877538447499398332953484187674584765410717230282244719863546541847676244302498588542840599306225802353303910157548235495421318804918642546209836099978646628116147191413340299457416874914652058848415337701199718904252484362548936077139083556737992872139497861541157310904245492666517961123540922471491347035255479765869019697010051678686048021405839184521088806815932634394162266447817007559329514758955441482467386226606332877415891129227865854925829980851516366242669361100801966409859245202577726594008435089125931704070838103644876041785492421913928456282025506485822966122732074190521539471193814125458896085325477956214764548784095742201163799780233151379908124603110815452322410847940251252878333370952540614056604501295317289731284615913647743813902714559623434802677617864260798947020519525763646109610894419073172278629508794143670166110795980261534294059169314653022923783098561502745463098356650959708305704774370248172351826300645121036056682992939326008733880482993556139198954465867036771534601829613139143541390943848126865700803108597445581446354329248235259396975516769585605720066257589402256089327067510666537919449790767067752535044989828569495254371996575750551877340689736273013918234635193994548373901358800364409358678464655212501601134837373544402283383719695710568296145160190996941765793699502079563626482152626295443879194704430692398363656526070416595361313272493539904808003168917827210782552284275871231396970309078683472985435795470285736643754256659998540432925379795372343223891498887668438479011618754353532952767473927796117661098288274917254222321893774208502887450549988802484141838323930579818563821505528613557162298952894546317972670594150300136072681671963855919449028721346661099900291675311762357720571429210033057016263398472191007588847990998694421733858528957595589847671137793802890411131145440436564675841385380325304199299636196679669489340829529399961381848569937075655397090092346684390564644041738350553301350554765156330322673266776085472094727224336746721273586001059979290950704681565917611197322897286114196836477178022127629843703727296922030063288468931252290509290986528096637527565175720697344492995902045900488839760631442231737892241637240965804201495591458730033788496366040358552018378564879110457136981348420106746054791131939445826736382575299814662830886221155703135941091849154764020601189484845433145609983748798644308257077532029096342648042448494970429952538811313229188443868068457073547243166414955302924764543282201035443736290352800257465153773230380423222983622382598491358444627035602359330754220990804183069040631770558077198880893532340804299921895578506657326295008423620547653563614872343414961237532521003163725149876034208269623181827726240691368311858987778926837918037011654143968802580481585995940812394889051145713364464421979862730983859320666637342397247788579032390073586098893884091372831456551238287032449330102415585941149722355060635224008355012051606409193856365463226033950632279725480249780917535128248587699537894362617430961040527819188869893023959332896740877298643456029970780630793560657520340771497288856897843271371727762528085629837944624950861583393206181535927705998394003939716459568027815868820564299041207900405332629053200631278537224282723266143495169008261794653929456823896877046883469894116085270436371068391640281115350789720418811380506040793867703564923913306957170894625143078360584265690474313249237319684425858971777672554910547698666407690449322961611455455962030331699269631723146140008102866797369808558102844207184062575178968340311580956500465293635715727875863283844345814773143339604085625512658341244785793036040127490921363975243061158686047296029557919752710647605648668233353887858804107677411007266413061947380198069337390007910657488457660754182068048325768247859220436139564165922543930564906749295949640945221495561608139402478903646968177702806696476160697586541764379009455777334080143450318624488496975130062264141750744615408440589850522117762279365526067402831472609551263296885460853428496859125251690861141891950256817794915755279651408189694137752495614506349463598676552833232074660236080911003428567537356573661000202197790135874580768424621089568586734257770465191502533959488804511557706743549993872194673172595314121744551701912420783894949906246903923553795455386306199463774211612887585320930231976059016302345318981038586354512912775354482613606092893901555979510347724387905626796050139505674122764478866006941182679744282717049508451072671024049261292775456511223162713742546794012042573514906148611298456269522143271098891318151678428884842720404967708092994435455928262343808263506451786484189800981751292686755039151629751217607619357816968980779182813488095052220487601249423848316213639331351146850204047447883430175814207917447850318204150815259831036372014329827351876932359180945479316732248343063260022962500210092604176607405179265987447127534178198764176340648028228379367654297650917097219631090239599357996992065345653245073207378898669025435257161547863680870562119096770063368666678061118472308045364099233745613439351556858692973610409114012139102904199970506541683586848186601937488719524277315391809531963477330484624915674897115168356866174937976944144484548447392687051616096775012869573437371550530537148161399689580688284799618129830255029925964385870548070745625794447806267778581147405269509226321076566266102907840645372927531334632381582104569706223865900364611658173212282904258230210038382555680137788563719954185063564470329639006696107728580896945861794878890748808327899948040792141937784842158261287788472141303492584562498680827005022640543165425794814230709009435575861827261894290036652924639349287426762128471228116785864852447514941305206035505734112135321528159982676520727734777300230050274331784012581574904328741858573466687043492341179547986112689438142594575670577052414030586261889083505797268359517550203025792259944982844411095064910721100691244879369355598595506053382450474975878477549132190892468515529553175815527147624526986214884292122907355681943750704385974943883913388869626003108264867671915372907320961102354416454382597015410208443988680100344976028577416820734728888597859537468355496120063657955826367683324683405610735375793973063659380341894593736242036405276968405217892523000925740767582955752175783147348246172922377316841046629629600391824839517325261071146736473522998472339636645942938073054568922425619519464504419679204665818180821040913291226975696968615610854659002622592290921946020672067779796043492730305069627101905962775980908406151945210727459751113890677827596339016963583842976711360799309386076207023014986288226252983545675950476154169592225474821478211571439081654776074968824489892421394410123967366351045199473601288669384030999872229559153790209351742327064569558187384982867616325297238709082283520556761877648128286468774003656253820934199934157984399807646510754249576878355557404906793530030584013516563791823411514094612698668247060745619280222749982366114788398778142919038588791280691788324070529651013911960681815180480432664478149374549217266331687266953404223133935391849775023635888627528931966113415470711350778684852311622010280148663373790545238049031052148705303091603015809941502238759145826019087421352348169884329042066057798253521231599933219617096760940661243947703520047758257852196006680491597055695461356375959724557416795792325140520990956994659078544645259964833480990942353831393340394270739123542333146749215343813856051638835801632836654333293361011646024173525320322988004868897906272474434641778207604192050534707935395426075085967550794711978677166677969985240011682373131582049102233955669540756928260801947974617425065320872898988269917330791395024596541260829128519759555705753159133498839869143404165590002751649062860839976617951563794727508181909230014127254041374235228869405192473062933838265884010881541707797258281574717419461680015567382815970469547350070773453406835832091727085524924229339392527946391216595744748367511131608906543022385634373890864395919298140561801442931140077232006898094297436149349113949618905592071011897750434112480601136409329780566851379380458730542759680384519702268031799569549831074684322056119617473869603956349791612578510936053529097609384331334773791853667955604401750359352385024724705708613406587935044962914655312825722878374725011876614290915056490876437392261172608832475712702381391207517261418502290534834891691665212724039677075174213098425448144364645467454013263959631190135204189174338165896600464615313343311577431275070956631709349503089705170313303509927356688291344506457760662372664994334529833740551540127377608769841992874971244368102107135876981184940563038208640004538556075015805918048067539108042288445375292917663179629883861399322766237302235024715176393190845176627273190298619712887374554645411590536714002930699490173143564885383387076002003569694401341248075951052563943596351516524816759321904920762463428985868381645958910002165048123754622812689179264607723085588761670415568929528546247972458168333197990831358767941314495532356183528851714166861311414705238533047198974856148193763007035102976765134237282340005476753704004258174492870484595594481469923998132552614023712862535311088084776524947957714912279512346295267055746771649662529530971986549876994506588300692218892612085080801461165821246910090468058788258532168198443275914380511598388874560532164433756779716582859604850407918998716761831328536398492221973820341609519963799783581504553761176826650354549504511644400366502224632218095091116563153269082255905151849035807505914963507542679731721306129964969096258693345952688075740355733388227469318997416416846243524396774921151749645332373754686543634483411740453021431960583569520916271773193965390670510348600224273580719152425496792451338914446760887253251304988012906100992316487732010412226117769030252684213154654164545229030292409594847831142938494912336785178795175394791265438726791117219229138122229464964424048871730653636493743176707720581297565470417329961918524073778218325321472310471773885557177624072125853261274978229165271107000074308944125124102496877590836727936741686050974478577073065974182714180173635023910776095939126562911656012086197508511305743386449793694675650113277441095813075535591406154053653585843624525206816822651053947954288310705376419744064624511971645496409572941849187598470011432127555798435505765745894420446232838991589239613022137410397944248319009142365883118586278615743161296466674001852197382145549243494666440819222840798312949841158008377354592092617448950933736472159184755311295669647499441207760894893623584379391384411477072856860445763706821613741422760371393909160841038167806112720654696015269010123726870421598776358304596179690830888605580949286165366884988017532518484311803834446314301280236125808292173596441523785495970075403538222191511813673426812974693757303503687533159540483771903538995789579217059945123035046520690829575328673724595414532484369897286519357815593239886226486525429668569407302149591469337233671773156822622245371842119807630251723511419056557828897831129334127863622462743644204300371288296198110307534617241769220390629764407648445578437131327643903961769028794919272317698560124445517308419349668378535084979908188939881395298546346637779432698796547789010862364391013634938401858968954180561247758502046979523741032997424538463112087133219228830652871211449922640378781357496351600047747872845454978069462354465763652901104715342691089818966700631426704447889280665805286908949208996789213007248115904294148412839107256959623619469899809551591307306361491359927001183701730106666896100697680640996333958451646863865607299317066825776351671317645900362649740771407892146349476870676969447609177212970285054027067414995658353312228856384801711594929717569138345284569135841306785454269546003629530715965597738395695231090772601226912884861698564902753535999176527399237845307073456494121442094736012794434717182355095546433550644504474910510711969720166651782942014577576873209190646780083120758605620921307899788254502242525382044380186020743120135686306819664555235697010908551189860538964439640417102038642149610037580612763965757408002201066302351297675482954915112742040192249832063576258117870317572888535778234617877299752995159314913386771917571273578146395298625330162638398297661359235043686396393662903880179158636310542133727595460532075366988987456673216462103972163434734566460946516908468456089827154275506406664582042209870222780112870729151441795718897215719651819503228017273573112840770783218038026670861377660152272284375687148751510340902445914892162419423905587321470303198908465798169490415796793939255628017639613280131169819083282639508100483319118768368691803495030124929123877159676212788238909852974490154309963102831060164006822405625243034693418329189622205483490147228992064553688435326835060550356524089697974900133828959856089444331032885275508180795378120325517708242012490990793421567527878555358590773338073688495495243899391465008531341150537055957496395949010793262801078646284155204774306434781602967220638337421966332945871442892149687851759743292877044394948106105298901891689693044694468827767096202727245914776241251371937448340379012408859533423182353567045387545680293441566391591777063666001352878816354322376757993447415774500037981993053934501246024269057817960965633540351187216289745356097488463146732204373797316622544455377384201483032641030103225717192265796328859179324586980005860237193009163554089751352697558033654961239510050189138526120515561708673689894570594590179105323451949431139214473143647115216235109922890551022977380311778748936963279264564517932017205539045661810423568954113014902902144001585506857158039982223787636917059280566120762587193172671525107138772964955494964676999617141331935007157472677090599695958764492841631177048136464879889915202481687495077631659433616432348914205434602249523625035094587617963040487344552302757872864610171746019766079716440110897161248406568373153391876704321066916369600111994022567346871739841043604013351069694256012626315754130046969405847518275997478807126561329685184690272625156859563522650226236394766888729793378461392134197850977174820483008420844333091808513241696826896470940161744157590355504303383311417097505648796139324406450971943388657200555674913137390071071385017199798477715902975730144959464575958807402014423049150648755604605188709025223630028529772515752467976614822618254766115216811687772329619273927276447844539944633346122928586869074002825757684775912713017948913345739947378998629327143251456176904448239111887688181157223728349053432351582867665118474582094476952921731215468403999117687616141425803504407524600482492644215289543827537402947437383844987259454361113747651252060391558045430147564721803276812638986407003624573522712682237112274663462893543417114899857352512759215166251871856850763655944934062023421139566764120935989298877964021610248917046764209213328171556180416612528123630979269582599462993986917968959257625163544398825839644195853031605348814356130895955685729160950616132953435734854670854618277200620515902349636012176025138840025304590026792648640442295758360460545516427246266109411089728960491166602321484220949993214118197292102131826107017132452687405831963442286605109002922715092394127596616187715577308197191594480387718574263985424350031206300996393440130384655571354049523024070519768587985950623310220068797352884552092351776479094346838883245492461098021458157702575146959228877604959797728396565264598533276456713802083564240950449631963401315327006275786768575639260682308216268390811000504711750586407501973612643417355402259729670181477227225095641377456166695750372422180664461972266861319350229334568113123909290978704075095869894194263275892026607496529044502256116720560993864931659131415558895818709804722356487938782742579537169510711108313179669220806426412632358973198338604003243029300191052075587725339437643758277076708323336016099502620714843119034509193660976865064577864212854107110504186757443127426007206599299437608858924169581039999796651232584279016678982317529153579201461730689470573769883233470467293104304758403069364693910312674195745998777841220606629016320951521188840631595051993444956731782303799543547280964075152392606280118826342673948197798005415065451643932184299632813594795288766089505682773723850739725137552107596709684301657969300672927830891473324462017307464470496568968545796904276846594639177602048065631082248415397671208360708646631590009520184887840312128080370961684741957133788125086736752061549431910856444482688151954751663622906945880140516867273224972512352171273813589609424348180605376693229027428393201473946836190016437317128268989841507547015093127375060087235168017128539813674522903026039589727249446876896595124342345140758124969376199655899982034922743328507657442354550453925173882122593530934336973962446536411423896282649995585993647951286720302287615510175715628624965609159614865575873920950388773529450504640654733854596740301217594002933055173701791485791268633545574542772124249555272115960785697235652124951443865159867954813605327747954686179595496593881976210534482692532516595770778482562721660054546058937591705496067842209946256229566923562460233291635067648936734452990462304914863282184067978552327102960526607528327849134183681371620070540206754982910848796598519449366712047561067074400578837794917556571259171135769287509270119737796558252001232882652845291456750841215883993242529432039462018691675135562186070212026815572889922465984507450824343838529260180813991474810714618864728929791058521096035977031624273961743337185832101067141732074012628523425606560759695279279257007665782393327933535577953393586399809112638021007221023005226662706529613016231373141296967628340102459806406521731627416882087873888964620336613515083133702375692290625674498956881245596040983402232527077980900315876927247317371578961270730340299830080070198733677010212804256175485644502390863895006425157455658334257279150501055534424742921750473304168777919431668343738380444508569705430286929435873538488510570783446726509071784743761738227684277551444470601874219795609389211049359094464895543884572890543684255547029629489441137340288618090511057659554816453054263769928295222496561448588040873416683455328169905022190681892714845312616596697186817558313389962374702568381491814575959264608870683678862519503083626413198949375593527144209388734155565762493001740177294463864058894073473113750865097541592873075962232269369397356889403023896134656211085777156424263535768620605841236738651375118798352075276294870423062195159395651144272900237355046642945608908053795158880751797205992522255048083107000672026827606946797435510458174044619819551371076773970370252755070725608573711603539351527116794732143088431826898683797042063040416710482707488383618529309724328950579156646087019420415115151480900898478253928063618728852413114795800557548133232902519598374697678274259966070221265065271610302413775210649494142175638008722918833150226637669420815981806500192373524070155579422668089555958498610655043673132709248839009971288147211769665129321328573109347998281291916285635676780335911190046465703193676043814056470319750040674662475340060558689207088458363330801326244836794686902262825946166488819545189279661087917741903204030371774062450583768601479291754662806709036882958647911544838756921255048521422568388224117996444748262733598357563343889280059275767797753218399426626153669238168479556280190527001112618036399457678471268911578109484990307211907061896098460689460290868735815673013434139601291963429245888015715916062210789251043021057549605579302244821148328295750614267676095924355106231170334289500166170833393884373420486090054280442139860311118880323666254178185499336523851553650879356469891603677728114219591564175823760195656207033054101669612738030454200442900676013836537558037947611353792409019763763543188361832489814122711522578739047827242786402310687501261412040768515755888010897857227667906488600405695088881534322537170568659546790122937476069422334891005799335213131091041698616309440208269601940196090004626543832072927127256945490624903860395248116252151334205213310222668349965839099356344909190485982010939325594410317336733874559341131144622956355530112309068568880931634929982989723121524402648462438086778718847094934650162461295105204935626166896818777066680142188115167337654610470766972378396926379770383918477510282383460717342030969371375992741115518678061811263810092922718411693585735482258213153950670414041786619885467774214798594441951477313522557632495071943218697013245311717530754683542268504418614230396064302092289031690098348285450543506169727259473402683093752081462837610183377806942544889974589033842454528011762995546056311304271642248549564708236518950797854567544625451580019392343089169858951111124275644227823231916728748891321297331430699136561139580186796516311914512886869194821494564019185742598714370018695705574109977728081107851932745655757549080722864393787251611194934094290321935861354522746676026551548571358906775456248766022951478403974791355806390730258795744768645982169459860936332159233017546381583398799931407176510186292624377773290652136093163648498175310394882420264421872138019660245605597598562776356973970402263410174799211889814823823529594885540832186299741289702548890244698360456047695445595295263333211180755204075415131137476084086359064718961802663886243082379339336237250079443319601823230333185163211210309186327064206151121514249408653718093475415240829129349958265801640053592474073889646988740698061576975833596033244626290910992802685389210261281774357005470631453020252292132063923001311783121224650572744032189846013807266734748272727225560480417027636923358422704244547837779114575529381005522136556732323364271456723933878634711433887449466729350859312945304072611617739641857420762468332504808785360048223256810073387134423581045600321290172303841865019937878611500001994237271013751956847100783091380446172377863410584628573714384548000826743798516974281160462021462093360754869514716132451028439539749850346412790705931739751684278675819119435500103436428159130082872231716653835232228564820846946160452620053014630433327401408727015362635146776710280644088660614188512652260780056507040276759947909748911692009587316738205020919551121523453195432905445968239131583589515943250354311784412488557011749956275459636071302442860000042545292094513138938454730919820575212332642350841459489834867792443652170858782419579343277617204976027994072404126613154905517012058572609630520427977478145130353895259622898865952251058146517945484440535864078379569577700927782827791492334741067024452988278872605678460257334349824345667652814952996485245616648232416928942040748195459065552911098795823028813861349884194012571139097034303533160074712240444773503240675589860214829828866884637944385219510223164869373356575572764058200676960695884020152518610990415007988040512762498988131158719400426597498030501730793901462878303294948691586480796917146085778327232726309730912399279704337711490887146159660476934186193996053867857459265922724424247514037380239161974564392524435374940896043700543912022683790596345600854287393258054247888737823190507582822670864144000448237210443802684957909486593695143317057480953324644991442631841328506211859249189484811046139387743729497566496813168838117411951749733999499435948022360433697101809708864973128030949216702748289610389961272172245082870064722627376958301080022206241861394927680571645711535557600059105533250387640765670185109923507375491396004648249492282688000068941620264919372467475781281234583627127021331638997076593976488071016217107436462481053300209058733392208012821085217775883214087207738669919986132404566209286750006911739943112693104031027343606466583538005187949918235251892520562102235113463564941245010203339713884358965325168519684311686066691546041994911074783193881481310533386936756064070183101324420961901633972781889583689238688966672378975377876324807498055024925668904965361198583717358389743021356717086020929615829323686656612058503676226347043098502092434246451393883370684510907594708204718284395476846252105544470065346278754879089386650884491540831813980190078323873673576131823944574983183971696590485594315117377006166195106896506817255840237984244803758168884416680369609614296603963866870819417401780617416684494361415463865158645436347587126932728079437891795124825066998839612367458709098212314182474399075643166593973330562279491392529383370293751144453195161391469392842146042751148831727210185912048571343532118211455679999047892202943919080341238656722980654304777280617104658739518377657655716065195164889488375069284512477150351657261503309694036777119060248602586977687980744540398100510890778589702629960150127323385056613092972040026098317428612315141278494880618057889990045060132275006908019265102660973952699311426302539051196469663592043268726089804686094573917376269348771463499641883901921299229944704251073294666109884490608098280102807420505782385927841930218989498070131359243144497632214785119954987272474290347792181967705929762351319110419474375439205512159607152089348553189151680411178651014964435279170651731809906324616276520084909231986929599860280244379312907753898809160464380795854906803598405095810963474395791672937991784468331280351096052362525056116238147772941833273087887102342129762666739668957765584687196209653824692765229384439636925715974386411431478450274967079291240108975966898127778887944476775286410701314602328698090948655239557586396350973749599234726095335207108609311088908204431775181344782870639702497915826411694829718740156522650934206596838992154782527497328367502963380430948123441657360179428119018919139760787454849348737128787219286470076013177497622101915016981869492907516527781409430186735465184221509593073515630766153627599196571878764294905318905678681602902174285773403724090528449033789079270781618602234303828250800507329019347760208616608569920406106408036832026631039614654580043539455195215573560220982123843527748080202441587610944993094051396247268963455536758353156441552768645208961276222296043915526382753472755851760335324542234788175428975332675782193352169020564149146621963467509472753341222787131754993159038638077787878933900158043389918239606034049861147384325787171473533768165778216200759582822798752039073747109544938392909372402318587122311290292091315288809520968409520307617375200894593044105659325700922435809809783518554690495162233388625538208401539369768915873931884636386734823128939851214611594326908943462598303631978807374710418426027690893724350412385924662445048146073100687072935545742579737984135975810603195735926561275453371059313699757158093941616406130726480199834282082026613816919407999724859540268571850438407328006547359373729781175820099353127658383920060866876776468527600040471476683739875758308525514328852242518707249807575257795726881107471764608082004185079354505406087915342792655272733486512204545199645106384240424175897226555534085648376987176665602917216225799229400182640248128954969297014017586855175824626355684010158393097071677964229171322433826545980717118861153558032180627380311883538887600733568958483824400767541802996441127496029315979030503681999506658372133544269228095125656017635525434101443622114391379741066076735885525580922022044918180192064355158815851552387254159149188458090912949959135562612788834513785369489108928650190997972476508769613330204100541435698034593222282176415604348496830535528862377263619251774022286892443586333756977026764487568129708819878992903970843141013524418738464899539394392092085675058889041798773208316801047946475603369668357659289278249178630851828374766989332966705808370292038580862415671710916065124027959419910307162620924495228826378426689754329728739010293560861703698516399251277203491598994557506089373528129274750999597511309585295902285721389393876025417428290283026117079833626829131978431124919712696527410324996773199890644978684760173140094865676621561340150897936295028146723431023953228114792470713469580942350255626206048543653424992970658119600981185713705285162428928340667620494913748227467639778310834809748479436644422971971679235925714807125000804834148856288656214453336078357111224578783927388223842852509796543036924322257993916751159995838460237738792436307736461671854774172670771212039088912678314017138331875379253520036290996039105075768631509092072474609554352280360355615645117079149619993365886749945871572625700257653101448349385457112594537193587526122017286866103826517811129351030055217062242898301177142257023992868238410648772082591897865119531228133656033669645084850866667926190677196580599397094753573061254787200656863161631100420515938739503141014491007761871122104414947985781392941634302609691039084313704654911405354154501122623636873625562025772535951711539293999613038428273945171721601944532466451892108109756089539550056451237219087516412264637105766965936648876650662703949462905446844526368706808176265829571085536551901223036696307926348864367950378275718017180447631266524811584568101592836996278473824583850122628353702961392670495161255863476491054550041505128447925144979246201695796147152972351912942392474501379202444076676526316171369824116818287652143003773786796430483282812337650015264526529009209392361422919890616739100575061042459467535045264936401354251563190612143136905653514569628531179950817214098554350213244617992962981543533841520104784534528011612853875583429129886738992535445366982160144972124334567210387451796836346823600817510593640551049885072293224827050770290584040792312896044864425126565547953317499099221796002234803584603940547116087814164585655963155891005040575861174107040074353154994701388891271144795041203127027650205133496625485626577369436586789541320381383145348783409727668741015483198988842680726127317265745220580268451648356591038499010717465128119341017402832726524158071022559405149883116875676019110275059028118427174206597171686379059132928313671909106706861049866634082301051092500111922712539806838233439563534504892168690320781834862305857465328070290342238096042195712684282870615281074027917775098419263344331549530879080964897637488189543934134882488984201723524383265628832420869401500229840529499259943438365595423130676819383695423401368958667402509462416114920129779909711120658118061280082057073521466550107828796538288142203713444278866314446584846309089219864807255271669937876356434604547614425262439148604409930302835446023786676445270455459148986339997695450918768813315963996912934763856347659947209472840328580302845302449976501306042395602282005634104782489252988228284930773964008742925168334325861692233243844601418572140624772351487313169196179252942484018314957742876680054861707537567110023542977847637813805342193850035876491907422128698831804602872892706870950813365147071200916120591175498261310666508003350292624912654029927857083731538899916457944777661779896453481128111064971014150585250881811423606224294645150472641800516136165346420590976060800840396194608483616051068837767007684544692871970990677662599755347561631511935036676878939846454823583328653811121158382917922522492431604863960378698069037072771479896603584382562098573882155007946712716726615295483085651005523319309587795087489505928039983618481956775795653964563510427206320796876641485421450989313537489420599481910551248420417607242131053744670621974088014253272131183884868426850849005566174511707854479660336344660377608002936249853864810202944891076173548779369581952138023561205197008224773833726263262484452991046721025247052993569122807999126916717172970274991522077503683618734598208786315172146768026999080330213844857499367009644440626923278979783498491630124079905235776165582455807286547336250567819041290483853815836039850069951092423689014674006869340443945672236280322998398380860244699319227192754123030068670061340015349980695599019089503468453218194495669270508964384384194095594298531564454677573236989512245604463807668412522048384402953536486553235612454260439659110275315982487095442081192296737740098275389777177837993612135920544697768652437559071351882125329614935580057873316847757728806805233897966789468738880526963505669263420544735043294942850010101723702162819081727198292043217368539563427440158554051621303976522831835506189998074597462694399180064910225328001706259423623823513044363297082835510262100276503438634977214642710359952434540645395176629858483889253493045535024699324427425367786685523952598761008775570922025608433082339368342158028413024919929440280476507272719475992793984494463172319799461424840119095840915358340606079190487209367787782823736114153871575727099072385515339669959204415062062585705258649135208775896590984776253588574399280092164478712499400813784140289877448852055344265253655883056896804002268605968229478681758865520308961664808204613914340708533243771636546073244482875072772040428955605489226331808084056722748091828886606214915344148421738560227768447297690996404427665357874140489390002933319216426467098950004173790601007503963797704148636872961264322009558276493139757866973845823394648124428915524333157768328711500681604240169540909468739955426095471581183025372568294349619661842017320064775916522505558942205125777339501806160017741485985094539079010996795005546148024359280017952357211215373758227009841497416311178521178494945840530451437035813699952815433601810585690419273498387964956425136658627598526453961659731464424197918319425033277051810425492217630937131604766107703099296438990568584340312903108689864798276985336918691660933374253245141481088429722927107565118184051767850537580484226410422481821161700258062369177150502599670630594971226205607916735718628924788008088839864052648570463123623342050764483355489018974575140639072687082364178220568823643962851918924787065467672491214604239642222324796905463272828790562078141578660043731128866234989446655778783063764879079074032792453157391320577547518870743355613601448149375563984952777330419239893128487282264206743838709542245611380739595123389191386010909742910079386011497638550740696612403805077280334908936416066253147892456336226556752532499762978911366158327315181707121726277503742352665333459478497006786616394893872050180224992662017273830521874369044340454371538733514875528478869132318760335118118837347460443361861663441246154780271419564070761777431125859139062176165632837732096494101286513244811697439203411756088466526223471232608554117312949547394501419442898697789161938672781069425016435125070883398724041080467524880102498056532837176239518642592373436842736357644645785487261880058313155522932687818208457737471123125851125901822007808109733174377856362618107862019775109250875005180047679695879422447432140294274818372708722568159976471373134621590443266895629401531851770686360683831548100850763675147211982963225059106455462634899562698063596328800817808983676603724095414845277412797465437618045185921547703403066325306446561925034694133245883639231879643495328767514174057710650148745882542905469430013007978853278407549351163772203152563410506094020774884282464462323181224171960754254354088711412684943330609041032384371521017702504290239454012214465003821151119744659827920913689211748939630001244258238006106887546205052030521915078433565396202255625030775913292931293417437499027441813584761325125811940139609454274261136067305596574295441710099722102133879229906661338921703707187454063187075873019097823929994808131920096177430834291482667673095592910634066980912589282392987411392411421660983932216483805567350347911991228969832549743266657048891632424151218118488086803365360277513662776642330921200904608294119885549952114673327966361608752604398739016682476155985938329057533307704586045489897364715891319633786765807901350611597476914066993112042664952862044508736327867767698902264616085316215829320675170107862910584181486200638698717080117226988574161071082828208321817998116848253236257339746465424358482364609094934721899641577256589647116849742871644917771407888917348795961929374173980381884584930159464729794560702339320862618824085903601442435142664665954782312474307038178064129523999793023810875480765618461194660345078774882658161084570724607612471171404728897026639860815032650423705617264204647470332388516507181803481620634898192265010940722262941415549320667900541674910568304337579111663832851054440447898635300385222375596340015332946720087090237222252714356948779041450941075934068297505933659123546185893219087433827134409788839848528513373371295794359995083867104017033636003219911161543870290702679997576230686643845281526889581424362020955154329036192620815363532510503576157642801559531211983538416392825753553207585552971118967881602409204044272767082831153083868754812978941019069928068650122557996693926467231522863599796221973880290914709151530231762131041990533304576673273377817805702308652848356958130075735146068128519222707781158430617557231005691758482650309288670861456383905770045759014203223299777846110469783146285467215542781197898166370182449512628207933072605859802121575956393968907300399169152057933823325582690243619551880704024975435468716108057827141139771113506477017754755946117969759000571645456097696054836410521128651829664334156311644480951899973308619569324106815217629130746738123685235517098988111328530755723366362316803726266292480220865905497571470876206937462126511694745927125489973594146438173217774293467832995697464602702192778442820701554038239505160870625459624567448331813928695520050159613283268609643464283456219622707772400954312092862133931270800980974827733125901782985674100075448306150367923207532829412300004456326103189699122536555455948128331147219156338245651986593325404438397776930459516043537278221182635406679345719616027982550565140597466065263495513395707251729792633750056993561086916951269500604285326389499858156788074054678698011664547313682437643893839913583338057656477113531494540722736589882310265373128401823115251983803286061424782305907317468019986886065812806222677023512473009168224939496683900839011940021504675991139454546164423336442131484332073766720415494543970826715022212060218035479598982388680583477897744091742938953819328729594098058704942050007579285056758774025141433000225176975931599973300218124730616016105582858868544336354306992360049210607789661322465101223693891573776605491422053554765382500891350862743408298198774569801540889877341602574071424278671639753631844331672097570383191623548170471228126856217228157155338094785462239427781811228477451608132880848773857037326936004745052453242667936759402705697011619119475934974094026178329774952600616527462400039832770106849417619110018742768330335653263424889871386978713135750214611208352793481738766019601858231086260217821389224031053256911268374436099137517556691448020205069706967388665569283612772802811942095381903353346816018727744069541386453095478829454477745887055290159631678059176217187080834327399565686307440903420330641312907820010488351623722515632807797200024841261944803725215706202269332713082141967571234094293425792177521355720783475082645972513642384667451224945121360125618707423476566353029174607182062678926890816221000976998133603981768007412833042794161557205395361700415081455877217498421414423944911077585284654888506936514896899158991932119945847678853077509460750110858615892165749090732124516962802882889492360775524794742877403821240274447885380162030836355788540160646758381130258450056312813897704747868049994765863167377850076117340646000145425975114385336113756398474561209350264180169017396515664786090350230803608566501786704720253057310865420633176652600470520695496692877957551196399024016946655870996113463708370891494032372441818907195229113093660277510701248738010528952293935374132177229540483914904705353731621366648259436780481234955233543963557032665722290268671878323167956730135094397046020241892559485874986113863792744818318063095781637012211418554930641990572251004703719270289526109682828497130583217492799851951394303855203230827156447948563634684245075308793464302579215717940692182449150414343441186068857538164399467311964861765339211515097489969487485336156722204359633710225480483810537242983315460258843332760618449202426231921161553069919961593738779257013978632841484151926931934615430314257393948814714422485589682224679094275119132375700237431168602380101932211153591219762675374249201841871122597175461372743243186286184522490628790786296007375159626872500079280998482411800607085723710460816521791625540618501545106349835412113971967806730441170280351379123070011894940857792161111715397555202274903786745560866417379222697666776266198821974585463042542570691543805580679937165361682824539481821759667974212465442860694067086513889447669146977497192189909927177381879865532102681140735292375131019027218426398549539586258545970622918239798645387945800048039079951936932230673778490197345596937144675643223312017726123300038039644941477591054951887381301112826417876109256551298371096027561943062720842267320214454432095713391190184862404141038966916292169934588546707031190174889957221239976151576734211884532961362776489315375045714747582217978317000655038302858272004734282046507449702446331311265310326101703627231643825341133791394785449046192058413524452780221825887990905171539334211093498335559205058750668190637598440715954474290586718798987560575588589438620772731020929579936297784455445102068442222117288277074509987620191273929076425430109492322220980250984313895446211131935168253605058267223760602478943775073314580724751363915645623331016874459687708892876206644497492610725451679242783223920026930427617820904867440327936679996729327171062544015227007007925979912212032699864148941595726519414628738760900834982227688766160196171041020765691792844596617390931648122848372453510322669020464988865893178514994189159437386438154363286138955925173142731396833703567316917444569159137014432233226837482322589421661350872607950680524993626510557573410909170094722853988885518947339450493125623851324332232429178881416988897556704101941432370023055313047090942564447837572946232844386600731833026403527326535848030757402417679880172328054087750252868434861813573199469036318799858990565983214310802009959575981127730711748480306280007195086732942511472518121752628575050681970867550053416847869651017597435589127166798695494873934579752349900497670587987008279997880452355247494223137866744149755202827084417710504935874420497007142957281438994126534234433223361088501017422322357856415489915048808852157849206952718852143322775263175657560834437318289904072049383718254883012568888957174603665099315195974265793444969633775028878452297379003552347147350641725097080375321904875564144263975014964975639533899859572260610634567606122268532439054489562423643382553229652477603062359391252799975593523260168704528843060242751168591560591756929730913742331481184160214252986946902326893453596173788641966884750215881557302012544508270750231386133329719378758500205815904084945130841317110108554206490490617807037586872850093765862391230768740884808729553142252517440633382960661100904752565883438188163004729307052256402822069329673113306714302737806627202452767853661519334141285066169270040816877055310088194296221520331600763018893902219079459523404794668903709634345030862933973852083431532315681653411223691030302433438666278359609019958459672398199388727082500649914937263637807335329106247905977809008918905529712769067840718555300929796603263021029806923027453407769302348161145378386848093226925235960292006392278913304572994035563150617235295033802396826982393966893745786297787357657933195989199931238535748920328892366245829150743426508100106685392437324260680925210468269778749701620657709163256922898499977185509049687914675715452578335341766229236246956197432633431355480892862316995110242529486664769115221445490020965987596717591003516948982294594108766921380728936977514833375705616604873056084521416034148739458746283515706561817440208677497409054098383142654028518117672340312823560063551345045052308810743463104174592812660822400132468204961419982143284015583308767929064222839068623080892509232997625636259410835927443674042036482162035032484885993472485133961921872820905864679277480647307903960916614361333393903360420550732581094260034940820733454164056988302176351307226178073173435190622564312227711290378047411344709967570868715033800555887833890100562939875464758034480722813829185473164021663453284130663065479471448417671782494126026127310820637524308652640123372735259304359868060895347266721025868107663669915161849815918012130633013757138647706940960010813329324417118492135179717982818028044589906414169931657537261425500140803546727607294332676502825145196495496216243747618610847854761241546208725249312885425472731883628179580593482465513513558591405155808180478595615563146590770141601028989326906890960165565553571439278458119379282696926443368613421133474158505662109136197462164731131400915381505129122407833680481513429482514062657881159789137440382761420784896105936399194763835318067374975143666796509987588359861047416617553473011657588747404508016790172161066824898351644835699063822852880185772117536247023607575074327382349686483612347016351929516161607367040341510019569690641985064398116087097014650900524262687089583901150824924042001160508909462541663946724624282579587069565411036197657642527183764458132612380870812207175326263092720844068452973700849504524348915164244147875775838687742139421118768442863612519928515814185003296192001621071389865974414937027841722798628632362235757310111880001471867168259600052045749526708425891932236002090366662079210889553747540622171002825542623542693823085459971710530471583126338659282347204677934060046896705273501475410280428007029221686893996929349883547926792266905824180480533082090519539287474350547195422178466469516778383629867049267175459448606222559670030685237981987002855276903091938271120586285136835104519334732269222943977090832341081406070214606828729969209405473457064521891453817915549416572510734534747026327111007648798243943540669307820277869274552178807460886124539207662863412005593092297213028613955337667678027953063300529766723430803065040127991590458493697440463773920391762047315562373661412794635874359671181613022711190280750399654370347794553107558042752466422680934336667421964882528332939677342410995615721376586839064559531885943423080089215774647401108564078736563618854264870378932637288761480176726136830525867471201041676665665739364765501699732265329093955839435624430500736563187404177706965236279682509492404468918940384921689827814745692625504980214553379602247086108193425010696335869401815868024699777754788088715451790377598106242806544155110286301053169489159688874229172686837266358736164756863458893301403679906474569659073674217022147246661290495620512132939668886519425248349508750034242486670774405952076080280204646352308378602948369032380619110149893518219943347224785271741061638755291703139534983736195519329751624092438391745149893491812359101942791890094872717090952573126198853268508020428783498810388586979427716742197051712567379782983726806479578862676719801764289388660335028787721809580384294628521970527664517770586143930068914416293970946223538202513088024214329067850698952115970793174229480992666606929356683092558134783776465836449968713886003847294327188380320037881519540609068224474668625900625408681627520841254134711927347034177937262944280868850497062902974779681359263297102441541822398412809158254253958611857939238642369465537402133666327783389903141027195536601627940830757633170374044875364628852493607110004850475136610014716066370996516710984600733984612332602459322268982893468387824643700781254975136335581779588910707697106775191432667181103211087499016156684297765788372292360546996063414658326184531009835456217595841820856549668047440427632668272472235090675200322464222642096916389983153124081156906653750366262493174061960944483485489279640260298105411751433442462228400477427385929637322079354215787535476640564634022805006570603141370655635670569879395835748662250423555972215826640344096872914455444725460765003157767530823683984198048902256060871035793481645248771984152248046864584233284806805640511550058043483927360516927228402909941271010805014370794498281315325160613298919864437653549173160311696408956426597661241220800281652800271229195584476856502661361703300637836101955602484621751416311809724947990020711440908341813414252270324662092648345732964003581530005992488605411860193905332389193268075125813401080397425343430914705757744414296794601650036872233068365653841069940995511931810215525228744737667263147469531178114664616846449747971243226886845532621119044907936330371236500344358204956681655732156849982307971640173615920975374186520540436013768352567329407687293408487482442633540028256668786285854324546219664990862765540332315176425033210764119270730519944504580940649439053008675423171581833689468315082158504546843858573386277441337188915935094907917549053308987126046791487427992606527003387233357961319657970745085697203201493857773208469105113417534959709634033751837394728550426006374779299555203250517253617461243816222640100048340624989830786113930071965048420099103504383373935134450346903618893836693505111836213762547124193459016418755336093438955900225123481492306545342453584304007193134358834814137300427985646009900104862635077178241682000296036931536432254127500904536788742717407933526712173136954555847358145456363489290538276889072982222399933865248525759620847629430077817990119370452440722523133143843577249609854374966254495047241390481226454524043421570551822014849499543076153980588280775867134747108795046971552084830404265492035718724982573596870896483049487983890251400565817583480482379674677862857458755362639063007466390110199864635210392987653872626257815976611146438049623430645039061445093725963371545735165951540425407648843369893011385369485964685405603621519351323500875191222149133173584630281344514226156356800060732782609871780573365479744915811455382991949324370916349629310397389600173284489717773382745392114754316663258296835537182664399991442431335375533211598766247208838726028502951076473434586406842306369519577070302220554573677412962512524261956373172690525323844425270314874200987421208797888366343881184569516671133152802258392373791722203184329146677935024518384355226132463271809324103111633506155677097687559419700937638673305475693034762381802013898108645364426622526951335645529730038946001541885190170962478554579701541884849256122907185936690454697636803751387034417192742689037559640463531902269988907207583120757886912464205490303383538541428704584012769787968022310023607290903650578609895304343520858380216832180357171830393998077832410368827534552484384670372498675906827070410069879766123123432203417191129312397843820077159216974797407353791145308661071034280463589383218710902969571126879606761226949211322076049653665337845694213084944257296741339263491443810745060789456089693875248106410385729441919966279000081259721767610135379696069169603698702520116246111033090471730464655181666406303176250677966446889619863361540295904743137871844735931356749236231983803816655130753361447206139551056314656670455370485843237107290038428174187632494608902337621297736975227694226446327482490634982659805610335110100272722639097802678680291918930025174269320079682657944847017372211580652952046584285428813083765854287742902489529219975036396554629160518809178206534444540959137935811472114749850793805191494834679855248475322103405930815280657699311240055968044518523015795873578912845997179938944642267195521667415821613258086153458606274984923176549136096983142029919869231796504150529119176274332477508908370197846551946901248079497522338658198860613041250889464933657119546636235320637782817717603215260645653819287190626006026919946134799720458648450131038499269072194459541505893958105875742593814589641961643745302708088204499649507798597955193205346673037283022750137513924651294966540806412195794444291212778625630302671474698088360164196942581569865853580208236256940389816248111095467797547076042466732989021669344570904873313436277025981181805807361780464719975815856131270951661878592527170325211955171733065823537562077652446370536138634683768633112589753372130610932874457080371126217460946616735069077543037848339706361040912074141220332202175608075486017642253978665971282482226108151331032472105618222112580139350111859625016832937610830455513846556892642263480174261300146910761910881367511925423350779053468496645493615587706063358318001563788614002244587017929161939633516958867194187936415310736892675390554848708286684941243962977186459654008015317552648804565350884899024651265599780623929786418111766406601473007209244324527637779488629125847213921480915541199202064087365182414890890564923706024476242009622691122834632102873350366449583065501994987234902569458292616078127176244390119162737349637618177871639865036573252162177762633035403612924480096054035834355393659877824057369371928619002669163279595106225600974103160667289565187517902132369058672174900032655551932953083641055299042494903462485890432111601047322591270054263170826818829578522794553865189401265304161092074603124625607118608861968672927814062635405389205452132753006774835121161254200705190873960574560063246987317262955534251701401871791481408887868108088156295770367474487209313563457380644223545127228513594194108552327177074123011482083497685435425616498836268739727800798105729255420998974167041870279613847461374521673756819191621591203270812468596737894721521557460748614444607136495638014072979732544196779526551281593724564582340394733503882727038267697365845929271875885602678141846650619572775804224656147165961814337364834352726375016407862998135378459974097695624735954486167077826482065812852094171423220867152701276400863773061232247130592144363552948526696667987206054146395053872957201554998749635544436629850147714405004065169340320508296577032031187932422312257558804846297569747877333958721526975019896169396809156861238406108629936466978843683308913307332666055639690693857510846062308880376702234338418318120094485216358183012253999351670958999113154785452987178439637979900456102678470021492335450484181520734176218419841660429778914754140377158593515053358994567915421552667091587926654865157883912655358941656695155583736250463557020340440562456797001877219840822056491797085456606674173233839546749871298669739397955783494816079736521450680347873429642098875444039299261693589460648910974465908444752106156973222137466686966048877112240955204634300348717300832634879104560548272695154410613006523365245574529528539696552608187247421271251222344859952761450909113747956087445167164396842129100154509906526062428410635699614457704999103426474820217554046329647020303234139018924086339421055315087897248006478732491557845331568571114291863827931322044672926338613158398064716661604627696821726275958701971084789444119265486009456359706694981638685127853353581454716348887028365503783087209591779964129732573007416246877821930904650248585429828824844727221633152474792896080838813359341441798207725741965885402619201533912325337553718019618520565420801676169437597189128596687284734261128862990142453197829777052981627913119643550053937930880097107284662581403937532719180429970351473625223235560666656070104450644088009534454009987393133308274675616581930153897327849065186252291573887417650172269654721466642387166986871666219323169541769268258328750051318366051402075596623213187856185968607157420776375043514748219981008197007261684771675553511274174541089260414756912825570453388033939774403397040657774556056157690662627643173988178985138809846086121470223052426941371683842860938634118650760208621126724315460505964092642350786413577654615159536977212729382665995844845416631108405455203058716312919641746052893638839141558117919840708183104778837457678617637460230692453447730319431591650568239621150997813052174886793340841761245154722459210766457544789867537850764400097756688447708749561538336730287870773850132289206918201621729658408183218379274908049805647420289483439029682265788940864708465838362174889378340364251690843022821054111208410466145540906390401353230357538955291138321684131087865546733609090500847066364900644878591067093111973439241210199415034754340078901767493667222922226294271321803053312206223031316590836411617123280763959325604922915534310112495467125315950962343071428119348755278597062114831870153295120094427225350693387612028318672514722871295647220938442715289436221255968729833086997009503152836520173985271492903500282767580286340396039639170653283639779560263847532606028502621806995181232092071881295857995357981249836988915433839860174978061779701823974605361046184055090478214777418287394176502762017644045938604777965932586909271482098514627514108554752337019629466586528557206149965639220187807343824914094510388763321786912555059052260813507121993587498652712662148918364114904587034287507517954226988501368066006749271776910853547327348786456938627554550030351989602105532926662279712797775435370902778748609542533164271191827348041238512615339858781776921905972157193400222840296004825086858590167616023573492898528399406634911320195681503351403495527787173770982070782849022928146112327607734982743139219699430019796817941925110810416236827437721330247318872314237886446652051162340671656366802814966465434059011429513206865996127855815459196001702819403648748071892443012937546559621272466163504421955034995813219113711769344196912842125105423990709688980622052511385037319183735581741761713871427750119144595228191844572981334229756449721951107005367856545349402417410362051305148430063340368131815154186251494980227005705549596180982723487205011460359014337257041813302790736666269389194932096099705356129901401929066797786556982976641096726628695159350026752871478296438063959231770605347830343532517707028910046994722241942024036769840986059994038453882491793550709947794703482437336664651539780294132185156794265075961098027131532459225183056460365156304720200818717352073198803814836896181736764676894538115315846438666660820742353849705222334605159523318503814732167682975750294396433391657102221009815453881850639776629067577920262261281513880076597654483293418681833757002846957299868512633884220825313968579280204758228230930081904638101166629877744293663779336363918022071678310136267620528850300575058181914149805766132463923517665265470632354938126323308658780722760905219094607436352531336859927888085884542091066798081561670134537576968199385763976848978650968153710001990817740560184660444725072963146378722243799551088803129881185573747670115729085686814285196250099675714115442313424777317184393436453650306584054542619201274840694140418555477409545694832749329373509448348412022647623795230388422382354019759587321820582091462330699033995043510098563620963247890391570442896201274676816685123629515540580160060979840435900489779730980786172882794870603650100400720809463712580206418472154859806121280489895819182737822315657724951226814223505202006492775903939438342904150901060457627495018146707027140869903513182282076350740273298053996049832666094467611658605869185080124588035325113250630259532900164150544652096614450618857461713822119606207012048066277775191305413679374768652407583913913799013701753174164716621136971886560815178640494245179083993044342508889307314009958275722988750770439572103951968949496618295262327952995183110563970143381361905489180379834404518149325278227216043687650642053980994421995897717778356086332043502918289905666342169828980076589568786341503342817299240272019187662791108368190134382682135904226903278671780472905479059684922426706474039633305036198897639233300721057675666470730044585655256912620638647652257606308869682661326054581838923327787107375721172566199596941663795865630825037615450735403679842889821397320199328052919236603438753030567690376363781917257750282669086921937666163149364071161124587104811499145384488335515651706302822560987738018353894710250640289061907514228434823003644486781396504972898853229694945161757530886512411375265083783188975828818602071481903145254935207003061790743555426234968052760110287283053427171649086120665361473015149114201004989811282531014881765157045889579602689283167081428941880190866142921857830152404416230676685979736281006324673855166094188411846691179289553620924741456697489118989707504113799091846229875189783022762652809720031278686994696130440786611414358741037588323358063296145162752726993528053548424370172407997589056928602824550812839445413313320096207485708112167402125823097362573448679555179137732645428593866885087994980899237385441709007535903251764313479290260029877527566531452425394718365582795267305635128149522312600556495880060487620129867155709491265796563649802111909364509670701668348631604148770209449107750710714358784381337977960475682465231312770243489894147716832949130836348249077945025238233826568327581041861633329776933121389028503141100020999872094933987078472709006677230330773797962471252405585273728970715636862983217700779814600007337514618726717490823426724856720169993022191966776988116766492151865730663762523605932765370893477292696380839409221416701761935329649563688425630927764637883457306278233423731263943390756962375792990870611461959309377701891097113457708591074488997894048625239372859063260484051043349177822662559892070311706675342880231278714558809544563915306716774292432740498219261277887406030431819962616238439419556635720181191496976116972320285238772190045088981346945254698824483886816380366504796945990415607003858139094640483792104101633406502013649587624620381336825901408078422295202598903431737181512253479210236686673286295764073943175382708967630340250792358238206204817088239258565809892721544198922922665365668894357705952046335002283808806060974313819285204095957844832198203642058144828087285757462477053356998886718763051927926841681637965180247061643722450934877610193470760872004197714936496577379647714091945252726227233071875608495981639103508636765987341057475890243587496675116966373467384075015939874256314970965472224719272684148245847797321491026760018320583310803685695631583431610272070080808637402551458913402365305654046197266905996865701091325706193388897492031247797456606680097807086682940760131193930688018851128952511043140590915901398454283833548673127645677655829037861688957373975557789362162057945997042842572501678715524292336749610734324425217267641170942501398834205930923617960016563210320172828855433082437106006718745273944765935608915960229531751303239106003795198016169773797704129407187347251942445894952297282663494911189011410934552606185513342811976303373592043982702179619159262491965892094021525365272924534760041996921714805167827429080971485601002111678308682330808466689896610384345181266189912040445287411779835681877669246613595071082193324234505720622663202049232113467956080868718948564051444762471673993872600404653300562870342153543186767313837689666852182653327213562751993922917960999186968570660620523239421442516118920991013772065079287514226149419453383736084243145015707567042645714154390840839338246299573292564643888293474666512789662491733049799033715538905525462322128107360394570883421276904135203559959832258119810637154126005440768964888684164350951753467317573804737859855979247438567179009451863689119481123152273761843205039252579359696431651180888512527781213609235361638989066916495093638806624380368030481238514824951182687566736042441583596113375675464919062783103228526451393627515377740960280183424627034275358468522671607408677041252869121141969524630991186694749752021114068956902562889753695619814698206381828660890027354281287776171107884952372828770227879372760565466106002470045975849047003620435431282353813797512283759773423387318780479436977398680662984978731475236241912009178600775535048549490407796440798794294201401874242034099185898454819050133890526964266622119944534139984497364345019390792861605338392615170304507083317046264292715792431291800608552873929278312826379957011856064735667428506567030446807550617778550892928562395978413481190184175114002393568300288374708411784381690871387172048894229458868455186074592325652639780849227269852204312650147286743710987053857470864701255682946671221702478297281374248796932329074688721417990961637933338214710046369665506339460591353068042048698659427368086370191658185091915814118317224623954869257649171661457335464828661564518068234737120438218364549456204906295110753207105248521442105226980910880819083122157854847934495344134972857641901967932436786736713273542021607512418700609531211778532505265420971055242964945831457924503152407600621285637897746442778352294580202078030899142276413614924194963952478976016898271312744193221592901080190125322318058483651432573867858094739966977789508689231481148036731211329870776228323793126534709636347287003716056779356076225032151700153743099620955075065357276518613276289391205335675638486991147484466903928497696224109511705952514363533220651257086147912266579945447948035291655181496021332744484511616166808852558541928874695094881161322413814067648825869698820071728168154849471844152109595090494312097017949966965408635018846872403991592913386899467536507210019166343507681799248906267139861891644904559310637758269504097622006354370212963308228144275919972748457364628644879661667305807428748998449491925096837749139312678284992731864081623126062624098594222163520123802878371376159382088113543209983810663885578451445199431681484069594480900010153454266817149435776699597852550144589314892610959203998200405478192720375879073731931708460251321811531341190518820288633210599120784788384546999701100461024967385466050098088669609306391661419690934838002298354065921792401090334736926040564607021961384341806626802250181675922345738667089589293146493095928703628214657948192095726426720274211166414798107949601344104201608145813153101525613458678257908877508131367172166712456974399657750422335590099438744401145635998281786695567740428851313464916144879270865464606400280776673882543965578100803098630023318591873678490510722022965136392647016555229750226098782519988731212431205014388110306704577207282426115994369391821715457922859617738483574999515454774919267661496478142830856972282328631930021515006953337359704742435564707433592763673138283319921140664309540026934670639879740561077164857590235948673470599035918942695384080014789244772980962352092491177070474370748947759402586479553536169120042211119431881046948400894736128309774520277639159235588498926335179000024423441724931868571060998170297491841079389413267336486870630253839502959962963249374668758003338089713298185435411138814472717594932548448494581363318956925875991360520474749630339703514943297838571660789505096664287642786867219575573481696535367822102304518263983880430675887210633700574306024398004742939860599817133263961698587452678571552272976664311106764410572766031698315910748978894689807284800114639808258065098378929408993108436803658517450480372353548160851999688017676748532782444904363192917605336161134533693026569226917481706784360678860080611933867278785789254403199622438956238840380418766652291715664393407123956561638197600589282193458473915087903841094593256856986118299241139445289910102539850001353297486142111474861692014950226701934207025252602669090237475681492610386385935027609464881196498927938690146113259682890743463303190688027004493922055623401017406298731041129652890020530555689446630653461026378927570847452546517756050895373895211159804573788142155083906737581582985953251659553276849684149820952291383161505597105832415844587784950832859616903008329739564491932007810188106328190774025057046791561729095673414967367450771678751078764486213527080655439213383879657554400644289106946393509100848808156108174371993221256148650965123660807008894517962200319262059445782509416749318275829988697267813100633563914660986643664332309516917301407105977201967478904605885388012041017858357060194654997445496274728095285823107619611611062826944427329170534562078477114103058449739961652095759384082331985195324292103461201144836357420007655059200960035462344391779952810979434573115215710543038825571096753966111725035550451472714811451933824166948080316313788421206801322975040375337088028228665576015077394001860331313248201975696739439518389102758801730624480575929662522168422273027947654979690003857696990102974022772736401631931941114168980392665767171469747455254551008633925845416106275772513790561814942655834454791207639087534291646495875940569004977100440699336400530490320676959196795750165323334473672365189478768617023528125631298557648480447076107396722754316032220512834047394867453061907799594035624365710129975878110280407448332131908384489595464880613216076444564525392997225051457845997633798344908231122482573747021821907242331389976706233288126585400187070923527013169467319907127539293313922534678371330680246528717023272488754500105952829851142222770012700226076727109048761157386885780093046771462446039780738930490696731911305804049218255501110665012071858300351246840021887355448835437312302832304057750965104182424417795886540416260521305420975123870631678831833944177303585009729358859067162928054746934329139017922860194639227711143123042063063129262463757558423635524812054847969097531062615181000555873402421554063235730899013700092399536827235150176958871167236593599241012990804460041770222802597076448771756407458002783093965523224191938897358955151835356967479952202175907116424044835057598666238864611047365936235610440012029945008758689780037569276004750043355335799241033865326891928418681654553901621468331930736373941224091569897945494817338558838058719377564317009658964037218165891978236130101206966675230361027469291805723098981175775552474133442421581105934739371375255415053826152939496934891313168902210675626719363499293572511871539563673894354944843963413596145486663129797583530166062140118732117610727000306957246049966014615594942189733472954253299875592981326542416584725309775971933805035442306200273013633089759539294035931512627467760295841425363048484356684128376299337711025208590420660656953692178131254298060398664754801451738296372239386823640012126238209268938710402051088154489223098541336743753042539786091596380808098205998170935934741707295292484413493142376092827323686912308249692405093169593937929132612386566810282783107822692266065921925844646015465244498357338319627296333031974822475583011932772671461234184933060285236911078337028325553280475000639483377646719603348776932294883162924679325089805659227100222823524038977869632877101379599542973742945440706935731108618828198107828432914347930305154428749777904340155786474196164127896098503872596038663720249382193754443845137399338184229916309553031316150760125364308769269194343739093574317413926546087909679388833517686598262307031562179716977567602575988775657203360882594956239151968471614958912956639331378493103730866336816246525819776370127324327030367708259207104317315073073553303048204751359396113713738214504779067754861567655627005139313897422735806574930474093396773539407659265640217352735183171680844936141186973972093049600257439722886501016802235901912225727931453825526405131947094279914487611859579626346375680359576404260388813714011528766274342251587241203499461792537153733028981121874374873582948017933581252205309896806768040979031168551164948531540779638503358183771293432175141262831847847782239054704178312982213385800025627672516020888268250668549965695941610627976088012720467067853687968853889938311013323805031655489496187722853678630676696903748681427579092243569916438816163894462622370526150997335902073704233371644850995088638418304463581039214369544481590015600281594961642183638485632038596150520574795287846346270519323482690535653437509758502198856341654585659495925791751600849521738430051473964321594901094822236073784871332370215499301219999857453879446720508917945378192974855450791344082532467274547601867307857405739867265207381477961973936221753257441934206107983617975062256426850292020268060810669769782637905497534551086905106484305096082312131866464332279045858243658943607965930861959585748412993441285809050280301779718251478287293772694847341151234665440943726673658924937406327196033464953709896259688091994497928348483828548244464171859541187193179912284514364919962783324190905355755562170110211511698369267902242196433255118091919877165069230429772748643122527777434006728919763384567244249337987624123067120943106511284833813848750380300294305867046545615159842185903072197841949908788824381756309196416624785185613256959072660645088257743709613966016496079646614745327481334244858418265168748800605871172734491259383090486656782353317368131234705944390264034959516506410015395467840423028339673590232303052221202134246276821987684100054366008428166194130780531098929881263605097767068376155942618780153769273216208802595761652130145817361258192379041039667315146723952842952538415116844966230202793037734435152386849256369235529098372296422812343048082346070491538047309101402452559398641595663986579103352205665278968956741827602673171804087232441373697212659154305484304711634128811400157408387368559904127129080012244251772600845240842516889573713847098410961042939704432429191617689157292963189372732005212219567045802115848243333446818563199256325211941051716338854936297322018159198156503984089611843951307834651610463630728400137083776436473923871342681518991612380220326667112561342386274793789946476246383505130203806236677497170420019720978130288665623125767131116773530744832501323733104473640609914650979286485000317401548605580702805144910276228950175683086580672017252118204508640161009362603034605644560035959285823821540364762293248466329241675049177438722503830369332812705050524569308125735972955400276141464879229002617677816643423568454567396329920754523744327602363747735373964530171247408055907291840024791663709171145244685111968481586891631476784857556072961805772564727538599960843683986896359429187641889511801556688748552848655520817100627748945452074709752466299376313592435594008963004949962731036358943581679831329433327677841722213164153082708042921160218778312549265019266216185505199421853539331732924849589894904197704597781647156299060308651040720171767316169683322315886096463098201666125139151699112157566642598116722694153937219306277068847756025238883167469436686711421039635473942638085982720106887937658372024690294248434804467893100622474999540956838388625915009022257059047606216760817170480271660315159648330316886549549604263542071635854725137146479179558746141224863610295472500675357450175012852124877019793290101752745287882012987936570007384196563156774816080438323951845708566549088511198582651074180242413656421809773577259119133271547907404495410322122392210687132894923544161092471585004043430837722635537653391523278823881716934764550412976816286754785111031144644428593848079212122258974735822750365755863878582715351112672476994387206082876599327825814500872072001816689703987458839472135559674395566242837580525748043104582277658831913540495506378765680762957081202867003673241899324405611818310425376803204900077767504533387211557390489968214049463153075302013692920430136422610669920595410311232695330192284258981470644975947606581389334809572093030144902652123502240230725270732640714365912396730826275739742486320302960753670346300106554661196424946862933687949332877076787933468646869968336528862075302170997028526853285807986670755813538820833577758057552712239272799894113880852016280508425551359549290369097376217884448685926484043946072033346549582365135839686544286895876520589048436251260921643587585171974396358014074540725943932492932540525621962799823715861323245481946899958800050889588250510867689341594262479185395776869825299477185111380298573205579176198902904001663338385116598924491956985067681260888855975687598806241066047067669738848249416737534457346683791652662863533516652791022681529193736302375975706914272911004977534886893735890537533267100155791091298966229254871740135547546528747443284188996750767232478694358561058644834142320727328140919934540576745536703336617339733540255910466245776814658744981395647750364781508635959088019436719283363317346930756554645157296625432472208582411355187229066435092330928883280018576764042405856477890215368027175043386536398514685706392090619083644607512990368804198636499366933227967719602858606878542822772873796852262530002208174415293666817668657586111836417549217313336619619858414183664309648165568540694920782263051574764697949439310175750958299055913225081913974256841179760509001776351302142100313690694144452540050851893389147843350332120633457823100669387643347912809853984878299724088284559293449340590125032073455822661235576036965407050653300753880847396156037112440014055662120346407580543821798353435004375120351222334615612378556382890005176141497522771124907552935282709059957847244990197435138724444370749336085086182555769006191872682782829246525003638409548629861252647658494794457468345424943955313254933298478351964427398260153894023010098943169118924701948270827721653108551683813057958696175672299342723921335903832146422831509307214791029197977738140221996386129105075316120669676029714450886454857572859398276508914954821791204877989897883515277151730407884065767922737449096463161258875811842995270107550641428281962505255506342820382137086046784041839656200195555512964709130338329717930031441532516084053568664749675898141411809344653399738184971787116580171341497594009186689985427023059123063923329668761306869855688850002702338833051614794951119749230860869908368901797529161896733165051629435496273371833068857260968533585228962238737140159003486278911038692491213545701013184612513460439730481576977424607712949073734335690289102111861718491686890387537750315792189504735924526012215194162342481707879681624316689684030595006875803752397671759083855616944215838766712792181482928318173804356438426649373349849018112651240331918841458570703948118067189202354691882104067069894136490532696916495049454499681721572962012961669094596674299380491481791861494648897127084240982067164536031165406483223565669119357154790623459591989776735991423006515651757946040144034890882987909434327009060273488909327983821275088669121632995944084279839293573411814380414338624158727103314095194099142416131884571391866694821378750581840217375699270782526580875609311360590082286138986662964935611985001070414289750872849151980912566733426910930215306779517523410806872111933232609549552003474471985510626039440872491932727928657243347483373418296430392825568499704120810748834140156947575284594145956948659633622469950463545319475418821595347705064563160805266621706293648163178167324441447367962208227292768795752309470665667465406347734932026926011248785644699738951551912412292306667358061289523849872840886892943974066901056437867473108792971493147637545895153303238171716311229603577951569868905591726867530410916143606417365158008721356844911276699627414357643262092209975936311012492845396959893455555037620655397964600910782928952369771942948781477641125850092737829017349478837433477639758765894052894497168493710908937563002836545253816440247123890369156003073177650327765463634147611174662296000511325120202088399941428648981329384768929969705063882804104923385015460467194923961888788468274622746426123026421024907021575024861480608242854652504543554608929022333942994358020971355036272766177211642214636937479156384690458510556850157611173965545039872026387350609174078544337671415769558132567289405526796235767732644908913761762358174841637292402219169630143356559197534296469958118621670278279620008996062838799658358975591139195110776150898995532101388085762947367356824569313307169712245979383399140375533583467105911691762324884700020074898240484562276941496816384925567457021619538108784877658666252057305496610151027571345158282628307594478286029785423170196976879469286068636020454594497320399293135568689341141238505825981841499952324053930940806998162040997836205870191049491461514817406561910610009081986975991426052800862033695634834096083193794904115310255433911283235481655352981250712124861642151552440127467690028923103490155026628361097534985909325288022612707151400055508714865865969158783517122905628471130959679961282606238370390182934878439385808100289404461967836164282899035736459442008470925893443150978569718259307480661540332203344186473495340155376779780449938427654162981439623495954013234802080999643592982767618399055439056881947824880421134182320114403970890585005990471628552674739782325635717822845994593363094854866397228526492978915909758700720230322965313525440911261257025149327169624729072571469203461719073165039786783049054525713075399683767321745460016749566239634225896373124070700881957939449618900210575135210612822178859859672526857978097709807198088585520995604453607704612872544720618545659206362605288716197270329253232364414622492152372222165505085096625433196767421631321374003843939082923276265977470101476251538459708309173709461837511776462873717353986367821974364931799305571553262271944551491103584744653056728812622040458267401825742021545754797909053692854107226049301467727608617683142748499114373998048323605925439987208031944823904176071740130283084118229194278930917980902251230389728878765012208193144272365004794195665957032546942773948876128576993544449321362836801107880152144920609841631083132474457325615453362803112678244048775316149201199686082891117565280591966065892028832076882781377071961056993136961711785064920528118687634610542167959982480756119835165183509332276236322265429585156383499556050041498208173465168023618260447931160315792460397073445171560255046858448615550682317089457046812073577625119024878666317780019008428597248540287146922868507020422978578786390538016642487635700110735577141764728243949909559181526024921511116238415496002769435555827561933082876348263225029709135235948049276691837059659737542259668001676197483601782237577964859342021241512205447115029077493466805028704451787386138578323810438332471580639625229638242852815686520611656152924006530463418963584070856842092426607945115362837574944136633483898029729760650906084461200293065054310870360601196651381156324495487033288136804819007001788290505267648983533901460675870878670661946728733343914102719419190890791648682299999144067906699540275497040182164752726683623094296151233257150920829527193906010854749259943139330828725310873704458700561793618974500078056929746666055871805045636669425155294683219673720757828684199968519068819982844729576953796622795058624383892537175045785125268339857739175077408290695742067476028100103565126145126284510908419525712732202424683522614460751632820247657056729090036395493224619404638274656988802050954287564417868189990803458393879048294227467164369457812516921943956195458374797092301077414367334834798650753289843737484081615655637918913782753940968688097900569747814183768210058462918876081184562547700790687587933946257050934634257948259958053651111948406200980173833155959038013614256254227905883724995598678061093976316271338428020392938899739284023601985547613316422371601281918850024619142080783305386130854782497040018220693571134534792422406097624588087968434731126792982348337601668296684637995576390674845898378185574166297125173636405000987380015761642711661343715076426552598756605644603538543587856434067577828855489143922832915508762101746224718518645421068264560850868299487030958704505774448085392012349968619524128011547315359523389653097396736660676676591985858732304791071988823584908952308962723101029505994449576197479679266350707465158037538158829769350665613070733564420281877235826277955313713575174122940877920847227919918513594312992595675938101024304473539758839857610788372313590353140016355023425015527491774193395897259423015808924220102665552592094724946093882435459425926321814769646389402452890072515556345912727679142990249346338934117801790121741731083647116524207738405546729625097226456260262588040486625514130357752837883600466008104055875014067508819654790854733316057119849497652876863721537303969596251369374624727914533910643237181547665325756198332360534802349889897035602106657865444370589972017704870145393342194029076877173401409376488078838351004829572900390599507881286331141607103161116850097935224527186604169575408226691612690418796428808839964041532887682020698332079255451298055855988662073033499624138884675532047898413250010341216502510604275765095108571252358510381058200547808533199791730706142710942259766020078697952977309605316307639535220280468330799467932982766395000084146835458486384207822285727762472163896847864244522829580374975971596579404083802022451559182811675853063910012322987914207557759833600918938238859907977235661088691229852826693256799286093119261843337246137554118284441876243253596367373302087708850624059950013258264785987578902391281430132844489720205126156787957136129600553614564094708866008831661319470762749510034092935066089142467915865109935718866975554319868530867280941403806052858316849524961286893790703523361206709722621898143996508797916381397937201725994856830212667961469682038887191643710523552911633665585444541654513517464578088584148866347763647248211910286340474045474518168379282440367913119934307333699931911293239706172886981667705035826369371797775840089007195311878780826692878387217897002187717493687596599110295755072308905711997724093558444031534160936834761296762588610704546945476309333304368668148543967344031632343301864741364279005472730787716089524708389025414460498820026018487911752122075587650047372277569265931922218316602084706534062684644943843433634758364332820960579190250988078874441593445759637062316828825406029777427105251339545859056657863654322096826637696653057396905420438405506015713620305386463793578521119407382974607154240096863299031360308629374921960998051150783940277457129371996251244947598176639496518512034516083286079334570132856491628056989936732074888527333795709031425830936443194003174103396558085497793039215158153172329818116472700419546379064430077905749037155735453762725797280570871678474375616471799104561170251809058401783395732932479248399054209850400743736759994527526744182024142010121527907868273038938876483050991263697744711976705625098563438679739987471867485527237581658006579389071889546066911808942060910131520605872961473708320945082435188710182471080689180199963916873835333448155692450223113344043128543671274449782666560310980568581949756872401377551945381920295455998094793839286249644930600002633385529946515350501883533880261320584622950723039659636648429456202116102282463934334164967344151387810287739695572824260736431361336604345399137644550210022971683764341975548683154777086669782919339387066588465369900384858350961048154189738886343002319643758339737342110008819520502192255137510678940112395455733362693698891379510445533380174538731580854178348236923291861220803275935956968002136765193973685901143852323304586188626374946043483178207126288246012166641716222825439659377992370967196642236155292044957532661890418128686408306864709674145689044262489090390025956314345331116803149651795534108923019573088512598373848630888140472965183494543742928216145528085634896004527862234227678673133822108989640675640358194962187221258970745470056536893175831323648718193415595640786646457067981564451879014100041352234168909083032929416712809522254679740621843622801392477056373168163439276166645769989194929676291805237139451135202080038583876947831253831375870248057773209291958632139977171897748689950158007978486750116847395718462873774634443229579165662097849974778548050848234363828840405681359433610805513131109302926358531180839026469768688192825187932014110510220902920390968160240021464112908340901524259274814044290730542054790699387806956849098231335127239258144572468991174689173267839790385514585057696430014237536246800709704715139587254166607662676995696962796717891182196309447387918669570602997099851520528182218623839630507483899375438010940732443566658396315639286379624573445099117635576048894501560208883334650019133392615375695113921766875473873816347306706310606477478723326045744947056557047073448636203261172189602119199653028041151566876614968423454215186682889524088938726580690767776578689171922180039496950258249972397727946683137071304924613874758539144283909441697504516727081329348791931856043884454835116595576168549740989376649344904520041035826519134789177993795966590876884086824132244635297860002420747539181415219768945301062279607822401563485908651577271429275029020449871319384446074691698797420157143269269747371055944440932104860859684310118317862119550932294628555844899467632008709811502599762284599494722601914173050623825060012313656408633572663162704730403372231338763212570122459471847893750838726347757209957763979940146115655216265626278459678737735091689764447784175736811094808546261731662615698179383602217381780842670204055420460782191100296628205113092043460739937608969353159769545194851114952675848183673588608481968420456287339686504406397681425549651558988952580105076350432309887645806562275746887734417488902606033016860804496872664482799763669234558720139826894965570641575560775577120438084252658334558083169544438977772770335640713488322508405136244941785995390234134259564081459914381061051467797088109984398654461941145851996060983602734942645937455738352114744749598374372594437151890528659295857239158587828676393691766924584910325818402229878635256804826902285205553257961465395161463945906450188050352160502652860735816008921149959709052454553688636832037265180850062104755529407458204811514426556569367969037142013903772754798439031244715786663902808909250094860244136887985259950405934637717063018258779069722600742736206383709304093387730985301447506094579830889693503957822005647301430431554231117209426143011669763905613762381241473127905740599997299409829341842028064684004788883427715631791978369081642936171868754317130390907404586467972507889790949114730785844850221070766911217279390205022669864181526153265182161538934574729266554268665207281007089232417117655719751762310788770056001118146510174583229263469311218437268857265777739324351197982397819199501783815842146810668221816492782367115327414424719243056077633679206508777247746394831664939861493065026853414464029296778300968532392867234049981658748850684221689676204720040682458396916375806410427106531266999052738811801495365554220700307258400050497537147521240293346399671139565978570466965845139554288510453028448855834162954259484167086471230716427731999401761943145358289891409129915752235747115856717953555447442219457247453200608014092850847129037232961625348252281329321182460564960824734078473376747166425284766806036696203768114340974823503684937850408987759323334380711146345805029049546829117811576786325536120211711430607579326572899483376309009745474978806520589303815700339655943684029037727307636118261220355288246215233991059987898143142558718269300044061726183216693034740988741364983279207827650683128999829054107208441791197378995960286255193543113367089347027045643957087980939411046234001927432587578164678839318314475146447036758029223989605141887103870631430014162790662118680161021384675692519920974095397127252385305382705707839662375260891130109287797919876896132723379599222195140389092115390509357690559283117422081603884286972330915944284366372724154307756747268767512668740861873162309151826924824736110351507089480584780269606776147920974442243266051945953029296176519268239840762307214542863965358517456741758060493586670656885096623379556956485739330007376902783858802904229653687207892565887629094087892811841523224002184981304113531672405124988773196367589355704235777347903827863273422855741689357883603843505184172093146876051407460877708533726229021153534509539111740523446724159695741593671408075103134080403469675500263051611400022870462477289194162056303618387228281122579628990819045078223619316679783649147903822922939824790668582409903449191753250404360439509633488926672358461442212422482393519278627960420546989365567526734040601773097971165235487934213846199504671945347046140443675440011271871011892951776986191842499598351695856643314569558239398049995466738329692796358586894707790045298930454332001863271276617602913650685023680397331629308020649874177978676444511461387303808103171451399054129569785939038765104148267810094330812919891292720191333403718476188889461124026618387643492530031449615513655698781895089405733977334711587715747085124070058281849076101716448498442575893401370388723415750940676014090911174829744326049392314005106208166217990674673843895186340293287088774438588540089219638913718680808100089573780715119008095223030883911489026580939646096360639241856765152211571204160572241551929546718795189373630783746070299701606873499437327719336992072312775927423266711579328669361732654856410374652213099392021517385879036462858685751420497179470894096293195751210779157658767475477063367568833237488800622950011605852072013280355186083087692106266689817166173969457019668052372888768071974621482104612621462274336738836279393450773052753415537814758504202016502939602293353668854004588444617168067529125036744959335982592582381761700357824293946465867833487481311574720787714740496080994048392873139862652613806429356711597727117602732567115549524560612270059003459379650783856061851635575977756410571244577803279701016166618039520238871517004907570103020192533897951059196114861936436958760843467987187592696019576132409241281945842408060013458002747887476114347278076979625319865349485010583880823591212940675782765512173050190054707555430643699625374980562330173247300306631939113549140834219661747731630092478734323969267662406194868460485829655117958857241836595034075382444234902342253283550786016300722392298325216361212803991571363171202215685739097652788583798932929116342607471001123449177892814026451234082817413356527844703436308218580654867821030521054426805857882304766180062656232613849163610296004918064427902348933024186714440890605401211132622767269121881289301764801113731323434581560226481840877244041358430347730126681596123193280180287570662255418727242851794407787807638163956046013493431139883627994206018769422456848701989240251478304392854969637206132908127228250546809732188220518622919353935668325061496070350439994090254366714143822738037371270173817051938287270019098194707995693469459684431476409677191458088843589853918156274666614657188027294240566227901486543640920140085546564571216936851262563957166793209044184538824549878264758406292720367307605740741181838450281291306426560221243796349488991183981198992141524208323859174213711713960376323811571602759623692626260389258708830060211647465691966290169177950223608550012331129371037621223576104665191482754656153918126472011982790065483633774347404602106027196010575015415078345635616895213939047989433601261710522218574694304311295920828561326909855974507875865406173684366100487192874979145589714617116476869737599817014084681737064935051739663867537248668626163325040945700528750734139331972132172810810084655429544110053227598381270649034206546684537303178486396711488171563307417571984369316508201508889451718824082664667182176402054671827939605578362131189813001080798910237283800263379436428580023224730798411314644629167273256008491270747366273605491015094143515584927304032107277179251731563964853134587330087319316100507697614891329333361119431080899525553556037324629167739159858344024788889184749745769534463565758620009669285210648076295399717512824538125068650618835392472975550588329866068461562847233244564576893403376814934943829413165879032281521023178762942048309342927707554631399526217738282156621744622599515233414853772840176486802550808883971217416300789015559430588629031462324607480197068368245942010854004364474764036550711446560293321752829871869214444843662695404157233908892610026242816105763173904946869017518085744395117655027410337164045461071398680887409617670092365713023381136194451750904715032038568408847050910178370156504893148369049146477998642517111876180760034456159268488497924213575678996786404521225077813258459433409945123238127920200987493517427826398230758960458825564689480954234739509472580994046103149753131232588371877478781650137321659660790221327922025942838326249239616635700060215232096169132214991899143974568851879938315492814574510673242954415614140073684983557197508993387453752124254707676716518684458642174705622341066095363059571482198717485003072054430535134165910653653467174802656118963426034681833811669523495315310345474249656871357781749141841193684165417459470283444423263804209546311498295798644286223782751354753457153530706420887271960140251330645426203755490669254260907865486182264007356300688547889074682161047933481025849221020164409276402866501721674753006247871465163449343536336852386404261230578905339377050742301304421748620525554218794133402920918392765753091400002708255916563523047272305048775991403562436667634007982901231443667646126495400235585120594407341755121000076460991959795034252666819333092938880029569689008756047061726130340153890189004885932702718735416676046429642629971867140689616091524403508840669942225428644943241856959735844000880992237866154686370334339119845203153725436578749273825423109939245786666008506297795230284309547510669052231073265946593822786492061125862589430068085380315068274078213598387844602067654301301684071302649959076546299419050828898687908455174051307224021614952660751002520024387275788664166413730794899501027222313219540339911140442667188690752678782361346010760961808196074183246544569782128671883270868482156868327463298718641534143903289009290894242428862888002238119202938645510104757329861835693467141308362565229490994873066593132528598673705327041777346254247832790936026223729637700358386674316320706918274644441254015836402801850356942827629778716887899585697619803258234689924141611615594923497569723514108474712064238403013341430320744670374428491317234549519349494649474227233451049189461379071793963584559413942181302738315678626727971783816076010415630001305522194440861363266659526185659511100342466292516531724680867227259215272274124321832589463187369186198482742896261171945555714977667407736607539728973852882450566192824005603910079810144619496182471582245006493821239757740895250658196361787093616171786790163253397204436306955421831147564987284516048535081960848835404854246620674472199508990233933657547023360919896684925108369563960142197938623469453656159000701665618231572717799571361929484920319695847825716319091477037351017144364584152976485490286980045427342574260708638693126164960334410430063507290733180812899893232208840244448101343513248183407404914998329876452679703787531191472653462904914928239796945160836632404597815805349350257539744551476127680829523172767606256766811463999700893423961707497223799631509292344286477334882335264044375702757323638035052006960995832225494217620820867555575174605547396059638247695011485066340689932443387288387668931651910326025502487366930821029892061271101696078437852889427008246564113627598813148493832797087484103779532102801548209179542771965652839310923938726030705818961700258178422187038806712035530923483409214989899208136338108357527270036790542562471913702020618637622715472813610636376346893846200037976668441489336969792366048743626700175407642914143808764112511084230081781400129622193841362451685795679167680763782982335513371261138331966073923306488241184703751924828376669278779592593163668934430459863546750602396833208443157960573117348256962251603610029982941315431053491130159809333997089289444658990823378191279933750473514880654878620490903726272089857220860472784478792083154407851694622893383430948999635376934094677661493904522568943312382359977022785462859694250952611822219925345746177837528446035036843688792345961459650125823240857552536706051252461515019645932922475546712589655710134940895614685057337232782547647274197286326903403497880345653141407962586324851365043639401430293002658715664469282555782618308961596708391900950386037894779893412017216603552160256980983955773818695799086267018051759273288428478340715260621376747712218742553440307699255937185844835610687633884849823148182202271400389935074371818978250298030885560557811279118357998319378874402094092748122542714571599476379737829863820485065678332100788273295045443562749487436772312478113446018959858800780460319800230417499105086217605991271103398722370717306460805658018740147920456780730828838832300892352754711818118888759068847529534095962587447279145911412116222454889701979847304618658525718622894163725351060235092209260253334742227739963106332087343458207855829108729235062645770651033594442316032158043163265667150740986716318439289564758783808777754289205419985345224523296902999526825811020089760963341557003660537913412824172087261684621463049829340680032981983448741140763061771204305547284859851738896128683781426938187679589275458866869460718297751480217117551614129294585169675083455157559658115830224512347672997081978360012398749354043455267646763126156582081273819887942765140418487242163289004287904842790773722902411529320047684451775500763494741730384948721757153046497112646811631143448158252891225045130524600797282590722767851685763995601954671562787362380348140379411829002803296939076099068145778065861938789836871300920336849745054676511694976381120302722052554345585699211071247812873739528211732234845849390432331304103507579662804501896115435960477248137417971329612573068160264634157900037468496632211317472703048199290107067932562396666212187736405575967009696559061135529445798423669085548560201484497641868903134054515565488221432686202047204873468613324592458896604029319769107018106873739716142733991168326674776212869646917830530097579261868765557360187169050984297044131515482480711795924123177863024348802496777446957213853354156744259766696964619349324386272270400835543315185989353196965789747278604552804509647043872457459811041463979721106887035376855540209273491130322290472334909869072725032338915888321412247433868856923593228472591974739994656692593884693815161109764081367869590924613462246885532662938315929964689455503623154487723607393223584231229476591559047519846676488767523098241077592648665746031470396425958138713640030622088940972504865037435718478774490936263859675875345050669398897213903497511288776880901506578887504384672566576935848691012842680936956059729270281593432923117763747968746019854917236199825938647369918984668924716184387225020754850892410861265490022886244883305802209791614846595826923659344673912196635483818085400234919467853738154942034457037072187539549319838456386512929768757687288290454770881738576695292676788045937159740472972159140721456823320997263318532188225221547211254803639353113514825824063317252047137351451140388868368071995183077897995114821483847765075205401310883799164097730401791422156755876653297399798651715694122069151308364972844328058326468581950592618108477586964591947463765459835395620146050307593574148123573457060913672142613420576397720118875220048599311930742500737700007141365971290142290099102413519773271584212372191477762381946881921596702833044491010575694513108051491829453370251684463782766003823930623073489006417980973611220161434723616481333060962898202254740803687934019561783064984922935608758207906628983667280106879437149543853965298197595920094572517488067882604681370382718169712351875631667892175565898835230719793254782099771652947987776786677599893903407774218662810042150856041978327423726713786550301555967174312290126003416773647935326522248327485680639334289859460579041391957507232220420929473566574830316738098772708163436563115077636246135757713448951952232464483810305078536578338532080888828688152578756398837629099236825232449998078199023141104456352563868463677320544056907499698610769306327530047698317235311478431481891433724645834878035947101342925046777603150653728946805694418855893351244987497173171589495988959346413863072360784995370202837628747810104026783735983120239551731303842112516854390762729052045269170944647665425713008955331156783779668940939914086278472031938006899096321662442441188395194213619850587924239990562285481184211315343374226502768158962515181638652192143457334966032784243891578953894978237019336714819500758799920758196636693007775708753858789022641834792564606492221084618632977417888995888215345024182197782427444349740259613150190311426359623041026956294380223915853329271810232924764350121162048895642862317877740269842890405089906191336370338826703712998065147707020082894325010589629293720925041147084754855211147866773891703681244119359900567900740305649912423085920543295549607305837904393487584141419823028605477296943065066521376327574417854881383236383175352999663872257252380751466646227679964136974784597211870521354910936117481580356866550120272415471396504426543965780169162648451894664462464061515913372333509702615008071423356817504943796855693779722035126948314374007215869621748133202233868356567091643304038826713391885498458182614925665943748188406620363043126381770787969897901501409426938938973688386743748479738914956364468766339759133132708505248026668322809341379904426902312050181205884307879775560828312606026178841496122353806163535580857507415279019085666732266342837176287209073621642729314569689635744677100914007689489968240885460219639655134557517749355650525221969926940852922535292682699471957331564082137247338749732161974826445116824217877709040399433558177979320756131410081050706033929025550804901727009985786309847612462032228360140729975771897122242292423863032204782385425727794104439863222157629842836861913245348612715428860415503437749754357430581619654739531676456995982728563118770442952071492193576067192035664270020332669775893099359450739776474375331726995465088046468966741433758719551266682090662566973904018535252334913643171457496504833475066990837274253244832619678747801295814257052966403797086712569344965719202651633973567035686837005507126933553972177118366720486737912790643365848043904960157740190721271051532647297211149717598083516462402673528938142178733500762549344378666027610340576700523415608991842626817339887204846183756955345092524008705259899524732230960637315862119282129328270779720063916483142730372854305642640120773831641627328351905398429691987337951407420327762552546988696701615547155260887579482492472314861276622490072975961935664189843201742201905596592196092365207008000330243257666893550639570896132771458520771553305241634158692386450890146876215790101459268481704815651469285630555779712472687672106784506885710211010576513060856810484617759425877010731270695383866586489841536969157930884067775617721083995373111002852450561144233764338310308435920098784809842748806191857688412902987147611932928672218510560235675572186622191084264987359531312878308200557240869489315970503319813609890834812582922438899724781891052681999325171790165435201190761100389169342309575527464109583308930485630350722551713286451993302959351799503246218577755004535662196400281918198191328048759811035831269610939260685349232992866905761366888968891224504501115073608969589764465531872162577349369210646816085767424927581308869779937442165158838906613759909000765144637568928609560773409129420040645288224888925966104574888646723951696000223839512311486615980894734945012856250168257043183643305560163185183424903440573765199363874368403945838537515565583080940790503949297070084008988692180441392663484850135199058343587000282634304878074421186785193207888655836536951208806808724439280819247300737021867715013413299196172224850212741792550846798320553864467795870469834924808699920932848556627379569193320048436129848871526621198453829498715595057912445233649571116872883474589915385965917178040331927479381094411028910181339248632194230672411685495186974015309671771052069437919027651600092984659729539896614288574243164431285792733057543726104490357048690540937773193710776976028876595085106632146762713591257982696781698319126509114887887687313418309622679389508475500784311040317206514220655591471972317165148973817198905869565128934202426096237611128096469226243401284988806670748632962213247307304803281041650421587365735553987806111504388116760888945152816014748892692513879408361898405158507015888206279688346217653039255864062314828337904530484316883599883864077942499515568348296267206904082011291977776196957059844911521722547960609576077972068296155815222980257629264693484431994955613661449566031923464291447305355043447850600742287381892013760496351824945663972499599246917061628445748857708868279159876478413750868562968133386456601479838714793069829046378287452594804526498085066263879875560386503072788140047358549513261328661749783151072892781138426698640574430486064335434817164076468556848236335053758439733525646100641413612691176887597346330425131524335170215066786866449931460121733816289947746615225520272147954971188179548219293716122422397230069063951379055174007603125011142149342004419490693360485721608063782949453734725963259244490915213831896005805429150023565964391041836507920446786762681571836700387733186312805173763394519883161687016646685132933988286544038522696475827026726895705296173961247530300546322783895916141295855177840988899373064050681090585654305873071143648773274857575799927102113417911731183458547306862235774450025521066845388257291488251804733714609107278992561644459377972984844756282595642315457084821919512161252115936279014543269172993062972057079405963169585837037629410604998103912622065747537124803395784086713550928791982427978209262933852344694415916252144734702451503015018313191139656368803949489450006322401511889639508350600537800289919499370669970152264094635940238680358831510165922681723834826897812499046689571959580327138320315873623589574745890296958655488695034118331381482044911995265259850660245798655501163600809307186025919862717420247128171349120412474515183082963090375660333873618615287434812570087409797783146294431500356133840058974723408503850897718246793877204841955007174559440999442872172548690655866403757764602673904296178997501833938600473570380641428298186501718773865638846626567514835086040444978537546670414095124948381679765724187662422982964699921108111113025266008313437852554249091271604332850141105725113800465366715897995521965713959651715980423965689128365101934265079496879576284044882419156370699414893796002221479391022247363122071334438838197778693550096739959057916438140767613899041703713551480868027454886618934572695824383601847007901659336431408032418654516853273128505847381912759327134141697203072506384066108734573468105548949595209950401331732089571874425809603712241727845344281945505925599063573931107161583316982991056718321070589067275033329262193185423467801673104671390554870533181164558496245094067273366250736266431240683931549627627988030863331266347577448860481137499977922539736703692105134731601084288617847463051012256551860975691636906336798157052904492653289209163879009158289171244511256792205681065237022441102979236533028418185901671013785462868767705018026511525996321755043058846811894207810423448903964118639671553090954870093338395115757811325813971896647521374407067615771085309402010180624294791769415741373366299490098101997172566397164184114886446578390729766483105365647706685141870253493912818740630344107467651241082357380797729872009554053714839168139485477216740266020777630553013763349310850881998057132430908536735717024971053725936038990845856640331237145770167020708570333153038158210363270435682126523110179487594972521354622966901526833458084917752960424802412523423634012841856642937499958841243745667614483506419112415296023406355279087956175697495770776194888632671521149298698377550379090037751685311275321804014725348912278643299419473383842483541745069101997570514952693071485202494951733169653703667595155233330304952736399383484991539427738127706501396203814809919471172517155080358769629148206427653418479092954587008439745776575823387110969725328817514574039744218362554157309640786032239869890105873164504315737353958227442693501187461889116507202169931677559679680937562179790896815019820817369931451945472003990524131450567648451946268871781399048174601738693625648538290568409413642800113233467885289387908322574782077499963792039987824742976254764222122814719758010509199972842828919775841789114981554977662218089563570667049915772680112755754728589673440646100106548198828699404431710244528121231021272565446711013023469427046880439905537308568436552874580303496795824078896062629543096924802936692096645367834992701966468015327639166121372236017660237109512374321646403342536546690212872727843213618157867327652988864279665209806618190827340823755744155054197599908468704479529431542400553023160688751141907338092938798221765470852995898358058858738166105860300827563031366777440797887603454129872493455114200601915813644478687879959068921160073746957990172365869173681933125564315063843531621995175815291724602262587025994149655201133978524174113014983580204850507262123157277491037698187820898276152790699073308699290079470801040638958919284918682820974640578341717572133924939490563572501675369487735135472566008616799449624811491351240813383345799830784818581082388879644875404867378710124500564598601748744693368366700840810948643185284583531105834517451356005407440482099462775026783467893912586538595264105372872316848817589351609267564572819409746973156976418238340446859353842948668821308585285049122857429619046628281338447730778119858479571463010165685489732931814316087132025543583182061151143653496625476452978800115876431211574871867592722253642715744545247491980580710710341880355546390155242944810606321956470027079849451540088444849641741336266753366137130441564032381017086568700226377351435724050660639965327044264591195260189327640096774491631822063853536165799830470374993364297956370841833581060804269417297806578754820061594981135148843183293331445246148025335582258309395032555725991893151934744155321210804680692908363097291855318541906575964276368126408378202774535673734930719671794260029149332320695502986249298624923869274615073230887690335815085071408104373228785976260875806968261012615257734720585184129556840711253169793261894066818284518999773777714990776633811232861540308517881150891591462454842202356963476740089318114021960041182040274679229130689272737419075481870078917858735201170355850856806919824409845464273932336041003889668662791827344423685236495316837439841208444646498728043752930560425656992423325655186253510104205469101990032862301189003853062704920893710446401884069385589237667829668232383989791277703882356283535936409614326021397054303785063371266353808737033436775179482350485510940391971437743306341862241398796666379482629962241383178454534232377374742507349001024446832239489498584711898349581775808650581469462484236546673489611877348211220683141278054464870023531354674451148533991229778565751403137946998099870455552237795891430653235166619493555289388405920731188037240939898940828362711407753387307245806507559642841729661650273502409466137229321712228773020827241282095247480518543985804244202505948303953688589805645793516743300464399659268082810700789558751562195246860375828780467676587850778433832146667426876655868552824948545361811355490160592520070907876298214236692279898020925799553943621074335748507779721588326831390457513763149313918865682784055887838795022300135643058986062258768716048617319285791269596452218466570622046415007998405483195197043807855280469400194273421475043286300446222920617944749885224767548905620005021371102017151127209525933036641602540387932184656294394191481187009521441434208198305461481886355036663952643410477431946561333196573978050954137642361821800693172435671751640708952680845048220318654757206636667580524430691543041159256332091827872045795219951234144656981057077305397274380366104371991640673614804964644968601108755652379995446139249797872130405468534899486849036168724427037223088972506474066319823621206315698219910041623796288490249212375893649381774800133526242517288338096041127454467091960753418401964093841679256435243632415563499456476129840931227513590813430291290017954734500857435310966180496203955172551187679568006315454662217297500273341721469102873483647277425384406235220186598422186574300931476576137919580552447761803876062633479410965457237688491466423641383840007274426523460510147741507499239840221261906027195549002149072257260035694671092123008875547695872666658019915485351105431071310349460279454242160862321008445332294201673835642805577606865793260483125175304863468133541414785028433301845552034160001846609526347380367366431731340066571272393094484081597351765437916708302032315857240539521763275111187676642119575501123930564457533260586909433049534324272272724245996564647644585226867994397431089679713045327505782885882651145293685608562644525716882668634189561275025978097197086645262444587119679131713112452558887154296196250468848319560845510615200136876098668994403180966095767359502687694957005930619578718355925322003461797695501902603162744920966086577867975423027417192740850039838606918748029825244308964057898680999497396409474149123707033721704406899118687418154981565021175396978898337435175357134047969440451067242051670573510197100576078596378137631322173797171641125745866484491470949693770602552016214812169434550661508449005543186071578038385397865911170937388420792506331696516496065193085315432709856047707757563153302012353774065888295175192565088916956851097589621603016054337312466362098054531047022121432645382769979973404448115818787791286434005532148638343395816685943218473614718368296675188555030264750401662313781877498149831358471315350953370310748845911575845787979905792235635296860966489314299720925886308650341482254218388556457111145873973479261877404493033800699493987367415844872733996127352505939921539984354350483358941407280471836283302892538399527623082070876605114723430957582822125615215372908235538597841645715994015921246242285013780061168077446305629307477586230312849068927062859852629114845165706936404776036625563978919412705370680097350723051162466502562680055522605386228513235619626778862743903620122729922368452484947964485995767566518221248006396477077467712667587903032446017584513941789040301904336354238223620323830154576949095578818588589799783756819472195838887491760002819971288371450098883641468618635042959583064595233053888071904752050856889119064462866861215187131283253618180427980635298286823410722128763163226578457330426044400837400795355334698488700965735240975350922922439127196502039138459808497237467935445942449243082975357758542141823391329106913392308682477972358785005247380660135878428051068798437481397938363013908656901867893875871647747410693131371789364102363640794146646209125318434068733946971611476089190203414511936186791756914200945151183084686703454058683536110374092359448461898335974325341252844464907052653633874485545363847711802122093778289623230771119394888948591447078862735646752481127708761696089554997410605810329463730470541897497546578029057789574376584983867335735199757328119783350902733145006847732185922041467958942211841743948070497934993599447822119313985807754147349688691247276276078378626137112118598204382813460854081859140908082673742086832512557037829606709948324932954192934621069358189217069583798812998085190415420444183151142559626304163716482734234483689767790254954298032079828299169756498604449165930381018523076547537354681917800301391165691927702243014914346340776607975144291040374026214923167374203942639076081103665538144829509254234758171453926063463977901870615495774864192022699324168530529536549565253345035092321180205768059426279096340046463380390163001141853273562546871404295707747522053299039588707832550313175077142351298915091004285258119513705686575283040735331950226035353625895380883658795351373071423931083555543937073022382154943750644257676880595241948281540388452082538754476724743151752123988387632295875674721981786869466418202744498108886494903967178907955004177454345014813545791022934174909869670830601534887886502510152709977875844709929296022074629776933261315835499814104918414937274983535453209410177718773986041793463859347029534312516197996272522689575423485978640012348375239847247611676513067909474672026232282668529147833380560440307053522525078783158003572338311216010599285366106263849830962936312729681916495641350367904837023311766483992412015690802739596957392592522446537549932163890693032198193999444482503860747134671903571596887927130153405920418141117260614614446366279493761566455407926398950181523892390611951549205850291738801321397144542647300231550967483910424810523193991351051356537093707936770742963854838966116303741063111022878572556170401410639898585506292252581490134627808114591068542697936715891204808137568331585424005365689516108168907606963221749207319905414728847487746793367592531335089941676928024010967644106483663382748787285229661001484260812787141912886618414685236781484836427304114666487991858738057975167698077603353432560022716453218354261181327187046716820027079623122483224223640948056877335739300012875874629165063078998066658827297733852767309669354067956722308982315609063148593881925564296994473897543241887598866243479715535057125372454987653987946663822152256050065664576638184957662916201247601702282822811115169339042577715330565215872203751599407760041062476846955167269224107610277434833677959516580598129956893015187166204616906963098605982409726540899719012944783513468172097735410464751701114330298208691302209002064084240342215444386101884289197239676407816333778155008042123677742581293783812585640250043794201237707421499748055736515802251477511257090282112815005214338713447293295186510241311399797356415040868139374061057270431326833516751702027593155711447925784968175885713277796932555176329326442167487555326380164927068121862599920912866205171225399437835207154111864196454530521026506171901757207642922716639458235441324539855981112140812490923983041831002823486000659266658328783691759764403561787002659075616819503304608208507171272642921745640162723261578956330714633295242782608704385928976193183564902320888716759642556527502102943892582016174638235863941780101980961985266713248251001207551352767189328239932108425868929576978890415286764696847615277775030940722637783967718022635921960621980215914944798922477834651271977992823264170376956444643627592670270368151710935262858461209579638498863641062008825536309954330371863771623899346193933444744343918391442122627550855988977021623665045041040754472440537320951506278118556302165727371075026886093665078111183087293163873317349687874654194886952280560978042754446216825427009492363557205857487010955354839181021626500840709598865816456339081813317918732228021005053700338885631689967154078396556949917523981194013228240930288084619924943903665036728086671770268568365657044107306573110706468197978410630896500423883426526310351599961066971856307926747459626468912571781011172338923796442389044111958253893283281962417152416928263266893283685053328779333615063062471379981793305014422215231975841767644517628218318904921451507375678457620229119385448156182902257901096981773298297265158721104503603262860763848367737083548288270446656339847766136685805507375599453973428093895062422235461142787582069480849156717968027634175115993120394020625609855756887225303357207071311224532081309484256828204010758653391086814403901665096585552146521721956210777851537688754163151310626928122698807629302843184809126506910889694231029646750292950642915826203633029679939913252582140124198018984285273407282266079823637944536229778383403154097672216827725509572663860494166239920040947540834283465635179787396783524213684263812221686249667636958891223616219567913587705556880549090706890233912173533973661420277472153785200709963115188347198808167168639849827752491948107789670264926795535608837480438439330090848057176677402189863150877647745584766351979197349023405069387511460905255381549394403494504659206589613608704577738327934224428126148515495633617874633998518157056295728054168115306530832902409622643432134930305989014667072432105393175486839036631567982905010686804916695141735684478638957060606459249685798941000080949730417257053642024928030876332663954791018816141273220812151226058040864210454299774446308722729445279353356446130012047656505593685399138756038229861706061604275605675420341609483441305262299479507045074347114790310915011341727182047809133244282078544339793012929021711502428637345666702033769376292320863938244680619688585109624897887362158758789509624436207469558325925551715478415289636338227036900207489177918209274481692190209861082663457819579175758364874225979177327400715721446570341040846407049779786449899024035905436358598247756709987309010918409945231618889376900566504486758756102857106065580153297564749203021556417253461818180833076056499239770135353809261116522956274003275264463078883105267429094784550479646430619949338402691130863006979724629963593638617033430011382376606622514504385504908233190748572696353293578985608350469227694632217855505397229016475838710176368705768421121140751590475596067264221156725602458662207654182758864961153272120146713035155046692467927976384915465107132855602513477810942843714765424588037136721038597080400978326466087744014204793241198159910450225261280850575800626245353979823406260888164444101674219660895240795324721469572037614049935819298454683284512751499305514590923875240814841107477580301014196138249591655770077365928247358019018897993535144269195792172831033827288856582610117513919427943071026925112777260412521336878978622761610259315057896010811224963813859011287582783459095952941603210854205450460274742681232151949039528958256187694731750185949801322443356427452085107880483440467416843599978939551586591151833324179746816111418232613399390624431041637754794845848058169362350428914533643267546774932753173233985428696433717616841125628851344552282941566114032586078411139174851991272247375633580047355471379806271631730252191095931732384575471074406169829697690811920737881346801241393392101453127718726231338999226745567726123613168911879249198581166439772268409033466517066920040849364989054294546982785416918829882771377370126893948913622016941519598594967197377324756770443581552464596263834651348879704125253355176429911514087470038772827357442822770223067955786014747893719379042260147710583008043747025120742395476129532441627304900060324890883609055581951126928653267629673329195792233732926149079547369657719961894868264473782106919249451691030124779887930470979749847832099817739499433225129767591254267145155882246698368654328335235533306821650728603349392565910496344122012608739206195776014290402722959924693878695651477198447900943377257792746972730141349550614383682972181905778827325134706721833382488196933549518656708714516246630006330798492607826096299055665455037886381731897833027952589513076768052812705719491878265176301238941358617431018847567098288317332583630545957023282512159448029161974589557318977495707318834565498117195806069960077570819194995534368797783187992940391885139262764617743575694517530017651310265111153119326630120533135545569513393196134570771514692143588229471397185295426784375378689679641989445993907064869600379477911866747472667816123636996167326282355190780980215116871957902761864581126032152101736240904181326224797299602897425856976664299050502904713967911208698818199877853318733335182577711062831100699635045771053227454451762092995230223917278704112158980770093406031781917731281806164175605953540143969135153976418903418653761842990725351858212753588367555623747338555195511141934917435447942033019251980960631055921402565613208993060948171498169113207100018092664471627835802607145191093897979543602804892651177254269377137522120518800581547789775181745352825389764770594051857770135510924090867098822382317050230191403962198703195715006929331379743914816635114332560391877787762638784771699162916920095839896976990566922417738126854699792860860123059681969523964448872200988269161921256421573188364261797850463224931766451826450741130887902599839037968110053067444965343538783384895297169779660526078785342693195650131502777641555514382286412485710176203996655667907692489361190617489197353003052068281182450544325941504109852683964551905755118948338174657239620112596527716060072359549460463852565842273777111302738782272669156781527422340599284804216745270611828242309344857003676042928644038055361693836723697042584340632108083140638878419112021762671093356011155497025772289205436716027882146904159876380965104144754298543494586736416040071113478431207990278734370402864475215619092316837854433285421562965400483816217447661706139626091253878244241553581658423642258956210080222425767333220962020254679788984860576752497572815108322776293124182518229848510027756722427135839975350388834165731164214457644955664638900410419779526451193713602390447682028951523709342781623691812662022641814975723322028591764787068616724426586408865815782618149058446243174271986077504648699399168995197664489688902015460476917024258282760217574975345362095517405996201091145477727951362309363808850598539403707381327495226953767450401665089075452851887786696477559928685354390500051835076793949229183160036197923470161005558797044029257197975188333477978406167839003568089963689102718968542569037029904728742581122453937327469701665550097546665719154015308350195432040240321467307140095138711736767897286078701026288018466667727119563436609651687114386900891508783424932157718549762171364969772779504409746375100363999211586805183279016220399794214499666455601791145712565307309493457529680253447665199165225256759421750171712047440956594670956528002774906203224645477220727600471370430527671040892750075975628710962058721374699655616765247216703775275431973090626376361398093220204800674131922029881077338580163917748710277490586989078829265924470391446277933588492983302674243514781361103427199387498465324101036402866405750641868560150034964509819535644320263920167450474123074218674638959586305075670051567896453854677843234818035829420778073594888548400741336173673026671577036569366425112350591151070436038836939483863726621220127273644063090580280242943941351312882794727596898065803261446140744858525603193747544821931896866592238302728807415771577786797297235209067666067327186169383365116439196739080983135893000876272727481327834246150951681493528790012831933802033441064076917624263228008956220935206884959820900009135338028338692034624293011301632661498376563277207151403038355344637411974850311007530923473378835187008144584041745909078762809231972426314598374662656330316993287767652617011822118153882168054975384431957091009248803911244766401111704210675719624315246543960844939106057842375772330601703708765268923684777826924988792493099500718771184548290356673441350523714474446115827237263393789033245691745411104806911418444110640468725947586672058420166134863093083182524372769623194838347587800163605858738488557991604377388005764069399047491743538477169999500756371412939180706881141712526345853019973533539511012219571914108956485839409161946037090611214653115737601040195815839526253949051349926877413970798443331025066168545841862194744529755900072756343664920070812204443907477934560637553430338015162810983381788984715656383347744244540405338333066406655541805506048614717809349204373591395352880028155197813734754767277712089566075032724416487716061963442064118492960017576330049554893900001767374420928187409016149134803514951496143752098305850136017600026727046948383382385700824393246677702812312576145845684337661693425600471229527514426900690316187618471068019653700923024834639750888066532628188091431071043467804677765013697508440658026934423379139122329085946324015288044744600715975986073887037334217101022666919510706124833056525123163943471819155714296579110761494166294978979566653974258845127254472229716172349803440859233903497593139441105972046839330991210171610533280611828609524575469788574971148489870952675162625912003985065204211813647915961558978088747761395598536112198352270463380819481912977208753384202366864794923041349471905313425576668880635424691907204667850357402954980106733747183975455578068797602973055033297131768165430958996240406879013641130376443183958726082843177115899190861480348610175659186505786046912524008640505617643392666313371611618411469215724919506578826003892298997230174556974777356841930250205157050024938401787795749253139223854376510801234601502275921888997000823807581807232470279546920614850870592005561265189829979334284336808481525787984287793715375219796263646834350647447066933347853616228488388922405928981018994017254435019945792883383157193584498317041887472244428942429293081624193110725031311476298402074143212991323976215738905607749537402675745237152507117437090351999910137421926343861496019754368130482825726251913326767706677663964384813294501582098746928810136278917767935486381306171409083841348534488442879210313402584882991157210582343107132259975435097095603370600118637902801208719678209604203344695633605971302046567201463556215339692406393611861471796003444631443170293166023975746577862453443486278520609607078479880659310329024659827691659023522216825802218666895179308979723279660032872240086247096018472640908876247411733138175878057487800669710032204422168734849620891644343062998745142791324822882986388348055427453065972724990443078370315707434430447037970489082352139472724278475111020338564061574610130808098523562864160420838199730715173352768268883454587822453261009876729403476071168106741272897087103318545082038974526162705121243948534417384830464266279834754312841162170134209731687307037043648210608234072418338463031418980056449168604115859555464766453521801352882926485621232476060710770266210650634501050022435181241016271928777168899464790509026158026117438435177896395046649615493197733558592906009959042403808720333129727652850015928678540983206400092265859678078361486737634330156720853719186708423587677010191613764917975444797200205800622471165471885677754574140433418015783846730335164998015261843649633759967931128936670134220088985550177435367104025157550411759004956955943521333791714536072305227566756546054918215708593562642781414804461276845226115188885106207923066941255015983279261730170993765401986159923926893465516562547067006158489129074590296253594645123824862033203816546075888567257326387288710575926912377449797336778758360880434120729207833278499679809154029336435041379390886720526868526468170344382572100539311619044289867339365120240861630717642960251749749620665264365500839237214362675880810612028123285967502039135677448914154360921176989924063366394386569635008653908819146673448565393725268734255373654120918982661946684891211901529556166060563257036501100788271308115501869786836617659304493792176958413160688676258804090091267457047669002299881933559138341602699828853905162539643510246828267702128070470467176473661475974518418981424262340738504585686155225562453206368449217143548674739733160023796166017767941682633556789813366880319867339003719066046812878726851275623330305574946220405478937496821648511977131284987962187660156439246685191772119600987867515655050947841304080217829571523488766669885661026172961045042723559762997961300943547139588542646663604250805531773825051590203551653135478298787029215694310274935869289091455700731225430264373940988787113158126312829275320301934335529682907743276181838655412049361257408966626534347878430425035948489685661141731470630934962822511281365791133889408393446942251329895512117640373957031158712626343815730181133670060091594819481617983752152427178036321183155066625959869013482347805024033114319168810016784537007504189486305858414205319987602553281062206217735134409548844996737160332677863971335746894183109616674033389131036627351619949526412287221346428170411636663387018044644000289936327700655673941905606882915583189506149561287121452597454052041901649200390940844605387395153629845043967405835948743000927065859309189838759497621618183334932742202480260922580404309682283882433285160694388457385728813836340677234498434212490926625268999668502881938268869082870463278875428106660311077998952465880898117296748616284674870657270867727421378061135380126060157195139196739173417949359464366665820183089830772209628280650686029086952728558815877379153318245228672354846772654521115525173757905104173650696153875362679347962504223574742022773708145002618315781101025020099614296113911029362940492316807684794767464530382655624056126725613409774670936861911531804491023223125958167908041677728794651914817179694747061124677809578590886389400659831450982253014308219988057991971138345512725632608788945345173216773942223341480311053841448403770499261283717485869219036306231309746073018677371788542371863292978037248691818524898037966538946385743046894718219436725838471077614241191393352621561855429506633157114121223958127989713600725484722650650607162316797530342138035955005351552782539848451883969144830523843077210226858865329834787797543555901249706997284247900509131551234179524220037522772037186681151929425687910295900487446606420166202411736420667306643614669330914125658708531630751076926324293842843740213202916199257040623947618538270579329314516002209984642993957357827587311451451123977303418964749851758083295676662680783391748344674059183633552127095339843770578212419132402405455379847858669915741674664877413916829247329265528150071814580701791349767907608161408813232096399502283569867825608138323465939508580317399090613799180867494761935900350144414618142610095699121191606633084681461217627265012633670631067565461711587689944247214336164964995783387174320527062678474104956963717427885781309241708283587803604033939359415795568041254849079883792164798445342646380155640699474603856434208835630320298045201938424651473577973805044184592177295172026922060511571385824698453047180626133117145254325273493824642797535153424888396647507189664648061134834150015560804455979133214826889664631818910918803190913871719277977951995555921283024638929651412734165260734648970279532339231011564516475655342462917310678317944592632455658499471094471777279251702838613524368061693111311597338670509591192228012909413600388455084989054233534255195274353661632529336584316000469891121094373491495865761711474454913780193287900026485551729213301699433830691096765702531340776983986109920575643895603434966350306217209491308280063085000191265282977535165060667860235029391460549461919685588058128091329478414272978483303697887108910460714735742016239974892500757018538409551793943597296252234595060677428164027136303466842162938702499238897290657359775930895207974496986023304902093656167388919200920127211890995919347859883257635424466878037215889227522017973508619545719212231339612832450794907540084611317698122214448252402549659170093148679419332120742480247835318628372565675667649475778114586063328554796351812369246570188981409195757384682459572609766213848048194814711720346356344674295603821818758702930239963896100668144559101338744785885192120203427260143529648150030876187473988916246090393726414581928690656160971613937653832603240454091321522144022880870482298756963769801416074744369439037473212541444037196096130521878269718804606937524373431152809418134636785797394588670807532092962491452025174775047056828101023163970233111165609512091872306372759632720994925047468163301814834293505469049698984365900524779517724990725296240689761673840093334858268252435800333975463195889525964154932648851626120734484489751041830169591235127190682029107068761916505836308855689921394252805869857110328079356201403362897551730954055170913382660668597163906006740771229214132345485159920622165634483140742202224784422904139455691028165229920725211205435454490346447118016565454974282782399851284831773354648746614682804135497573502772516894937183688988804331287623280902233896162194372959096542448045667369668503497059127693097770872432872768517436178224835220803996363392713972884449806587554558725581039690072476379051762205263268607637627580461838539231861670699306838503140092514494968577475585249799397071180530363930026976246855007404239814577446773603137714810928705903066005227365947479093792502111788121160102462184668646258686202045318032565608782153908707406130388805339375815033340715991517246249791957436998761467990419269062639387978029698855909935475173330012061138247717022090701279537855412363882060916361082605202914121960292725289752606275106768923532088405235670911805316694642341701054315084391325677385345335143571125339954137943421409956999829340194562584579164678790944558794842992642610178407591690852598309119222512210613786354957408622728610221191312152544192189168513116496023489441364055484325280283761821274481609717288824361218224933396291432459022833809095497450459025717238358666541332057677102351552759611252808817201907791860512193635115445996076654687337440856619209108010121945100804271571244893670021923332542485304016151745792252232407953244174870275139031377881068219388781109500147913208064794938285401947036480640747835332287554900137245873993099853428796782471657476287106335014933446683771464075074737639213174846046533823972084393823254076758673684022215726580064506003351440162502472228983591148657243147796126217972095270236288043834722411931466816832135941799194373099695787644419764971770600518688995093408866710217365620294739963554105402400513258914041278915847852442412220585888844306776694550280520629873237583495578015084263225525673049712536620964080347496902078058841653297646252817160244527804069242974020769575253502106480970339469362236076345035376191722805766482333460409422642186544559920409087648474412247653712445264039063505436161824838525497624556511040269656506605262018746545077327108484048842941333090252422020633424394420953835545284696882304355526285181443034360000341943026479569434728384677702666325457165268717448781798859846482842002192407321748694501565255384933852042355354481118836202168759756434812884597618213572310044557201689910954124974457554588612960564631939700961738654784391242009772035083215909358542045875869270474850704099725222829214640723102465725072110401921149029806150418176390550304847859612083199462454614450858071979805420744341816222502135056827829192940576679496889643056070983462741730614775318647049126928529109404907231931847009305686170662377090518813328840624038504943139493364004342247079218552278838204947080815096029005850375618420245547814750303731711270433412483709121657342572220987182635106847504681778920231393860687485320462386243280775434939535776101544500707339289876791455472797901249250501336106186404261390485029377830186122294210994803953916287296633107531923205418399959761161063505188764779230137787081516155353658892002240117828443241409916304865259167415347260177992736689499216310614639090620877841147252001591287711483582414072252448161804858964414376131925492034942317541974707840269257910733483310972370423913753546894136708464571944042088020069507001259868543745191448307103749466854525846823521264066705418520099330223570065507465465466824056580480320029786003238394463507066306524347868539586324843268863660250178400864228051429377999620592623245165974148635282815911029378532671828449874599938103767041114833893787605594965023606448960650712334988975185262486580603759574676083845561260492678107284537677725876346989254786838778979534850601093648088651322542923636984974409493820922437395113811657165568632018085725270547629744580154438927284035679015859191647325789433139753411740568356984640749316533767685054586355892744055870858668903457204990730163641607696844532457853613149175781897073233788675842956475853778080999948875338839007108501375462749155778826788110078462278273835618866274510557889108290199967622571906458661325867486627326311943822068138960357578241603756311239864253398831979130417967466317183121388948838710832892456199705733381847389529585246108737664811293896462999366576832623831100849293194088468048636389210806678496592214806393481216987019268338382745504335497593758631392661971174412721764118993035998524396369545617181005677255643321322217307835597804022919039386983548319527018735133491939279666983662608469327434080598279468239858927606905044461374325702329521734719549267436629722617261520429759970006445697454699761853823180310348238172502665483048064581608825945989741111386010815059281098882618864260713644688282533329795284263417237108211589073438387885285627982836835647833728149777281397397297805882779092660534697528585592169763669560625559407575226983543824489469693261009395525152970803589839929899035252231362693437174298560645054435506744772902602875524501033568177139098512314737955768699490563052538499833904724510642449012568020859892067740185059700367009592296458062743726598943760631682878867392723499750920049486170272088848368848572809731985998866502533678953751830647075153591177641482789028680716064019029698338359586413860039984209844454989837934604152058706917443167283732611246638365134887292762935652750088076519471202882055186064441203008419801606880735680209230411110537440344333782333288856828816838058411893564606490803436075579127931047002459742792091643644453440063325600146244580018799440297283725744406489452188565056663305839548960226456621434797847616061963807149081596426929291165082318524368304627552820931899287222860298206693685965489238151006615943921120058370113804964076483619197455564535585901541633766478723609547713757203452021835534754979026963861339434707642187944594530249180947903907153801208738787723339506670453263127716893183939875251376071545914611363089163718173828470873939696111503711048101028846103584817015825957633327539478922787155771647977884584277092670633394172014279429083188159303149659475410249445137983721048920737167778432793832733539070496332228938590636486687470113291469188298681554649348561001685444226092999760835171131972102474882802789812092107598051960038793073929849495962862119072765087791747721970397797032489694842253668290223650220745967362876354733640717499833327435348835006427327168643195341770833321976511391279290686596239041155125874889784764449983525131782888288179903275887469697231629163793897489238643182761814089680684766979788608773741671801633455816039081049820426403446233814774276818753839084215407736291703683908096932831289514136048012253448485502898677696062380107793749268269237062571072950349758738124346102528657125824588095024745161779128003551905201173572078410525471254190308986931827478209385297566301856049319344851757036649953073566061550656295686254497505475301900266482339319218386966699194542512723943559420905673397702788228546099508019848719534264031425009744046204944304935428027790547840632834283061716269962715355297840904457294373204759495085202638595648322835852335563417898329323598720365513566013911633919587804374010194329090024147494285086999417870234507073626653134905867941255149554262055547355437007339076661182469561260986387623965319246837189021543005103158886273329758372553931704319856007951006120188121052529479585333458867361789561823235948178366107933773185782729297365603158604091518101346850399174086873732941008313708715990052452514419712689359936145835364294806281802335114248261668454228253190996269395143838916855994391592174012466786991589423947458047783568160685740809875069136003210563146819225120455786644202466322510091667234165502742864560543473896804646139622065223534146447800619325377568317154847908956548099475066341908801988139591041922835988937933814852830928283972215875678049807828830265333351615463194195683522078605149599970837109569633113449374573444106024645522727231035338494103090140997471715031673837901367861286965447917568510659891301232516057751038332077690585021203802224107654230245559538658411936473690929917503559549538104640325747957379095547425902392288995615218302991758388784072120401621629116599794524446766027229092523372610996213951018210001007381311078794504089228015639104339221000937635545392930866183508641325465525202917352965729843489737649908648793581523515064529313172839649894496014978236983218154608478129855732329880039086170013318048317498398507547352842101830325582472274373112018657293808134107091106334970413658157121918951330462556237876038927180517507542907845552939348844566517715889907745666179137767493361530037839703879823935493531942561060838997572648015040015304455673195999987389989782090145553268054471671400710302902332526686115442716764849584931688508961882608835118279039296389969288302438060856001208884184627262507476728430612685982218554369918926340029232146656549361713737661735741597151076264938644331634892541948349824321991648508311275911427624287441604768577840943262833641874730857402317998771134523368824558300858794113795200307724720255596521131572470725149984626729784453728380126831632379223833200568666605293996047793019355880708088599316214915519198163372693667461499138992716573972996713126647012153644318924333481473172709560756566520704396667344227508393067048980118756248056448929087556679801364292911246779276148869376468043063052799968301233616979538313970491063013058459726123799786176569415925430410666312529571498126152596993890901906258745651755012618443545785492501420867365993856970967508583717269776854215679429315436250502155913967914821238053085274845070008337519327623322871394357134606960738243121373813361497077300949631578147493972022498182246704154676375486440678816780939134619866971689951506647454703102625581230162180001883068300692501548786503204602873886528037626940251581879653470383247402526441111148001666299899425034133911434011738125525385911251710446800066706603668908291029895792591016180910993348794553113441701853980429506790440267122408076703825796138631928228405545875722472355139124044917560278777579398448260159654533275890152178441778396651214023110180560985780007180718406952089153665172449519259280731962624282474043434227391804566332827158965564881083904585040451508981268671812159743655919763535317263327672236058376362388452907322404698094448979880241121121653337855471584060512616261027572974479218428172082908598993629238216554886319459152062604449387329104672997421223680219407672702016687127701886484241837063897892422933827674553462024925635595552791192399834463028758897633960262205275737201940595996704993097146521993949064558905218235295035030333849535656333782162055144861599666397756258930275267614398423360873969858470441183363839909763949147610339133261523596033173099679886717394565579527133217690456076118922854805791143508020675607739144215288385079956186627785760003583049078853716645217480404016826680097710628106046871813017050922890269374271682838418659795830485955485828880477899980049909191690868833034397874425215578856077267188090216209048233097138913947082814226214417345435331398777432545875059656492085073248483551174231497933305896692955460348081450478855199804011712800689214100493630045867960348151376688493800417262955669536949749716401428092020619682419975658967502921577503011150253197345143126828789281839998405492211475936952782870349951420472804332424661102437974973734667039222334230305797930615103214173602830169272171082971922234192053782622006377278081829990262151875521818184413935162806740928972442662159508120859906587869629601919588827373493498327049991617526543873496556747833475530775613234059942324259253449877903550657488327878740297672881643828029103669733873160522668910393589968963725674347413643141320567897176730840132145254617431854263858178461734663458682454360920668754578571408263516395985876445418828774079771968154503771380111318309036970947477354449846055343680090224498745165461844688485920421668094536800667109152920204558737779592447412336883443904716102615662827741535282224066466271613702366706640741764959977930496230717683392444273851866788274107827491541823212850110396149045731524936982133269341458394209132793126402326339852327340888515521000869184667096236058641833870889786773632356204335484899819152474052729777766337977844583569228569879138904772483197624242158338183774612657722210946376126836791790285094378416886328274175393092756810159790300570365083276039611461514920486649456949521054772378548206637897761724994547139454426333496450739056217926423648132456592064495693129698470468525897203277016211375966444126700560614944345290691270841635474170459600884522864663851193101714673856376118612849471286791976960558095197320435681294973106661986007207474258113499507160789027751482097754613857977836417399585044755056857228364296708325752121652980050939250442819378912920669941140487845449748267158899711979610647731020831766858681415715046531314610535971350733129195068833686363222127490113863457992677964996997187870755063158062643412415359212186434768955821974897693130345121560222193716345825305865971918361977569760829428434880351432110554974109670641637624635560294355957833680051828763354848278943268814171734308180902137669494923499547770348161049070629952681867629693356634714680033341698231268086241848810471917033623508698477600199323393190108198653432005231985824745308486850697814675574820296049310033781679288079322968908089914926570449995125661086592578599462877087748462719052148168415916108315474490736412425024020581876805847295920821787533503186445119111155661826291323354470554704482040712075929785209552152835675613205180433041095827693423568481790108948697300893392625594885609301628271610397478857903534937469132754298399641740255991415402089083635478848031245087452230116714987893793317627229484531919766711633584798979674156611111218905724503165487430931250365514798436740289126849436116537924548191770544471975967639882528072915000863027600710350304418289404829169432277801019539071062048216451558510588405108113263180134762508367487710935759012279155781477769255449447835867125049343440356696334802342138452141486222075732058860294934026027656390063528465162115261582698010377478265882349181042911002039528063906957387273101147019294096357746269328776556509028657574707495527615795923295294482981896531591852166363372806183243199629912364531297894447249979114056615420960537443039489192359470304168814775661224894640379125532680101336084197482668678415196034362326394193778171753504144238814547969265286950732695320022943867786048127071671020875914161677391632702480449091946749686450965752964302867882338716914143260433240793001079115973846796661124921942880459840065835383383855964961185754685167898285672767280094074920538264769854585986985566608728821662367138198251006524917374104127670636376409582649104322843545189032289263120972562990629503073421387368780163980047610302851496562980341462936980106780413908327109743767594309897658535003458659694653052530383081485369048090662816184866911310565943687159245152802531244734259397313466887578905642301140305145229872035168338324786532191594177113106890099335843651782367765109607748105727956321132293993233442008817070032747549680880514833714495206787040582317445966570326959093745535235934413344967833326993912452692498940453004593910942705197905360694283628204203617190640859494398141667945309504495259334662104974178272376077861744388621652581300479218257763417844414295722361641309149323748782343515535036983634501248798772998230400965186673810707636118716978029009561566117964421207564990010762366329808269259744897850666861582593130847408391075489764816738167026776848386178845472563026099742134458970345314538620718768637374059589698308853690680557315193298309219776424186286008500752981153886860456159897749714299937258877014868239141713650060742813146457381563383509650512744019114096658116581552942864779106325638787951844456189481385069893039700136675397788288466397317367681785704022090014918232507297799355849897126644656527921615944466253574582164465544128006965561430258931235288456647789005030564533843491257727497847986468528446726581868394070246391837838432410859730573221094069969226974673995009874279652019010361873206756958722461617500266179358696672977053554103589824384897276927568487840398580606879492445958791985646402928579845570578961975042914702342924381980814025259014193295534681693050439900511256734665395990412822032746452084029116798197303614400716902399089582784473458490835940599576176212764927032089441197037200769784598871650525599129181531335752016510361229100539148346641895365063200398284395105294761617399149460943809247358254223100784197403743315843108171129235946479016990870643411516205195072658533315351169188473244734153461191795631387327542316203861581926309889913512014261315193143281841533441900246218760369019650396446494061795938012297853075514188558938816371307656065222635162137509767888854742424772387296269312102885934795679104773795900889527590496692017979940672546608172348251610833946202397014473489910249730810651129084661194216640034288743367442505812471796532075511840816725832107830006950808108701056927718997597397287510200002720191415139327778417690997354460017621649835346512381395711725989141636842599082005918252793030113476451109986810118477439383911514935256331657286817628608128788856838338596520088798290388241150595151456619812726567972309375229201505350910687252477739270673332167390680818550107214491982477655057326947668319761245046357045457549106087103518466492398134965235201834865460750114936901412600657794660961161058616360114193751049936322730648093127535575738038264243344301149706917657651844838883224227318745500042303165195576263018618767565080115645563668664841603080637142820737061751489722300979727514877290327256788962783514003286993424060050743646851543846379574982805526969557169640660313268592764618986419085826714303046509778118549496411037763976671741849503102948214017657281838971725131334222153222622214244382200296097588363911541354181459179640230307146258794556425639296949122774759303420254921336078026766541393181231653794404978511916729010007394630832119688938141060800143371220285122881359488378975623968434740228741450956149086401716195784525020479984730347578414677595275158348539433455341075655114153666738920870449902135637776061351058317179426237666793012131020973464205263033015097255098977363744907801661357386612864890354998111298343712220121961612410264042520853202786310610855693520827834680788932983187884209176017212992944494057751165607226623988305912474038216353654284024950962366743403565832805858228719545013917827024567154286698208495459865663083698899335641564740558456095476395418934859386762731695128893275499733558128910090728311607710464444684570447111962874363465764177428915034705867185975012092816048508818174150526716144873353127065846176780810679287322228765432598342687297575646237110067414754646936400860526107765326233128874562435158078290182509346913676541905765404057549026852155901062674514814624000198772139381207879661818530600210414621957017112660293905774225645726136250288751368386184132394606838845808507883271434681516168784418231467186115769777243114880983096507001415218390700799803873915218630647541567233898290199719702202761942262256307235127970732631051096787081064887175487680109597539513783465554030500419010527938732461645472024300435577134534580052275321055742155611576849781161968508097978824533540711924187787215928921622751630310819611578359517250073700027778325376100896492363716618589047549785524968674594076161359077544205827904011400020580874382219786896529262525229905220518782847287321760807102654505383976059059344334817905587152298570717883228441721041565037722305904902162997003915795549867145395932761798711009406062605648363453117367483417633520573280279279482867730760537258855117390155368403819258003581078125841658137729490897132281681629260355227262540515587061337284262241811154309757458562187460086789667306985923295768070945443173181937617432894949010368254391118825168455647435292151533279312819576606517646735964035311447438213544316198932399795489253845990934122978169759943367247594146672904679977332768046780051709287336641863831201279861438875348995864238740093291659549826485948179500975541279953947725453294472903908093143610230463961325057027745781357886967703118478197264729598891525475671898048696226362812761987152091102018175999955361376672537869423750450600308444666565057237528129849839987571784250201705676531747268388460207667033859350747154018537321723868592341413898273159962531892137297526964096390208748699490424774732776070002299835530073563221371125986831294437753461686218162210795491185094400285119574208382694930268422670501637399986524441970176477839593478583806394350420101281755730907715179985569446457418557673640110348273927806430016104729142801389208754901756364111856253094435459577265495503514569492642990607360678949062787253387202150740367762669183447360813239521011467431886280798625260426635234859324650503729055126421246811326065094138118639037874237084565233021447382618960601677433708460475230286450453878626702115053019539009360966560845049536136644375346343676808521898243690252170463710213296448931976383739767000614527044998633539473750449896082028202508047661824578713982804481257481125515718526676396973915919204508442987853514991424469944001283324255027994571096561104653101304588137022589941827831498130990482972187511167885808508232269429828599935610069025543342662800503701802560469112142753314585020843543675084282159352031677221383651816315136689395781462437136965024993852671331234472075216012983086125380164916216280310720328769332574422002901769195531132040027514434400505472474756793178517999997608652767275762885810345549571407681972023886791257422741936596631034749825916717496332558859102775894192847254124588761841146133900958595734482866855069507156716992676625140847403805592478154381471513276204088506070959127117194050633844017369537624410506911159339077962460117445401300120684462126673731369425466114572901501406527992952216752262997803978440685002811111122168476108680660475983886722615765745424436687521780443998775542490629837487943367174874260000365125686440069604102245498216226694786808374249241389621188802317133627945762315653505617538329186857237895347552068119512677778639814188564660724385725918942176289660868543953001484682570636528020240424428761640078445767617565903727857543034289781657114457910350758729322178005877929247023763096296176533168346432707901417468622469642159255827212758220383453178800773148997352941135574239383611812680103714465461784885012971260124880074204311969687930462394950158564043619443457448525512018765328375432525071273164601906756490470311745460933577064342288618696760138522281414959873280234848572814983524949002257963725759472630210830327833028460151715228542802711608982805047008160600976887419454886396378883019983995438762560930585053123093440040339556341092087412261589864865955992321864545333588528142349599308056941702134411370189374502210720775408984920128202494637180945763743509201535175121487341585723837056831184685488611454725444457719026493540834368844049317323227485531975384611983153017635344547071149331705682037323998909847391509682755752938447292123270421010408979447064838510788753882883015532392020510763133982924246956899376521835100422779977185451343947945429342637475590893205676953393695120720435904750669345013060057882131308693707561744670050675634666207341894672761485970028807471216162187760244025733851877545062464144995200926930199530866906592315972116986401882220780412838009307115254977781080968468718692857324264476099932846676383163460004759731879753397905044811971629748300708882872440777532127879311151333117472801953654478656185182922217831639286788814538685438115272319397438511207834988106951059579885849909512492606929801890304746704567535191433289539394987638842354051783130527730267992538863519587354666134965210508892136709155107638008940040787456919063136008474770231739540864202189001582500243615777341604967235231360107799871764464793449159824462664947674105703274590371860753733168570860576972234593996433712664229034602956676410897421851591029025145740263928732615626024644673982956569426970484441643999148273517343455343395259063757673358019543252564988680595945638362074905611811770071971437372966578440776050118389305793917432826487219745513508286050604027327198056345655581036307851725799715327588475507298996724068609384681909073474782153546387332525142841676548321762233082261907087455126114415007148266403821628601517651101466813238682788823732952309818033913058051505890686153525868785080983145745743916662613470746776129391265467115842598503976358963302873451644094529964041109974132259600494725338715871266067932480869521340527422223200003592467312290275190571587882305396269885465887984840646835473448409368539858631243512422308250711285640551550125171077619657155420834290957664486501398813669972331210683554323046750253110333257467029289474856339954615273645801765195585937761253673485017410360658367610788155062704493840946855888511835073662914410340935995521452039353217875887462482466536580765270023797048898641572225646621951093456069158983085135105554272850230103248110261330753890782872023631558300706165821550384476903662328499844215502938614986553189927754308230539152356675255473292756720266817739563956387853744327913025884938143552887220360197534837047431501095496540470446463735549600623700901252595848075787027270502867976784263875313289649949193520792685655345676285058544061463737501219899325042099054441679519554525401817005358788618384901493181447798904656343467787643246979676675835945604754721012769314929647356963133001985347402555142734991546948285994208539050149701166533750007113279570767121098836369483126918453795934118089981450685749828149623987594484609306756815479737578035898429454331916964069744408444835666411607420517425946563134818174297787642269651705592996655027317131755447567055550711994968778471703871148631019996334089423388238150800495727843411194564367703643925537072974654059048228626176784433770865239495091104195797162250648187381045886908207073180266896767148247374546476250875330516531205722658186400689608788419572569277175279857883481464246142205544166076255826787327432991897675268055522245355788278343373576687129367890856673097929902099975026108243751711746194384601498011578933418365496757184632015128283792117511048541096744156010924717900337973808686042803253207565502009638736177726043489275631329866305212876734715803626787804958958224176288871321140926744901981278771600543673285492202549142434026383714298929956179038965941505896258761925236540301583258777244321594778248728173154169504396913411186790966837239785199937721421728077205785362410047160295990984714864209287352293284728279993468926881033510562208879360741879554078213198243242705845101468424780594337223820712414505666562139722537316453005558152437549725267617790466212379965463684391299168979234869365986030897107423970610918387420551575821144253484872786263585609615291044150616742652218876860311288284859140734695709404071653868360047472617530108326125255641567277376083070277072443214261940603243221643672273201189317838076810350075518784394249200929937652085163289924932224985291349274027947389233424502115501751430626698478977392584802813827006389778759645599770395128340951822886457450272673466435046367947776817602800226546175383205602674052066397188303704580450420983538011280309242980555822918438249767590649855167137463715134749905031024258520552326821123265822597311019403620320736709829622068359156487124183509174298568078713855861893598155274900106137052881041224166298406126068935553878935793232039592728902312128636652349740508214211581135606480835052272301941344381507473773720096537468046670282366780438364873439798993298185209714645991448361702784488298689780393657583092138751860111979836745946119057914212965657010901890281242628304601010130581773217361095440998916170544496306477902014225104019884312425828803698188165616672940545848676605908123328579404963012426483049371986711974604090981870378762571558228189950247758428427511381685309793236563395086147433458624328856041783523162584337234281289260143422445093746579095886840563264408649482711234175847467581802936927996134284367264501610708483756699598202863646615155272914653092689542233524178087853882724784942636183819160336537445053085323316143801904908219671360589492028533112630691708282787042173414736145387996365150134795842973671767764867292840280971417696782911884561518304671994210619987189178248679821946267844541917375611801870371894482826291109508670657615306801771457143266964277869801016514263438268690638139619695255847914923855245884975007091073450420865413172279137083915967493311492782171179809203678168170213252098473381489302033231214816949767576957656672649104638781139432581659875033583750267926471551935187440012903886978395779004622625270308096479681417834796880671403307533649991475054892629384262889606708414078232960008084421075523930981049608449358750665371503158337898793204306636478331380936247341561280841689843712458302485612144392420730451174731234256530463817662285607698195833731674742934821801825770178877218760363100595839417515983633932585730184053241324123129276346842553794495956593232467298952516918769293250975475547537523693020147585689003041095686667662299583653976545351383506660015132786306552418443309250914048722701579777022542523599067701500583169712910919250337501245100044759988387447251288317222478488076139320422991636774511309430480428274150844078638174946324975997237032605869712111714716670724089745388270007347812559129880881856745054492186417933153757511295694133767595403156250401850180262677012929030085264143540552795127140744576887931096288935239355859927045188617092936333717880243460712449067532829138609755819380429456899951667566137466237188241661140534133968444269525117066973444982620189056651745283914311260367429704610967984438398579508654330555995136360906381416898177597212434002797305449281083150558796597566379768061282906833996049832534440280815589515319968218269680966549785949858130751122264862765280504075048788105931700538374246007257733885088860671643833972120114274511333756746553527755797580547511718375752400987512485304365358417535429826940772212398952432864719995347059411075265559540253532090793434059933906485544923480082175575743596981411901296630657346111221394589664804231826691080180619185815976231217863736741206124230047903557637521614695282168937355599660604742968299882140550177810429700060491943846358233431121139200910010369038301575394980746269522788322790749390405545156102051522910839056818376959316229263822996849098442174164131995963147709975368592227410781282813987414010710260260209656125408395394413775942392941084447413159001143056515407656996638652934491609595443254129523018335812127788321918054941319947294801282448930985161924538954752495051841842251792088775399406684035148404562519493804253350735664996824423670221062863180026330355326640529942745807364407948568689118678333293309176862894434241564368788228580831840196710438840449801590051190444348064685747897358125308999865704441715392854734575738483849034506535955929205417447778666977205213602206286750049065523884245912336425224416213065869001497784503114959286824692254974478014893285184738466995579798257121233093418556608814354586998915394060007633158150014154253120830485719772705129189424262603385044407482907486457765677235498547048063855146385644782039071446791135361189254417251752862803860424854692637943552729380986997823148893960829878760778381986353587588854358528840589834899255023747115650658898050999712876761262987556913695589788727837079028283798146523307395750746254669501109214236444763217167571075368811178154745301228239062031042344005634810222058122925448008062869210912647916026257256124270264916068719173303561811981672236713727387514897552502664717143751180658270649959489059096436453372469077224502621775645296771861483098468242445658059024090184848191767509151837499213788180826552226623881296104698957882210122090755420686118058029764303015739464487441300822389895717347707359711393800742241704102555791195613222351604554357422713228514813070838832276738892425649759045211590861177766465216692003812609352826405887007430610721536951219521638862149495890056558932931403710649066632795976682972815881259785154073615951691988537660802579448676783738039385659194863913563696394958833392760939982100494224568589257189251278962185290531965509486209942780831580247079975127764678918968435770566054901852003300723784940624494848467294163321079904088462814824738485302596844581823979417637020765919823582319956746022111521876732438074526713542693402696700674691391020546280853688839833774351527216868057577245051217023047964988454669100508712182743668959357030433732915309449809386988831428473169705628681713062499925451821504220632529799300765550911651014171545026932259944312355398226993189955154417139020044966545333757438740899117785602228854686173120242504387428638266262335908078723767404809380772525778691204380601503822334536382614857947591072479151971310487544780290498454199384682829176690677552142538296400121503896327868902453594289691624400843878257097386964187640332967352929181572970516406545539069590848119147575158127734411425040825631126845013348122330814271899935531336593007859842292004436953843036402553264200030846666307615825722181266556287467998226618001344642392960100433964522369919884569243618651055047389576611229031145945716475081817056702267761870970492438300957077336949377038599366349132424316413701938600359504063256109914540969442860698741081521081625218296210742985614106286679782795092282201508040699877612755821218008406788273519483978100442095700494699512949343288648546901219647870811668020598227650419427271661913871882795265729642331068810314304483934305344872552540953197180390752758480847014664243915898588369137483533342539561302775081768635333375503209549416365504845028213932157041091901361823474248970428689962734535443752532418633667083695129563345877545605128076033291992352045861458702513036715312790354429318051627518400457907312895582967014451363907831217698282569442078964594124125185545686786124712777276416334649367778150366545058952503279922234177752369521859896644501040370153991829921215665214320462381794851200716544819948250358592636144501428629760914622372522113309230990697840670439994525684535320845069153236020774598259792938889944249500907225083351383137147659979069128272863245935183220381750744639363434339084657809429288174630929512549408587877750448041165421168039794810944339860390982520474989041108732645175740586933374206307164456531778841263149518281589679541423137928982661647374097782833730786452914430224810749377114704021244254656051645866699826559042895761376114965596320813643284739536482011685769268987148396141326855264788335455026130962292377611082999260173987420586242295936851213967371800473490705663189127598734673137163715518022910757595009874270384334994081753081441363077292310220790849966206996464182883249891554066674114610381641263535201476482079995295060794657366544293094937103651939468126645878925900895100452836898050149834889261531060467740844208538310275301828227439265318951205239042955366795608222244345653186273121096336942288329768954728437134529411469728387378662282386225641971882136514161848980883794159673806350363936600942438724586397803398775737090219368424617625488889341728605967796364409906853930516239543253527799401763550007000791050636233337393339440889619933863671293158663532007085325801659926642534015974929573809336050517878072306107280134072126522543495616670239765227967494747204361115671044478745305339639940126540428405424779862798661540519013268322789424794352860401502601932057577256654923634755476549042894138946443630736783563421792516903439191578539401794257841238067375728734489044593128744852470379636305627015779715250889744987248744046403687301301005496686160139410559255578989310900102542037194528177767399971342834076411619650266403317886791771611304465603995972759497710210273811394539319585391597282240035102105201265487000151707543940960992461973177966555363333862990804861773309300811284060531203652287748129885268379378515402259953173700629678218940817163896183421090186423239955923616732898644863648588457658550647286664657528101311711114287285211121948302083457400187608364613894552209364352546818225652394906283882949285195658654725237486032088991874014122598105700748123438756910577237750581510216966628278104342045560272324193994103746174150910775429997104478288883939836338288510162140358945877882587067721725992778068910090023345946905456230550671573407089053511847557669026473303606903923066138301179252319504545196181082199886275594236939123041153465584806254875329878268548286151762005188887651761346723766412676275312439410463141044262976153595248364082510258765730336523167603452672133243124129989016109529423278206477870102197815300649874857898554490683539619365928706789628051578720852729080548569801412246904372474756336841687641711648059211238022822169995480445888646632911854302478892019333327139674651133312276080589849488386273800647135479837210770459572475749412096455858602639636517186504426426240753041675035966409110722402908944254969431322993752304561876493874543251449473037246520258402957455646041286403409711973879436641496440532941705462093142760018555313200683615578180328934902000146319434870233186959572396130601017909811838842659155665843822172028928596687132794093824303161499888571055661594157837238117367494909534298109354580949675549842724193952860711487491954096310702315391085199495911644879056447279347358956406340138465029777386905495590212882535131080699924586469502335830638667081483940055016929460174066290583654445995086668763508078696919957166437997073766515095513477701546819733018871637909609282719076555979613767164258187221591967698092246197069455862060520714575190727825231186468967982625414887758264689244569175716581118204596057879497342431991313682680049367215142751160854234771202360968964517370664248594166336369873180897864481789017948768157862466874992432149446663834471363676846832572047178726621188618470247138188793893299278260538587053945187936288896589856805877052498543662844403923212797971818661495648960262712148010353070111737549945930427032357172511981478552374897277582329717279753788125444371042915973371644826366264618336381349245689583467530933224340152329296881586793655038339645400548299695716501695585731442708998735417812044234961046025110869410680556705904311264759147391357704616649254559284857016254522472071803909417698478738374696591063982307901039914075337617715716405565043156309632553203709772584718326689730941308720070035937027041487104134354288563731667739559156199180178518752806625319764110969575504928600139031820001853197720308794881476616773067524512762828015181400999545761958296149682157062228281970396142769721274074186857959551735563530568594801425738822242513818577663664104095973820180040375099278235320910340855363950421806128056279172235708103938579435095146205228721910408656744410371390942946064970891369104692942638746171855290773853025400177218730009515012773167033419624483001974625226728769847257863884677942956393302465440241185890537045402934000727358612851905935652667328201601426133404945159565667940193692422723846548798604294999665605650590294148221852182766842838297328934463695005578069744741640231114787762516874639360167642190697018129351130973815402754546527767269477759209963791000552609793003998329237297113828662383246802620192243126658147021326258579125567889397931217273780747473308152682121944021369451722075128770681065218258118504836139524700089988706225185905964938157017386084883993556385903775302084808824994213454423231969841947566906365283163091943761832129644709410149979310214110856622764145018042273470478608126875988796579298456967126410136978582715194644789581260241304862028273961281685182391995612512811914333130971458410762275099765136706159532135872437234918385634435772203844492396866378623565789591969427735220362056222059657873881605569113250194861319061086102321956551107470577992876893380132965183689854080679951299073949219234721477430773083879526275737271914934486644374088441663092511694670541905550658714068901606668877579071884076202487986799446417740783212102556851972752352849993198482817097323453051067520428098499016780620970947165756768828146730810961060081531422898276486001452420843595164434873981463040929706262510353689400681492375928926693903444913590035145329665427508645369533483591651678103927783428894293534445928877693376754912220839608439174048708978129328260985710156023953342928156307687948356303245556440017668232169995832739826975071894625835389987244879849874771891121045838109911096033218426108442961085418401888237825517077833172069934360856571281426227348466347139463741703283594023857531481320106080573020775928276958889064765311175734603535508872774604516221745955638444786713230230257934431094768552321539143653655000673773379472211270914758433128862332454117170054643967771494483625730103329178006531002993775884615527087601971752363291946010392369609111305380634766543533360310969165163674938055961165451707596230294223963062601286271290567995133044349953933169977926055257610431959989390332738888524842223936496565079996081402420917867250074950402204179965127793706722901259928342689849521653721102817411203095607026630091384565838003553821953095119481233623834051238010768775755367620902004263586630516459842632728858842956036315160255542489942363796707841569499388009318230987156792603113055085388943591550068245244551503247754028751354051801227923998137343152477569480524564753991746144100239338294336804740763352380552290197807371103962673310402499993156302008414766286696458616079178999810219294677558319502621417395344142343551646397285859905629755445512877581240149329054337709381591980942002044112976581044059865672055559968952196594762572206990389985274254441394917665166431744785727360157497293831883315445299911062350005513234067172616798106051314668801234026597159484717417055445596386420940802367064005783399689616422277820922488658198621776871170207863819483602702842733040009836192148976833862422953885513357462997726750543030629512176480695780831384416465006591963838756651728171442027846372639180670231365381273088999587751470625036604398421681823696897256707473625902620042561520188990012861647214846619215788096195911502794901945768149306854290843576228822191860913903384213991457046676662069660592846252344586785313927893278520825136336402111567853254249879213079394395544840438086404083804274240130230489980612674280264860479425254833519221839289015349954952767496250164393475937892143706370238470049490185231326970746681981597417035509130565244554408307953975407300561319205395201748166693008371796695777158391717164817371981215846466026227380442320566968829337622648282898473096518225206659872468467424945177049600972089179821353104789175569366988890244914260823865957242971423788129762719424769990439875834777862020286937012888827951744964380015656781876451994622223414578172004295134314471638939688965366164440399669140212044705457197564012732240226909302133539685682074969160527985253357746120856735368399709707612177038766416691202538141741429902782918681311969175253373695532863319808434759480834527088206707493270235066569330273966560016468859109345473111438602682539914229347771746822504194949056412751630196393956479539579744700739909014609155927912307669910309638296546057157786038134224303673540114256024535145189868339875437528695112280945561251895704033353131569133630359978461646850600162048221890788215812514860281855027855807245001496594588920484784957364329748854255638462963635843322325894845416751743232561148888548617947408794745951974270007814645400940661994346565235417705462626731303566685992178633858764301086497162052704591480130473378121660969630703697933777029688840215702341602957253211480514528354839376801165879805160013206012586949417477663751148071415552660288433048183972306149136644498619967313393691444661622653938702585649896550192302283583768750677399162510018767316133843273498104799004414051879588410360608875659965827509480305034859253126636730553963681993468695304578840312482134540132464408717144180309360448682172845960418655853182572468185331834641523418565288172107629325765011225655994377016743534169335145056227433256199635576484431497254552704655321906273220534754314425830418904871749179458806898636003011217129954012875988389195967870745559390038904892729073945684095090655450474515278687318195464386724791349724903981331866623839182568546627052319298776412108353133985575591909261710577998648091095009077806338204356124480697709056392644733711274577742968050443784066434999369853209109440675090882760473726881284832742382976642502208294200561645302062541782225145440227369534832801618284088291224413065982326274290382960779563713807433665857542944149531077618721507402091479370495547203319533312609289780176651884386444580363590823156308071315656249138050462840019429536072236409183221530919296167725608953400212198621873451686891228585760622979102536308278961420086268138079543480915573585287648801017597348982362332402565844460170619115918988967696576758791823325016768132782223403373200660023588893918101976887441473589261597781669343292871395241566628561197995610306111229221506099199907986584885121114551721323092430667716890441932904823052689651429886303079472301331052090104963637349017847997773687352500767321045144198823102979479724165444945142861610580480581344534765033673998700674894581359046988609442043252080718436571799630148587119679791554620879373606348408474980631748622462261870442854542989198177372565937144128817413127275894977003116906938475939678094301006694134017953143877441018442510396695164351729517057774213561503023701401220431936677521937873152396230489672498674259128538303465213109169440231005865418654708065942968411210195738303366065722062065908906549795848404645650628039814230396160116403556777023871798699749491970287491762843657313350264794374335828601067303568531472288923718884980260633202146552455213888094467690955079775317044286823925920207711042412040160161669804710936858224487469638471649217823659640147506175635953560964119283124142842609376642836467366555063536446832610591574150663773521543008655302003089542822585467312641038043214375129111669033769685172153082417538128554593774868314001112747109317492049142311320913752618765836111052906177032529545345691301817632166449742240982307116511523152156142303548066173765839080311392209907202491035854728079757031581339724327195847296178581961315105449227520544459916408071580513545842698087656676723558297656051443121647114105963635483330168640418723143780731477916109517881968157161181089590128891625692977182347826131206364311913516846013061329319057242562573244064841984147161986013217194389171746421899328847140255456415609011546568271979834122215111782306324401878614121444137976407102880068541645829532386194371023408628798290981445893641567389731924947370545156723116203066996012258074644840932173311703032760068969572888581997395691108496983080413401232001377169586318811281046716974680040875716060777246518155925420598497146677573250228851723425657830594807619974952801212617828013268345276714768820265102893899425992502448265917661095218982616439726015940246830152279703330606803958993883075928847524048600387778142984753001820408569875354565282827365948855497520083472950954266091844911276073654117860463755120640537212732582323937911639585682486674549475561086195150622994475693095288247023184799396378262214209213644991721125093785786392382064414724916101487869817888944488210575140215113284125439493782516085413258298758125507764572409615426804637551073920384276190492245316041418208740978706412938305192161558955034556168771162420091072894924324513669558181877942683696058079077685188618753007107105564505416152261107111226378248505021917806996471050387269580156559969567811000967729272625629762238197434563963652077344781654132300310523124499599790997312937891393528282032271831060703949756657386004142578113404974202603133297596092622622618646513480752168631152274907250164046506336369801173156530219633209789160926360826995464731595400881460372435935205357308698478881646164055484408982926019474951242281202414920609857350881903446184296283783979725636923011299312992698990864541633755421183696455788311171038364470614552155417064943871184388267296732978560939543025556447364485028463323424621924364137351455861181813250417083815313340423529232888381208091906951292264361064798642114313452039296369366323972829293658691747969408691345915850221781229109221772415908703642550747682693096991161890916977820621637437961791467315927757813182371997801356267775126664793569310685735151139251122935097110391220796336995151313154396229218787379349637489729775033840770212880054188911485222409228523761677980980051332615919242909261406567966377896212980065027553614373036375691322015617712782075856380718035932573123371514215416825439786839672998481270977061420677324507721527712712973566361173445906484229783883115248261563955272309454976895046520693983480371528812781445890054924290806545183557115826649057321418708943799971526627604925372625141799583972317447255637357845102738074850621738084819839573032812368388313120675891597260700687707660170104105186448262130412511204927091262846057311896799159533316862856999397010532335120654874416339388453330360720782114706724005746883067539226166572319628302508873402347854900288777094866130727171022658558184539461699217200451116501530765006095499344016170018015179097384628182296500817133048969463280465298625446116677878895573184746223874525742339269872817357278990230658065992964374138147085432792333543671828080173274217036011626488770493073621368031868490902734231421711637006306789802117427617663073636799200859578094656777788550705397045109354182749671592706145448096353257588051132866136877574846071123059432911989486561278748588658265089319265495644925833992700336921775981021286454592944948885479871423790065525775070110005997255764393061789562115423631032222948574872958202423105186597337199083038018340784076815603358830572954290552874895117006898243945308169240163378366135948687973723249709238694949802020331205576937663052916891663971530376136005654856248532074455404091036921361912554247221849617630004838224745251850082536661058163845645639071485074642931797093520714767556145454266296464549767460863018377590426959783415620437522199429649898135380337267669390788397839473161215893641850610023960622540283946597787671297909652651361630024550626494048817648035699030416864004381224971316088994670574231379848096670969894716623029872623945766602830171552795085273896583481921742961636947116236326165370025807466341336654850543303607629911538523164702774248603824819841135515977459936428663194318408311346292647891317244909796871087761477491231368575277278405317022113084362429208925043213914503713940611775361790323162421026613618303239062194821546985468865295777629132338087952428023276949524270444138349492846858594195963354624020528235585560807149694495089788739065625767812728017579959131116469889204356774190501763375401928252960491422685352274509872683355686017459350063415293720789920124946415448864874655247784199152030398717399539575008075830692204396741424634217522091822003241732272208967655646395089566522538557970842798723298525666645562303352888807097189630561163925804593634008253442744286933746432879402612283470056558222029527107398219369313347745612763944792135081044649874046614043645102012614978778550161087260826291196527167146627521435949365950187387988213336046375535324479232793256390509528687409879467155678783164090363555246094726637647626225960398220803857858520828759922264284696008397989829613142752654951250966419314028260006223026229316278408545252683837822898074545545033565542712612429214053469754468784640714998821439029155291994955201767231519756453588959483210397675102749383223369338742516381552887331645309161303857854536616165826556524497392345285081047197144129202765860983260060793473238633477993979957065755987687204159028214771950688710867536730772750764442489066788169251020317359950044055262612700606606268592970042456237248620965684325307580743748322587782220546362603175213786829721720430141775308876561976888697876303153057607157858590334818642309231589542076262132725711477317283411986075937381278364942797357740932247672315906836686661353682167643340407950551459490982707741101038011523642697018920920586804549363903025097390126073880986275207063557120676381065386169001476565878877805955751569811909968797694452438349819453433591467614105294951562624306149106296950196264205408606722496964237114680773809318071415834571279476330386709288012535382217831650620960195671793731387921858626992273473136933161670077089293366566706755665688828141916970640099259619541065718887173098109534313993755293512843789099695632676637429999680602360760979909131220267488286539928425333424574755808313054169632323311593877892056042618446194198852583765017181721921043905714541027209466873124422058665663292850706240183188275271159954083140472508645849382692285916258689035234187380916547335205009582302963200652904414083157317970415970511355850273125769748793296000216244178981934405677249145771337205618564863524861834676152057408581362353357474880548118490071077796267388945574750844524696859233974871029132362021972857150908130375013031518209837479211680886531959350343306217706907644506680967202228797673138407681843471959435328451100448957259461919115073280484368530146465484618427686760890158490428795429042943820681027117546750280594580251316635474625422656227247132810147893029669943570498032717853934899329911426754025433797214031399116759697005078808323557151314007478327056633119634239355560210644786500728379382841920634432461264021258766219939416145151397779868031508200197311090764017379088589528876295918593150766334660079130025023710994113487114442579430649266699870849296149296429870832644767541881652001603232533639233498732702072019693980978553725701526990661628131911411716979976036039420755133791696788039192025346645964309520271109730621281444809147886712786451734925139940495848204060382503687195353774219800413327950156509616688070022747955810236754217282948101685214999009293780812139798906542526408412925998786765258341583992194100457172826751104206962521330219238803386528207010921623743581888749754910273925304516044667271970724126688320639654433722523366962633153857213846951154676635300669105506063521178279200120118665460014700835894908643203424892500393343658645550610815372613992335402437711878502501348420428327514377523663223998734200976757868115736216663955938847670523640053479266296558188526020452098134847418034792926167686727978816709559965133886146076134661136887816103645988375776448146884847567727121947079163401713135034359114013883081472807796851326859830188810266235740814741986142649033085843266854790650073406042418728322854310756813062440389091029004179263504029010401054721699643988466437160253540892773810347567599336491109860607988409693150366820229865244466829499259947232442232902591662922421540332520196161103114001123263859589863584011476774783296377260811069117323721621375871875023268354756528466155786951670794234459518987612200341288768561773526466635706690764560705327604336151003511678649100454239247970929010134030288899113977486199469619038525337214987285746055277543154339510990535894668138510329466982838077555501502559454856363929925111788486414216622835317354653358386110411934437959478049201873061637965006548164534982706960402165182526679379944070030598806817119219989482466848568868197856574820461869157177135040068422422872512891726985515165487402147046983327638313721970581804242688449333608964916353093565741159123860893267682347423069208513884935599208833483993547751352595654801719014435163355058829124704232435613821122731855081133413387412439701185451516109154575117238966995203124876025441619400296138422319741918641549782618716780138405899154498867771681594055142343787287563093766097214478149708262373936705538670124143794319191757268473460830395260404702449936572045970377471403816575307016407576500866444223562189586640295487419442605846614820175417442116243686783419172564624945734253450373330879008647769248551906229919358441870289428721642403559344634488620049232116788514596814702922989836102419971745432274451841265615244305962109675970998810759971409818872114147896291033953333003985823961615963063309199038395155221369272364696360581547619364696050748224971671225178611693794188355991340770863531311214659542903311088324820097822674885743079996537161492383616153392013276077171371378575157289530028315842322560937903731109966449418446241790832964148524680084877132683096245649042024554771294358815066273599419310976494236122973341036645932641932041706500029075872796113859084381284378370383957226836187042799322405582556719742950368647378843365451601237980009511452592272466523652826340818908944196189194913561602790154270223167409499146055812090802301265557698573843722599264073518154466408957046108702454673678918636271630132190496769781671993911274740668806310926131890312580056245464259352320066577713549207164936737475503198239213378248048597212810448252682715262601094162996519477022890107935201965222188653341568757607344473865338463435097741712864373437077317761166516399085526599700284253117337286738207123513971540113244459910176463358494554629746402633760214001142952015917005524716829292179309556348427138178470422762817521115634705847846455880738460941381815118862652021418027337660694752895778581847459894545575973902930883772405214796495330717282864279593860604803493556592188987425519373305247573212198411688468156164611939074408836002062279624074596608640013237616949705069954261136587249573936701144000427922722730399975323406812606481119316276729673396056966507120216823440995250710401652064283245013291830083481245364145322394763137771978198789246388969217856656895296845411922739779027437456215815554596177001952486704598587580596012695876512492218407565317997344535742739232394282835391473652132905038489284766773563279769607914134960756546889429872036717662896619018720276047725890921670732916899224913794250555597062229542404209156991029623546778250788275502046547010787167429726984364448123830732488685987666967907913280427758196177850720898688961155857987907675001904996538538944910096280938424412848140188371529887859493440960063959469337872512757667277182342711766517310876934571535157540532666512713614269886764313389023568430549343232713664239463811613761066183184493128613606763218208097486654963054794400873585431075432184044329589616032452628606115594578200111422832955164140307625843925850093560087890253628616203300079524350897362744545731566366477021434638027971824987142615553844162201060406714011973949696413056728793527752949355361460144832320949502523159565583780678489853255741638996798665123144873724684960401924761111168590815893172125895038209449463747048142714979209740049454278094583305527207496258157370943020302519536105564817799084111549826939193986770152114026287680249419103938226343930162541097608372176938563119115499784068253054982758343183507683694066933530309934367094495902841192588359462592344139961585271773142703640844239339083796256261330999609001088769089209111922550977719933374245082625890723898235632519476298005198658996503129095242049974272403825926908937677900670963104139572888916192546468485717827478904403520695517254610938563709621664489796197920013524777799256519918236488815522130523754179906607474983973908016772695503472959904894331243458962676836971242682518034341222319744953251764084351191012458790375273061035193432842037662060880612062762430254450208835400197099465603738828615070810191040585749662456122068619671873487178520011148232829531219938571285925133242119221145025722985066044809005661690724915735122619211871710012665697981123801545263513897673473962921024959939103438278878371491519883353116788066365463649937484387480688496670408751588937128841013738947899643879215503865523624015158734890890647807999791478816186617007160977759802213515665411213633158915779986462108635440439706026212547991337540752164830415681895009839046348678527602496021635711735939052635830866791785756826054786668716635043251148856970156811817695631518082829721540561689835327642199120334775212308572508717206078576139795249885370907785149639270184782862410331620836871596530172646698287083314589433704597996882247765405955743069782822194280995066305562324291886863974429090427035451273409692884055159921019042351287881624646176081332638994021826415223426427533673682325172393050248942755546565898229134853976406026445413052990033851780745111358856662841858043667837932672178017646595970419623200987638565970762225460865783446542887951744628160909070974997166603646364600889516635586624874543164790729906304575907204826274116553302354334188848664831969660453157518754710067557082407834612828020743457662402274134185569653310105711760727670201838307970542835541922235406199855225195650037428141611710571516065436803373307085702198116664700963485317213772081638059919398479008519617543803153161793378960069344054091418903041831356388607985485875227278781220339754411264184754709392611274164209081862960531905695330703310584661437019244822683027464422871483564867047918349404326383828063227154121137923420786754502735158695363200373675069769916356628816694559981010617535814141783333834924200723135581132448866042347839886870076683461338569075091523928500418823242661400897303224027766752650215387554383417030199622227303613218334517460845095228092423083623229247384065684714742707132623569629418127237300060287585559656441661015675356173657185479523637139723638535720663487103921744702412643759326319714867625848464835076025460687950782493860931633658484772385996425680908240152780400746776774296482886844660025029602496877848885314414363360290313102528000872628415285665985684716215567248504940233672482349551213795805209886460430193511980147295429952354802244752704372022784653422756154876022873297940196064106551394916088901979967096917269126546898522213075221425414878617328931569428771787146266009991523849274471699871223955081050447108784485011768867122110372920469368533070190459134860304135107481260598053064769187798659897222193522599388028829085589733154730976515027319578677565720084628826213296648752372619307242522802616363702289134982897464552571364761181459050407172888234655301827088211701695444087975693070734760264642763481689890683939743128291951004921173114487115938419399181604697464965152918268503344406766897591782886294168793568010701997698826506887302433619415446880933384014008163574596996685207402849978516015980730335096099987217552463117653934027820232487991313389578418240340869125982301470778409217150762091285975701381184746630957149891646286893542730630553552696972129860990633301675686477145489791773579692441198173887393160851912148867380477263370315347723171706963696027527291798273668622993250329757528995642521605176656792861083835784416315698553180081347066575574012822740005576674248344232321530879135081196759413499745773617762354214861806394906637519326500179735863286239336611820554680837228491466814164734790754816242638887125508519236431228272726858860847091554913442806235745361929055101111932204969797385043880925898261635823734296842037235719649648903222555392369037706517889183534150834716418439148469421390964795059595793860809536800608805930004361870735861866952702731125452825720820559270736356222888559511570357348736131533983516504356501363682865105247486186737367890857031092261290810139671789008930759658541394544830782664058291176537667645793052653879265509236364859257686251762158799162430925910503667218366838332920485166474071418819550406476917927704945003043910537322552012218014909491095492494031297145528446691278478198449390588304016163383326186791401271241684921461904876247439578289772712450782154982852575608201318324427313323212542368004899195227654614124274976286752632705406670910113405312358017434534593133298610360533634896790545748937576470083911105585258496664185562773428607704503671529993772695576480190539604427433319055877374432117213520097179273552748067482924171831551794441020278564501784971564014051037034663788474384898642946071348855571905904063747398164596903692180735680684912560794852555235205487154664848448614717168440938343560495065435439752634114768652871398049334307422362648469759326651197615558334438293290630500662583237599340870852190003293499430985391922926045189277888240054488958410860116101757548994072914797725470495316815021631397487823075637900988397695104508593750204732807207807059729502653395299234109221029386382790297891780519777937058326222270093205732291495654156654402545752722140426668740394223610619776097740961195794252050093656686719016080653464869170471901618735190757214168837382448173923873922260265170900281128764822430899149804773072829297770906609032769769214506195791352963487409064816598456889243148178148845474121671203427284691386069667663163860722478120193131672593431648798447846067964362509396355435219645390441274421908049501523698871828596544949945823365321537390776175440059260344003022007428707156877382159364876552056970732175349187844195537853148646334232690621450779168389921427988491576420467101365357905323492632967189704365011790239609398556092540985107620206717700882425935814735160325937017799550363501437991779739180017019256489685501949952514403348557911951802596069706752720595864407478402029051024970563069718520908981481029342064867722434816334438303172992121340304093962112004891946924055158386201699010467802836396465986017984284890120066707933236779738526651039847751132193549676886861616428547679541608154743387034249516857994894463393395256396150046641756432684671139854416051322023572103987016935625496690787380339351819026645570903822899726747388990224126682622613365809842121222060252564311706746197701207581783409414128771265728212001241589430264272820684774275093982874819006622498203919388095336216440747132585888471843086319242055152695701567569890322772836802288572905076457396126436044357606465192159760962557296739287191598948554085480879383944113764994736944392577972372223558046250013160723640341895196882543805023555581396688860999734914771602607489881485440659820891638823308368551216112314148152539087095191746817059950244710508012027234082660976299709545422617936890089054097519691020457309570076867128438157612587247685258674870569864152408844381544136331977453347632348426242782565746647351695304942607179352269247633863281042425691744601212618706397387458126370530147819779313294294367122604120200040994421506791395208646331008328221884638000904708982521322616928850120406247669977908505247962571453602287694016969249161199991754070182697587984266192096840607805178596001528121679042702458986500436323738569517535006999976711880201033948490954435923339110238790877798342020038231191951308201199221680281933998595705418562768740954251435962241911054262633235618863815536473736294846457215760884862925753616588787445854199740408059200822574878685075061173486339421475520380987349159119590326007255854848582542220761961316266428063212470345879809262131187539003103521501406467062900224794699704714634116370661954032589232727465804498052814330921825357703535472749191950938894926952136103352497783124023407153064375679592493785150347470736182387458903407330134954462847743234531612046653056769238172375958544118061899571642065838693855028040503301974291536916233521806899641363059888890878342632204825311939047085828444032718915544025246125815106398648804158736844246196555868487980464572952997123439400784740255717114938520783123107068770125086022736197063157113427370855387859285305058072958827714936543536965977921142796179091980962302602687421414010280502256940183390042324045517575941446969381339157253932043826090100572581226927123198068301651847105552630470072738911068623300498266142996757778835582010570801063216832113951501652701458220240952411822398836832089533074563906943942842450031477491074974670169246878910801338790882993351012920809006949553518152162325868229438563332631612358981202841165531837614648777146938853601920449230718413486798445653507614335328652409961849494670597210023833202107556874885096939080625898246300095774612822754351494767561372919051040078101446447500366109670191929098932890042018790674481642185571295122165946186285501985034119521557073587764483584259952987611251130471234804017176403529463800813626259991189117843281237025607059398194230466039384917327898598945781862452689447837719173642332660657523851292231435424173760494534899116268991726607463006336634778171006847365275919028932348971929617821158676693843382848383983551186089951756863309456293860747189990323956799496999431599643483151177221952816471420691860792074949936387044901163062026871059947686494473552463175033551790590066447949722275974131662338806883860779004608897204732180640137094268018431650700715954451434479188490827998072676016779553051245713129565277000010323533502640789015413225998224406452762040265406649909895504780150783814150349597269993987247969250571555263828638788896584736182940542828906241542504689202009693473716963926367532620850679680439091146784419119965463844898070240241809204099650398775916098498010688677173698253943327177068955963946649296176896328429219970049751531241732539359254800371508733115010702851073506466614867404423738038798347654169666697844080542303838137008700582149574861000386167656016441533915087143268437372255862951057803331982979198570916749837508398864933578401692195602400231879495221030413776627315189692258085984924582617908887648316785576213980975924009033570866760848575078579312748556493211404432072023314122166112297032442305294593614374789238330892136970771426793027783377921627697730975563991824940140424852150560158638440568110066646763086839346064028932804515420754006114538540098773410233363898981222003885884404617842930639145134565625264417665479845662645367467520116593946788415065427012032567138843626002247634751049705482992928188006204418695435255242250842946570212121533955541236873773148780222728706544271370734664789847444613211131095859918411905206412828753694270192917573145137953433672999109533334139149054719012069635471235133915754390376263394211463787747848792477369339951865957331542038251974736408284742867104185020647268282540221209702103975820890295160235231476723162838868450353892622780626762629727216611244415571615276970764627068172733140182916505008067434026180675324779933558131360329493105046598453700658988018062650513105615731217161937260696011826779168848240370726578148335907565233228265417652407784944097465963375423209532444540179329981189785731417765774152527143738269586339835157090709814391802814357243295182468046997832094183314749351418912289285945056372501509232788002868433530792682435828663139580655637199917202347206445999617552671771510202035347490872874881105101629789812922348426742910464545018693281971665786081941529652812377587197171273255542211141795242830405027558064594708263346426154548950022040028138897127481837925102696804901726097680150016673972860786329173983635283651878774604746491722104342854080797628014006900836522025350139456591308436130284283971462863864674044975802608312579977862727936557517446227845847687450381076052090505272144151078077427234052702831343729318391201172805494461596941376975880042434028364472488659988212584676253083604988250070255382490152639388348574714057811492762252636542612572031413769764214807447764768075280963069837754303506181816223915535598414073364875561933602133456940806502493113620319884191916839512224343231318859153354879516768719551952648489210675471987035960049304485373777895391648510698380003476126223551807816863399508960037041995857329724231928361709055252353375130945155231348320276518325643018438243727957757025804802781842686057284443287991455620407104574742744580948058665372971835757575367485639494967555690237865766054668575583353272656962297260864625132242440695091923809815183102187197052262160982928499923768642104350981207550851034292698443780900285007511648432758240007080849995669861855731393347740146316828273825625217825516483260883434718320825743224840759624060600812002619332113984624070328060352803487517470188185554681412301323712897372046855561540240416108779094583879663989303782498310124345610402659081602678330536471093714137023783270249663882333281562354175766233554767197227674050325914620104051899586783379612392584163825692605419260417219213063054690098233475597584106954483710929241358061720919350426365700032562395085419613506336537130630930025182911733316094708793629392410550117437892441053454715219125415872007946839502251240865056083595546920609440758382820640769691751499927166817068089761826356422484215176581244650711799911134574187137465797815939277883973445914171963053990751646997515109121899487156819609999332389103258274905375090409419172866253700115724944029890451249751704546960948027128234307771989625466619720894176672688252797670392678727257478149504469884913649026522250573820684356479608905886502301021066217931211343549304447450382910135208493295007826773274092069093086249051581858485630366908284463043595494260830455208083233965492048452347114521189101054334154008086560836078598095251664616957690592123632817866426867775280018753216231437653885423401631871688284960467893575402169292605712691374646591022415486223896542816562955479125719940797907875342273704841760343033813677135840466580681881891343093132118992005385234768142248187106427964002032853883364533137764914119271658453171789030308382409220210063788185135446495377459890677211492818907953297735647484986968570058008826653267281014861485549193759528247822211123608183061050222136406532780682077917169228394744792405416608552469252298196326636045860264413233453024438496576830129032791315405305639426988032821953932248660610145135937714933041832328699644018566781383045216562988948492936092700806320591488324950952847561112999708766495498725790600940288269231422180431348878152696419577886976992360548846350305930741108947327708570389354448681095747989721081295851599088464128699956083685223633554009531753370020404382057047824688448288304792171934035482040084215159768819484459879042082753021285093283405683250261506869802716571235884878151592041157318421666874747392494687921193413498801188618822384523846111132340210530867637344495252589903268333077524522768623414500267754183019932387292666529586996387985448968517406853044999370994382508686959927129497682673054011832363632772608802013790464858118253610622641128336916036110571073062411354582317519496516445648764928118912790135398870265790878744951087454172718731424252947666211020649369223220357311704486076522371557943562763666447701273866029332482922054297281180525234148939680588946446875650780540415450826255649657136616470706395029998275026854576083278222266636227961447801328525955974198479454122989881605577046597219385213715861415029034133992425098787042250116780119094985509068798020119116751498770247024932106346065519699319354315706781065625076616690778847806502951315064006596331890047502698238277608460941303759729604439783071012923081037203588211193572229939046057915623477002442409643793307419504095177790602843316921210395847183844353707743331235379265420930680917592293776514708806677981387097220830100137987926376421790110191036644964053206136453084508405654099808911209198236317753713860043022264390862220103166471137879735850781045434322041076491568931913967399397990772543147963292605242425499061769996845966224897282320489129354085978445735980002524573908253278450353253734916921576559112407053281322692358211331635745827506055061004471980739170375307876270637875796287406653245714291969378768404668691746214630553302465685413687092254916596969001259436271858320340086540924713137646765755642911095835508729784889068140980115292981099080780249130012982388277405560685031239717002775630282782998699436166321529106210162509987821987134850952818401019920497918284651966319303674152281569538835512325793512566610904469413363095249689748340386517154745094681752699493248242310138902144777383309353288858554182210256598584289618136314692929808847740647936964971933659231936375017994820635899742597566352394714504375730315100795459165747577173249276424977816746838920302414124886235798198569701720929506710380813325243655418335144037341015868147738300855386711391096124224661469170478269085059157301491273266472055235009414440496267560349329458727751768575163041017350819049635155111774971555704831349264730178116339502583437778936244946796249892845238259723347254159071530520660290625865698368297501887835501311518327602434055475232621824593989192454131254993530332322968439765580273201793817042539034386729229721943418399810384523721565188455534357753960201026325465291826749309532253604241907383381242315359311899816269939952482042997193189383896805746408148137036366114891418292495147019341634790607624039367159633436942113983134207326790815404725976725341615706655281908149293326378981127522335419059075925042712895617346531361623325315930697273051283476753991336155794146249314753150477224835511393603011989574346067500171909732520646149231419061586089861299931317537424428361389201466469420666086858829240112469144988430574898046605889737424772608046408254754514162005653000610931558426784004044920147636519345694684635021779626009763782027353039659619541996760464957721225875173937124399157813933098282125564707968730453600163495356502279164091281089583376806546154326706067325066926893061892527103011985702576631710983106207666587366133737319294353489682607488925167257637183620574463334511400803306487809297862771355624852767870377103150870404883100874187625253008744024909466724058899553182918072470973122889311895434583015069366447490673781369502429367292506405534298642506220231500913124816398529540625975624561671773131350772536486192959733459142878554626282248098124222210906736840435451348035195634306119502909030149955141431925246584296460182599956556657578084500010083628311846651303810183799275368257672642622702052534781974003498771261963971969546746581418366446250078244410354819512303941390730671080160694042545053202605531894071438808102779122762564148739101060431436033637094252734791896965609646664449121943265930949140933807295942880683417764442194095729706426458213951479789155318490998163855307093972999692845104151119684506650180780935145728022733473826579744032290553338947049146646213112274422194789842748507697231204061037364377960099967029688235494624800269584693111098857626891812882703066882541903046176806172948519918873585001721844866939344394939018229668690795097265589727453781257927573895172922966864208184566768375882751845935463251873533510046785649938233267899134417543468297284119128522804765126887399356165059990471325044545762563218594464138681620901595076806920904667944722303585382494857960332464506532614836667338259219689506157440447001528732554634522678169100776365912808511523276890906365558127996043686035625745604691598136834658474391369516799210177721161698659604580858596728144036119158858540733908509353653355402524877862992539352125581711086277979007769147515761503156405589939706487600644546892173454062611160258963810557498947279242307492780544681821220669592634264337924007214263621795196813794796142628097999139689125472915508096436821212553064939017934131841514021018970003480358902636773228592064768347080372398656116434180756675307773091756573927343117245121938068822551768900529366694009402960774351827123665638378794883877346494436662686626833223507190296830142706900554787889627740904326058345126355036353412538734766395130229071003822034916242683605585100701344333684816896083041516054182066881884149603262717817090388643795257244184618530628323766264956385945404148817904855560883929256322110523836517601370098453690195091144837727153243334603620364699585359715755431558624226360179687756998807105895247290522957232488281984916454062239648183661853413700696267752483107376147868363225186329173867082152995804369442402716001379118715880743046780597377336193993652483946904316868289731369421480628430677972953444336166257636598357641095168929648208229671455427173572405690701238624396512486405269481545237140961250190245060597609366926678135676967322705046467600695116805580318386661672547877759218345498368464030678384181586584541053722153562059905074334688543799126299879111024641924836995554002266028720584946235807714974039463983373856280752478512329538838154266622628331561072870544902293159101168150701839254835037969932739286160239863098595758224013777803320331026906496757173749300451756504436913372128377378968429230066003118948926734718410857934381846649373540979875203652851482164499409839470966967454699814965203484778795995557076725694937511201394976125656061592093209272949479315473546427802990126502236785372632799527253539241024709849191004128084707112927254634799383036773738501588353219909449352034992544927603708886385992764801119791617633871373055409888533192645760120023427044040178092158463277571310554022207742194141924190991404425815377853045003465057670690407467229211597577104886784824745314817359705318934754673195127046309555061413319574331385291792106138272348843168337855642924153297866981351202473053287959792199340188143848488178141255030201724194695538534727017455431225153262321335172164481387070156846691990799440643547185390068185761043196593962547995207380338605167775648374886711530816717393569955304794434751618338123043035724802290846640518884984704888634609055895157320122948155120310526961876626292232252645171073588178817252826767597987435996342980088168138787239404506095663220098936878853931070325986021415008311536260987213095942179183322480944077808016215931369460165611363159371554704840882107110769041929202798435676409530108950919814277092878677152603419453929754533203543872510838540617886299905090884833100482822716452207507795745051250494997405371126181197096670034018661401428980825538206058044743842587658624664269039529251245322800688675689664533198657034069151343602620336385822886771224452587196913574025634221138085155140859540680784262979090711570888859793268398345196914795204524705143754558171280269706141965368988336371509563064370350605937396076906402480980421898118338885824916488897346373216802592526745837988365954417282850977352998611722740532127538705368092722992045148619437067202126017412622802456861647664487711640507701462764371202791910722095199651949241571335186426335706749158714029724953513240391876890144092302043886258555001499191469240331377882243710559074629997421370035745768811458063896587598440819296250204857878565932574320156909683199227677197371041356467501510740872544100964636520135784601849131750242388617638986408852015475666133502216907563275280837661204189950158441428079806357509458911167765708114362094549975999288680110124070347736493348707745552536278844945211922189833549539583148130716436492866721801770482890029514344842513043592417131132751213669783829187068265696116169779375437360067167814438501926519066256444140143802114929404565041524095017807093130876735936143023456879411600949634618525373821562464714750825143852668255611885864554363223479800489718000777957291355504069058557753805280187291918616476055279760847654478399688813035621027802088347947487534984658108579001607450771455466843349456645816509167417384385456505191003701762644585684156119345324943247832587855217070767953580753234065032151329908034145336811900915792737723468707638338225280054217405919264756698033826552540251466856217424917919127452961108985730659053284508238993487863809678782575591950680640276203024870382705565596304172682237176340867535862181093254872208299899684382387332397843533686659903188865515637104029623618264036146280826196328951988530594012151538188647338777871152616237701183964000702485300702998080642752041701194987684689356098328696095669073869080586423728759435445050724111824310309805254328339009016538240337742942982543321999058894772759888002541533866362684645097273505091202329334280574531883776204475611219123460083286857948384835913989005813340350197187529436503172575673154256581188933731430650841330448200278596940137535778998067540298104137193715477639799041764615405235584836158202311103407459382488543191470873635089243790338277675440438375819634569022426680178503524327166537234147828654681796214824324206466899460870292598748848567298288112714484243872081056047116879922179683113099772947746386700105851709641001776499498255364482798761438295737457047965075164918583510300318619418392712141193285794781866250877103801552804296622288421985784729980754125580147003243421188920202893642815713112375013792811101093699190698625272177565186864177163261599697541893195548735323497203821431858425941148344890754929421928843726031739693540025419549609507231901817101041614509086116785034252003480646007488356837045611389996730922770930320775172413795803093649415915670794898291383795745834690336081892651790152995270367702709013415875294487379883771387865855426746823376038218938246614234044383291994978510677303846072320903351306049381799074757109758847389087460131488200761204300069247669002729925769460993770662820700180058162717326764159148548753219775334519085641702044727818739101863489503482310984623402329432950840853417659437922322038223562754013087159776529634273748839662077705527716884328528136297126095866339012976662833180825619829057776740327262414226579776406718008996590657884688418407173904496626629375477841536957569823509848790976859411937672965028375655951288878005281470849382268310313853726042126641251522518310046647782296511123988792892180053211349754900493267962619920140230953877699531773930128859510463676265283066745233459722720964853677693755253052109274543372225283408396288424908279368330935166747191687773364776448241992351910876866530667093025391185152765145005684971957675916251302298874676275778629128368910903586657700621752609490832221858216003785370814607448172297927581471187726248442474186134452204632161429552743644913427558167046644887855255904871354795662019558269345401910506403584123276883291741925246535903248656197852571230749320880925831684079713967550338728309564114222332319012408461766489763136724745713687138612807672248394866345690389712551115510056189385496728482326727318272156957033098744130696281126128483653863790432226015536634527661763503091133439931784081021577571858256954405918723864917826367371787259039839189254259941241104319484295402269787923005181316970748882089731946276672736593305984093020097874670231152561176898458051281698095917302978968828716644268488728673823284702116400357581940454044930073316078319462587186630858836650761663136294712130853108815409717860947675799239045847009028756819249655286800046850489372944999712361986598173455812052181073571284330836272899498654899727830250278772777762561970297311124514924855786363079571398185085696711952836026922199538647606753171895317604481811967992964209865120923886607187650959636649043397629600930469060761799934709275253421032038273057426390255154718188877062930438073307625468188152239584096566365669117074861905529447536106768903425872112524801646493420378974873841768818181748292099047163283668886683155061275687597238959133640402698978251696285965150805001039534419153521734257258555208262345115244473119387239181145251873157971460108202197280503938687520031578782966998773313455406228423694071624034170974181712503967153210587295845671457803536079406630114613205644584645010665631866822109225149524694500181760888250499298190907797549640007849899105927130422331717980717986755672876554307986232539838591289201917259079294065125439049943578677805293343840093476536975964114560592476873654131946856582088222532567286037155716440631019927712511664646724849869923046592824616069037383566007005150308969501958940952277433641131511921105444381661953552711351430128592057609693751617956601704118639585468161970888434490938381212420840351817672005891401523457800598306101045667085338083154879652411582587138179279728429050983438248725299439266402023099483140619934457809727183067747988714939712837557968703156824872451427020563064349103838808896950437102163253552879222138858943728159071026652772459557418162469722538646438830207662468506743119560645596452198054436903850070734741199678870188499720406640915948461255746845184876538387066476570634359431767581508716477006284911740860407997433185284910383597257428364915427283477499289651250481122391676540821451209023981847726530472577410451993056413053333349642938139874993248181086239341916443585955716219766704077811185883937899269539704384176096158820706855242463019857866256012340841398917305495989347917466906063087619748338387645125528287334577077246479136759695200258021712263212095030311733809989044130035172366022758221911744319174808380522126022142990049990338931360662486352236946670942443313554849131812904042954942027181404837792100630981249891909137375064332236527998992254621485128995895338232256528316508842668745225288715363749456493747758811261441129612823526067581254563026747728113593351795358005373163989264555522491769760152263093335966950782918396208521069639835289625679163981835859998254422387290116441379490275374594446355903335585056959236085718871664615672618137422289611854403067925425240252751414298827922536382387579984480544811092894332078186389285840237672565362879297285998696915108276884311803977951130554255797495380789061631288582223475985629319000413753472019830578498003388047764212801219124754048262743646442453710419622895867970661697759214284730115188972472263070639665016748087149962555260825403798489494675565903088868215710098008663092231808616968452536235507890184710023196883103161704920985797163741364417367413065615166785884826702119357533979803323349442856087301016607218175242180665327699755171028281379108348783394738868291413503572354290397214176522243377465723699326997452624870850810012595083291968098925728134205449114433374363554794508822367585667670669677304690232958659937615609440879575100218808484804457604610443872215466918912812175884663340626045421846223917293661881903652108458877215903396375145029187383460151517148326874175018115974571566074361343415381652640243001613034531645320507390609219600206484923956764011119152463071647986097926649569547169240720938380507269762059497075949524194996771976331445852587921041704675416911604316031968016802508671347071605283734119271701690391390712271901719110899969989500677012403050470049977143564269948615614827207822176914805585470704922719332341001013319581403490800868361207160470640657158343581585317025020432911327469165842517639649861441458094852749709582968109036829931864037921820642942274228302924343062581252550083024314667292044693818356111239188286300696000088405138059029638876063212618284270361709998336578107180543523381056009876657943254186650203331333716742391306560211466135029440603884241570693002283722017460737506736213250045831564356971495642812323560240506304819462950765173243532182573299988195024790993461315199605270892402320130272525815518140471481955463707655674905055990575049498911265769054368758535815249131389179348008812591710012051430170378356856940959360027568998653546809282781407723248229316012220281713772627721672296948224819539233662729077701706822646264847475177340867497471702208952090307854356826593909933636578540125864473772096726109515761564776717304260464391697132219323601591849811266345314667839966565697830649849077101683742397058187351648814385566177542842725621428369297963567233746822829508529875281213889756227001688191609607793086747977386749698562636337263362695919462361298316306364225685513173647104715573581010397352383724109136900804598818143150825625891292241374038074905528690906888416209972401742099805568920318852646515913143135992249792674172396577619227474733156480848587164337580374128036965262225710997272521426384064341175394853896622607609325201176061085559763492520482820303228542694707363841368725315316568400603638153007502382324509825427346715966445899100709946686556184229064469384089664967406776928739907257499991320182098028962725156580864661807711691428582331646144181123104199077063084302182411396200253911811339470153526698021760914845867034878839387967319605106042821159768950592096735547716392761545141208726617260564032824916730180848116023683470649858347742119676915213624610367578234194753411802178668245785297083814736269680748567396420821841528716735515437584593305264635146259350591154649660520864297269976899997052997922899047368186741834532685893729213422442408084944999149236425408048010008848727131301604142124773297650419972475317901621486125325398758594552316284428313218144926975368944735859198675401008530839331223145055796485493531854273041149265115552973099198677054068232805893584742687871540644916810735519205825809353276842402211949949601626852196272119497097862195952715099984950012228376312211494622709943998774380377674594225549745981633184085277141137872184525185767457965476383489968538083896585935029922838416856918770957459722076012978832266446068129140678872249066886815913777519852308881677178209425182179247506104326173951715366915344894471965288878975944390480340437576938486024251494164548956154300351084306139198921649622203574397104786898355701689084048384577522565790303850857149360737849082609565673313210303683200181042002793924219035647841500364607569692317436137403977847270829822914040554802400429931013751827333833828682033837505026379740296027922877716728550559574140624974602750102886958460549633459571748135258706335468712146558878056448550900970368966792462519409377162897395360398049395352505719583577305705964956153992201639901606933509590296569916162060215084115048727002136061915662905281363136304839282671036295393727797314079699966975141778800184363859483106001853530599771544201810489246554449604510369512312020673523097543694915687177894390552086263188021266198777618670653158008739091883077649198373893331005713398154867195340073563169445852062668236658164351359415907790659899362400661119844754569806560316765595736671673400428675473320178440638661543021043310968930095408705418676909294938182419419046068853521882365723846091462398126482300304257202896626082339747524964763476441399090793929801652804936177700582784673182626486804032870228892893546600715251233807139094237827982349452519657248616848130789254325992470433402093582128052083470681097739264336506998612131198928437948460835672570778368344965960377872628599198631086979253936045374871680315760768284159495754739964618635082655798967598624164018071070249852701211830384240169604052481682066376586614538514566116974094184800222622747956767635545294903847956995158482082803550943213984718149479862214492308542108495879602036206587922743366580826367160348755395415524234370179956336269710390730851442866185946563153974593450602904091380031430054312788969442518437260431907068989047291607633540748609411176760243205036507064236448225555390563133937069486940156040351114722926484983397982895373249037351301490967378371243113860780897203899994080324620655718069838873783115108563686522676267124296112454742595945481225026968844142057929262441111189617213870530662644102766461230801071529444428691706707180297250725905290669941912710668242420571459666137893103509809296892522035101753668026135058052723223164841219297783466446822645579164992308086307681197817478279630065454385593215521421450703926167669177056943367999386601719108338910730247877423384210356466752871514658050141291633093536067659106289449958899428812926437342000282120997792222846717919085543400490610926759126971931590006290547549377979846454988221217495379396401918769211088270952212015111389026148072284373740502676145342351870259355570470633320865019829257078805734312758727682802702542100342133622985277959162529412754201443564568001390741485714494863565241508418426614437974453118335201364322378653719040073102515420099242741947587974501841182523155439814071847285478456954273619324914621970611352641756493228186530164583360788199223501771366515822755060400114792363255057015829281699383411733632314682879042088192206428573669422099305625154288732641450888708482117681428347675265443331936162635126917574655115776896805975788218556994326793394520602329478980613152437499236689441492431700606992998446986581262855186448101981293730443410118319653148440109990592791385979090321570288739339166542554792368547036767247166720958796756191432487388597427108172248898127030487494360809005360380473055535969631955183677627851780073060484399172316247364207594467220230854504666727019168015942866515112656238160963664424944849844020792083216623204083926100943085497868190512153082129080653163553406769192689141457668828063830361909162347515204163583521532580122825168804437842696957674899009232515259659267731859697558273630993477629907185849914720669517999679427564167648460696211387774689406092417311564539768625827088750442671006585592532019993094433677911525754422967953648066218423557156671096136592873241677167438979909041491717750531591580295278996182821502838983462866856368699756906821389939680018799068591379939507909185934434004169780886836632507438337707658910018289287858219687847880045700651410610461584069683318535578049545742621428023018552120835431299875178110260638518961621878216020412877041223847931974249221065414313723069447413930604476221079117606044285666123975849377950731696228542716350562381717210220653118845297318928782673850557806657390283323360898781837488110166629972330020215569384604703652278114949201487715378378786287608797319585133089789468791064440946487778036230113386103802340120268731993107100551837018715432967910034330834065295061933472122195518052558780131021940180535222004599695242600835588673744708626460365866585579981346191506223958460924103091723332166987585654180589934025646797250362318353031836474515100862362145136093609850229221769602495497170279084455377258874439984590605924061886526168901799613966806044089722493220540090465633033372300922254053940797833603949593451721088671883178234834385880851582204729268228278347688616056367137965048637316807188026426106625509622366256924917529928027376253382308960459020317848278899143197473439753086573151725338614350217119792508117156446122409196376472031244879231486318162799636950769921633979079335382089226420142316854532754207338510713096111106884062047666633259905444130797996343532757871371963355823972537708669108469063415199198228347436902456899195954593953299844991135226390804690546471439200863793992159242606912005987187500928302905703980552102486664413725774261882256508342208290051696381081963531196918359363144090764385606423317535562446364140408169400738598371855257677118080648274722306045853866933173842082867460077713332001082192873039785418384113617339442150684795265331912039616262911704520970500163408565020493587163106553878856435268436403068589573423042218250821349460494949804173700604024061078093917101435769171202089809770401961092636779275187039199572102545020289960500980306238076695109857983270306022165817853428129208957933067387735254717451832680710737325564750209431026179705008374907860323812721993481923498832033759674266844821358379290872760894059954866719147223085139888134633874089946963648905479541940853490257430115044248675257455912991165759095984039020119552996260821557172177947361305569534513907082091025889010065386193902592914067461964581149884200369991647352991916417418632302404593112330822696379489545113456216157104246700072093931224247758308574810102360170167853413871645394916394848315765515098538056006074010850402767673372867991962297157830462470050802619444269137193724024449636215618632501420630649157825518452265883538588612219733202188330880335374675761848597007427177931263786137712151513368251913067952159195747496841346100055683974460596593491183237424876523005743598270398104138468422711967820022179860027170091953593226618705161429170312524916531993043922460115272574752763893169559897317959012301338754210239116778929173028659400635521162019679992574669221932654232766549787445462817098925457395576304112230758353691364990569763537518372857406426638738872439809436787688495258228844392205490374212037412571226377620565221033076863995252680427136768637198931759799168551303112226398742832598863058080193818453427381056211422376784612059468168798908633037314095826326453426180225754656713976929207765270764196794984503811550588978431910948303404955457042397170590417380981315879885649216057519745170407042583823066050109633477425804134151844671548724532272663471851479063016235147372059886193229836513268159803232343151496655776695607063271215872358284794270468114160289450851075753776528573485900907182997040811870062864203633198058601864006568637310959515264043628325230767628208863021413418149434196012786171568291860534244427186901236494029958081322628438901052525527367809310960726773666576805283285188889831443729313580597119135672749405199244904405942726068307531681257491106388618632195871082400881726268651229038982330677896886690201911145398497678883664610294246161843958682922895037578577031367928608005063245724037792630708372004466625143376830356550438557635475891032891712694070441747504363103864650861110116674782112201447312442855028089309475031170491270185300518464517953540816881798581706740437454186776733706072098091852302654270178726047546270564413863873861461421442397664693105308787755575763448136568979157810014930221896363756255167705360620340345336667417075355309659447071812089267457554846754447686549320155500054927255857157953729148688381596911965347001798737191161399112372797349361436797974136313877090193000900156968031006438949430670685436636704577656459885407290993345151344080715081186607027415231296702606243557301028654451688665264380087701217103964923549211514769604338409244991347850150755234639424348466131729073838924730062343149118923270146108899337594649463889279057706865085337005548726654939307365663675200362647864158001943345409769596507461205716343466019424090812763462267274601007336740656140230259563241268274481968745369643603686040517797342550807320280615837052564195133784716954337613629137531676633958979076637553415791538331226095298103655585642331716492066348684215591988245620756938655874460945847058814571197063550911605988403875608759019378124820629633300600101227701243658633214857501797614797782683680913304912817631048909108325430440352245887249327360752602558873937692620610639093923078746728263914677726045250893207491626234157914362290467333205602319568095136402275431821962627874774441300127369598159721506676744533282763793382373946143468595131632246064667995053310481438823715863412124406183767425194428495371144523525707308019902504108777824671582097881894466317661004852691202485814294847253263571216791597117157897880920775845393466677164948174500612404789845102399112113597562642519937818596595314606958445625470363953978411056270447558369640935638301346594586742402068758234636905149035426928285471437667640421835934055263159037841464808805092621783252616021442811128344798284587908684839696271596761314417194612989820404849390240412894044969148688151152120084567225721125112108058635699334412303366643407259671580881742246551028608861818364675327685757501926108636052813573387128653272189317835928250103516409114021104026485687760553629341708715756117811929638302332519165585465637496816008348954503870079676923359842442851728172410203019529922331993239719619414878729446560502006928489494696498622889091759246055739736558758142367902077998581835054580490380402541222716596800842308391110687275522064907870005528466255198777281869982617767492719295557851000952515710195084555771886466956043250429275655820534005157858982211588610861873155529807131241526662815051132604300420119704358951798731569066319784198298313320279604232482999175902408798113319513062095059345290792218998424853563232476936864370955012743838450608958475844582236496047465220865231748851114179660426280092987130540305469252487534757794948589403064394068170386299168720955579896493401745595425773136539624328530030198143648523534150558294182869176873340911462371929056632373845643425050377910002600786868828078759707435574770959261631962056930450108688198199186187899524934711178423435331159431458514598873391316826413907147932032773083838914195438557284950225214682472695118165097983477874270729202320766056595202083299023882365498924133243723189733526592304251411612001601613904107003163312449879420139752712775372425148417405361871875700133128741619610611058889322529925145249314702913407052197737284477741485005333225394670593781195391989230386588703225017466203119228425563658343158454406025011887237870296176843978537263737651028444179862811993439391322143414540648296107127964307736607474070433681066114024435937960566464753660514289628908693312472332241442741243906830707968222708516052628756588771018955350871997005272048920364947440183994006195245359510260217992920038383684723900372585587595870845382892034494761133191358548469082668302238549674263747012489766416358691693413454038892722136877644257078419774003390772249417976330418005165175561908026346933883360219821520512159563875000768897448791094008067662072671069661452427006419290551220469044830415346230203876849208686491649859809901748618499063033035978273005919394233101033055091898814908946551459613898903527525220412318728497575524510447745964978747643186748828545409600074540186482637283028401181223295234979739125187725398953457144804031165893357911071280109043595599602274493584343988291938117744093256347382303972044126482473591803645237529491108255198831674174848421727392314723885195696731106349513253062434960591690403689911167840205564669330822212309673585058711004989082085071441446675078972660243987352728547531221186037034475830738434929758782687138188152561203810354783458294432660476149351862081760549876583493307765954271371383533500017549642075068659667914375479689464414588741358727634715971269924853783575108890889764927325321839218960837804050171533929138787221160964596111691203158753775303019914399209760580563317413358529552171988156582505753496554300396650209815506779882617517216806271837149366022802722623781325691655083167944882900890531673541343583194876288987271655997055297690682624915623627978890475726414156006732464788803407479013484043906704273414799833418368232049278451710904531722869072150460581562347986715324475433226160298347257528674418544715687289177238869382484893758600538060646681113967592763053783475037987546717586530585395103207852904518539954208587848141803496765339202245715964565331648828903336361096079354544025503858708700074789087109457904438207471778991775367103329884927285453832942267002721544197069874507021402331526000897855371205587685897019091424811502526670807053113578596020242001461607758731564777546727477892885784271724569599540034532781465286073315389270101394795029086467161591736090005921186106844759569375688850661522383828535297397377887544151492201090125803586515040354505760117957066119461881314997191383145967814727593073114952076438945723324614828983080838591357889742580522791441582539230398127762525721267221899553011885726452155016138589199377720427658656103012657074710521757905339109216235853254665346113508023233935126337407461765251346025779351666349642837627407834768431204095169390383156341015878376128381572856567460178150207073222361511536921921481062657135628105038454025269016484161437636847633739438724193229362670454126048760641067934269256555280972500171940239606267667889315862167372858572716362595539670857244433428947018254570152878509901402205195465429795358373813251017052323348063960112530853094086080380000764390657971412599421602574232776155686769053236061484385506217386620243172741034288262788469163321377068479761533390551131338307648645814646059395980254275867844968771126107960244362705208601126334040671832865229051172760759206196363126551519719067092857803730294071057708731316100528024545077481361078496189095510361980934942721619812212563149494584785600874389013104912841748332591364062122502703006518678258448658062158922608277673591438502742077686527066280154818691209004399713527178210512049021868342753477071011792059846443273858074417660096417058292866751862217422498588025850849745294520375013467534564479154266375769573539411977006585608414213599636616125879682647066646100273610093904444790488566369921865397770967602993181954766619546615845902283806293674686846380406554517892163405063466754617391518495961751434058815173660643652239519073525147561524222960820812952302962180829371035446904401688379891497596969485346843906943927786835112779181654027956059104102636709394623181059645603876752195238508405051830735695039439137731029855776943531509723620058752551324786833273886997553609013287783632013490042040891321291066912222402839642696023422697911908052192394528664578343598168545748040586499698708144059170650779497896676288089782566743551608358523487269006884662884422448111975007013734424479543965402752941238854846152101393476619569099258856388175510914600131620039885847606246665282195401644675461923319028720696286653922941935564566252825385738098079416272551815126607332153661268003161383044918355733079121004814907016074397558608576828211023724084444042033318163970089683120056136358167669825486262548000665816143830641866303002431838751154402852817129046066323989173844032261955537007325640985284980473137163381173456228868122421791538437271455977832218346505841972056758400828002078504228237307690043631796404926393446524433510352825396767852270094645499765364643835081259734484284628954037725761307139188961772780723396797766481902822591559927859387020464919362153847465232291902998119698149579205486653773808248839237758806759142069756592687893481852173601781886730291372034892577102279668494088204193656544537570968067010854119001862726507659945331253030757102458689493765565571274143065500203717889111026529720935019262949956924370931498891622018089338246710344402516593673888224690676042600423436646844621196268656265078554515437777516725999610067509975165998257755283193280781802391717881071657625331652575817338913533786643255989989497217512927235404178124199931224056955115521369662643977111551564805184814649357134486437057605448986123939113808172673431757811281332295241098439029502104945768076574113436950178418326688869715883253124531602436794785008302211580791608193084817118657180260697144422175285880747811234028538766099195764888915437167439740281628164574162378321208637135563832379892330368670474683589346820830482064395155379740864405056113471829442259681565702777857011872349914434509338131071903104562068451291268250187219010359589572009968894681158359064995672802742912186243293899839970930866135746118185994538449048304410162160070073096475011255717168140361804929286803360346559117229019166634536682278456829035148127530127894360261167022949535694569602397474450418397527763621939397445270608325942729610172549040534895490746861316235424478726289508426879976862044388420418767764065814977136380471876853945035332745754767300824974015629250969084464552081232429371900772321897802827899524849881156430427074650955399870387640586128722305731876955335076893690082899100639120336976223850712750134460064627415287686915228928827041089629523629728041753415003077387389340534665647188124102194563721396962777628392292522828104369750451020724780235334624662429860899342430393518681408089039582718134555132990823208516979391797425078082768620855085368991184956083518298294983290744995491998196863246027635900230852342963376347230852488435839590648445081969692953999906944594591951095876976066052711439589855545744531626165242033661229831036645702999403952475357895717156415155962668444966064247285892946566284362951908265904054074824062456237528166619679219341080905946199464724822142763682936271321714784435678942878879396051890982971231901284176677261166859027839929907588393649898937490350501325351868013895501370003682157777538854017170072509163573811169997713210155603560824748371793668615845681627231922637502810247330107844108210617166321317597613416223578467114372914253402364509050328282809049971977517503306626535564944739579203919943719777785517897269555075905996242880027084781676753449880286825369015028410542558374365128935166692442407104371139210614616019351682750471048408976140647623879829421285786876633696415370962701942611082002159057045571740405827170491605432032763171534684721279166390981423305446055801287181592738215303827057006819104831995131797436499108002846325676979385540458487950872182357767351011129281368767380568852791936668466747331320288590397133290577749114694311364290393844018553324792632002634422681508331661949506934196640590796920134419103073312293047809258487322434873335000393206566688710790813523372301161973727530624169330725877602694025641149750892289346885219803299517088261753171912779937662224513096084352076169969317420566276475308966234242613698509908404999359702620018839994136360777495637882000717101343912004696631056692806991980929205020253704910507874017614290214440929123361848633388501321102849757654524375888623320105292972299259746142362682883981756048898955218284512851532577074127081468043010690198146133616698188852622610167611290859073421685318993529001711251324412306735958491933464000997116493055200932257216961451526039096285334331871014193712492724759064973464923891986000537976684339540231294670416507759766125303848212400691360167020686076207457201882100207468858590137542498259596396240678178536083421574042069769694927653038853749324556429594890982195002583315328825824036522677719647073214786905987487918830345777062762961780991016185169008236283860943519939609880254153815019501516288556413640645362636408114697360513718051761434387623112353920743796945030092958255781882174531138080476929501709259139251847316447976156124078411536712579543421522071961397443535769988195598854317598383897220075367660126830088536569415361620764208642768206704561270032904620584036478223122917384956460969748399452705685934747563457434356898748524559868263049150579737957877669993609703110239816026151006378022468723037696290596358561999227818863380789154153902346823759311185548099043660871173539797682876325990616808230062229475663390634349653277026326844150244422166717899607167964326469028098091353901736495558741516129414118184831089857726859227307874338406533760877604336076645493401286454700624969738423567600337704817526689718084477162891463852234809403881214506937858906610563561388576937022211570477345656272411943042640717498600728802740685075587287187640925423459951993147399440773836626917694673123292723701696738074796311233226190003818629243847724115007744570759036540281223084426315026496858827147328622733225900929933295323116755912242183559630395070840598286818628476030712011299731657178306266366837599583153717719114081291772860774012844632464612940350772364327958555165322788423001729983938504644839977144887944716711357780065029543877005904537048753239342921441038658605904797956003531210152136298743126819733899739137278320093675415176466967254818324370323631404897445656462837745627743581520250429598942303118347528640612723521817993057909299184249142525860397589979561240456453653222998689191266596331106020359173044354328336765624000644481375927377275190646390264724044492821950396057089457763547138345677455142915281545646548271743110264759349317388368293850480765029965934302738911096439070999966117146036441836270790692388714589140791199243092809101971129984610130565978232751125346561648025630267645437319362367522615474436052852243692575226077639312269273683564476700850652573751453800449225386590764916681173620837958809284805240384403261709107106037431856699381907293765141396356402983799024019658331643540102949498988876268629682969428352584442226924703610664205929973438462254252819226272073166915470781439232906968986110412252906678214396929944122100126324138678965680468083118062959847864844254000949313393874994766529617049013541776138469629348695872127304588717425370083188593156606948971042869900326399762531991687498435064297910705915930390719956298171594696047791024757827996620633802436667660982533013468003628367561637477470222122508489475255976434079231021972068535285589646917985319188848942178072851741907519476263085133212752756316009981272974540779067042884289096172492139597950967147280956763622563179152661249039548995444287635181634224160715365590196834435627788205397415334005621544103791275051349130953391239914991317146187511644220226385125759366992297739583596868502171535684153977044359487529505997178513929988593778019910061623474374333377178037923378700984439600901839353751672211351898974006694616266401955421449908594491403840637479176070360424727232956240458673814937777090970328462019217603841294525612429989859845497582886755648229185181660993279620528290984666582820948936340414163213503121772691124175548079724362307105624282352210696968366764258535365225291850334427391036943239826866078313418194447431281900230323543701017382214142267883211942988771266733710549349687020054105759765323933677000125683320387102365337137361275896059308508119836295892185532069154286141078814197048335153132619211203268015021209661593494686054738225376385367189586366665787761795544691996066596416695182070849592459654970813333690858928499206191557443585768061082495428647284093465941700230506887963538086122686688650192336077820629626523763430903069968317337712776900857141475211762751546754223560090720708797464430968155998922520376348198923882366576669370820688845430741327277115658049028212512384120955630979304481184740974512219042521746033651413030832161001910255392449340013213274658832484978951973868545399444076389257349502399321365699624536807407174017659140299754460384146004060744125263476139163513183584164141133482939257862287191037070704356771217013580013309024400117188850713530791653780966482672814408032608994439348293694891831236915864084203935943075464092251163539183785538384299947713722529388629950645051323816453397926292354019773112322574760693025663855231987228960273544744747767373987410292227884580185261779405689986114504059287402883619041279904974171691845690786248780146420377123265100507204357866727475254526968765404565798941502500083477112355946028568111254126640187947413168893715479898267273041321342416148350522314941535497988927603688788269024654514856055455935309179172526222613470942972507695876849657379777870150689157793938121890232670976904724930747087662157361808650908001893360641312230189601869237262585452405571722318910156850297416640666910892639629203226034708966064069869525861258986961090509263580747680541549817611274197252798475548838430501366111682385240361941596026912369356052287118732017951590597697283755916636186127248429533509240368371692562558252612152223056976112017981922124459860540304568445092636338053625142058858350276555320170449649617319231323750062336374607732370149642552520372582257529655880781012148881519094570916482787754042240344360511122436577110973474961756339075655184984835972181044489423549085810888141375650865846491752630529352684211753279876847971202784576496178182775188169943055472962732685367448522211110722890534896230916318918533775267947109580620567571795835744779597242056095608078332856421274597189034105199239673869371260785178929755644739676367457567391068633739499366268341174804791067030349172608434238081909379171261694587052253380442763400460829558216126465206589908644789876899571446261535661395409565265066854564936275648558908515304017147585190205414932593319523235950348496987973231335522574808499037872612613371100102826715166938059330034014561902527979820808268243839001059513096129642451329981097599459254639969984923290800669328331315153521137239878324708643868942662892284122944942376169332116702140634946133739278543392707214842202008887478531271690900279415614400847430016836255926376434787471721109204658576584105904912484464024103492600220031464835376770344907567820646248336699526418919053876330406654057559984502917721704810612596729713876928446015107274296145519149442741178114722507271527488152248103090589643152102479308902008902738845936732244654763514869034198189712430856882265975091415000270747205100850400591048648667793632505671060968498375620727761096173152550788756752584241545994206025360544830056370866502445773951147722608764763866429340018365642159293656218826718459127516891610581865510958722267727866177814597735859859305052057902843567240284634524684987545372423456631450756849472986913765570555332454526026467293005787416517029909614616981075097283138564904782219312001701049037575106099762257245282522606005386318164365084048155452807759023553895063723992980789159443943473126825878094008782115520082496148780840366066970147908216364038719373058039957876247507373526209476068673563190200153892322149639337377620195614925958410520559549362593862573945315356839722125552798805070235096751717713777498976539903787644422701354599463755444429911354708905439340412126171067902424351141000123321481879957479038353399226187091015160427160752761026594422632720016328261606658755191403735023351677088974986509982109470278179491413714057753010432357034138600325529193808234751043107100801391300225008985784625649899537792241441765178378607915280215271507260498425311750241223309762378415218322909614710602536902126018541465415835945263865332094472287964145803189528583768831883765396761734210417918689704883989881908322722108643422343202419740809244210970402835212966530291745871302536919688256748152154914577323998140715441312992375013141395999300015717698372843864597134201980318962704640538903697438774369342469793641803240228172662435742942400088581083883607864931618823297818820190226491709603432207365660838581857964451956507966812992912501297550020188809200394284371078600899462272265775531127027539805244273740608605171730564778850261010256913901828898651288903044570057636885165242418646831642836664370835026794965657331393163584819441338795717555795911319733538221250994347128978654309367047151071098325688708574011611047777425962610885813773062502017436344152045538204006705625903014072397583923486606536782073889723450556713508184293292477201029596816048042888863052163374833155088495421863765066862274435467549433280398089599255512359003582016808595669099876987615202476204266761932297112825645130512560614745850953144978644350420368462693635918377561556863689421213469177043747698442243434591776988537101255945438242679947485493072582649219737216437847171142771461614828615442961838556049758807766855429310148965652689269571489285003806715882242046240710850465465424738080760821463404149692728900411367968335384467058657711186229894930475236890149781276445417168433277409021506073959580162688790633267131892630767892367691443627737560243417274948849138518356915417252615845143543520207013039999948746872321041298897264880255338901388662642882128191597695327559210820577772712207481370336564680421724979119716243863285723178975692154421333509938666916769076098023752691293123917255746758424282175311480992968021216650956533494617763747870420494642304954448223020690275287868222034029511036164900026275044621058020251090042146207367648477306670767114216341150111561737521950143765925019856338866524656406258606500796561523748561386180018347640166592144730127800742264090696890648859635051571392991571416025747076582879194549915483355981869353445644665862024168869669822979809745337126027226090601773746202725979267449876207656262575773035476270277110081104479553663330304065368916116521003554405110454816919177483225400952481332164807023534264340297896234855002450046795238322200608181080453822347397471442920916649009234030089729785476483650988155333870609597439096702988589490944913579328408129479484255149327538254345205591943935295157484835722283807273016068406552320471683076822106435998948656774911832702663376993684643435730394305357475271275605680628920973595230193858900516804246616966520387299833339105160046797265996022519432106969704483223300428049793097788682315571572094360519393337138345181099418823459755252580697694253077934932222744731561158639311938697281299628943314054258072713148305180857293126205877856694866767818567185496910410444797428661839452434722447193974771224614266338340913444760153886099277190483034188578348251701528297008461988885822426648920517864036087279460230650156265433039066275023900552462951171710388920959585175686612518903009902862010839781359347142512327395142195900483533571321393080049981748219685015186144426704531953384510113584133886939117207649823911210899849868425527624469204722486560099178558951099165187167703967528513950076576753591185637511319062197877131457999677867998417572702404540752794812315299898562377619244644155858849953183628078061491037843122883615944087682908852611136386802594911019227397451994897478676325075899969257639578798311320323243389727659708772972429221125302535115510940068703474522248302956874578524240079141124722019270100633990372816923945503775559849877769235864914787576990677704195517097819399111898438882805145815143343505565955803344079924451120018529707849900585039695992755966021830523649090977885288454412583053974322327979990687357280053703949742520599041029150807449839729890290709354928267619175229618045667030127176193725106793264262677255271196117101971859686420023351798338799163802852729019455557857988176873969727884405423473582108871546465014791881671781078514972190636387424917224496991173777270086270012191048857588492217624363204825260734974184239189042456544563372395169910681834443036126395585878151208004703821231792546571819455031115640092847922771284848715545266649995995904100757830530995665523454379151538739764876910666683355485299653864456895133063024344453527752438568730503393394363651025603609993148104008890977381319051445500350479774175780675105704277581087572261171967608753592392773546490444468217648947634658750889776996797466265508189454783732163211095738755892912192128474881501968327675783345235840911520017269668630597823439802289505441318719657354329112534955063918657751388808558366480507209699395334718121157671479035727371736651317345445415438463070233475303073429988233076857330301785870917848295007418204246761545133446509874643332355204848170611447951035113618004349357300605469854140993020167688626117209035759740568475760882993348620350331877942778131610989191287910653823353411178199714613717153571513576916434261843872307804069181560844287288560733887275704606138485870545648942492149823145195220722002449633748514072634727355218791901082414893426042943948920465730231647103292293053553284143310331503629285782263339993428029820767887335380967128241903126037295201464660157849945266318321413727556968229517417918351686768718371774250517234704929111078603979001962520213799794981241840729680418990580837078624239725982345231508745285145457660839273403841917446343047562339811819071466653010244139818045612889181434953376124041242589347686352071220776589223594973567655146085162746853043572966794011969492692883454359907669026734264043768246211119968647143134987828669009179511269957580560302361097759973762088584731522526594903411917482403966557546397180850897805426339097815809277386754243674838631112284292497322057321065292202919943185835319464750788041428693403060362860714228846826433270240947749842853622190525583772039035506589490150193046837270303111967998519292253610647052440930974919169457385655751814297773434671790012389549789182737249370485766568808297259952994988349921779925448708748601700767317952210491228409547143559343996705171803262485061185306667725143105478902178495270589959966048575803502932069786449591823815112693111946116226799765971356274778563735520015839878501952621214083813619341744334027741977700219139543619720053828201887068528470762384685581644044061933900454892765951838055547162964088446608885277430958767057112894824857579454822285247612841843603637504987546919734376619106191483348764627106555782462456095129680017241331012731373818937568506880064744466246145610949607195938547979476050565266838552976201487250116059554484708180193405455343063960507477134900788797020617306593605246959598761395842397884558259120077966766779166921608855182242458169375608016991266756265303324801897231129303943383137897052865787884040057429861651878421715009469138339698149410860526900286332690922599291917708402228959310939770138955560220017615670681773909793667638822484596317375463975383134786988920903692951882915075665255806839514103224811034822299209541801430621206168496906743038416745212269561952162933208323020947370713104598866120529889100874104872668538110108141487195183325626912714350555069337666566224819601106705634604505999621514239565987592112268869426575050796147598017596220966259191332090736561005202931677169886540789392554728790434233321596270605851373114881165608956910407592313653383636033501472839083503375114099950662610989529331452732171235518471304830756121544428028392951292807821082395551149056061479711278599430437626381828486415617669450779488437222208694740594063348552419575016347315883461191426676077052470941831565924147956253174026849469379155457282060154201656014088922287992817153438012194387719958548958255164907967473998679848983072897315301128464156380584708437162196776198306183576386820002179091395763489513944625392747313284969249705414199534260395735352527564411997742370098142796959394187986617458206770121970550942999274027786835238778799165365144763965317368240273972643386966184745161668575608469769508595934578893793113917696163955515821172741660135418587566774734667651948335243729996336329425861139408768184480013869843403372720616267782190760042100557200071218676671409833200476271525628708163483740847375926428252762959459382892094524760050117140114892626770740541198053065163066906220395671295789238076059867888925090365579751355313671174612263269135584342552323475721003076017330130800937965245641914996587647438522851719961805240831728239178875584116412752591216299448967044363487250658020357091334893603783051843504840685056481557944336358464016692971578648909976258863257793347877212346236293841406703270904361336232810762423662486920786776486779520814880966231175048058367289973464884874115337982581066340370736593614126960358348829292387822342793006179414402018339139920778233365703955110322904133815302432119358817245360664768923008040227396716609771259687996111166220489015132469332652683132550045502899394237192565406390560662852566839361846134978763131016072274456395061502723696051775691530411333096467715176221925339639202049719660013708140472540205953748668185162531843259264772182409227089681476257090946688487876941417910488469750078025481912612627019200066300378306822147316329530021724955186407712124793812779426748401023028349889087506919114504246164586768431933887534055127526458625180599748561360772129576561223463402311171032289907493909405414087280266231112593428783384900107977666766221095596412325605192686588507332390644360128092241937910196834784080841322219944135064924025931868059852848833450810788954223496301276359992227929728403835706677792591089034753823616928497046542582923672241924585069967027163411207869458894881758079587593882198309616352932707775111732347819746243791325458311385458014134157365272639940219178246617917911194082024979405491080276693432534518164581556901443980394183997509957866182276596700044554267383173591952604509838190851093908511243895261878199451483742575335090484910979134156430938372785742072467043774950695976032936987040110634120893929973434174448181635539664274868791397428716637233706114387320542179155711614502115261398742921850708758885266250991396317637719985967038603291584728474652536838430631645563438336516316339624535992761105109358562025302177087655063353398561378487362012030352458224028136319370637688149783409763425408971355134326556104113799748731024659649040914835491782981922658528713508276128204956468152363194827090395792616264435641731000817288866481309000239275553145983575623663747643130968175321233961046651653703614637465905887518820538581846242262061074271075568193816452931992874958141184767252713754470231839265849726375474423766416498331010140861533042534609873873797443535767365929926173898155994855253927606284106934526473655099519173422104076741855843494016917072710865759280921230203380953858264467455374798063394063341306190067671371143102933087678402415295323090933493567481250576427261864590540352835691001166018747772556884088803619614385173552405761844317166730461688688294954869380092850625810724364732793060284340227890288312487851303152405840559502283260999606600377722311506747815310355184110082630594111078552161778873337319616527127732157163066821242934741533220709825172579196271091237788787749534345748532581050438093091660100274623118775632351980560419403538258622876436700613827116716461554837751916851622295170879205025347916748153385742725723833937509673461253235817285627970110433115673961579279328964483434333568491622646379538761852848105859796997214028752802821037084123898556142390320028713230261397453231807998016206682572716974971666787985078464988108799791237220428719544985335209889592227113665888698987978827122039637302207630147020289584226214734266471478148095992178328024079263115961920763521395516804208457428841185561673895518789929339156608145232308510380669347057473031727536141936957866946603715745383173200120699405019817094062967621013977517635360672227627979214867289939045347779763948295413164222616479067741439484459133772641050611051472109244369526380206080790176465273759493502043614014046755194150731089008355677078886666697766481362856992013818219799242614887519593634285495668668744533966058862615814524131519817769129119777434915319322506115420886987570368486698826112850544407453046860559724621563034488205961015408477391986593741124761276458740868017970244320165535558548613269572755795891899198008418798977256791092964247279356969712450517901697136102310362058988904273463208838999435406899271383922639174756830133727677750702287706141366299273407515567157940540858536875462352048149096500440782107358227259326736223433138845985687358755851162137797114439273728085041300128548324459759320902708425622733886779828858434149199108163103531348222819125381417837501181887792813201229195631395816359203821318207451139018680355010461662642125219679582793312539626783932266073106154367230544890747934934118157240566547807027953609903600875883605491904780311008597532876089233776673665832373538562384162546324120655126957664690697993446348060384293044562643097494741918358535912081021239247632164508872431267546858873072823738340063266811736868485655738639907005319040696774806817586491950675961735725224335238422156832502456718400024302889171842466667130166311321090225347746914435886661132969610766986500766064680588585418162656229827833011626958018468906649424691805995266610999403896520500685754278147022187233882150226885081031876473876101141702063313381915018601769884039009948627550581893360587217633190643605324191783851619986502770431238230356482820442966186107657606875337481799397299980515963385502430559534525988522110757175458542543883140418360789797229978892161997628028195587222227067967074122038201447424841966212100718953287655293276444811661258957459952416043058408986105046306046037229666282789374334999740541914232574556190218806939237256141107562575412602621523318661818961170799556500074845564703277749077604679526321085286107825605199456481347986930531839705248395334634646165245267576905499873604703142742672531264158231499091187961845526880061456713006643215980261109096201863488108714648656067086166640502416569221541641302355928420634134348643661716207544401903222818459943748757156330113083783626237331654461006051691920104460977621159663088871814668424053953400952776314156197804879716738165946020508879880799260047292875679418624385417294931843450491315485059371379046545043511917326848445464644265090387530375664309178728583305074951714486877363316618685955862888265093499752586965561351939865866882583863964124472160656350434976716819129804256578492245349729998383031650480611509264108250030373730546328722571153875541048660536580432405536637307259144142299351521556559968631297621327194256522132896757779203313866689765058866407584813683852629279189750629842092413496976778825594297411999040808431539442006239426303351450278803085615389729453270546852672641610830920490260816922535269740442103377035821515773220597395985636861317963533300688133795864454002358709126551970699378543268710849949880006501238449027844557721097019119575467405417945709615608229329430918432991899828057568726531858201391291674913158421938380613844278481057864743191229725579056193529927472192439363143319726729874716526456196602124800235874823586133321452481289342529192385453763194277550057745599071866957046821684066595829111505814345291927618451677691966616657120963803074156033821543840409405547070796239469451520081803621407085344952871713250996364104644752269261764959646841452286999181050233029620966617180137412936256929346613605988545697258066500529657164842464691579153655433217819193333312203689220258934001479513185160052581640645517455270319127820145435794920441746326249480079053893882110815291629939815456769633516404434134431188581985347198881633431053504483175681949897628721344558443912304907354472556753367073120565919242592720762498331974236311201410375125374165178196022258092877134773912961961419004309550461375343088661485491231016741498511060552989961810376719413852072001983091282648549537766776771747396170646177848047427320461444323831698664075102383381112495523928061278870611339016528549432750942238125841419481198338306713125407481147538585686240645594126052631838171131805878580317197347806260238524108766451008113295109691501038608767318272841163709822400284433098361479848362942602774078054269056806109296615263106599613129256058636996902479630523962412329594484713434139250440820593892566142086714017535421365922674645147094415270837240009181543226470232097511793489401426639465148004048037921689837864913991919751303173768991769761369292449507540926329011438931175156512682780771392941350769326815722955385026253119030635038832075054333575697836292541390444674247313515668544795784435145660615235235459003692256193034293734100666162186204844847166037373176830418636524218932111769271610619862361340707280462472538793916295638876794396862257656148867811989563533162885336046683721197624357908467430690658037364259643320120737064398825092479463578247477981788406540579737813597557843631613899564144731310885721078242666540284871159058848554312105882511790055917227315377324163955549279386559540294518722964550770236665220964634510748441397836540372369884166960686718305647849989980383207568948052289585572169170128782806932401837659294487799698697936399339535729131299108186707119986679953164757610738840783069705845719295308124562851321463836459776700466586455998201685548853584822925365745605204875840926800985428633911374362616891500218733486730560688156130775557306173341113160397287371670839685273281515558606269100191670925959613737662662006274588110067207228302357861052667431747812017963181056112095777454740421615348670505629986043105177722711113630197272555570826524523457249238953866419635845359167766466126291110106139332265506194140916990753710791406037361225006685980401066632566893433873879547423680190217979255003996711424609864129282289036257781505516886132986310519965797087081723988744819819526158278805745059609716873749150231905964400025425188845899740213008707781386422553136688514326004618661178627948035861430530776526528045966237395231128061814026927987229204309684537609048749312235886164836792869659723965760033431389746514974355874502302859753909096057649922633831134019505571984414566663538903364870902976405720739974323702519097317553222386872078603832433457013700401761975093571817023241887974176144607403488372311460846692452539489764533777728998175362814112715405443374966096268090838891827270413503230926829594582514616804498991764850408049455015502617822753188948973498138352552855006901321359168327717057299371393873509367626991815232995673468412017849108721029544569862473615642131757842148720563626321479608678352498759019074747405089698244018630692992821636389530183917979015210930466048987516215291610167383863683437473367374281266110706823020064407904479892018997810983326793728415421365086733087306198204297006834559247324946357864663518545210108507893557037114484427972027031166847087584755357871368561464280899075501557137813754819592774463173708094208127559583066136572039747603435965154644149172229590425115038224784682478259076906066911954211312331686696621082609831761889878808317504651017843659353892957735868767931557456188039270318278327594748945774000019667660385096984112195806296200853322864426735585073324360099749104067903526402139289114655421990318576272962524946178404499387267875885018825177761453241796763311495471482401017678730006603032253195429099707664730791583523624396398612286728071624795125697141821836593619168839385630021663912558346238571789149205521322866444038023677709787651563555883027630382009471377010205407220423332891791156801002519863392266753816453979640081745264788747422408935056598256016094478423940085006704836654469205746258763213826092202620784446228949576015054064762781085944773240281254270895825885568721175227641864358379985495673533999878148669479180357930008862389951760440713546777067982604081719626037184221651575013739205967718749945444879972208615715417757985231122292384749756009309263302942157786521753682325133841887441261373550275094931730793192541038157643008441536714664957631408121928965389431407531801597249602600986395385442286801821829507046294808892083290168580744415519566356958764236314997907985061463972656643952839596499198805729674857260389114390641429067376375549140421007520315011685813501985222971344587270298616610150938306210063479942047836144025519875247279372096355586925607771545232453243203681030783135376058096583049786412475596909798437292590912352522639053006845019456477776050900243307808242845877700628797870911536049825129018925373753291869974678185528906304955195797530374509539894961260368402787842729831780047314071877501266031431425766553230860463020009851904556393883210139447429684615581067941307026502756204994932054453750694320039664224982062214701002689998804659793717925995285971722005726381514336727444127441969401256253154765782713995487555540137266077246920754616375753233412733351480521566666454195989086724700513761468583587668763369887775536057478619854589098485457979136132482764448094226361108669895826543977485830228025018406506710766124437275973281365875235483370392033451265509806602219989408043710275203484981355240895035753533855791204786451609675510783380766222793416679057900337714422034277202184635898029467829263751685854306185551045940537174187224191294524450679548305513696540244572390537023181932243263966805258748401356830623131508841902337166993943576327557446386770269606544171914004079837386197183446018811815180199355811415567817591602271307164577003554327816501757824093822586777436432739442483158074281887491891554823857293673267693210598092657780331730289249605108849974858511737072025062047261122980917530805558778300622696922536371025366379324993319061426217907847421493131810104768322723059536293934900493863331719808793688635690917842131161539015109568472667995313855680492993948829217248168243417923360951059404117174516410178707721433129699429929669804721027545079680289859820963609061828851744106746128820037016119429404696127037924679852259749987939646300475729921056756827914118225485230958776138885644559002568618432100363146168150188666075298237753131390556183301923216263365437755683699961845167640102894098227246685978062380911794402922140155711697392639974185490968776645145362650823990574325711466789402721393082840829004997242815375388340582056953040080049226527382766502982645452436176889826670363965691268271430605781149929975763611961428883303117941361607558786558133016755054126113614436684870654063008268209168424097244159250438695586206100820902036776777993932800231085224407443508763093738103127412397463014635663700214390246736240724096297142816659898932802180237579521891686111050546571770621273356949498653909362791846495443727829043227470936802135809513525914182220658415449221323320643679231998295085692807290220193090339616478122984761442015049949247901054191334197705257952734227887877104841424333887228030034019513312291631530423154786470339106995683394982174933966913990350233929337177082010846578195154904307811537697333718087234112252059767375190563992075854967455458276138040342050367579983520495839781618776508869489285876011438588222730774934503840907023329755142871955858615395605150826462526998495714804320345944137639822844430610350397615683303749687410169462048179352199580974646712890656511929713897562933625824071175959547455693449634173868399007487776640828111188052570023170193456218985532272155596324269738082614797103994126850744322633828576413858853719069282850944804843367913005181499625483806107990856463251019557873904835837851963926718450384873012981100147541295890375487557865474264169586873053000133363159651751205268946178358091835444155955538511497327011693302764537771223764409462735976225246044839630603797826386807640452123155923536456696590573030854096052156228960196513658230115464772907172802654744132837276227866378206871062593548870808301962727286565642321723989292094211467509463388201941763872906194655981018044611442057128332357166920964925395680918999704877978802963093302906407391333569247686495283590133908100023524042340221656407635202150509162794396277460718604435069193058606370752572771417546533716323982686859325110498059032880089312105021678732745728039687243272688398541272538112644736306617358582202387043696692014614007132380422500957501139983757973698016106754200685891658205517512085714527038476001528024774866484324780984396604508088281853523443586423391602136513319212276784645136999511927230042351505109780582862596121827150250713948849473984366634405008793794662811665988829028945154144066316470362196205873414515208977335032015252522888001567227763837977905875631097778441919264987539843827081802325854178029700983894967655686807932658562230314768538226450699864881564595131283150526409695417830575240822386838611637906354260800180131332865546082225978820208443182272180341840682154564836781132144361063514491479412145559767153436155581413240616247496501150259354107237040877966757290364137807875574755175540753292060129478007164373265262821205035773040326692328096859512861089300866833647924248443530340449016285564320229581847300058291786722816368461957238438847370958881137475030766543893319587735195458754613281330927748291694108929437279561099617397701005016793317627676581179573114832593694852976919618724040175516263094033729129772774626540052450528848430544619318057160638215193953783921122453071822466595112543362465685391091386539378303870266477354853995900063726269936746206142229169976224813824914550465261035168364920133843301185835824377058823031419782343609389075504867246316448690298536743187951670282743003331310128994665242461068521051508414137661752365156249614911030114050799436200202542912551102867754816332859106816642570502743151415778477763797114044916791511946928279926988423843581676115742977134401211078630782841330973818154045302887138667654825622550667642991929761998982097030924306076345093310131986312431870455177916261006054871403539329890713053806131101582673884204362231640275356368221251414057030605916255019756454620123682380545374523059784792564850928831902740366152604602089310302163487551599507162493398087390108011216954845848600131761830143779137406482766852411586292300677450011683208579871411614993900730431870676933457946539511920705821061289104721535552597619820065778194848465259126878328623044246068966337115906662513824164095481583030671078047086467030310957724199351452853974737117163232054569438621316576591667530210415447249481164509828517750142518824028732041703388258830717724477230831028738366680641223467375342866211923601600727290095509929623705697412062624197318251019869976840915726121435643282094049841804684307690606037180320803356317728914250537670706813642947130700666474013583019998560319844509353999950109537143951034925933332594505298980750718728170383412111381901177889984322945901960811066321720232467791240891703947852490138371284489197715783303371619575681199315753880463557520443466549654891761925891254991265896791259607746816979966865767318871848930411291467008390305859358784185171281885975800185066957479465982380088251301581154330664149141895166193930600329599539994718894104590336955149758142599050106529455473079208923941738204680487701612223475444224482726073055233915765630763085706224536902324579174243626038925306205405500106406570458052509029158159721215911653919031580061569313505763634609229882667820872851729549985352958563486901699243655638757645986349750324643767606525000013082694305672054705131039923962507074444558421881764377556474371452943849900478015927621098622329884200566232733571117199601542575514806828859245284926517598877302572398183951008596941232156683519176593983190532882882153757766061544834963932999624022263065996641725188834894167019415742004498193614934008305765062846888636207932727668954748993395278126488525554614086093386651529445575506253654974436803201714304012281084103763042138043979284839710403380297787879070930039991194926279190975913030403823654335378392338534320561733046028275555568310239454044900952129507593668679461791966349286781985243336028075879210209296873803268670138279198488282564899804647861242772280406804636915608500552519504944467157036865407084562207661433283565699619505564381111414369470625595392425209688673841366117324970209548722294876348317778602387636441699780525702619168959881338132780857607756976826984787003742081716775964178744302671687741910388420909872192152126973869480990908877187474258705624002465143316776229224746070101435968445441247677955761702462886311836850342644670704436470519390934013973655229625131813059696097939824732413449154441475970907574684595917835341502688915195363470188845138949814558997110018744508949763910394661506420695816237805745820822042891373638710313687606849587391401593414543908434219608335349000548320128077946140184345608359458066731920779561268800340581360758463043691592648755573172346139002832787846986076777182695611146548105786380405093646008556897719558672493756769793052094909627924869969423592253660192937796391137264456570500497963755047876278387581111416692587294977477270506037738290014218043668377607292148259633050945779190868869523883676098415555310013129317039916325868704629417080530382836122131476801315797294538429798680932069910040906702764328943730376683032813077536805900506167940676072011296960735423422386910227429079544230923970629157948469860982781535952248178629409268074361826358237319934907994616919232922904123265400847798121119318642284420099354766525401565164695491171617189374065816582310879207445440032112395535090860319490747487568261490365320801237683435034927602736674439111926938213353321238885646682909156510624314094906357558232111536585856582502387094616755258148085052683911110544523198248629341468695110394435098594698925924015959622005806941603055177488457321953608352634866115896293897795860735908843923351889827538821445453241745700544326288149102006615159580511758586088388038750501591469595699393718785727465262996551306491296263588294275902967109109672801051778143460708919212090729598396343813523882561400134577297226970834747175792398905811642006217814083798026925844719834075950511332940309389196794372495622122451665965956904298795757770828908701053052046521366064831901082120667690193984774216712499025037177118127731136818342037715287879896468412295271207961762999468528005860669964249035228638107065758510897816568599125399803975489901505039771075438941385783188322508189847276035796554318468333934366043484972902913812097695971453555148678126905520934494252385662531872316690043273145051357429213596583035447040354217288462525641621110511675922154838559412297511473120404852403059132280193269158962478808430722630766620167924648636767275080023384544958375829187132762470492866290397339676191625784136361978847532962481719867071799186913824402728931853204428347568560838577566599728272692326236196059905820254439420304694501993804485268927884757103985143642517800818118778184501611151116119686957711804729327264072746019397681994942274889385927887509792079771253368791837135869358235552975059993382154663550857074317908421377058240612475925367838736908044068288518732735750597945861459096261603607916637391768394563005430963240429688815279183093763349037534321551101370105415147749515223287602876480869797143916197800955463952922771955280126895539637175500939287022955291152916409727154014265077510633505797365641985633933980898237701919073749737872730113169140328498143510058953923361722244760617077081666706639416146511451571897427216462550414554211986076565691097635220099610464130069041571585610557592386442528215854995469023897163629459305672063825798573610656952428761724401661840612494178574473086528762204777706994398898926659886161768489516160821945412657524576108104540280933280058414113122001332160469467489143526990559485500693409256927121102812761177228667140564369160277560224417211258545840175151349805205851272797270705233061292934584218067330109929314809400867832838792562571647427691962962065136734097933181802979124602452601870547783717967476244324992082362358415003615941409545017682410878463209011535627216060506247295265879998071358726163723251305854504720249326741579111044664386092527241358717473245285336482191088118931408522140340325322106572812028650104846466002561376408073457479214726013679562235017515685934629856408461012070503892382481670071978332368598455785640629617258738686103315175981495034299726323981899878882159588791760865395628699919186650204677951442829218186386582931257293285478340144639213032883326683794966846292034664004693422838051252380226338945766120589721025603029794008890188241269458962366877454057358324874224781133664815997277854721181330950918427357899394938120552066580198970937938045136028224810551828455208824235622617291978305915246323359969744395183615211711274162596769507091738203615236104591808190569914316616957406407125096186556474982724266629645482563925438134309997324455793944989365435033648765590367596738759612023268847929263923857600341971804270619852659780412837476904149217519724619360726555180410908959105859814382386191374019038149367464362328844510591964605240235842743968324531891013169818822657751522323350996515989115378187462072661355133220706590650411692279490430997843263885290701029441065916161560424259098079069536575814433246430467097249591124580549551648027319064920578809088468167611733933347296885415648723093114224783543154761688397279371885367414469690847188130166324746782510013284393467095626118017867564397813012837676694323261185423519978430828483160961127905210872280325601452523966626070524019362302970444515788129212723278921987716446959195468865865567092457664235749605643248120609611724222170060523332642709689533165403475003891810319533196459716016572719904108669119932529083431274167359969121557353881891547026328475859372108431338239342363899498725452682004561069710666873899167395744527146449086440299608945226197252403429345094723903792637278548307685976535173120378611519259566628498025016888482505690308819745948870105642445692563575005447946234679547242908043148876907476567310285603907773143048905307582664519690338326772385959134240834736180924097231871621631019876852248111809393321070516543536840401581724241619929962221715012498496196816417062174263847702378428331537618887106248967424296476874814888143412475330465036864004612698554367464064701545313130498684987441431689924060712399684600460024120418488374305099136287135045466927915051206392893291083125400705930326919868679880314556210902490986370974728146175273491047284495265039711067109124285088960125085911818285128806528582494017921987181231778704400854972418477474987636128830288748214901734579200745989427006461370741251055822439121641152428188457352697746403670263060618571075260860344439977315579593719162370228887641972505826101230257128871155883497317456922841779712702544348375864337079687261079266312919230100819472055974565509260860083483574308738192751009948242505614027556176134859077250229756204224783811225381374408159480892368894033435249557403337962839360328869079135304378951514555495576433980005210717344526463633722534049148047364626267785196505485577113543452349152486938419081950512736287478406862127340448199644243157329336702832198109060009164830151168043474002273118434503893288145885943991464905982998880967615297430251300623935065268199950217509707861043940729594050074753608330605584811427658910033418591082328224206003658424465138501646767505068153530486292701285630946487933137743924572411157010088633264045466921074135820418451946155542738868115865504741124364599360503192133665843099024966267949738439480338500820470086403136298602697347815235937059052955661063195854385648736902552311312194835264069447058567745660297040556813927819666676308931180958873478911610255574616360060284290490488873463281393485277998408770178104005404563267179917636057718478094207812967215231813706810409857896466824068083469840927019191729834883141335383727928188078363076340195947903124976571450754562308902193241594689398076398197580383651507712639162320066442560127937871043467995642444372653821353029523301706301426936300130098485119321130765665040533241268217022725079303740384110210567047942808928979035218238339637730262048532020528740635450579715386155665384787664986465925135191336238651798642698304493402329872397728537206626406202572666851552714178806282901923496185670606946821188447550776975219212619983548606197598632281260173382691484191596300274265928044281727618480440863173598014144330011390124162068022892022085742340670275580330599090435077629691397459868950714210432011703588890161981780254723016828910973513179062644097449948202013354884386576819208450256597481431690394663853162969661678546056713386679197993373288616181666112658689964984639470167927363813723889383005997621651522305219388010210716495214242022275334265129563636135201201399077184882707319576452519593011120290044120215379301880762303158025259480206995170833497250293088542092550019011823434086921063257279967707522678076067639466245512666710629327972040414145460353713863012229496921265779456146586661685964662079346042006546855758014407458818802284401189049929702491990691545580838223831823490868042494216310179895452323237761499536011155631937343779904630046819245194633455318416000706026292788125192614189500863448022965898426851226847112886399564033119449065698288229159204378747167826320333868548324429403941089830504108830553353075743957057620459702137805239078829302432271217101450212589327042695128426889475501466490327732160292984674691436053959880067102305843341207729244625536011254639365633636809869797175417866515780750427514346100312934180981252746867750914075590193301720389599034037878897990563889019208822742974840728363095647254011850201349943751563813490838954378663777278359750789983268367119848766391505662433950051187933099401638037020100217983009718433575624572382997636516899026662190755911737968388097800835094673419124470016249980091903214597371672957321461402953946184856531260082874447532880122564614810025218517884832230079129558253499072505842034215953677350592714392098539892951157318961185772494582517912612500523086968568712360200564500824288203578380248941927445713836826307508815781882621682068489121830550494460248335672130049826845131498383590625067576790941400218630075385499701901800039133419757711704813952256889488804829176493370662056046671747478424793585631437734806296684640973841305405369967194032775690073018470123516138713411532677243973908553131170947175514293621284322982056655857432889647253032407802737647367599214169454167773527659780698094937762182297008150862401495130487431829080186157036781573316204542498650518559928588981505032287761262670481434945004785647367666068191334044266708647770143228920623142949949420379762377999146369350385276614596287162116051418781887214700081728896055683136194663734596263764150724590804068370293460770360624126071481965332354519614262387410257066354442683392515302893716315664913027696366040682743201081559960449492813223505532958911464358235816472155380368704086110829712268537495795511210575327095987966020367059654328745507861127033903446076213938951819275294769054919878467873456812961541535254040300482546507225154075305859537708583116791381548405218928314656500749359314877959776329882031552222390381061008588710604264147379393163298622045413809274028502835723883248924145382844507816991488792984144269644015147353267709734455694840966995586314787564796292784110347788288963831414105293724631521739553548946311565041639377963597656447572314655097851322779340643615439966868078370085504430705958589053944428743272020352204773298739617880669702572397800080700768564590687529927157164417799271335239243230181202072694012162103151982774131176367429800782192408812599735420137633259767128352190271860307123135053231119587761046005728713602539398490965031535078162998433086934974427868025108421732556560204629952407619479900130671123955531618483464250884537347699895207850479117159336743024142608473721320307437740913481335121486820750229741547571650743726056155625307134134758976494750506101199460481522509720365245244940423750880816670281118172904493920263528727743614911107967817708330512567811486957215565196591925516609884238990621977558546632742740850889796421842029941321578858889819168704246843992105649544345106667910150715992374190311848101460200164251225524875292352125562059137256562008927414119038272556083640451253680231761661188864616634404888478017962603909837025453794324670100126356632555970395994802565866605332747764235257376220868208812728015469540497047222250128935306048748417353315136564439526089569210644350586533350319593887229564324134435760529589787007553652369556065391591097567534102091641789674461826401864472151856915538878927444567075367607958478296325154223985997409302966433037344729742854430105847866425984098179369754891286627827068026551218996392733530762404764264971663883278336645662430660222844956855661907192103420922307308454337030412542736268494917334400819141884132268083455146375095185375528907106073340643771414777211177301059403619650507412307612322823334913968960009315791592178264817171775593480973384139489235759994155353920450631243376369572908046722926207489523705968337002724663217170216143350782968261861706224435473409627968671237123029370093885279607664121881579162035649154432797436265626320242141807708606674710095425109298644371690914511510125141197775712262267890949152790046260524962379733273701704525090758524924848970876015405529493489077935620374924515598625373725407885325063811866535849731220455509262524210384344585536508865947892750757234565787976307071724944929789803226141582823626127562452041615904180808565116913090642588559842682138563825404137487610182352669920535890956463827851300141472792602331044974494849293574344333043416029225931045303585758549581042353865850123694873901250918688684493823712497795295771366341694982427812440959712807252642105406306545686018283546691486648829633083204787162785435671188141706676172878711763896000990709920046329403115381297026454408808103335244530371419517177231321923496315091782683803054668478790147535761441201916096759452204925382741440099946360546011856276153956604293770615948511661412532170075100973755419300772449581073050718353992924880096630197076430723879459234113604540124778032176159093596913511473919870213065052724361200707922464724551477186096215645547432599985584261146507688074400820978424533241061992439946719137259002851465288385286459425512378026556414166703072372714820427819211340729105498290675437872051823014362531227118372080879846925949464011773823092439917753616757161112288879370695987000676218308978348089390984644924149861372951273633822047087819599614893500354855598725799322646528979607541966255867258956231494091812338136554687733777909884682233274836689789146210894656183563301046625740294656493997148539055763981233272794529006291849731399645582022065552073969190182146620159776265620315638247718251975689842150182794515625748844445582985712072082183551871604504249355617259494243408498129759668786034934868860427887643399592848779676484693431877883903528597194961653406257941141242713271167555867075014526404147021560867673395453352142331765036543238899526576800790540033868693470513055421728007782909721694408344793233330655935623616003591442025625766322568698240368400534522191129729671562601184921235695355812933784974935530428663993970280283699405483348669199926254830131923069529146060202247037499883885118150606578576121605689425134566306144377950379739197817028759424811598418015861366504198826985613028012273962733872942657152360317427876780023561785940853600777112496864116649266137476966045706462855657599671283219423364632762956693241189559157362921611545445422000799724040948278655681456360048863151275815461770980176684200056134025968152147331344162659302372888684160639546650036304788638257726709104402704264786331205117195950096088176932327873786436489854733666459670643585241631569418601140693602396713520088021684867768383372889731825986745852243749307382706921378939951512852311628091369672424487747980166578418980103338916059122221736773103099742329825486017425589405571183697727941270269577480165611834330197198965383218709338543761669226379018522842685138418419982225963009034525043720928675499633864314340157473806469836671239270286942959234339538979288845519006591093035073298089535818983206862838289780438838722786248061614846808768331745281497479567694539189712903427240896550482902034868253383304815846982628958586634554959078544443261296390020204349162062558765453960768814940888997873206998351623737340488417930061939105291397741739729197407835968884249508054315691095453494322934377156650958585279120789293018874550050651351199282430172851436614490491929741721527977150767853152740730399095613456528989100646651300452999275693846809217265723301775727690026994692756084416588000919842656471543010413141627252481181692002786760109673009503357411214321272789680790768800704801512683665418506715386272383445900311188599954829161586559491387880396781411510187994451084874643986865952875506491968311315128113538727968326334830864961436918673674261454551753985164507802727650112270685481208134583170252262207763683034141984278194723300487994420906040790504252943896275899290816846312424701924636384531111560936130332822622542731416132786875364547769760458932968743551055216305242114293911017919990234383945448558514306250499480915650709178293370483867032418141327029366969571309695137908981010419698189773006742296341201065832551135274828095457782786129622153137419797764708193267282949666752876845552667310217709346571627520043994925383616974691708357780029939266584238443964118079259583623237803902654837010991453947545993028250043196188146147873326110935398070274201604873620873395154069086028325900900681190511002737496242824657422795410631137978729752525819236878744425953859151451582162738902036251068271310872417805659464120724957154855472966010559785453177315988022886189998781968385111731818245846774411946501899883516644569566653269252645826895019602286369111685029892639205014254919558641991318385281723262465516520644977301838542166601656265503175924549773244922337167775056609517807592287221220088093617175564034978276236395690288645061298102363251476916515947860539736489909358618070960996699219065724406902679590486711796322598700065211532203763514366379259843771629056333428516537620048191548218692966466741729068784859839188038195425907268224575069839305049389473098593777095406092631153339398204992307161799472649058027057311338692929166115843383664326632229033371024347769501000659557617507636685086040875623216260543811257322190092250548044818669360587486330050822820738991644934266424874328995289099506348963517665373881495401469548782749787896310634044365115617505396879121827809819403533645385062792300251982422173152572024084660689437135113507610999611646890670801073705350442435501442568260141713071029046953572922674127635633995391671098455636862967104862572148356487711940735312489932039702536902065539870541973212467944794095546615054461377908521823695919623540667940005032710376467701016149068415966860651651242472373536755683428431820595674066120449307432733475650591666724701560585331237379991058221415686159484514403907694007659345858489056127870391463171368119710966850382208726546309497165765944520118974424778981674626735964965216064109968311565672561708081571545548946820571141566533168958695780030054954116735574660269878719760279974258815012827008616570875932452263549332964127554036777142768118034656191169966269232874340075824533111904209435682387487238558001706117303832370099633573934686377612973634489325863054905445549276741329740973110521077568992133791675908673526237403894825304073657884138987061813324381350370615680408940754297419920870481297445738445001132467745280818364365762754704396217309795629834344124949429045363966407551250866662490731815825536421026495572405230896090413856661586872136348756663342007097785995365150618409604112265057027092250575933016884762515531474466523836902904165045467320156012734930262748046545166938961763662787571701624446127891932982043207564816235887909255675986166275413188056272400163380273120622438964184737000358324671398538150962260123923524772803635266642766965610206842105409963959740833093966142272221068939263533634152995882110201084242455345434598779905480671739463757509268549294222759400108820340413228396621708318203577021133182490757480485259858067368803435200549288121162462220582512974472333093205154769888748688793430505459894650474685807256070910883335965420542908667413790356386411310206074513693945897622567498938496985316488136928560189925997419944633745804561696727602733893243268721022159941827544485051569871548078499594508662381241333718247696501917003970981999930959064105154876989722229736944480110110235832356516454552755499223670007104913954194376996906830989774431826117921191749040047836204904861370332456164093503159100825057019624183830632845799418411332939013184144380365545544890675554862939712560047384385954627420447939773013716833709435025508884961102187243945512913993405248942258463365254114032612647125745969679176574265799175117142319949485963280073947614192471394091649700891931403267017938654864838734817061268403828904303465673119907658121711845018833719764600487896100900929902407847191638877809638718549866983237439172880682666233699042554537141340318072956702302271057710969058733935562227737184910028763355836603127791674406700360444016910464042801137831095072422308264312565798740127228132289620216369962603525197037397372643521532751690623277820317046574420477609744495424506010608033010456984322458117847155146472340835209607470794881502892022370834435430155817745115681599565080858865291819723090762286609691065363784039801349146261542126899477527648395550891994510798221771791557139679082035762304973953456043761184130470124333167671039678759298783584899189667248707570228854306364911916342144448716718152455548012695477663552196569121024049766859803879029541384013581161824634980650843886991852657445890265484599831305474008114068466316695839058258015954604014690619310242632846139224587294957783031491908443724169750940825748629040281518825629434020842884040458482225490795540800540318128712877995862915954198141110963416679146554797147901495322950986093886782047729351794211608448762151675391260146530612031136483889128252122040396468096100396860093716399190441000161527118875185702170567664167677529983277136535139733600465582241640260039227088802313925032678067848470540260284265981004017455855386256951339319923749625289494486030993467977551523622145835341771931383075413764551195417654965919289041459905906198328547510531066313398017943025692630786664922027946645146878838418565389914425130779522543845860687912101297657866704478189093842282351816367291391849581915719815654104362969006048736711738527787967538920333404736891617467443985130818786989524144310932515389831663010630130862402371285251730507185053473255026398689692862152481368512895149038974336953675207864610774880763153288929755819328672745512192980276221925725159153336826276687305477788429448979071212610003659543808031598688926585409587320832543335982813630765750872315303416931478720358652417516486470256370915255527830178305786300261682378533303404706930295642183258244679972379656798281460084907592341855281151636938680009893839919260338865405883966863547281124359306420178633883424405915782706549434736254505505873347270664655832622277108407831053089597360852765509873752970831691520140717543204397779390524740530795335145489952997866461750223951022704053922595582793889730642047588802153712323996860265179145928158877858481948556486730407551055450295270650700700791160553291531291368492505371153275364412552193256430460343668013269302039766020040100702620581604377907947015189171520263400444998145289476579475880300894969147412833554684360791266036855207741200827784623025441472344685607659119059592958536146041650287377716230719707843665937359457103015279822702956101601236782811366511634827775242968148782207734920561772748901280406121443009729709028641068522677781183754721436944457916394490965309396943044927404314439091665553684623578912481650741189107974655997175476807703650848798836233438186802898486438533426274805188462447655656161018932236540454465405150870171254890055915638390721730651877569769415020472443105788822922561437049280565251099187293861651690015495108069332132235571088087112798419651179386566787753704021949211869746431060127952884290688957044641309989142192504040993576349688323177151190795799522105992522269981756062086133390957399043735873968488413581814406605112565334113547659582116585980596657482127228730596369105050457565481752840022756686442133491159106751760627433307480688949255529892111622931254180981371656912836613166465728939587086462548097533535779050500903617263863778188879183449242414856505237120106390613215449861458233608348499780303687370650106951222401210671945319817333243326965198412062754431106472614465341736280852173076778712249237770364090384354614492878435968283401693126134952586291413998033830041904857034060035397114824197003126154601423950909741403397755752116131309800740486336083064046211826984498441721803370698641122157039996908070677609515579740349684922358877093897760678834323001207008143413547435324361186331359261297043180999289216682696159695917624657381362650439117423797392733725339340594381149457734619728728564504639844581185282876035799600583065782354934746320091744542746080329850901926848959929254128932902284802442107425275484927332604661245845769905053542861835055885131122385697431743254657089004149736674559589631146887755709917637900631061764979542673512564846542182027821995594179558178090043557391550165539465639641127655088909541300657729548569691999155168361792584571731269868268567246621340130868122908293020510262827727491278016189142104562226948142222372719390354533534198234621864690981138275908954038575720267859520626321973181395270151829634132615560888371672158646515835039269137345572977695598248898506941404212157775116633277282336834706221518564873331899595361102237798877922273346634731363541983994021487259014719807280600588814574998290744437102114963763736447915474415782726037602120578714522770720994009104885655499822950770995673669209796963190376239284461764823158722563628374419489082473910859593370102179731361659112182772849108539072326382968650461322093826156622502431598976597193746184719871628274696112133908567538883774844176563387230582260351149866056105338899613856483947377295475387862683397576672470228912790025102788889684276830999531289500742095927869788358370385129052056060476151101845789245711305596179305414979374407119046803301478914383541891302591810706140888681738732916937161061901585320968124380414433059790393563045280207948099359762229621254397832976251124435693856341565314322928230126637917036243792034891588220333946409670822217257213813904572684934188500377060777720021465114063291194989435570121501330023059833339424685555402171732055032601367209374461053977867015297119673652782580448360452574613732314696254823322491138232300798213379802847925760648139760313682805455661649566293583168355844099062474792431519777775335339455823203083431335673860013189750389317349743712194008782438789621266628829156669949895416839694414703941876901940794224141620031834685810207305668654701314590373476336147512086646480729784282685564093748298027155601335796041712537901519507500775977392360283463286983312189926697679675013298988823113021129079452073472423900792696388610918273152822024123114855941768756904576668174190609522440175915887035586245456450315265633473585914708688181175738208687007130785279255546272118607637380050867003802432180246900138335329262179624794783876162421927106143369155328841395850394750225442005918818271911425175975776201941771468893282204256332072459232925043192688184049772643639981287974294956431082087347125704504168446561743104718625537942545910825487267618229451037153677697433316046087540993318783397062084827378648144181276434970077818515624821361427466935777147911562001585911040854007529066870228494000371221562143161914735519181940605647959943215221530339481514928275728226585619546694824487136466495306651850789771980408909858756537358649921338834045032870396453656112843308071655753762092523432399783525903710155574515899949688162829216701548738914489385480580388741045612424855796060536538830628451566626427874404738834405616662055653164659821314319859479365549442152373591332431046070465465974332115452238743125299103726627619154063332957879548149321189827272387315391592805822969540663829101788986714170643319060463594311710374949453257013392650349219945390971551353771696728428928401512486860719520158506595101672613905462078123887017459574176005504228908824521999298924066457635785108923716017859631663241984268734124145323431357166996812818647331947926784671494106922520285162552543865202023752006143257564170611162198500802423804143389549785415922240420417336599334914738448907581721653927508990905671855674627405164444119936817102288296347421080148320522599603106615293814695591530047267843592879376393996191342278929159901715297590447698828984672103958249859994403771392348036064075471491986046806510746204458547589919068952955491424165337645734131705797294796558975037252608726921366426400692775848315013953102327901229515149823709543030886088228597837595123175287325635289437301679367313565795553906977742005572968071582614500869851561320103763053181426902786915875522845870724396691299608676250177448572046353202002833701366788476777405092475502157376441839599045077842225829441165842081007405780562246027201577570244215074107279951104557865370891286906229334838661020328836421612576049895870980789999561805600254103261762373384706342318595357020786742830118520600376206111595121196356705376309975071460025147499553064748773293456530588576334873147130469939013969369775374946912706827241762893510091465400971848337357585953728032623970533234038226664265342890237427876655172538315075338188266465564929837908852983434605920251653906525904892776493468127119172331913575914218060517090490356290555521908380814904580607879330593793864032797653412264663903522087484596374204181807008949120799805119372268070917694915655832763053549531054274113029535302161266971736183105931981751911510214284576132602127974319564975710759303907843486506264117390669810727763437674754667942368506396346180357426314018269827715454626177480927635398833751625898016777093492668810381178193642795654004820715501182952696516205447513940241222118797748782052840317049620154920773132091078189452668352052475312265889117332264534509715700220904171837014305496309962042856994344471313330349957087069195304761866463810674596431321473586094525148524098096568679185319195313346158048418036884617446113724479367119518247672449912846621653257085421018390650098370195384620368324246831771898805168046227309029448394285609477123363367115872882671565120198495813368964547852258818378463194828531359275348863873498310872185132177811865200904471858908327195738631485298100042250686288080088400361022212863419595958596025231096241871508227317479696528987203206058914272891618509437595244481559805270494826361527622451597843626452102703918931982058471790219320182141449911077241286043195400550113368050469886980048938940098511280608537542114992788905578401266481871960686162559054063718313543760614751983593398931100270142136993335886510384835723174705844557254250082111849174271488934604296107611894023719257636666025857761834118666963051589495037708671405170972069603141226809071267953429236340283695983960283619429604563246529412464765647009498285842036684339144468372099921239254510642876596643647649098305518454562471205802345922110640512761869542648026741021219428867470964751052847078251567628374160201389639365106915174601055729667145630749188739747179321584046594168930907317695315501016920313633949830815974405054789588473191112783612659457465918398877294877264925549138240286469117381941224855414157938288803621973437271099572704742515849618585977219597549296521383474543386521302224750541629458599591277658074347903675812547120797351322265665544073670185806806125017503545100720757676119426228743551055851314702283899445501359229364298346793329852407306792898293482177016828134333654547924277120776292434344284810475513583303978582971696659552512214930108818616746535047525713395490028763404288866506183301397933187108786185526007590338676324521227145438158690474799621823616364392087983169849751380249442646536462315264775163440207548734265726683976953423511182742996763433657022480766209836840146756316243510239373549372032402125683230575302106788091402618322096657038184729278900810705080865496788209291959480710677507407679311393690201841561160095901372867022384278605869384530017432058143699602222264481620873368850783503848094764342906793795422102433123303378015227423763078482253523241321422799379047435489629120661064407726971171325020265261486270908657368611739008351230322829707757821263803548018523923759522007504902516901924222345736747383671064610331127758388103288576456371242735712242227719876083150404291232611299312217534775759911886247782675873010011485057427768501644768818680064387100219751417454257064288098684003222934026560508139787864841733838569030401826963057685163123035680118748150281800745148520693263616263368461261090564176042636492045566104756112381095228892140204713499917145829500132678395963199944024539647548719960382322980574254838060988947144789080794369215480931608759054652606459594349264358293738710524207105056245441641030648242400929615482863146368953327117748647748299963634580740707687834352361106466618658427224699204294951582449438156166149520458838116064769238301776021758737569630752362827793533673806112381833072887198787598949949276229843106838657140728058532309516286018946876378085055031503412889464599966163305587797900092213984642150522862566947960651066926572657451375518850114807789180151626306515317789742086247684587529238537365621223497385158253742577032153282793062322944565514057500376989329373914885939137578546628389811227014185627748294020032374761543460462337283766086892766142541460291811529115858922518133749712609451851910523556231908333041520882340964205514886588986424745990729838069208949435921221879366620979420667673175541389510574251639667251227279657850097270146972743566715828867824090469867821041951935732626704588869689748918941072067123756598793881594288829901782028486502027060646677899272958756724285047437507803436808650213097536725356598494144664392045137945654897174448278193114112043308640015772310669030307538224468690337531565058301796863470392946298808786385342764039958597583337070142887167071961845739978809475503053184661316782248411466014001928750593812196450574335667269419882795269957982850149802769869796539038743496593177688000349102681705655282024880704991044577584737256119027155420662204916607559582431620689681851665594214321733911721577155028386698300569556184094006366505826219645155073690455353615992120289480831449205221377976536786267005463927876495382310800984062452369857480241700020411315098669533970743867698734158529337521354131523263873001474029468886057811960064546654083952240312576038562125168507075066340201467201742532137626774613113969206129283858322372224578941929405175061292601534565707483958197247435956091387063416201648033338657759463063001118080774448346617003173121850833466530246004005277125791326014499233592237806288440980242773173865108697667376706648208898387253017275278831231323569591689965957696909908938055796135875418491590299738278137609048329699506434751858127218489210537814695918222649457994464223539175123656771959226114869500046942098624342603682966770053384528762818193489969552467047431254690793137112344424443264855292634268108033761063063244664425430819635742111576746891962289205104890311762524349279466249255162833147397534749805594923354529157571003812263180586896335411047975274289306325153019266085590426397339341836348154682411151664677612644028771554136163329199087871257061733943784064784645833287419425241306938157689655581673842283133659553755699382246721635238530005120218194194702322227065295739232096660887572144207585541658184340098538441465566065922139591247436001977997026813482898542366330598575210034829700912321842154207101163509656238826614637531843986521753479012049908109622359902779866330331853686976365558358789150507855935155236541616664332867620133259812846403499696383075000626716610463110995009897907727619591912204755912406903715744422075644597710689410530685075807033774700470520049601303778826733187428304714367321491186967858942845860621753516935052326183274887441260921478293505699376194340912626060667649239023786319542414752443686354598721406990090358785797747425262276423549079369424879646930507013303538453943089883860813465950453219592759311069787196088352628344312305037718903839612418781587464523901393578933867070636397860509047044987837625272731533461221259744062967765171027862204386983031272575436300039631679805126014762973749297428282177397830078566668160820741109793471188758361678114069799844890963534225756571055576330807336998726514368668518949863366215391642671218247556687952381180473381934205128623611942674669907402964315788409235896887385201745170470430068637963512111240389856942026851277913767906840301988837568480015678865054971906027217606694973993757356180478902423424121866635900820890513784167391326543106992015548837113163464603097109839007987666089991547024006322434553215798621363457321072089782848320370947808317510958073907051863523071771459067775758595406057981907462113965078884963416315957626128973050291356634383013311545318416816319693030884252520116453679925450038315583690411062635393262979595513264422933049012127834577494754273369770123246489630272863631238828214397066704984378432653415900207772947364227359293423489713810773448227404598339424026437305046054615561468666840281190378263019752766938013944922669179365100935894471503672514417236530994660199985979190116256155631641866292128017880581496113358167450835323811595837469299613397691770176627474015578501235724577389974799490635320790396407854073427140976866517778181942361838947238332293093626440576007153758946299268183545716092300562634165144670250985770338968740789706535986846014653210228930202138626176149732764201725960377885823149449182407920750475791442584609844468243381748696466547082603350027387573647312269043286153654158263076282611139260609418687384351648328811549736837224194986521007134818834381845124750000342919948853492452562401068175618313484036810231852904780558945420798110323852224087808728897990045119819489353573165347912462294342510947326873682082348090494792164933240217814950244537892951849412649257309457102661905008298505006268230259751287935577237334087058579155945462824337781342425741031097618144067662745212717468512712924328215315500347378272902909479709121498230337838599741609652250127370320826766971872159462646654397415169644441715741096603113993737963641271867710886217852962057175803360085018080695950423353638235131165695174059238532102571633188696053585233118500861618273526083080127104662682896956761112686978531566614090714417836659271852436767148309091793800217350862824211290295282648972618897545267810667459744514567478392492619317026602947150561367938980293357063063134929204098037900680112284370640683069660481485038565839648791319158487791947962916140858908103410716627567288351626553866394752506451113476912506577220181299029791877810697092469287344498266422434500651861161097136764005226881985664198811965022675205328179363359937361995536691977810734936234813940611332076316145935910485381203621802730514524528886796987261421525075675759993337685153566693493651797849085911094164839448539361876243446385800600705230975718596768110654319596718059903667637858354227333396536082633372511772597830902030051571115883671327633546235806785352632262251273618428242976073683063053781528385480217492541889532231839698913241121018269125384322311107094011336499493666305615528768719423812640735016061318117892677440391127973100301772935549961637245634039416142502284753643557062873990404878758711042011950202599614553934538131242672582800105420906025977996875909394163287948652039885900087500410046936239188913294244047324999544971668539098365617538829036734018549005645200281669648288895814136400161415345330309178684325522292358835246353966268712030170354983985657782259197966257796987740798213971260960674304217820088117865517906125775946466886697840304759311646290114196960643763325210623411926628826078623972530863926328937845664403729189195837917197159369871869572950910283684559188045203299179779730104892934114038608038840540618327280749729990010855979849207301860484529281823782888404162813877706560229575699068550018024624426811742931133323776383788481179738802916777243896527457018681302180076806678625218543769332313572047828130847206582183705880655480612336110574309546886291462277717560065443092176494676342776713377469579467402475434162296444302008183145044978474093338981178929385737338369610755283180062267391445318629360473359700292908134385871810068404976683835635130530427039447758584692279906410389019602827598186694741637552571186415261180977139445666307915871921370630391558141192293482064553803678914875805737258792727065233186815706426631261084859360870271796164096663145385542573639562754938399246316200922870211092284239106009481884092822689377687246324651040732119751497792014018921505515294790300040321485709095045885774126243186848061661837578591898006352737978722907818984650729058673975296175626630286846053563548003223980336763918850231578021244273939493721696568209099050509403558974236949203345063256189948593379172724476378794658722520989175083870685801840366005156245904052794217558021522747936714132369934887145164304308352496847177292248557472726309673464230661027895146869530549296504811462613005428874399547164902397914665998373607234186253140429636956453197632859208765363238406521392439045563398697574660159274803320348607581109577551034384854906989443495375398994640641322709903676749368194246940938051537626663228508515132076370088291512323873410772793259950524606776132343304487221412611623041450307282109945228394453488799404955380031853275663005024770910264872283110633663483694024304975085135871145852140970213783021838984743288797291765832405310070034312931753332141561374374149851202219094417333388128115511525966690344535457527735690511140742250148642568410352973180766147055303977406320325447834165467835027577157786560267587161359237002443684679585426899476788281054466001390039127576002823833542507709296092812146604324256044575121165902126753120589927593032386397247154991993526977600958049593979185368510166161159414892661064496138470167331440480035414741465803891395619768896472086182059295332226885200236075528905280190249261140112539924415453187836194460836934685585417278192210596849146246649682156103707791991609686585485040432962504888513358581503530040008334925717813852353583014157171727060742714532874296349066428310290290761567826345472703997161901038340214021382054721038268835345993641957124651848281380352553390723328943358826602644163940225928373438406144129668701103294757326253197217149370422197086083679479069611380291072263031444870557472589701543134859246901160998963735579201613725139308496998688745618493715643833885968733423289806963131494139666536229304711327596560854500853022880116948694910061196874967307319232857878339349050617673618075979621370271924609550851623997918693045575751172876313721101567154880997311164102387620249150209429768519762593496255497428323969310949232982188038817666785652527225243312415240210550686769666437898616388916340411760117789540224679055412461476500342518624344800317192426728997095934408857135214182298191741633977485844216534664051037413964885833167831101204598148311539507333281817620173477450737745114053261956336552828287241014454312684694477802027472359628436391557545464870452817368246389148267064001834230252233567452897053539693222282658853300820288455410638546207209898471849314519459713866002776110336898575235570757974036416081839878138183547360015652433248509955877579068075808426699201029389388264135988872320857712867689375704962034999418135133975980313300872858920464050635871222327613501578380078358430198988679752468601629199954192016825585635166788325823616771233826654290575372362800112689804464004002274360321354560874383247716849840591357760967910038016613242754787467920499836096561059241530523548519151534167572389445949706721210218677054745559846795865933746291317942656062296375808807226208068653506566342578668300047453315434734906443752140361257048124832225355195965726585632691536282745355819769626274828587057583463409575183701438213133816862715379122908883727610793478157489808010108182894119615392591579734129034778392295167329364451961794381090016339371382197212254604742265215286182384315361307713916076146169601928903742215094640954548309996359374593222645607940020144235254175574702183117868396235644502566388646229318309073840665659116761417329391903929044775310034192266941115985681245987499017853670785861747582180461615631826831018644697459195929113633008794844665140904598405750680646325692808328019315151319324861515689473261393123978539501495031350645811515913303761894948518009372824851970734060955770328023959015027724054544702476173055243284346607114068591134860035987580765017932603538953160057410892996078959800969818195037166632603476354373426761244329450958280110675796849055625981774016010516759128190568184592270805171687950783257523450626578700212353236025257854151439983513200714619532095684097125625899035387770675386965149403265654454794228633177749330153924520889855397698553500947493923745708566240768099353032736148498186031966789857970947737594635236688841999740540563455425036187980950453823072395939490842525342581369140049708991545155777938770068674026089608573333478769098503108517663823282251145351817811012246536300326070826995333748097376232142795502197867915345926773171951872582193592413675650004751916031092199596909893944265791635269828808136704843919624907022665344466993196589929400484111047587575370058047117533487678950523008643115817193909039307726874339925238502374907436782394653571454617163992038730538467837531678426062956792587507827528833529961022814660570022808435814781644736157587293655484313025277031685816334957312625697314019449714594802981927142595237149597087969681130093075717662614973753361248819619676634056423199573384807480553121956067024936467211659090545850211675962239145625955507697071029351918225746339971016239698888924335129984093298306671107940558908009791885090669619973982030540525408381737960989558344192500883595801326837313446367903940949262645879186957558874843377704664583975327309056310970763478170751413288073514112558867212395477489587707208985490739100715438123344597305948586931366563906866481006235486684858351978866675057366657934270160601598597465729804026760261814735809346216687007009876140663185754659615199313382093669985764092579074441911359010133115416040783655498257654025360429171543316468599698957638940053546477887053553637105802647943091133378392078833759348226606534470028790051780831669405425998163785467942914815527195202152363457661118304748996760228130556370485364428333528562001334270317060561018289130268412418810875315381737205285874740223854175839419752770831947705640290742662540263707827852578482509720356213723972245521263143853483156942040292054882534824431669247081027241150746363179443509649948805345730956144362881211650930622648645539856315747584288709661759914045206087260690959520154061951859160837132459832625495973336618070947015566212220336747061513759810571243226546906319039880451119533469539694866808028098306879454680080628496054687470912684399127328318107597123173513967263734434195388322001363711157658222751526525966493115699859022996595066527633454725020657073575009391491614506544882299736526771252410637892119126858225949488719806963167879784839288662433531594599291218100851125412089661749617218808124801376282714449655165389560139825989488603875985263306243714762473796619207162814770969902975791255073499680590630097060344661468032938388001083484364603806466350215659307242583885977339417280746857517633719941492932040230623292902030148938973014870002723424970963963157507737714351121274936441915542510625929266250458269080720919532106628771643420325252520844716981590580761582694571515167265699864820505254944760565651815519813715867102724604256852186085655690300691191088314509481730067751298980411679763915389952431847713526424619328026867162240384874663918111175728615498248971277109058994892368342412979430986226902946986540604382524422830609785719646125999272873637160893261066231495997168078038342117188891694465021154150030866365155251808290062823547599339780068827849176225984148533183020847102099690744287985539167016167834857057158786731578183332485737620565406094297275417689262157436555239790127473911064364617350461065099428927672006080247589543202235359874486817402047916563734889873586453659025785714628433330139063966356089941490117535830918790155679073110069986740807798210089590653012439735970556750375046563917396646577265553329523307705748493060939541247964845138661549946629732464684627768953719932589998932646982546113647956079884854390671024793586291509394990225853661322479074059425603804667479012781140527418640094962080391704292651475924099328513466662546534643718882597515849368871805937655785603304600817082251247101463291018084985497040436877013359003640025243992896529843042095592611933779204687222112486326999482625109145837010863741043351431957238107428088918865364076689474870921055104931494414918095320555103321884238100387678917540699794313159318937587976844059096979836463898398908218966005723590472901919123679647453298951113205942788628249826756134834111048721891810812593253797125419543683119997356591733474451164307236860235142359208643544779158338996698558749922429077340232616896171667932236426040453047165735853425954342072566218424932862402251738144836265842118044056185203884654151276956078364223876454626137212362486985244495051687010426281728483093773068049434994671677760170390786270707556285341009398330342443004425115827857300805147503699792209991174692126468066693392684836018635080776878208729242269393034567087058680976434677364532341371410715809469171877667499282659151071921570438170356991506218137956112762366858915265537343450013144094921174321982474984742237193721114059146619552824286176926596959690515734803375878109282769286868731797493400063568891133171970619164855130119640569917227593839667714044606735737049370022535143333102009470172026972668066685533654876913598450977475256486564278029806236264404854389559994015654802182418363036755556320489541649848990278940806058926229261965069809623448297480997609879613277831940916643520658056258581327869167794645828494061903605768520806312888192023171694063862460005532100398668459906891321807148740828668988202831270891358326981554124613165828500169332057268490894611920456096406956081645871276295773486536087973518651947728429074728185693022419557129159897719865853695855499007994601674809515269863606220026332857243166499520179318875324929206716862142986938045781439059762621674669780754622332092702988581446600612429945606154611153466004592697564340055501269358145314489715672264038832501571763562129805210898676995539231145326657991967632300937265257045047010034676855864953236318676962181899626281551929171993432866874829267958119546782249661936023943270077257473605230364704037013293183270046007801919431209038421758926604923741410107096359145382148550050640942139229284245471010574970639748434492786827954041499895281864245887585189194665303850142557964589817528944064129084194717252954364638885363849306360828670355928985550890207320055213839118147512680569430984184338761369106140522073046005810207081685100789457643511540099996741916957619918791533488493221715934094929804650121915376029347218708476139623487833998863451274220115847710748260169207491552213429853167325891705504061356258153351484235734367254048465262663170273230608391377920548182929139995931225531640820743046495118430934471826563571617934738906937797565815251101181422016071089680835611049313013160619031699463905480685376249602515426561789926277377990279161277729188355443088482881899079169230382756846468292370753337735010310409318591817985689017222153465835536152719435879900952340118615514655723712717938636135795740546762789511827804581608833684175894076649247084250798307325358619982470255096344627207975170536683365570117180860280528235195165678504139047296580932909192451517014495079648137584538808578911127554913588410878393941974494489724763042856784590024056307527480100017179029311887497648052042980463291705036078528273828958598376286961129706611051173178738970404140234269107858435581594018321122319528242783624382030103641276469132819070824297912571705075134630486729146168416016659482530844938005788612011122617510169520522417886828395533219273207844521476941683241236660300366636977120085623738494844557672835667252808198666033086632862160597224587533160955409240415282593388279767668819141231998770345573848765497412402075398183942379449352820091322117345847637011704017141327511732096694395723438336034485718406697285820399673001776038068467905775838180279449470889678412647297140115443146977920525778956029568486054916548327263089213470441413422046438206259408282763268043625376616507347257475285787545444162572756780033622791330483019889282206801134167504822735410766316638770058698751387679603922399853326090833291191323809507532820645585364576914396842219751086275347732145545578331532013403510441754697663690716616981657482307965615469627974315860490002428772990300295844261255298153640754404828919572043459379877832997394234060836880941253020749614937609487159393943525798791500064453512453749953279936569667023237028727193077814559390548191857150640445072265120660613779009510164644175996300211371022627769000805246092858802546120619791001497623467789256140166261003917392302913637840785736636169210974217842561675133435243741620230687498000148489478115596539733119429118220980492876866716693012712093206390929456382015604576789911379212767842825643960532824016905170837464038258451111689961435578775965753352020195455845364788537261803769897580651352720936113723832261208574451345748531584009155064265835051163459439206035884177450722217591741020847522011549185425753309399292572409361361407309496661174252713718796997995343398647345930032017685817273932344108525808265196793936806243613542701119591286816044798973543060123216428618728050033890915358461711432823670108599307420641499476111203039426277198058765954627798171251468628566923316083467991156953102640729328387124623389956361402900986098173923023543208144661453147255718050153342078200734762374950546277948444695457104993263104691829904747266723991467835082650494847134613055549881982506091874871074891458862303624214502944830860733462827582322191560057384780847808346091086878985215283958702019356383327612389994427693860709181157779697522555170662551694458174051084447019097744348756622512670471643533981588469822808517425627052268333771795304511486886623214902089477386222853746285870878290465750166600531824823610653301287238986314887722388027390200994434310239975326367368352461571835322085980262909184086503571861839618043053914618668185040314694256680810879264467048878779114968717679542410013035601654209402935920283631638740732763667493446691347883020136810799208792407450062626121077704799101364545547890665554629167986640392135375525186640626058456826463408800276302459155339479576358931639001896550885302886469456569638260237733103059032412402117127115180906256247225743611553385782821216914705342494655708981246064975962695626557356303260045599316805476802177538622206307232404974919521785713311482338129484408842085155636871262180538906592819373981153691925843794889290519115877818548750123535075675346142859278785086188967083239346401323185907902563401970148001420350257141030119023114253633711425497848934440017916638199481283382087277458583456244914367203217688965479067948585529051135960601022885024707048226302370311140567229095823044177846467273688917964029388053357354698386862641850397583739714240582495562115271944671642935721956624233038000769017159014302136628308569528035007224001112410448984739530711729770901777952541333061074215913817960737136382113470895716904018017534132584791143091588082909483771426424751475531682924500138331560158915355006757906653774035062764304015776596938994091400080982284964876219309391106639081968435650149010447973501064845204352504586324924570507140159734140269651798908731764314138624212586565614242784141570014911205460631924250849077296974365769276885558976284337185869746122661295126957636766515178808549043710985152121834862757934900418368613217158820038694641958586739138475852792837199637641109252347132487325778896852856340684263243740277407282998368675897882970427275580552559446953815671186587372290402405137271084331298566876363321374009858043287303758028197618513375446238740961884531767175344163125459436862202122278643090975326318846189084359950916101008079811231108030962948648884835411526690592223144591827979186179159793266693834417160658254907683737623761545585265993749138528976123383590792452678663236927815294324240988581214874974283699627814354956441348002263057594245654487766262468897436320845855465408585009439335478448211282829090642451358257006544434370951004388178750023847470862882899667417176579246017085891626552699398238033380295389475892627189407495321505754628885546415374798760874016367803344938538876243971282649952843780958514301390315712833182905523963771421570110214958067394798676411228304810805036724903630209216295161304698225286652094053304868906097097761813524362773531797563754687818801995271869927462808319734247398763412214647371255366109763743571868884491985146777219194256715975314539399540000848362553775826262055785669217137895072347309952044789755354968252016846351224459382394516310133898926088968741052888854833137144356717859278461995130501909889059706227792269656600621073052424562880196250861044854796228773643131055256711170453313457567185529895872509090805827447885055074594513640170968774320664307666417181802085907899284986318819825212804196877536710740412298674837791286126993078359360779863758700176089061406427349473045176525943135346894495439491791749710321871044416292472956181443899785216823655693485120301423841116983738542798809174867808503861110053618448771553463422138415321445243066023012731350723440047159303311541517567320457261664993686840299905068601381515955709318998433705213341501438639055967082411814176283014119714103511253542761386716426370691831603809815259354674043168034691047820493713728075110876225337361017604184598046371041206103126137753449177609623767108835309048150500752163832434897991351604231932347036614703238805469945037028187626249248722143894603426817020351828780993869776854647205137738679676057902102967888391741608319146566196588574873386809226301865060036672923485475626430277003983081762825249448314744046072332964531691433381953237519110809242767750664675141687513967467485671687479185786248229068147460543804469263934903382842348232034053685102297172413926116298238788633705086266565083377617094332733647281819539744861675586031933379194079364660426611373059871988708646068681984125266130217731881603874239356744585362422759942874496034408849462228474339626616229993631682171341077777267335797142674374159134237540482952682740157150747629770254224829771006702304249347502905606567604800885678986135061150860015266846142962643851539718587430013181511813457962298032642434049311139324647478681829407380910074139153200665004148544072802037761467912163087637594865985439075979155617273271544719591497165455769189938015100198855526957835276139685921815880737739558333147662719889696637891269354867684159750066911919601715082287092349117084623329003775121099406389070314421425357251083470581242220066222946373430961140719657218052258949592481834332990842336566728456732216014479783659810866185178901225913987158562772711514427706811133090436253136601989202291163019027938714884385939239353457859114487781840702576583647710409951250190696540097693279807759658572915486283332567832913377641374092476966920673132867148828504620889381556691070524259244570969345120464048917809175590156179270894370832515190710811156688042163874886594415649824445009642657103677959912560319844034907661224664111987210092211097106035796208611127027318204042768518483427165604317543505279589039264668923329897490247080616456580420138738034886165767209190904744813205175153472709725863648986732077386952845887382173898156943893148243052383444754596086684180674924789513629228284040202153297057640292426838168782138675100953609909975167635400697392425955122432721391110468240428402446427418096496222142021397793692965488454970889194412344991400461037503854781267361553054015935345055496066522564805583107287499442553144859401605981035005122196162686264179393295013416760571549116702909769308421590739999264782337411255515475339458040983121966763178869773794971864998274175914609713119576047349700124844662902164245515920382252004973520314275255344491668527378640774717484319105988310341971258037372981709428360920546430640091465049016223326876012976187682769398160642070645281018837158947533413956290879532983297463737099492252061775689838233472273720598814672574316929719720957773904561202457901856066157001696572606271512508951699352436036105653910808152118775305291401654131992565878314675552064095349023892539544023523942473370454945501288973533669897482304946466965882483987501920923637513958781990417940757158604131811981020251666610307002845841947911239321601669170929383290380657175027483845826751634203966270007921093766165225435526115048871845000174915426432082062468356486239667004342635259095987603813321839324490667038011902111260746482464442878908666651713856571930064385661083820429457185433568824432132029591180820216817528063921437957341073388790997144778343666887598172626547315734287857899340477089114590285518473605928812313478164944649483317050876126695998775276459365396932775618220234456520072560801038627361062729616047258917393475127610520304705361915278833195634553145039290665131528715382483446152024453394270760097332906030481042831144277611884736176695727691986474504181170600572717643572622659153839369768764023228080220760042585006483096052871593747250049219326813934397381378642963233469496923907744588672479377757081728773348469874320006794038105857248547085712153912046758306434719150035456100839488585109318252752137362288052892089052410584732428678498401590190365301839052748654146941770155792664576503495622519512657187189889761833436614956130495328087252611616724553235872316273705715413286875540225531661828949386472973494048863533502200612081868113528005179421852704783602811338138757997205478655692215323125669470189528609191659171090005444882070105091492950048402784672325871247837643490695530160085854360085293485395901070830640904435764797912206025253520756233411052894717203412361200961461422688044122431612423746539814734584130512167240361145419478205482940955797880488083399111109179155202327887069691174477186289542281246079596969915253429146072140082796145840183324901586996833303060226822375404021958086257034762423125118287815963971187028970999797214320527180960360902049561341103925844990034367109841423956670593029753859128759627937891327008772130253357483706162500992145616194709285829180926337504780965220415274204223971369788661458144187348010696802641623279349060817120849308622449957223644728805435046029101805135591209395006330270319004801453878658893407675426026092042340680569583980584582168857001279124235337244160592305177081331517219542361524005344433042884303141817643070968246036846779919710571635856598588689268499787964713726365882943973717484512300771599553033407187658270532686956536654258943282492335011948599309543301563458783111982648551955142782738732776436092932799487671020762835249587440183139246575610775600378798364137857387280885199408353661693086056102019066012596791602125946591126740785804276368556219594323972342236618771090525060581556047592712760836755634917184863494140778036042629545459582133627727727712640285772443224580470321812287574045144767924905533049990160306765998179809034875228317672203120193485954698994702705768006296013594400235813630575596899760782034348513446273525332862831439585137078528355765283032362956017138870032894113554893103875680467107994086352794804407299617498013502026626186900981190157424530099905597657915977458441618385574679729789072629563484473970809620195423657271079226840439967689537165881825346142870031901957175587529154690592689521938479930482763972738074609131797745500428256177474586760422211434067372334591698998032492802520728424136933003440011141290394535424785904468434515349321254249773429015157957953847968340244184304945821181364784840675444049932415751373445830380172162214137633495140802187979900025918190243208629024912244228306358091371311528701269624934574258959546302908398094915726666123172545169394576258429121367087951786816384972721095680641241698571515894968717373515459121735236277630448514146149798723941469157754490204714296985746085090355969178767123948301299565673986763041418028382624371603306413787533563041862506819777831305211387351045600994842874913407554239440399870878237179181278211277680285186094621400985006194306862518954971120459267489263308983331667352191541114554372922828778621175650415937253468851572760424505691697859923654648999863225872362664486249528602163086553116331835309662383040187467813254931115663965813799025937326906937013438106135212979541439582277759170260589205616046958326091906595162772684794245126247799018347449710193693955589657693246877613802441729678468153521428438886985090909523300319809734827091553076019811625597067508660989954076209721981022989744726156660667894286677490690066401766696877473244619356476838897528636285655853024561566152423808880688886233814839039094052294427850280185031810108926133554027146266980596159186790591946392976060640001843738620621050875216624191628907658147627539887887622274288085086793771133206931553203007042654037477736500479906254651215949542440605314555618647094481457507540178207469245654298843221054311406963570817495781235049320384094061116491758719899334996528794656544785154397168364601834921460419700067145256562017558697952239678676196186049013074375879114710637511425243342947756022948369167569133707017687196311053219214446180283331889216978376215210619725082144038443309947977877873340700675094442584488000938521630640073550029806507548727618048440316204342209953636753853512351610069643275373269026488425884088752175544511184653178006743506889885363029649267478672000816869635560454860905033937107597772739848406533578154503627923797814076356306092428233211362327037803969685136566799479044432849931634421118810015005026176707030797673063394988940059249554435379982142957329865116569627087366069688721437243743372771430124887663611864740665540095763913748862999606730465046377268535542998598578565778461891369492633708361670100632586755066195347043660715784099413186550433329115337346638123131535503636603996779242914441331893389181662085322270045155829061060620803518988968289315110514659494261485990038673193227243514606010735340549498183882571190083683374191143749687721125693714098476517414472151765604075229018611746362070647552250015103266582072217498875665697099778865564538849081514689951957645091731254919853457196411902423300759595858833188947973341918963502569438469138075469373595220657756450660609775385452180290332303570171311847764619547101039435184203571672538493340263383559618963182098220646373294790044231659889547481209473490826931956420992021418391939616500930127365061556432703954803324501524033824000135754933827544463053435315471752771779587891612120078195252954403003238637533667881755607053115809125648024941662008144772807789681761746736572646065541443441854140315789656906499430905090697828807613386482333212608420540499629344277056248153190270724117071250588593938189011555178805407124505839997874406674126182203947236083844846103658562658040184363390921599869453718149437475853551580511326531162493351105294257019287188615583404202704091133408236031783274971236336786551756666118333008919554864320014495628788843827785166441388445778726251019355055156880697810411155583167997700834422159165652783268611672627358947838500671149521994612061505615545533571396398028255917742674996683250894860209926856944519026656886207097850449502862350655370313246417334129993695422930501214174967499828922906695620468015921543186910294087067575099491991743670760553650518608393027760364284803869499415298996666753038307996947029186761129246100919259061754985134996393180029247146530783411791898715023046455931180864469498333254047039237022063785306454768830368376546583667755236976821614475923123254322633548657883833650368419111057719786478518263654200684856695310695437199290041121531991014752446901754782126523657510080477927370483796141342863352316153528939688301945383742087940916320299315438788044702938267111727604306710074180158122407485175217255194599587322743388805498628385606760015390433740574645753561804382653521033053720484939920603791554618434967111579439472852254752058715830169206805343205705304857673636904792441347704654431339435090709274425951377744720962064927244543441268757357019676033152472008095702450715098965027045195086397671023361214476857569189694216617930471474110049469517141868572997538581403354481569957723866167081676852824758639483602177804144150070603934566284061059533813235221466469005186181208533323315539278265375641654023791190057112405942780885004625789813299258071503914112821180378702477983599525868780213888942578175203984960139540535899508294309844025852067514272763984825490584779266217791070771400727794669859926098833587242759878556828765176291070175459368533005493826779344198614021643132736347245221578801067141283701216817595090200537915178060048811888555836212333568270755179086349779146514684090968310089876156751107152356499993065960262506247973365219639415295522856035901773716084871337619160930420775344656981287365399624860650080490318648223834720017143096414576070559973799696924594900400820898508227714014795784775009134123896893377355763689019322580153006946091851141537295892905019451592161244484919192375354733106305829163281436058392178552378566345338195018514949631114078248809558402984953199028199996607390098471234959019731144129249741540554704227535871090224677104537894864387546302307390658684486468153882748610881595534754639372985333261744268755883325959614201723417750097138438033719498859809265541346565044237606864821499678273865236346168889101433769450920143566705828451497069622722230287712086445874309034807310443206927465269662761380920824200555662093086353614040373643323313610161775166602938142781223735400919691795430697704401098972245861912961520344037756346822977371790967968363578419977735085708483691856410011824540768925297325016896420476984779147420723589888558884327245916273045069134175315112031413466427863346704391123855938157430625923207204593804972140365340161527294082991020917785588603932558074608824284779103263030315958577185322547438041204275063797228038975364073660022632142935485204901086749433665614021086069838879640313895614711811230821515134914318653696365601794792103267725574982412068707520888635032169306092610244145890269451641443899377939989486424537899352190783200632435842074787087597476366291147975134985872045406332450855866663086023353262874745739986771446187323235225171520525895468241962716531882027064504670107388113540369657236260337933844298654481197866465773519190041747536618963434695582141949190673331822418797008360234320866975609913160086733640057108479863212912346211459309296435668474770673249986487104510355966898976084318328266576532530410872123311092039290464028939834063543346299052705988371855372071586457809333400904970311490899932789423450894846553514305534208863130681633688381676054514228151227935718836688755558917862670830728131189207959311600307326543545362745504805336702771056370697936603923271090696375794188024025442200969185237572885134718846843061146481217093538650087611706249903280093085900126083638435938372302580130267890407417523790799411166422215449857801110137079778271252533649579530472577006894237912403752421114022721663574411610236557887540462273953450879861649099523205089730446460567259439723099800969656593062092035953829608266816686321107887706292014667377211855114604386860861169671777117598145358927541666228625536625366865013089679650281791046548431497833753945110138421152161438730994743143115828533929165329434139392583007371274341251639153755142812129302089488116407672527034858270705242624330824807825429551017067514828911758549351034280946536042519953039857172358415492852753012987254271854106855374901880241414186856591301436187302174223452163166410463131101107508613027104758220158084650115001187630584940522029280107346810900251173161987700782134036221367881855843590932406621447824300173677861406173771720428611696084906413896200390907774894038467488045027013463151067330274054264180518190974618887314048765888558155471120756287533473105772035920501638017080049371983347919722152727224036044179911573413553341071286748281029267337721763921151138235272490779894199472573994216293746999019949339597585217672419667069824048232096239020117500468270087910509135994151201761549975590676261237103181141211192221905095369236724224584356625383471269674537818710243206165559366434431640379863052148343852929884681912048100858632358645455105889637844461404179242321035383815252596478933234077967388465412920792690400744456036916329846754054700073608784803217474260383852730968678230497975161397612878601429773055555499116243936368576213241968726837964057389449163422042609104856150183937660573835036423702308870197899488790629465069652389447338597416256443325487794912816632904192297836905520781819840238172199891603157354056544223078763434133952135150968715712975107333039608610790545569478870833910265892597472328657212927062045666176564653671368174709609500188101075724603236027257925828888987170720051329817991190947438384651192636274396476570162920157717277596627580870523544259707537381566467369792471083102302542706166164977465397493488585054263799270007521743140639261717308851329847440418013097919096467288365940522633330183768313299553184733355166925798432588556384559404943571273147332504190905325158690434399910823479636138924875857994395174005097316516418359033219019684711688354904162408145118961316250450773918205248154291151612379293046993717208667661140103189194647188200892146814692533103689343107518630431764735556590253749651680832946113186616834329770215007459108178560350281025742657875670363055726133581342982457410128181025274374947988729274611515474605813731657095898656825794703397172686446250160730187048001949653920655816875629787075347609877714262296973424978575339564743205848005390856950094410094084906444335239958341267098050856761808667277619060189845117089953231915929870881206663542920938860754076422673895285010129452489708101239155603004047624651995403846851071496870602001443769128060367809323252211691842121843814585285805832257588347947110525201874664219927083467592127627639755193704788367326465696127521443553029914061263994245313559577797883817548766242480700882929956456376128638945668596826753665972672011780710585717092301223570018712431666989364913938854438853344936218728382137278117841366000527959528728644583826079971112572416435499415935504259148635076572272853451041930101269021653794233376701305222403226663720679962450063372147698036625417890784348010652953470877646912046646114915228170870503320071682151195146052492798793122700297010975145325126823401447161054497114978713301754816884034315061802125916904144233523585047599085369729438503917355745604586149602224470406021356837465699465465716280742706444262041224971709189980992102115172783843388057926735605811149181813723241618364230850376083974293466590620721119441725746386437077262327328892085686054375800384420064707319300789691313276446162864663206143273460414796540794872067318099272694217681606500258239462246883064751539046618862327858108744190763648038727863607340315402166011761561165451944903735731060012028733536284685085784421614767017218867680811579137694556440885502250294216493691516097833346299899447756152142210433162655478061362837042913185452458074382128138563164612663373602919324281582652155586313939800381091076449232032487295253564178030293525870487289871791079842409173336293114019805052722341815167104733679555973173395940283484274760449002922968056911044243877366294120357630624504085122149938290601187878368193551857671180294514860392841708093190674612820862481569006948244416538759520961345884841301506115392870852445530721211459457870837306214603678085341776779293002687812375095239744710973820563446201372998433173656333119293086009964799476068365288749121372891168815022409055237458650804855459908081714334081978165404576026624760673807177905467324577133723345228016917874265566932635983913629371558410327453076660649739630210238430533119782520296577447379438214190430370361881436121806968661777436011432327125875674894256452473561869697537375500664712026573519470618388927989419990047011925139077646493489745681507656191538449849314230742581048884003757866942016979197265707345901514314420503433831459806286846616799001686536990707684766427462819285554749754859849685434368757571024704144597560960042135992763930737391311448966522488742667653839548301217740843319768066467775402369732507580035755240787468401148190327649076774990885091059625937515680230906465445272177463382466001985994475821201740032338127828312265342415064512764784009781639975622010719703644414576493789426991973075760800398631131163909430821803191164347225059790489918668619833834793653059670003695491655328856455653075869943474559293636127123659078043950865692615687764090110949612472694713051547469227759101252891991651729523943689334215975219482515179524558875955154384761447563588920125444830231720116816174833868457833596026435603297297220054385333287555524527593427660658460105511247777697870828563577800942802116475165527740778143213818826033660372140783492801383764059034199802110902247207151358820653062766452148359122968832477998546183766186987681841543862413988940135032950354195442885641398489662576956971486517590074862767878228705904314671156145121237475683854917980504834901705150282627329539978778176648366899734598541408358371222516179468120482975131784064709975063373422646271661117028991355278349480828811678207235316963130123040165130234341735632000667094407543950478141901583234859014101451212786169134884547150304079411869721715497953563290553841639666676069894187474724364032659553860407499252091231647463835295662579419300334937610344772680721778474078800643419641493891138949507475940141007121500064185779922082685324948121066432821519728447191088528549152227642842876187170913987018040004781274302310102570508144077538337577794193859638652570637064445546330065011909642764347670129014343652963480432056778003943764674858340104306450954410007825515562238342874936125438197456484409092101965898964427657123897860030004662081953442994491643515653092473588536439105238321998339579278675493091497581340860900166349331533917579660778020131495437521985367841194202533992986569632128471989958581648772061691133738293646509167367616761458782240728586817004830647610863232670749361623565629984356627087958061864223125023617049510139863204038131387184238035658050608336051937987597382459477449291908896379970435151615795222745596163417540855806134790123976161260585769625019452291641719675523754479240574465726257099898080551738038010222414726547228090754493228638636042930635683803669548041868276215966330315246477864508248965148648394046493770334450694069142039150573515089585702531224464217646537522548654992330378122561374424551794003754690211722697114341409737262336150823630297543952815706889036732068083430513423405271573689569902534705377649843833715615194657768141046473737566343024312697213178199398148515473375120358953722423601192551666626941093159808182608625580670010621625209379844405513631193894343892859380966340652228507455543935057477330154104340063883698474632304260998533427589608480594634570162921378082782167809946321893029758799169447573759788906502539747286936339153690432451761861480990053082312767148841631523097771720298528622620326172267595199621517363831668353489434218869573184528217257482889734187504095950245832385671367775888913943787962254451954504047868571840319273444469348162303629399483009615505453307411346411855035789488226521675482033169025645560026476915457968846573846701332049827890034717308988808540894129127597041737544593157675357347737103081575501946764300482315467107838518465512274394418446158915726296711347762211316643142428893691125541468377556617640773524249493132027874243217945353476067273973595934132389871541961042308425059540551875081307018944790263373826565940783894509059114776940718366537143954750502612750936351314268442020763728724403016611221107912727402240733832543130136016685292198900601421269803500606676611141734559877906091323547008677221483303658594024729163659916817221405308602299474042495825171891982716172454808982005306343588152483932192594086121439810384998967644327295445837600492142423902974666028931342873090519913909558634951243544802934790313101048818223100104599313518010800042251102389041720220404480515304530723354870464862270681301462183703797251362220586120546492364179028160841506201192995099344365707023036720176215744980761302740537915205416733809665003934258855623804504201457719160582514622638223829602825494853532312194852382353520577100286365677265061646681920155215267638230297664112108580625447360273667838255498242280617543264338158711444562847575199946271389151332487395961561918814988582384775157849762076096735365884396182717374769229257898556868266304657811509029121810339341692623020819261378942911775919740005090191806062707019401036408790890893848201054438598273557264291074989026434132877825376381928530946733316691169416563261881500404038145232929102175979918187451479378791353407570859447980884858487132235757383061556058200984911568977980157288628696998805478518902474144090486896695234817902237515822397566174855183174961629934519964927818451038269206552361306474995058869075901536350883229443801014855746524981811043787118936693283204140095769821724215596746548323956912206355148968259847475764054434255148260970099352254397109125536456638152126174536107398017713309168012952912572410287593319157769569079071971731004016419331377291773857105103071205973871126397678694295417086508262439728280409630761048155126087465655319684450280705974381847237811535289925540390442290044642078793605516533926795942371127239706670366778069648173742987976317637344520556583098676769881259838832880577621192949273730274693943767824640219764105138107185959534519204622145424101926121796216146309926497128226986487445332172836710567629160160347713990122582980093595427594161428508831707083728745604225641379278083496215743768006794672942716972728442891999804136487285605308765944683533201090523905393865774661068882995764124219036786009285279332923306841998249504120530377306557545963468609129464670096113171237920068569704615432338672282920269011865804416856394655083306067678757428162677556385355070031870360119617517384659305993143461880554009892399247858602898915804872558334071634537148352126902444028023803771035666477752107839596858123850422423178502826004465550235676472399540197938110954290941873409287398086555627676206258606185368254434510199752239624328333465276030525574932507766989872521270059073740014782213580187428790852871195057940627106162300186932180923673286490841379901223364768775797436875433896920898209186121972498038322004834123696007333899671347204126866923646339946327410367944746643504884366223951318809455509550153386853929199741446787872528119844225248280414001513515572843633351514546997877091531500611696376013806378145473553955973082991609726597505405787795760875650959843128898784388774190096980952471190595766481548374936503949106455813716084364270954718433246747547683412305765998048505913441240298674316799158598948414509238075375120759443808885278006267325032218967499948481823262355424452737480100199847236210218130923812121964016608844641239262353479322642912195519612974765709144590066986697981849408014584233202461216875402070580186900872567396664283935733436080847821765971618092507457375156011850703780978127371367675577751271648390122598371943611261585669309860779584642754398839507318994264648279120344887158892197953683780233428596568574372127348874451361587456071324941833399090698761191336292901686051737828844174300874807181126555523326015460945394201540591251493643300343961216021855056409457800029814677585001855846664831013127238328039456851005686011396529877227004320088357953697677565768098776439390744916914293636909359563488191300553202772563084781452336894419871530828811467836513010792449608092528163505357839022164111596151428589979860610554196419705732906808150566824283524135157629996641452637732629124348163221316789495658879852827474563811895897375562118051300318660297703152820301806293143825244109633593400804259850448203181903132165753026118165803267357154261140397157779133806513806865568521335136760649127301182657514962776677518275824135920006749188543572630430780748690616797612763432080329545288024365557829155352885616484123689808108887878530529204250108023938860862696647662489336690060396052670855001886053428840346288759484060986534417096916482109487538691228654090978805196184237608125702330776071872850756364989221044724762843916629173151129993465509582975404442625198384659624245905268375321952641769857993972165992504815809573004705491224732151098091199789470135752769387665724681240103875710362622049171111493542893138073895793810076869284236029131373802394659009228552452872491767300248993036321111975725363613507931137327037283732848050168685076347437604718775048580470364990533376161873826395177589345238144388584660803113819567468939099313799647548147584643426014115952929180102357103364992719215081131362199701863350860678335116735248367032925282639733307673604732337116325443811109738912070172682667186173711954853296204485409482107739820407281983750608276061989128375619467294445032947536755892307575296063940079961605817260040463193857409581224596846007956275093190029942086040177328204212939710765116413662817032585462868287894684271003733140567424841571045010618878745900785729724595729612069599322252630992757474630652543605037992967786646849632547099121348070071160198178550458219577408011533331642066942838347040278720110981944408993394151802493182752003002746194376218776183910707093283339806149660914372620085123068209568210862007120168310995105119287301251955098608593391452193288044661005653284136933597525646179479651775047961428805612166389269275195928781728457466900772605481761672169746161588159145144638152585722178901410172974000672241089129919895505572345154333516971311856072443250786274482179638475988239955586912938636243050586960616842705440857052780864263241101126860454114079923004699338874925510453118819678667631869745230279959152920616950993645855192023600917235113110546004666945227217073253615125904524491868744852803985265460621849270352502528231904378107163056578886764752734926956914156342316020222577996089769465058773228287349900829236992064952116587050470765938588224059205252441721908734541140640815960613899694166883283964303090058010306459956295493667053517080470930945687898283042459974981001587940303561712590083128103542001732829645962687452046146900522681937846791810168930386787712329278083464579360730580710201571889672639630750987784274186981579690396864472992176095102444270388152391681579951545471236085648362020407463883007657450255688665785889110252654498116315178791700416418312589041904205182930146258952275439766774392379848304771616612449581204292005030720658648603635129827610887167927319016174700613088475159982017647073464111063881665634356181715415227335977226484896418968252412804400328682232720529271878003176328099351573760141567461516021817415105952057670265407436789930251200538275700708741219649639631860138995099032773603751251377044304493465872519187715382378974152256334026408185773612353611498640243023155813755427733475321210284542312906572137241655679636223777134233603907472710391246272298467329644522706809324339056949809686597270190729750723080263591544259426078708134180204089293781320328239416582737278895185247175819546818691744444527641367398341210970693858214861287679073444743474921374568890296189297514015728244437417109905722936105638816700429671396503739058020144764001968595326617189801766518747349999985452519185588377534630221203045512756669992429222176871294802861879815773933062956612479707128643196186911507196496143251197464545931856211085738489380827767440500927527268418736606499941830582277509201671137598675173897301967631549600478107338157272143485098671246801115519715612295235039271290444982575701972039825941256057744812269886883120646736364574489643223283408734490832352856531372597767900083084933315510637404651500776902416659843820791391849129696745267693261540208364815778949413033704327774770479174598561376478081639150504815344077079682371160614821903165398694437961453301270368747904637258460656775418273516967323972327575451498257572045260630510874964052621934087302516270944579393516930579831910769813245582718308016046082850843573023687932549118038425793095530781996855087985208675486583503642384454827220492438446926403224630039635864425904583674242579734919661751160064530991632783794016447787381459691365701643813266293815492154816769738815541242896434928030443923001678930743678316427024858509321337190455005944986709269515082447045646817973364772084397369569984488526939208578072735776624014115374446116591405610554051573671883788625579592385351134556102498522830368577104770298249454163356659243671219509689296764539602698831394146787246087369077810978409221277422998114218774136856393883034652611510488096919175734326928721778636309712984923368676956583575868786428816548515583283692557364723777922818520408487500084994485820215876564793729883155426374431291560215767279388210216243354011603535777882143366628756043235022341429634539349886703421447031549153529765020612504495764521890381484041146831112277417196480744020094339597856199410546150708363606280110212296944817269564796181836815421681542712666729840044940413416976103770141598121845691451418177144327820488787950816266553537153151903350434019824948339371216250342652325239847883280956316349797380826132635007937315254804787557601958531498455330459304614927129615990812705032343868605470461611505787587702711664784614290543427873549532768899706664156282991409511885322234660044694087798259849274077987926961130088733069998916851229930509749695405824655986906166747600612276355956485022779865064532755514138845044006062606642486044845504772358558947133984041645775378110815673221410502325869663045674501536426939193224472936605568997822380806194115546269162832855547678078165898925368910636277560534827785317641008252553810594538775497019459942670520225472676339142483507275486594927980316743323198621024177168344744742267706025776689303220573814846319474668662740140221684555013727028787177602766503673674141942781707223668565276252722786387109424622119897239667028020678627087402772190318649274532743214496066541962986581363770288407839100366584589065588773845482333582422434571823862199973456471272267103503086745201775250816945399151859622662617346838218685138764094816858202668514800394414607500864941808285563491254374088251230953570104914670715373349163182546719665231929135263789387082047363480267551507781960170676203947584440637486363033238830303782593185551135333292458629245229495280682976216803770020973434905468379070011687317082521912398896398417592088165786505968717004059278521053039796921502857944516088618834905015846963172978307450873150355472894133414064376125214049459682335240671977056722142287877553052277312517454982130513744566514153472315286181794309615493309148133624202074521258335566100600871716426873736210005760751709066129560941332867427818170682911662410258142490219317174068841054724000608760071429126598508392086726840547561725229002247984219213552995488095178829559209818983618828643169789806251747703698848974617286118897817707683751340359748150474032048962481082002273656411999129174280895212988864879430756215534303602992409813109764781217499628669404494549900502327417377061435785928559966210994238013679081405195556114903061959902381976422011762288834566045242658392187492290956268512608862814050289613161770584639698049119354124313439008463871427553871143587642894403038610613705145325284295087613660453725577327147455894583784651468433357576769965129413057168140598114883469421706182544770448180196997190824062068664776225794283677735975995067333622259720516979591443322413255791425565153356820217184526413158007922785340739720044468883495327427404720364468278424704571137032178658050073852990750644276292772985859574614683197465307714839473366114161242554666145124348776602493895574973676587210491292195845194211266919772883050624040506592177427483588844070082284970230055741754445023975093967461775164646593591521195721582723603171394213634302889814829161322624285403229019197107211560693359701139202459469229404463248557106305933867083548970251059494106678356551441324017477463689795014395622760419867486309201905099719332794381001890142601245404671061480929692166298251789509590007956735597882476393211363438377166440377379243076947065499030767092172888852963920400413418701549587181454206249739394110563725106356343467525886380620202814848235252700296652771554909068367118132465976768604149267582037005791824144038145930548831734834258452395688800586131262544437522819262900800141453831773464995173236385397976842618651167727671468133993211722124703158048956453435257160009236347512097233936982133327082451979023595126343682468406001529165892993089347662125634798673821406830887553503060165628071622863398740868565302496708700311401234128966107719849885375843136546640679523073212251923742605148143887094833292632064783189551318030346996263226657314980903812370886393058382582947159309492258000461932899986600003525550095238268128798623812044571573319550486647640163200592017193341478674165326758438536313892912391017050527623114787103480254558867546690881670893968259198093939342582523122566582984677624654425630809826383875338775646024237660444867574839352311588660487474483191880492526128556059825421376164793774142144485989785582615192369248086248775262874731408549388791815779293617608082186960697566501844871806164544613573369220454215714168457494864928740233753655656607136646124539274903760836185730372210635109566985825299603959820304895643330296730915138271754630638831435276919574521162364709153435998401494746784613365464981188180125345653961944295941789131839674137548180437342911668419566268440251878214739422536920405324457085814945277489329870469506551269398872887850652806890660804615048172219760504427237943551236137127905476295843358772659670442572983404008487854148326294579317474970743562515844650195551010233357678839910119154566244204088762484292453029447010244587195907040386233762077839506654295473804613667289324107764443207075898256624291904533555589490213661907575624395762116955710316690275978771564143871832891532962141650060929583670082909117378955641818354779348845599406244900560595686832441454533454012279509342264006536499925687880885287244559151186757867789459659251003087242540333164994392988118890703681861071768694941658560573444250715637691461544086862622930648810125227172433032202049822379745641176243602688562736607666311870572759330874565174545266115864544152389946386726960872292784870846928061461636803287493630026320487408064156184418124810372499659004579849149007346419152580390623244960184399356508591353862437246973519721768830596201702916994639238850674397967647338451568199237796949461609681304406903931654497093716953079108356571313730201592640611353312346918938387582362102309837468868550331915768967515582566406273039990230055358762989959033425383655099224846674289120191288816887625425927589699176736634516938706368018272470774036316560166306802891240678722854551987357082843449824455873262285704537160136349892717288711590138676404188109676839526236371879178031913644798615359975095361203468509606663730325497719838519613441105248254110276575198470478730703135544280481427210454383573461292641233406268910584275790913520313656426266719397383085159310631123383079144462893192575248744747384255960720113733472752290329508034688518425394355184670391487582093384394235245786281249180354539763393306358162079932514658748440867131628156268951955712583364530939424974964785492691230009362688000381304065641378142515656317548425364094800581618317510619786161545170894599434044438263240150179538056835162205137640082630548937258997997536620965071517184090413840728711665348184738191162872748845610660447420664112746187474600355122969375379772582360680445636011018360260561098044578321208930854610175841485106744410888134353246363769272197771164304738680196862133548804547283924174172072339529514234194687587855609174002229777079556540950251200585861901822389054009425573199421121693222308873899791798373710814433176730821041135404856484249896546479630404001746846384520476526496942801875961746955662681889343285840551307504018901368731642568661407665142052430790311947377988953407276652780870151185167411171617185650099355364728937645529499992570514757742642830711097607346844341319367878938641466158893624363986071980192631599109693832703780085921366996163578935111116947308971605398305082132086195746121812527029179240190715850398903171584363667946444390893768820532741253088060778940550752262456470328419724364903425266984758747768218890398954155673405747209594818382084958501591929913999355059856820070628940786442367132948725946852647218428801139360020164841598379957734974525480760369458549617238401752076257245364316966172387654417073717141848309245049837181438990145484053335636648191025861749244264028460352448449886412061951513201741009418886099548123396086760105872068136183960209036470619446877229698729489770466821019646981457493234361189253032096347522349733671566580299367740684147214400048623980680794182661864196805227070759288612104971082688862586936137983051609193872749060752395572691185991475243290179009374290754476927068323999405245077093152935675607740749071125655670580891398048104024219180317636036868551021634904641387995718264515668507424305488701036805806085252438299814377602619462004737982788352333244619920059528649620040400213253906093686956224587521111711796001821880630066150338554113881681240250157422956755677639775034393634370930125272439234015867320889536348103279760625596383928220700746306159907465940876328374549556028555457759685100903173041077250645476280831973433487680422941845145718330594529645193621174893358077743358787136561469890571451764989585896658386449031247438976093744100991774558112496542675865060188293560781688459367056888577009411953358719177021350332815238318328394142462713320665726449354774357492813689978990110120812759532498158080323040562691454937789113066870983953618794294332449984819328144513722655159932141069120672305291177650575025415818151386664971020035287792540710402359154422905333299899280182538458657890288885065229945575662564850252430260432103615333895072743109379969273876992135949721581615798940922909538472548525942862376952072280975926274628368696933157598141839760747146807228850658314063366793652607219529077452029963802636041512785375886770979843724250711309129230585024840339422591369729260239396385392706021623445270940772622739867569040206637711733904571389228089209924869719211020831688692427992458081140849299462996958583663838033792587994790540980312335733962076625131712532575596500737209207228397814126341502325075351247961068252636255954932626101792498953159288637022823616147969483451863758295131959179755175572396702486555128978447758220103209747394879585599385963197411772768439449121276160120632476929756521039055729826989144226479856136926594516443814941984852760800209241575056518932511400755370908205984597879144805145893239343084698127855535618387581023910112273837542015513710110890337942023916405205252524116316072497647881922914460258306998595560433255694530439152460354951810206230009406801259397330159049636415860860066427838247682391433164564532095022653854935834446557429144485301230815130533124586962408907145764828977600644711304515088866706112351106403575829370619658223304718207386821319541577371681855827726871290494084697431507364126174576247985417261238473816443929944545965253323549709798767320335316105146672419323981581801859195608642923117814869171125669056844048664873003965128396931056583511737370993988136899179554233093496379433467933268017093629028778506480342487367329591009037238217993307788468503934221068568846924285002095721667541587369998555820736186225076958488246028290434829488456641456336490253867382968503743413434898169652938990283469764907914429515822385784031981833151834176663301070860725134360194281356964240518244202049519079805241008484138422859702977019524743044474721118485358924539274644081832956391243740602905068600513728283735965358761165986413603181798305883067407518661905997075121332443465720135603092422459055245207822970152637990619307614859744189700579921646780676861807390926584097961073594826299981574780770099234191656816424580300868035202485528167153970414730849563658201871998375023672993588241613560134401793870322003024060731175785727971711224062068240179093882653788934894006516177309110496436932479084675418935401411442026730672895668190579438122097408424447686903837036318958544222512017290598660350985122133113654777591642684649133431888725541081179703688568821390261476840090873119794746102061659328914220397198642672534329333608118830138899199723323128560776068930159280622883976027094737372684865127695933590031695345765498129661883462256342958789034046494443156110915816430697582321423848109827197819427310596535511414761329070222158726005575757586518600482403510431063069929748371010360756758971397539819335365754143233021959155491676401672963847892172823276296516016159587478723758849500273129341288067825752598576242091807285265397416582431828905571962202257177460989771685477270023218125129099537360664646715575857673438638900727696002423842784937271478175600282797918410868930714761405547281598272274274938249916547573627289330642371566859332895872427128259799784652697842338521586035336891234798272014480992332300160617988903676173985803287042757370002036222692793289392106127953119109649147665764461701233968851364420315557951489991777376272341056615431402108033905194834706504452270978601656308874719267510724281864319426350829352335642250548923413076946302868563244494292885830878257027208392122018135119165840244747462321158166521453079894288351373547454125026259734099452943607410273442939202844667640482677228117460431029278912365370465237375874702145671783919408503730405441051447052873604591119765529274803578782465796394442618121444757254184115122410077236057695373091441984550291388398474382857453293653947577280526783214999333719580520379872583874671375687314837994903460465392722807922782057508838250223086277691969122431578164654376682558231287876212823827086062529556820022687112462424973062239444945729969458459017134149317531117106279575406736022550109359994034312530722440357723934548935230375003523831388186120606816309292314056975057967197573836199929103432369878725889866560991302820666408797231937211117748789738862928153942654412742142514196648045700549369312458577587431674935461710689569448647036567890491835451035857633975816309832273875516907992924267527421584757212830974525324289067294383260506028128478120987507683091832119188635652480371379574771757224640729561089667223967461741431072281658668057541904676634871077318397805203654635798546103483490623432617037692007406011480803145338852189446506958365491105323064795323929463987314153158573821558289140653845385191601674835074059199219901120935603647775782943813548935700923115711284995797090143390564458487690398431825144682529015119348154943601414012612253516642008258755924242337678919780313055475283112334394465881777992674526142097316377380223542205629389861288190808975421196104266337552496930297969576754504439701774149100383858887740249560892160921746690846292455049783406685636978525974020465730855503724507338399710484258649843826585381679578034681168376443694336028504787563950475378088725805107821838360409649734227162019036219756821825294261940606295720027828206062812542293199391138434560690587608039374230906589805863449703453836071925108703583100406201058206220679778177169619163332756278832690827453306521145348915858442277203551893938144532087999995618870387079446408688609238624729762200467709205480539915806349496800422392254478240121097834088262214402561779533816584002689012179721060519667936013131832315578343455458705668285836413578284353044985289798788657980885889506773685950002337237954679184702341021622959509689475532449759999131777182359562785274743392153928892600897424538380152733096804453108693695525705872497148335601694251176155441638455989647876599381222019368974420238993261490859898956532573697436134643177414497662727209835378413612177132623222676670077143020993566329486019509551169099456459373248125570590584691217848698944761433367358565192878510680147241661289665381460791202822351341249096699826956824001497338751381292193027986828420504585940710261132729192968789820057727531615593285167563787063898387043205804071286023456261117853603775186891207985519861253188031445715931830197673088586121200026308111415364771031827441548639075430809779418235385652397033844918539299940228174756011558438133212031033616414563503410837140436677408654406152802954526790559068047779384442769718226851205807232747961071725703432758749943719721959359259599540014454272290770394590897341718196860829723936753062840412006151154161837108858612897782867617667798129334156099254067941720823789660606433419848763066234178523010143306209617661578052179463804290837819277872946683748622893276101730843226958734533814069192017160490834112303761046000811593436110312300747145127360923684499957459361219648627425141125315409388671533810551108183371940739393822008466383597775403898265403257198566159339847187869955633009424044744383251271166151026494765707600943488649426622666140593907556060750060119147920157156008786745630087651878864891438689704910840952385913468435895542651729518655731515076758161684964806684929946306868971199826463801945461400814181432836871691125663351982199708890030521136623738361850206322179132738092543586904674901435559809004459197597025031722455527770776122755577845842590955388211026451587702084386506899905810037237892997072732817130197330281434965344632603965204166009863633325860967325963829178540506474316167883706644092278191876078069753762808530907077509358960387983772334605464067209030994032351983192878440003660840888860378517311406503920086886526467881012127206041096512811820215717912972341438491414944301719160104868871522642486219132757912400348579578866983016097312486038456518426285457346404565727474500194716061317933578825498185761970595297525560554922680898070773596419526307458547230227791895405945842298686858949596326169077928816164512317965414386587793243240628455174170605988349309203164139589712310388404045456651380407839967339294566173026491487378757013014870339360769136267320719620283124710701358856724027039618313229128486106270707210266391625458521524211558515054438328160471472345952758135221689200196421827233704430559413827513396326310106651527261976521093984777965704718191753288498258550070340907937797660833786163860904287755251881419300511684099231853049749845277316462477357785722336448936559463135372522769973152716617663878766099334963068353528786731805235259132696038733838620003675618218365530828698782036201743510513805043500570716071361837589270795789477151579652451416831698936804988995697563612716842508447683923804573282391149775342977475344733453879554884795725549522611792228872053897847345592923130248646546055782004715015088808930600266474928946991823893688775627217450751153801932869196531459463942472583522964894435101437331402716234885177115429177517529655342037900842637567219452849273008249129021237975969670370203356556226261798077600158061255656035403823868421285731652957123472007138360827561924565483345680920545480811967702070101164945589031715727274722025188769132034107010794344384252720550166501584506773751019380225720500755089265564134134295126902936165825469825499996906666564690148566091506615305229896549601888636447729733579261438964143964121536995239937014596624401913251078365672565201992839980441471191356439973296809827706563890040271686639573858154081485584062043416981286822892627707082378497490335276153204012347443982777019094714816884399632491168887156866719712390295583219343757220933244472016450646672057900035269171451191663598147692770303736964465048063937367689914647900759303683831893144826928299148011177558704382751003671414820594081196251149285081962668929358920725695752296643217568280567923186305187273218512056295418121181784113125350965372344338791113752095370733353977256451398096487080708186483576680882135539541448991105408048083875729582560796126630605252279259243876517463929517106758265138607845732856096828902142989383703342546492175627465704440628053617130853054455098442254356006839828284891811080999306970224223896264678579260814004464727324571547615563937992965288221883463307525273997265135582672749386886088609686543069149330995516499100222145963040495838180640846369031649141375026291830368002094557209061860301863984904484653579469617916661106760860678192971243271659815975961203596651626084962628966831376056465765179615452975366239529627127480148223883004975720246730811731389738309138994548137731274097385574531105422356847905707745746183100555631968625730122937376452763669853853067353461643368944714632897121554693919110023942701970269287618919559326164406632331050431576255079179814323035302364818031569459985217489011032419102585183650513135379050594153957080793587733225869273472506852873341693576652447658561515092579784880265794775097100135182957882490550111871766127838155389715022812588075886900160702906198845859995485857670378769123587590726069633637876996505247904251356314006545987381560203286370039529420357706629315585002803043968983408868546480494945472386759883945186887669787907259906225387574309628976662060280897630737337932800305208077862618357326082526088691395170106035126567871557528923706832741930250077617862405736407230378663154580713024350784042575143318232675854479435007333328992990890917717418170993916711743583100556710074226505360419030138085291596536697530388527122759886310173923698247610264030506784988957820592052046548845994892069154316579137755443312468455581962492700913091333920533810580725212909196000228195534384937014460011612873098661078290115398424389448902378071044517940349731987598484862379516591047019902471575820842770344875394778635121788497935812552338743796136160265709574775823324641080911738622518880187501225856881316637725360218796526249531963633483583668188216675618967976016471952534891573046567974036051681266270996449992632039430173177315119455263549076379873156808937553447005645347184360165929537980366861412904447179719745191264781466144507474928178349498242022176563930492471630569764553613896072859360924427928572569727579689183903740902664828418020041870294127559927586084587422922657192851324538120507907715301971964628857026244279172797106880370368954632287749110152020906859911221837202862396643737764463417033515583360957602995142496309211292251026874734509226557513327727397312706814898432859226070202959539275901713114551516555059410096927984367288547934113334036692924484891297082482993289425973480620942099525060960058984626958762203119040636051560065332193076656664032622457134033137976608017913782041924578137886150821220258781063340429674828247562166550605869950642982137900825676883907236333582483972681342975923495288845102200967671427743456136867797802933102821437799006306659423420046236822232319449323719566861924000133263549049936466692470884230174794807267886478495051793834778865287337280410763673815910553050761522527844196225073514225682126342740434333332941697848284047707953525744153588594012038316575664982646156679366739923911047624412914582841526470798411202818987280290036513179222441328074614137562326445103524889491358843835059375554873356430381244933356539242417309638111815879872684342563900498420912631531447120216621675552892270466529198349917738300093402890082899927330186457621321207301001427673331741082228783516839172193248312897981731201296150468417585743667376313077130341622520630266238885786591753058774038664054307980972971322859194331901913433583154101868871509626196045477201713875580835580488595240666513879890319782978600799862616998937250214705932368018447157403795296173882402997932951733368365673877651834151396414836333530450885652158039671319061437406660885528402414317706959036340993819775642441629819673076460669232440684329586035543636827879108428747651649443690202130483385994844360300910345685587659876642739156259551603060840706128931647567103372891260065620300504521996280513248814840777477296593699916890543451809178149159293950712315371650470197621063751729805129698681635557608435957013516075736685300098848603628402003000615253490719038733984284116739453266412761515527387367546714262334758548836365146968788652605074425569933687680206243305325040295761520625636605073387576415270370024514991332680574674817067906085907364521767904656714669943976165880145351981978246319811578993469889099843317894579327408112985811035344482509063918369653947424054857531911663929839137395780682996940024603619226567343622810271315672503158742151835953343356385231338295013415714521258759551561849879110919781336958766841974773945573500457073827370323389747651063471200931325854583716688651521268550599795171542697556446397661080662093764602259184453111869715760751667713397971689071950508333464880986763043401326627719343579427820215656274000888159571960505098788787932595414409840604405891480157822797390564298891222808455650270529685586080759261554603246137287782755555302035965474138961867258886931783947416245286337900212156197281420230908509602673682334535791004938963356257255910734649032726607982187004288648681661471542598072774851949550630229179217289888128993100464736719021934220652338044362383081643063369363760521527588637721538239138121446848008108707468641347612541045195070045073392102515746878208245036503520962069712488922091710927770302166302269207065739803453538517205334273993412012183646493864583641294810892146357734015526200607159439493060292043869457240373722618638043214864541387068949564387712101973442686135702446633821466118063538685369380449514916438892999596651514842428886557046385669744183693921434150961098251361065200143948101284805844580064399191969831556176951058778779569562654746910980654591590746860925388950251441942066769774660624442851156254476151551780492619059049108237152691268504859281529165483225463970423901489942302346545541681239706062740724830316794971822387090667783566207017346250064490831509939392165545923114096096778280307584611246671284904518912470605714858266205797590269673257808988029015062890616612378864279605282541574199906944697180112766549876657433849585510952095483124474828385455907545724831717191878782067578313222309820624976218066576461761870669081152095546776172039038910587792569662219391723880304748182159608265436743990526391565581514607713043977400832246675865829814816801921259638284228362778184134694874132464935789559368516950479039866595782544467878775616098188824341843947220588315160279348426176913547955256008182694173087070160363620707596669832898567881466179636872824486889167231910677971624434192994173449974676350474820931217575331474631866671186572497828711682317619339650744815159552261987409065825834890757494486744508855730726838415397783094634225406770512098065634616467421779211008307529631571398441202705466794421666499715973250224572410280490691943116404548551725829331810512255131195455051502799115384930824264562254377839696029900275767126193114863116611289225627354366652487346260149745825620369609301397003263733042174870919012134508214868630431680941509930418312031456096138135857638959584346352907402662495899163493328924499050197125721543619469208445157986409624107036514517902271702343626745539698860773102996061936349592625761982652757106675954209642921830279911000795611627145198532314080085892221707439513737814669536761740435952948236100712094858851334595932178696249961385855956404793981052390865302084268810687522076205900599642931448484649991310973010721122748352727791221497791290880967237557592978196424973572303240856949262280710787072467553880287760358617094444513088781245405352617901674581303960202745299700390946035055244819084770847177389952021661723467503914818497770122055898433490371485488958078315230053572539970638664177632443362731360801623472862039788877504785075245428344298056717036806454741007813565124120377304483745608467868889712694761241565204791558816715755097471631964829561151332409592728557658449171042702613713051415327512779235064535635109675004919581657366923218693357644685561320726980339106260542486555207004573929310192163779161324340562116118335965800499902573841589114953853772327941269334833111575450168312927306063540074219266085669673006665467040230189845349714874650861576969849582822173632878134299983875440100145028727206943325101650134223354485863041280072979940112309669495701394849641957655049388091411443212479634764791025994247902164842410458419651014058860432552479878359863133229828509657005409211474066228209987583384610972216700653047276374063396573300519227268674015784818714507610605201558816814330452800152935790238397987833422409767924825108496998091334876990989104941930678004728291795417042140773170182410581441436910440231969934029212516335680687620580566046428309364650933574376109061689487409641220268029581491409804857561719058850548358323821914004018314293913352086887135583315137055416290669740566567605857371049335270725597206712843182371581126679362782722004219790232565715482479338359787541260695447768096366382723636334470116799842546559257690066040981405649608423136472151102118184006131840904315545407523325783935585240379224417850713453490381093929107649672392862037940267930414652288175425086776898245233130548691054144537754563192632579578475473999312912264789058881336323395372144000857862945969972956246208314856204701402419077199419241776439567943923022627946763620895887390835757396712820592134403262576883935541689412707019117010252558814611370025806016814527735351251151795366307258436476941890236096704046218801866857830092992971741353678188581737334266490072980274390107075483197454228145655076280494026578914140328029168687086892627388615439155728282282945895568688019594993535444096719003622263047765246012786903644074273120371779121494322953146221766253499566910757096477899608347829972256667420740452650530397526212445892767916825947964264302416217276566576658708293283173549600879776967149670639705599303706900352714223838569770487495883675304783086499722664380784894838386677756627054890299248456821864240943689670424858467841093622888155830775619837258571188717100397400882923639572213002642028322088568992176717656983696426181993398196101929536768543086837741498855751212327290032347463997336142376920096009264751985148278087941184988006008450216142867436989113880649991932159768878901383117191266616125038740193712353398074205219970123780945612037792253611399748828196563704078853329149934263649935542582000281523914293719391734451069117630591052534249295759389795870150370802802000888110102192138591062559396885974180899146017948359962328118552228793313430394167336200629700817328437783556816091153367045091682129237306919810369093939688186445236901168101822187319827646513596368413103238332181416014673780668685569820744997671468991626590976930792371721509652473591913706448248063103076810993512849492862315095961328650218099180952179274352627002724302619292269950869901703823834015763169383901034406871170558626954147889711277807341334570445814241541981380378856836479103682790342505587511738717209295760784554757970581786820994382340130307788985861345173361503242938085064519782572633644444302009472198068573580569192012165086589955646043577060390291210807347736918010838284791927464932008681040997713678510229835524388316789993695028655749373859302331499703366999790033988760946597532712900530586247268644468852438995416753646215127757891605139377740187749978392083360669031357696532486497093997540376968263334433886731598894102094269357969324039716621646244702177821960846482876359317674115661853770476970108085842268672263377603177327187950139857108688987769970061998495140785456333935772571502371855387564591528629695823393120029406818603444408034178218778727991884475394693874346716179086859467511180546279855583398051776497499579585717302636199480409617551709166696563156247982234931494961733290607276696716609500210320428062782366118487225397209196528738508563037207729201260909782416684922997452296406363808678806460693878723297652108251177172021143964312287040651440344832774546867031931361411394807105503864848010483505610617716910003970412727288489495981178139526028626869713464702824226504902767012108238578231347654242597665180074174333892854372905886038872603888577506467435775108379812439137265032008422241830432509518810450198920909505003428545697578121711766561385689747043171901152403416961413015460673571753256134996717754372323521573918447468178980221544531528571610217986522866209139620761931723272320409224571800663581388327761481199145907711014988173361594785224451317111946560926851209511887889749523519043565394404206915355395038084484855876910986275890799387169167898666192268543750374780796726922828603993761211867320002506355924284920613804521766994030485543514975503110565196511180540716612892643823407565731206993696483448493948686861099146185814415429379172425198267164816211881270087775841809235493148909790956262456683856465987877429979803448107160447419863270677024642754002205726130931654594878698513306550127424230123080346579587425285315162895013328291598039431968382082677442464803312397869724086619806364597622753942536210500999250172024361258632575591579727616633283637898099935422586266889336908905965849872864631459429764099948459998519109530955579127473124709091633085910877305460505390494385032743644905567013145409288540512700513344640888510431766932573279691621518427189170757527422506321926924607507334869932256060666385764780672478533595826407633677928117575393807542725732419433584190925467569978351054205086855527361540193363643458187628916434044541189838194458410900777884573121993277328419555575517742456508295988898139802297493143851836381396634031315583296524412700906100798553371366754792808724417999472105010400991476737887731648630389354561851453490408482006126103623632037157465525064015869283829776676886299030994046057819654782862641170004722629953819208234443654778032853284499570564930946539760710849055832602900515476664781913715785094596985997426812474515603727285497358331484127409894677950335499197787584312826913509342708385422312951626723918838900507905509137211219015438344507568566571119066682214843275441100206848413359075570893401324152469191183689908542030626193526540835480406850533986469871293525066004233845264643571887738346652708966167069469448871053884186659968325206912381595959785065566229070457128915665772282988838275372932425071937765961279454719088223829723347347550630593256204136226800590801548416767267003150909097664950569294148032804170906318691277679052733620309973180696526465699584507480574102052203635697969120768718445653447012257905610333738542662197242403256854402730092351300218449359460344371527407009077649467910136647739024829833104252557352678784818680505048573942260111528286546363437196619452473189087740137537058266548636101697578989087349437023922690573767600338809368317143262141135660253909706457545647927218386232963305115525989956710168986666633067325008598098914903711723272224122226162834284826110347963001088784719306148126465280868579597324736751451777592237570120626627799570030175711586037310359318691546770258340209031874911118821764704098018553193244486001544128565378489113575276906514298585296318441227156095000721476002619234815784632341370494195519822733405636501958687326483313978410129891254070938835962091854553548744279916159220707435245702702488334910469032914454941438759536164965973694638582612012238841008741883178136475623746952498180039096085701884912517527850944167151616086552543248197930092619171799992226349184294723156503706959207640889179629626882352921857317749326218669042387765802611781578329900391223035065083111832182412284511304502111188073376498722334837764881558232952721312679263423537465639162701465853812551101589178964317643582667418450433486874501814123962502795161108604063856825090780059726397929175794188532690122588909245910845362697152773911748584918653888035026176726827537090353318510992065043449818326580219878462403256655878956356556243933636148118512401136708391873188052394881696124263283233018999976498200141673671974548558313907298374259385573916618359030916477954512093334938133545870404964972351635653710405480896593818293951961987154204847099209424300994042326054258128120382441964239506918147992336577583458103269719150709718824856054411816754054273372598004163990684940808862670778293536235011584161387043126371774782401432393185774746490399779352897330105956732049996564523341205317176862095436072775108488747761927801773942517268482497148540559857374826591660059517251438412978306877153871903470077124660704886312990915215145307515498067729611315959454518570630232210417383606863173600993146236476663181479179861222714619172533117377787495960225417412358021201199915895085150304894468018860007994606820631885411879707384730939589130018758476543399116573902378759644832562550679380195125590685036270464128342011017784933418278334236100901127122261563850987034196339557556408600047074760991816444289241016260705672172170404833840345461108363837397288093638937814311945033093597494091413050628220825651492651813944886644667716009999456946269729149549529036640926973896560945365100789543127192769420932059344571118972126685978401724803679785785794631646322318017376528045674247858059158074235102665062553439763158350951940937758573376760172475938877725925425347948952779179096313138981270723346930560257210199231484511857071196525138281019252706794822327403071591680706148330642812238244011949395657065068843324697682263474305143253650151333890984497576687428612992944906631582844692636081834231899463302508752613406299087958800160613326079469728345718366087903822839690701842471535886151652039235890933047521093307947457891586349360899486162450059022246269094549035211163839658689764621020261029844296750259294724406268527994869538392147451547580420497809440746226594952599520243296076142639025304316273033709024533297254606336400817406076244944649699103983505501444978667541384930292393869501944812676168385158093738134342617276009942469944791103022100127764103939478866016925827942078894550983222390441150546181490571466695011353755634559387558278946702534557802824719367514120174707515524331874061083193509412728416456981828227839618675075691756205034390370644271656055684526551847652073677447951670396181517179712289741443002937056983853967247070726025388286874216900828435830472578092557839871720232595155098173335210401605063350673810091751784927954284169348286334742139871255499501732910817735760845373853443704783297510566344976285407036594982378789706321276321992343871197007056877970370584668180035608653943966613349475305446787366775835824910347611314155769563528195620759699124380875524694970190087538234917699630598259863901907353941307462970854427898445450940003069249419601441184610827156947201411668156666168600543750375832298546578362143393595217914992115462242985923982554556578920255920713990501828442578869512951770766072592407608190318994223404290365593827638441178801399544842404601752207734237146697347294628524197796462176215165677185766328707764624716873124272433627764619962873064406963830077236790054072337073402950050550976956678926482823364262366793074946129152480559890454194713994995408734056809636044314099992815133174054866253858966014440098657276150810848251364339344613981754533380868859196040755212532970843425485645314422900477185236330261428712794703448927048185963037708273513301243434857691416560393590383755709985686461591903677635723581946333805799867764252831312598130436409560709653060028870234356826714492450265115022661753054688227619920166067763596612843682578241991204583544555910564254517702940019996508807431172384250504345445248580704604999646643031786753296928319618158211999757626175771786123845121463019505780592958130969751493773744518599418789926961229287894321180084465388043347942557727800525362282421356882460954069731401410403972150474580336226356300797299761177857529369657516995190937882658536800084880971848557046574324822161801141846161808652622453696027373786855663264954143971416286409510932294114506785520827486469051359243086864566542158349326573182981356462465918581655932639105707926476437031261097031346142938702844009175975145559156466099462587506471282236465523730377285395589353656593183012425417330088233930024549693045813938990720725370998136132664591371391561642770902511728620972982285029287055093111775490955833106331868783639458369285651677254635152052280462850750766767289743178391365313689555536085163513411833007755483388393490733718271164250653056173635976108078110380514307564011227863209354572274111162065260409176562398457682316285240735371038990095663479428158270829811804408760829610567347758149745710381553209832198968902907540374076071276333997915434276020572989692918034759693051232728699010118431651125061865571172280517739216559243855686677914869014022224171786977774146616393821768144234853305663725361220638789198227895146068707845066826310512642999389635626382178647880328054767757485966795339188358617226828437364752072546813682791577431669827761598722343037986530364507298634002085041495888156925124660174518930945269990572979528731055620418632095146978545614560423512349103771542305013441468020556588070080368437357259424975316000907693302897651036441567033670927590394807013465887458161353614519260101729789345102875542579206283725262390745945817095203533603555639534588279734244333163373155074097781039603075797867794724794022950403235554235982849873711086692379866615549906368754127627126117139578542168652618446814563578335826156214984490918064581053147581232784532457853947688784336439814510394645781484859515277100503234868181186634418226118350959138668165138673765492382211024164807609957555497486248344701114188308203915852836677662023312034424845437562944085609674340301202614361155391560434430568316614730452074500754802788857186493399823785682301546935262003621265656723426107448155128134631955173733809218553338878429891328262402759661470509340988672663874121593842332223302555193640253461123860744410978220579732078781608596173474096098173412498720830941424164598328805712987479309514279855649798960143053892256144421657156066771829173735104647378422673780125417147298444974472985093376895366635385143886639611548546499063156611557503277575853457026883211506543825730604517035640697297156410114380669402760393611831987559748588451705842395677012110786836530179620706688122236667669879194623311190814086915110119603229069054736645483164115502155760624304498943191780410895971925766189236133378922656124605432972367529518530671686176941527734082280101932432099353191364089622013496793404216039067468678905770449369813309621562980147929448299134196625429515815543492213253664095103538725821335690168283518782929271853225501908698563868890527945669608177432188723193247891893079656864514646583044557440797558593326628496033754642353690462196745135226184573812686591859944447873928609276838916773923843802806454885882344361325679382154888833517048569512413043759513193981393655691773994422331014296131868326126565906521204563210950879603029056282219859326083300109304117209801327075644997495652417223776676466524320239697515476944413526022262522745768998721366137896601955641480557301866298999883074380406085060278528434207990025512779872184204189893212619585101510592136623105510606817308933739798263114530163231537468235772325846003720550778547432827190954932105879477123428240245614754273976998085736449005048958007228166137118189067082669320529615409318943483896610181081677437321391462139417218520536934228615120531203431092723013669317120262227508280882323246841047094814841727491923790147364643068115717621267200121178964615957648266330274010038178683389590339080816241510531663191802237888801772227162943700443892937856814557848386629639097032697216121918668378500489919838022751051936703624430261495685516368417189812510134869369618785812315860083212673917704299015904957922794298021484476696105020453101849510824735027187157694293343899141038459060650184183835960510173836051932507680188106695665156371510654960997853669715118870868880789107414165214545492805940439381432339485995959668863260128910716236500770784855780145117415172094635774000805273476090128561183855885767417759983218283795714841213871463725191399529701255711728729991286640651616704347176863937511269068294254188773009000680915621740830054324123131062425816719889143724142531006635903209649560137787240437153247087433386474027626574127146246661649751831520173981971590705330351473905903571762704249267859306739767231859374008797909169811796902466377022029964121643366274597333918943841179370929110080665137192463230869291448949343963331608064226086262159578430169064821555828363070100088968250582388977591139191802314317890181629920212378578553247095262428272969611793202807252626392650576735042311715199173387928992341135510423659027793388850145823853853739058001338407108206938370491720155140785741921069016888421399229025278558313063114818130374407127092225899025215352110061369461322023588010242747676767159831602583779311713107885823399023403014979006976201146728110756440915944487778617891112939474039581475168778172484247123465705019695532376364593384974527921863687374390697249381242663694856435845398717317752014382446666922952023148457494504165620367088735598199058211971823101286795936629607712058804697698076692379690645625565332194337308469265973104449920195769130273638297546057869151532109163280163990282658281258344609781728217393431369314199745881956113406412863090055217846498632831637057599830832829714461322106759901159021774191620231102603909028903930280920329386790580684686175953537153954584923827461315074660151969502118531261968908071419574479300091594139616092478889767571913899363916984218720317439677763826072136278001437317494631847350128646050140078167719880474233008593187942037291880575693821856699198067874303143435977455334532949829681767343357452081693026887639266213343643515716889766991939542444532477922541084669288731884556779177420052637575884553467152119445880165390234511878386967742020353414250026074846778014212652132635954537422642135194892775101564599747337774458938546718043580549493731089348512621702894376584354449605105574860152413372680422006532061772863332296379926659840130815884372938968224249606756959263312788332752994302424198451509262032256642169069823645762521259839105407318473060682084935403440463480348273290666002032778735679743114419114141515563183332211470919639614430465710633399765190843146253603950521276134529980961009927297387766381485371326599723827146925865842456953596024962778992092477085301489695545957142283134993443378654177427997729029132276100618828342749884288660326404043816303939157686642752445516638700239017807944502862098065859270432579148727420162169435989128011993978826731377275790479482915206303852608276674315016092125064337101528053616165699646764000208775355578783072849618004646181630445902587790025507329660464846910007123169130343077203374462611414089065665642262287887348322096315555673816619441285351913338207839552751055949282987876270439922702013388985512460791751342328192226719403904633755874312593875729081545277058646903288384447616520884852695503079469177392206379368072209359260562939405901144521989734709154162569273944111543065975191178849589167649794394545718124201358886224706310651717629301678583125783697042515174243452229909674539295130153935123858739315892022133062001047812654140852775647186891984095299242822996219952278748502321276381511265513504031346801206291949318303929117907022159651753425294238154947930999923381172417345087954117950252078041549326146538303158300749681353629811762519170178260357160068806229822434970201030556354901171691990148020356568794704917556925546458589323291325556847381316351362982660500346075933339405520286770641414629504367355035503004123460592753512256837828023134357365438825616681686016066253033404757440728460219947887052166097757305719835856670769270750078454866232230463065959147646636615677833419360399513900019600746885051482502342029111699047727473785431534274677507711744746818043996136964893813228062835832492819498758940518371180280637969709671138304189684197228706437309693318309114655569841658563827361338846020079821945973574239284372457144347945067152782139828711111005167303904854013320752871968308910561907117144636999322847971432647769210945682570459075393843295986638734060039742771066266596012200023071858980700131537337311841600391372011873952867127590324344970738913357520296045032257603819656381346702834329061460946573436064953707580043627130680128446348603173801709590552167609534018896775746265822464152943507179196181051642538819698147571769076346511619341651271380295602811926471778041858586975143106689067548943378100272540528231797418668227723275451234929844887859879483452477998587516667955246002847925599521655628372744340552484098910872481538668096564937400571963844869611540628419789207005440679173631954898162054435724934418525886485579101719645506148104163374275075130346545375326447632691591178731407796885480197085574776782131940007127726593175430595024227983489877727722195870529027958758130356641343078437642037292593017511515593608956818879759299119682507876114436286645565673643538921029451162975943736765621767292073250788060633933550325628891780032441301120202708934896638062573170168033528446385825276371066135660404654260803917367551751938526773575930203980884177788217465244910340430521631121066085788924356286175315489090573910255664598940689684085269842534579942075096353932474357149678957491715539475720487375981932862285939861321597121236117763959709163629233678530994552241208561244078684081764872699104931419006469891641619716697885126330934869689140829964699320840752074691789742048353240371762316777494228055008999385953086515542139707268051110942406532852755716655053432652258997391113661299427191180957936314586380450304536619289418341548302006991521087690164542951071599996913853883244691221871345585388525684256112667184481837627447653512857547226720359752834110838967702264714351051020842459980601235036646628107443021291618491665697114038440104772567034767412624273193898791493753841161515000220049622909560322459045193341529036791451609272598846120851403824611913879289509625922109120199573961406459885831907753077001914819400032840788643454795264861289708830377085914746451317582128587027494867468040687569053049942627076766383720428344718860747544678409936281094019808798825359288679256682863365782474916085742048225470152786145318972860409150479381109829766448599022387503442047957034063376875884587067353134997132417971112562421869555660171822366876162478154770695992035691212413236984910793969626847931067199405225312576963467851571672479931899879974346818566492058186486800851988839932992682273269045224816080673040415521551556661528062207828730138671840246773621791548556025840290019215872751198364226541181382846613501191599280230208550815411906160631302053592171936437698012129027293350423153228275607896616984703202839418892057596606980790155398068449549022189158836939686917106033563106488709766826277578843197653707346139716668917426454935753132887095013598460845899409834459955015841895685513598522986100725334398247862751263953395922955434487715342289066754172945150218191023072888840204287771767864802875672040108938704817933115233107380239295589950914870859360571380832332351476774252941868367433703973789678462046761188438592960315186402151222553919365331119302545004728655655634324921267893050409078492120207684728556356436671878415116090472502929936047923819306123926489685053418085627912394991697369626567122846931294228063203323735576583467412272606440840771877518283896796018390436475645062827815148983717191675823035738284853850062723554634527789095942667699975442671650643874578573787564337487910420093559091134907756245307093521913827756862056551399061912223822081767817592563379470161791033942297390357742439965425837252002611036437479696582582445889547970658336407010095580926689462071731833100674038869570754494014958173208653870060214470751663194732800446394116517370144369418546837433832023391520640592080017536975145371261085716645127502978570207165829418227830478693054787516644720570453464528668665070424405710784992286737242811271806280576168837197676183210828988533189483858584946027426742862346110541951673085920474311492625341987649084672593889180441799014565649634566809039021438781740069835565086724058255603241541615013922667453718737569572891715283672686388016322561466596686806391412622703004578574333115806597325470677226933727970721095261767369129945363399566097565345013854472336232921468135529773309749573985654815297580027927048110175520779367443552837371848895694264009927477155028255182934581883636970143531038344209085211044946792113862624154091921208832464810239679844824181818116402571566832337969391851915545637540522465244219486635665257695020641877897601421371081402283365190599971967705554581903846059393289887740553769894109311956300242134690696927088743408453780241675219835345889745726926780175633150374660311943787229243335717370382529894819472369255268510053196292248517768309010517849728015735799584533300045139535307075155078048303848208359870695195940592070049021475133546147941336378660703819077426796832142931835335068219174748807110913259508857031338393779653889939718178226067787301664161608573115964417705118853077367864330415971962843434168064343827153260777533057846210495832344748145030517915041853689779730891197920918770857180077484452109147154599596257269569574616197625757050677405797091903047729620781320241736270276831025730783602464033635569655126586619455500175259563314033523063343756048895127200030978418298282824089328081880512699746884379684669452326319032463069538611924797757145299732330280340779576137247998631418176986751006746651422804919281329729517313638901580013267245309401552357043151453896211049289832006265664723355917763231648856102320079670358305069633804595144373725696690814357585788144006458253589284423242595342660608577385249574269789044651496643000151155933962059143502755606322440791842529781795324589234453837255794436903928815194112026228646082098632428386954787958153667313971011120616671815669445265513370833189534061982013674420695745567225500702146178580994741567357116933632348508885127240904146685321859297855118915315266177277839405387298136287155710147517242419198436372545536073776265408383773254928826712985055764295208445350808365304735703394922606184956792540681574087161012710846161695621300169310152205548503574950380197889857773168164213948551658609150040202732484249813390375376086448382336257215296009243204829931744867713059443772806088554798743668935716760667170762688350020083361680009288769802947284186734908825065605766724533167526618818471850437176000890872830137856481304915081900197686041773519656268189409623276146229477956208451994473184117707937045449015864237489030823509037295130655433409599723627064727582306754961783088721529276660332481578069408516834510722969349347367853926114926140961157413596189784316706793723126483799619075316198011811134429975055204983947154728565012981536299241115687432803213211386241328705472275962879605682911400223538725677685438849395372425491813880872428882111084040389465733167043185047368675287211293785611771160678723104830182125032948224353233203355225807955143400960050787417617523298869636348811999887566433103099304281253845894819905919246181933198920098066323050958218594140912469352738641615234931245346671653223839733964320526436328773648046986565587784097871229724921115832260992553714864935232149282624698276007223472162045362717402747429636757680521041887798776023740174118648016266638121643322287123012239413360950962373003955748957443021865734998414440823964290142245182681184711417908252881838655683465357080820868418839358639920037916226233360007145598660112809317219109856595303097028112757603024379301451117915904785211673450334711536874997649654331343626610543845370953908187824471452859061658239558619525721795925583431367887426510463967992019599709975116985989021119631212943726582241811736381883639474014037497737746472919975172802110312639641327117485151446366026361800333075749527812572488972528702325487034604527176135682391114850431448326228139240971273623911629564509950215724326884357195524607471293423081974215101709079578734730404969512670696697597902648605685332483340024406691822663642372954496465680005607885994420963821519746881096944404387802506170235660485403515691582397424578521820041356971744371513064727651607012658048313414452556564904455375297836493136362890513525842697651795639041504520888460035273094160819221425871690670230855881071690542444504934407902453290812119656007873362430138890116463496382361644182020749120925767299831975657398779772417224038151633748948080241781571617200469996485696194641834399221256249624630675508216489887732212577229036364642657972432809386344719049602377024148962133015487142704563406106361148784564683084101267379732880119399467654328654281208550040528577604508675535333839606125020131788028870464656549782696936017371815639162275547364277021317622160055074474674523968419581449466755412822262652828617758243483697947488018323091240311266206963628510323374408623555837417333022986034962341993845094910757977291955977154436807850376220729194190754572765886336496430190733241556163693020429819276223252010604670548563971098463542219695782147394068061393132733424558370800962520972517734975612660824590351038156885797278131760764043110196365618035142801921546259188441142196030306063320957499547907434262400822035344302097199187077624522593447461332104179680704207306024383168444551313140913745088195377750248847899531696941069317672856471454491733093773682915677409803262849926000888494638883646466013753704814223941877704334611313292149327837182750011136254142710520031423205850587155380260174375462869424292674853024725752754196681862967031827928150741029094482712531959026877009708789769017700596703797349583148000921339750794704961069661764419288922929245974175571965095143296692459087724103654143505333062520304410756437915289032071384082784920674486556932518230909247019265571610194940539643645577276168059584449916639741539833735310217848358495668994448992809615883463077813987148767375246502570782481656762846570497490145811033073649099061604347093766804031266418863873267110770923321446056539641778419090751815046384495901392824143945588198012894693652801276917173549546297946088047983933589027979646065902342102791975147492073242887415463367787668847984925435280450258914336841970866878881427483459040060641378915381992193712702906524786750437924331409188358056116570771485778176549606245394872856566555940442692917438907096575564692448212046846936006348665811035244588085517278867682907821781802931999856323574266234686321519850175343081343507942933240563124796130787560025278444943301063497448872333261326001281362459255749196082901518233096870157344513333054192544401900280731419105579357927280733499960994169862429609031850696631222927070552389293643505951692690150845145071476554586682989840276522727801921081745798152513501211201848982946035638166300468404458297718153914864643664110962609563560517952681704343420750198617251939843385188769826407525309959053673413566058288969648982169125389673932909650309117616960521783445669088241098327420734582334822103781626527964740715259491601695025013137467770254464643740415840423102918007325591673691963597555218272923718356969091295267437569439854699194769942223085669162196272323396175370889410425659576528357534279576863643136092121202047889064775138094358170687608421015362954085856332705278137399295088447526035154116715357259212713004037349405928525748816447770135491326479381945282471687936488493967890569477803197827801920086496664004435763403033164553169526025588357107487192970115964666878278015719674277678429482711496927999123926199948849946921375498186322387851055949869892657167975670059703612475736543979560114015230612738228275133147760960500704900405701357716040970223340374409581618781203858301018168930935857256217147629489154866326957089788693496014145132715468802271298115031843339000415881991014782677911527198710121879912541621108923757199188545390009218979169079462952763917688872856870361883283032426194359962484677447844944615459270012661332287697819648176962852114602206148780467923935417993874349574510197898383499171023750306531563711966425749640378973793439849287154716196755891944643808924254955256394096444442728932351311607611715650085945980667488930532522012611994019705827202785881766048046351170399618691076947311174880679834347632349229933984482751826361287646717187993990459524019983456401161096802615989467682200817967629000253555808342408323471788429334428171914611566528174156582064846523168152327645444389381895407666856071670203866189919295063279424150852330386491442959747854361823392921663367866612513375546393658082165278699966533094466891073753911873612021560661414401661459501674312840270245451410639118438800262547481159733457558940075490342614084883804911130164512030374144393666288947076463495701718332137442691938722669689454647159132116841980650201552111228240027245971995895713375264490272638361481072350626715001340321932560499552320824722976476049680458489941646911574954176886751612776075656561035102864825514387008213294394143887751424731454271715969344973694735096456070045467764162362097607363119647345110568807474641402899441429407619140803527048892017032310969766715658764034545544041895262851562114216567322535710621151267146399933564779502830012495322578265785845919911850299710425173727863008960281450628612501806274855702456256048565417075304303552392407076573680771482720485422012165779074101904114546941095658776250679538868598205803871903536843023463728698344720989729211151034936551774456464379905063526009837403148381857797500963209154791029414972263379230996290641162019867770300637545022098095145328451792660943230718103362934251798017729356088161507152555998283772781344451919173944419003501986028934879337494006919658800716950041079491921001961153139517868935577484461973824432757251369242830547450801178515684435111244305333833452778706703870843316156006917466075454931563070319770646850601571083597521044631165978082083543686202282328948852010592720845825596326983395466200922941589505093049593641204177936690602531929430726920110605552823205530271853925198855423560369284597810434048463717886852925204280427936472819341880652040639386117942375899321831308811979219391926524332377275181632226668585163958948922122367887860368655169670422417108928800590453930806835091035039245359628135677272159554439082234842298552782072675000941865668647117536750940389868140096319159423817978340800507128796341719009178822487442197932880541515334565349668578975554550000046332234946308169840738767801583162382267024889322194784480482440333904675081968164712319800903097127993661662877413719397482542659832180726914871961652203532028645711714917831183668070722135272507594086526288082584994758619106046962858086632806125965974055514013553567380247349629695363451904151093568778723968384230937543388642440380830259666943531130435072276568845093812143472985484365552928360614143955773635941259742552623437516317317660845698075328000739604855539254757453698624926532909532915391475117191539067072552340378469265376879775922515641132091457074976318125565712618181401271412804424604907105100674267999760403138845433483239257361033661495138610096130899702592995923303841194357842022418553021364848781946545527155806733960063837177594461019987884162319144857248296224464694822269781944075382096802150507898999078601623720015223519976904573987456196257680665594035717195863914830766320865483424048504829799936981323393051687892493909354754348528008291495925530353654611977607743432025190298883984069349714753041504324362548927663887447513086952831485899365543008460115248524707818884385585591519611899930411069291223358510789611509439800570912427163713397444510068006600959596206268947268614100698079286786225506268211961304445214152380073491326306011775962123560748782336465769303313029406228038774200339830574102856853766826887987218667457511169556189916987928503953457951278182025810625844772231768851541007443009965142849513557116692300250888649777463748507854390796306163317160123249386852370823381558124845943004150361726079864923592098410782475395580538744991380197238476960269806587007323138947893727109844039555424079008492730142446573418971490176899072450116507940476680834541363550361865032299195059503210992613814958260306780183977693006869021041231875319107329551367042822596752163598897741816735685150784985963330508409715690716624028722306129586348852736042343925184662808361144282598322264893029946182551114965270485897123663367240910145345437892212723059127628635294605308341474721584654252082972136983919433146335289625210709640634557804942034204180750628557553954460952670633428101906881232037221168704721078722164627439364264219415735856224666929139227638516413695125960130622840675046146801526301746752686454229286288539031600919966765478502230643142942543891978957333271109569929237964567094245396256922167720481953436813017346166040109683115617681374016156626771785598393724861593242964805869105533727989457911366045614919801823584987503491068547780293213470579483176255664903023041124665122588766153441195073735017092201515412894057658223369857051056158486553879019550800073163607761613678533166172218841289989099875026520021453424618580548350909678281980384041623284923306911221924834674084964758294143983773268217754440235500523312742295749600743330412430414917942771681530447308633523851896264753999082309722912760643417548833861295430842504153753269769263300377609373137883739888950622638257390580619152564861310226483232305211977403645067211095390440053989516083148724858016903496547021001847178761451552811316936586970446124693680123971979209133827397594537823464205227585013912830333538738458348006312705031928338719911461389653118834023221863071944031052582270159920265178562210501881784184383909600418278608490071288405482025541855051229291894276568639321276876445306117309592548069205568731871600830589307511280766574359588595427766121915582407259610721629919262672156369833538911403125786014603376612494499049064109141082580172799337739759998347827612624358599183438286196307803845408155442308949112487511195922982119528967108266611860839363230374613232460979734038617157347403557180008360420370588701404158553314247915171223374495289594212929094757765502405804955074227928945527673291249849339555764370844449674369758053681422490235760395835067815728152706242479931449721670041189579131746553197675721515908772495962401528955094126175112295985798931988157329493204056631556604965690020627301082316380343634118012416101587727485716825330698030318102969479503367560054457061387316828713251909502015354885170335679503824205355706792925826727841268801224918095189109532714989512587113897651428314619766179780855580401454613762819555253701345111768156936811384497331707632114179101859259184441127655159933814842594944079796419287859145672129004122207175622833895708374111390835911187240938853027910924152598906139918418320277090104203276195610331088620738822913929148061834884363575832809254071314595148063412910032746924449491989503730592241952730768707813443681538272691404009562126941474310772003531523655172964648353298756968445687376416633044400081305032783619376036361005547167468638531511372290463369134899438109251115959101289352309824947235066235412070302439469332495740605348076685193751601143805193736347803519181093800895664634438761618432739001354650758168870134364795436350907677425393137127744424678961754741792934031829379972536451277228132044804036364845122260603247232935761486545149425631732669862266277196842829515665756453670792245349835277868812189202710940769513627924385941452484232783975844598275434138559415198760253328699118596482760427208273020463560600075962354620755131029611600859017739888887622980146306309059088941961166325474265610497135962110692648806320018929338031114898170026491051538053561014658890224382539443333176623730321469565291165989900519284974140118413308984010910413711621918664766012984232911058938911202262463833145192275436486766048101839488966578045797254215670726177925286356217204671191338967986487723125235061513696366026231555614239267756009596788081438765678693227739670789138119038982623348331068903737624899597122391877097250832773994182966054987583883028428618143478135275184384785721969414815574429683431754984249661672513490166471128579966803111021860085480375409318567881879540887416471661098813975206445746324256561952858938882677396861197267291814004748597695866946509090438888905562667908622092020213843511647036031577437037315476070245590488496886159544766942191600701366096566695589842375378841761802082667583529636609407626578226810949282789884192362589830961543833593837996834772105283068179754356915427552027385746308997890170951273192086436761498297678900475152701314603494507723546126618702789882974998670129904181399345879795222023666459459837802420073815369631289738476834876388033698036204546893020606932535102361268271545909337146291395950021512459127566538297576323297339515222799858192378529220355428761498811444967427819814925044678045900643692043115758698181067107216160836581662252774413672776814871026131242719930614131149205471682954507759979852529916435213851088457497207108680494705779901979604341543212693967074863663170476572093052841364440858676491696193994408909117088170575671306330018911698066451538531291966938703428806337973821376668099312635221408419246580782657304125374840072607903350897944086525273097095042967025346196392559587018873073961623313675027847327057803700419232339169758535325928253600596232543712513088597707892458223379831243430134737887606846500997390674343868804400609729976832372353217777721678789269053563922633370939271166342059955641020680643828157264889050469965233015092092802373906832782307850168434688995638093521567806067645495528389491281091839429904057015227267945786603311202697706873263117812370572578281706714220152244914443696804545891204513997790390088313015559820977359526488256627484244211692595800607911137526121468798437347418964845749065460866651133706683492898193857823908648086050558812382472133576024637174340401568180811771974096617727839191490215291911684055504565986614222921567171035461763808922175136063519310017535406730136220052745659920338924138290137998453604573931061815206486822593215134112178100643856304423981003575367945034419200414544373476756232717181866308971991829151147602985489618104991570941906081186658569837819545671010902550988527814977096564863504847728267751840626349047749117280770772005470368280197625943986246940926739379859686760922968297498533681774399840348259173724455253364290541870107564944657176981998956817449249961986814594718640398831951787500491943328098748069955762357935209093605638436177750549298247686012507998469436662527535772373557847583331559165688366680040813091045870082349962710387950652919718403515569457308490768834204327201591698054235467494398647129212511309044476687780467057976809572516866246461089786849196354867480107831506249896979717094757851375041576117680547147447926438627082850700060789106005430106491293610083982455992655113047731072503503393109812961085161738068545739269599054599960384533431966614705359983433578032278269076112828460114009034007488407234514068756920982539574243666284516925508102480286040435289831554212750843182285155682277641312017582849720138657594268393550074472871746068684908304621989139769063340032591148118233002424004516486467977034424223172084626867582531161681200040769386627745997401072148601961278902839846542748178071678577365414541021801193462704083136288109811063136295571999455366679048845825327732225049080865439250603165027840693640014310438865460388081625571394119594429845523477714228329447195263751596400941143664949516788352520066412926910387371126507520464553738145944966317699487466290665060326958995955933764941288398941456684838084087862471658513627175090756099853196237849071638113815376576833216267934707001636412439288316152391105688745547163203652817547859693157883629137120256762165616108713836860460769139278819495151715961944305635010279547452987739714679631071970751724490362737941858028293031988273004775311850692205942126532820773141159419213915261081991671251477969259560789950817745819961664041572444365803105263582422256500592803648463396032748584462676483117631003354476374880622129340421292854221542850467913918746999863470665747317687434296659535120601341267561018363873701329377974921978188312591298208608672469362674361552460714669782487462447846778571803338445860508823775145173232663430390562663079879192690693662761330277616620617653188121723538360731391049707489772340912429241938476528351404898692501760348471052497868817354568504179447439084150980595997185392762286982744747178447792971220646191001978293898090410647828344351671275322400094399235431226056273255805886308677977973892216796121315172170914811064481979777650484860473503955400521992730173092668528144140593050600854787296371495753118806003094800791423784929598543086410275174837198742939527046641231019819070244139390628991501851585849661886543392972423227452841061077027942578837047735561613505071191962485285527613184511262237507058167054365976918493325487879430728612745500450388892576202297604717795707132422469085375255495590722535395812836119974387705581202331329550356568673964186205129398333373645442824103269835739820650786076565911488110403980295114613706942052145350602669022912277478573282745967922886747874154410459280397949978229555880564717012977737520271531935144791936007662864400974280432337527937016836920372997682377023432103403194056456536060364224679348639010505756138041612013944340692664204313416675395636457318667395386850557010563402370069606713863143626992959020600818350311443233916416857010848634527564352270694907799397086630596303279353368373342005201920046201831087681915477284516889589978286399116923723363484713421012337637517980843437758024676378722334232853235213454755255401570384099644135798664564633568415464391700835100579599657451815440949185586929002711122889763342529101301189114180719854906768199263946620035053306381202820656536703885011326930945840403592480378260118751594420676064007544039677493418965465789492380661561196607963899362078211501669644573964511088733276727965424514684125215551681620602006523893706680412258825865004771289369347810836732739351218860876153610221782178385590241079558446786763764860448578781572498971047885514684522842412686815800298702063603961204223230119996571827151726714173936151171557656014838537720832312149451185540615916744105628145299700776216083096903645136733768932740021764364308499687927069343117800051582135122670627530863575819304748758540555997016804153912721886698029842476397378481232304160176136386276266020260312174736011922986306508152112313868093377939559020262578515542517399637049478515374322039377591982975798521552832773185111714926440794918924308104814355174662650858879713597205959438373607805202036898274667998123246970889277217072966137556086797188359038607172657330146498263622272183861679808763270687729988470916003200988403793582689470103324265050564943808581470586877323773777521819690339343987772383662660944464548205683015671537432513945719379535821044899456045752531486943829257916243555021457614124686202244897253252336238505788509451311519278945855017554336047542637702743568867071726527448003223233837515531157588724259262875448719337191627617521946913600909992945160263106192169510131353043490290988250852141240171526465896083508394709137809358455631669836615287177960020485996440737304318008760732727341643113057257626925534729673410073028798325273488027627047810046617653326229368828642561098726574407825421776959562417126286026798666194472498523963481595030218245074296420733117405974729019899144265509503885644888955735559593080938245083885931939382207177576833462451347251472097336516584622837205996932669940657990230812256641397960082755023541735347096096001951299464700587508933453358965361548836220749222159570194182470116115327876408391099901910469120702032401323302600932171291604943450770320507886854608512464811470413379357915814073101726214953624378940808186980115435971522774347404115418754124539934973495532148766405717510488186048113103613974461518194971681823094535302307612886030456168831055467677649212559162750830866302395246816388586750126689102442845071870145648582157589612481541667133127187431965769841375096318839291878277055059710154426411299888671453010864516457645310536153534769942567920586460010898041295311932236618962177382043690840061216688881433740560192904457512255737342096702756599286635281373551274752342994757715574865718397997068222950780819514590890109872752367147174865824407076414068062866935547684260305375840212555652127038713475345746615890191139596324995994351936609822265094815458959452370407119377197063078372426182835343957931685906229709670306453922697207012145559268449340415112315009267692384288722319541675231430534807806077068406121581254942160468523686411726665085227801450722791765988613061517286442572636333273553764030587352961450026430973161348574295974720186882649606319274624076204146603232871994091932204770284610069574800649043603434011003021978202305632261740879712089909375701101386866978226613663220369702778393331307658868483863919765390666567631776837526771080531569253467701751626057791120122101967304598123902899362739817871867477344342458380761465669194012354274287552431878529561095162405518719583571976230485944448234882499158632212420706842838099044968703509853256635224368210976990967776631327593816754022014159423791692121977850794064086237078595870483720486858129143659842103611463434646285025538758416521804993968392517999082187192280051183472101542696401608319635001980917693329980054156716680015892000760929523033536704829164882003203461991031862089425271384699568956189148178745261072905940513899611057985678307481936680588402598665923683662300259102605748765813854542172444385088143489956737292049835708826098818939602086323911858275705663309443183166943455297415627366832789349392117883263480939274575915980753640216293882514107243949571216921855152339619856746274568251260551574687048670967041721866293886974053268724678915998902960445053509280875412989260987996793426327670628271796298541018394807851624155493413794264311203199702095311433383113757671369823308926801335877756232032630680604063478053884401921056446967098136401897948842623119741224099791113129177784135334345974618024863408358131651865419855502010174501753673960751468849623593855703921613782285403443898585299625129521867970816013753854489956831165759213941107827391543513610212650560848882774529329818127924913884552393831563561420366163741797528794737443590806854794691326835011553005966130340709963920317249065450469309589158622438037318017777426296869876902842894174084916548474413554681070537351718717053636501900230528034568834791111611586592880577420564022652359754310987036523877058084799037734815774209481441768847018258157087410370102762087764804137510290487212616087412325916615940345216054413817363331854816341546430456560770909275613087204952371455658383951808035731924701915869769837930349130130732225293142355841089532984115285239674232734855121824048191671340930621241562906828025467070517721883658113495001312804795225255752491243531786267378220770263588065958234013780219939101754869755203221054708724094367680846196548111184444321579786656974077643512109253117307981356955408262479624376000914056838926117766525315469414563145526107263773691545462079317119849300453564444421557387985853437079107421875356650321154051499354439610234084559473442903981186525281388393815740443763198060104096320118332715290736196131078535566649314942962038911096319961851144727561356363253899671679366934607478446170741592628292306562923460666434473170997028026275215236923360419675978374281286595177883531121824638009710819074738247137718042724444181763581638214613152792871070508887633210207338295291810459503396109958103150062280407289509544458260011027020023786898276511608846762433848445815963172314592115019045717039056248962153838593611781517556536836792538740146682714096819681199274157756639905531420963110898193958353110918913627442555847815702457597847004596651282556166831602736966523122796993788948785862821419323197070389202974452295667144531788714573602219496328047582380406668466337785309114140361441038979247924009325143845373297985622508331934357527171202092095117755465500277321201751778218385331727840661628637502899950196191792754482088602397410689988584853567174552208033110054378345571066668483318044470638197853934412490719527097684442447033597412178050480881850910755017865163641678312715644113853725474683612150465699728400252544927510645648835530315297300693381868564715721620109205687250546474197759622921349200788187567636046934873641724404789905034461092110266032000408612341636374467042043860902236222282468660246462063392033548705260329410808670799945114131679011753051233277052106429188922544941967033307094851525567773286983192446341696617006391942378462173821941904339016282041138631207954648310666105151976334057949167750227024577212208365312393407943576931267701254672090025622432190762599700858592340712357310003198122649396262943731147761059449119332939290057208382835796871067502092080286172519224729913106448164958858315573582409426989129108359603128735762260189870743513515565262300094774753713823409769263920674769640405168754487010501635212152809267099538243588197858376332974252440725220778779198290105757206763478768031280209727238995950183405614184069642044404585935859199975009750761727903896882514563989886374307372133589871675711272464767636270144412055389182733687551328679605478446810512407302141687803927627078815655952786034015690285696387332207159000975922621860223331410398963627976477423078270408990691154406556065479076563109762252229247337519946015953459527821387767901697127972068266816929743561757571391372190031405319335344380045139625909193266697951654197150373798595848349695926864510614398615246452499874004907065716594321998538376995185515974057968665176683679125158975610660274761202997499102233089662974439753397413846027451287159991162304082712119387719880861736163845367733928943763759309851179704475662790813302646178161396855144693723467987154090387104293449665736338223597585110938239532395767520727181830269689333899318481674716564146922905167214212902554130309970843789949929417532354895111400190291106620806540464754073123126348594861906462448110108800667014605235325821430714391212699923254661953952905725408424140644605548369037409656110440384751733802430687015094591041212252441708392870445493299381229033093106262008929170426884495058004058686151300314417077321876472125944780186781293400973488216835101001544032123891348920839439811664752061569352731473071435299504899034234846992945122749503180992971756843675580302428502032228564424236677578428360947988224043942525626657711479294749326154626216160217422429163962004150213086759929951654933552344147647351039923567243823742673871732083259744953332614729696190489016617041337264579525675654028747182712418283426275055482248154810659484526731115991179144216198234391043647079500330152591372379808659586265730205413863173678608744785250523169381107026614138004794627955753045739281812853009072998741004912064779616664080544895440091694134422972434437335417344941316033209303535254473069894470169761141008447945133246597245749678971235965288117221042238485582562859108341195385416632245013355546513341504971335941052818765491994171855469575459972820744260019503576601960763489101523146481782091855856882000699048171770362314372942885038447308522546813689874728014297692163659384870730390678432426186326277839721107638526559515243457375971478525955060501247373140701298112129633150212428828886677803789307400515674240679671875195432661990500163599602828990840585714048546023787535718070688074111474293105152750822852247711984252895339922875483212932467927776566242059239603164744428520651101767044055238805304374857966523971218746153416378414411111557545830096571613118396287236082094507680407452371825656700057170935446523628755750382861705277095696192989079460121460727270711895816600520571017525003672596635524707040044622798120543574509534474367349376672049015288675637182789214824989723304176740799315675807560667235480065854342988343445064841159038676112425986376137100747925309901767678793480260079159259484108266410804932150319061371263010749073929843232098898119051238541056201081965504139573466221985369412595149194784420547999203128733055887460752451647475038948644158146011989875095816920229179461136680838267758503241709765002401651070337218550910404386249262380710153407033136598302954418539647916609695348916812200606140373182613360463693284336727855159747345070836037651462233850516928268223490640721949972867015042218981362482504452083684942049536971447212848009271812493532807214001161082759551172142913836772393657807676876182198947668514824618530716498835709649451123309284133689241278809477305888416539397776775927382551026387136926439257271593719541008722143610781692434229110937503653019227389242273430124706066799528821995295595192043606813896675619372088188811848721356820040680173893628344410395784432976174091598953571364408829430626071098288590122397940645676901026769554603356508999264975379445760754932771682322335607574373117969516959061129698744404906767294217868258871132086862929290425979975180316320299890365396213751063820973148770078104502887668630715365441872700848118419095921470527644907572668742137040542130855620770876059221242819901443699747480004252244938104578004360543733425085185932880084525324108411458105566367120411687073082577536414159768909031585402202873447992775555992510535802375821529518344009658222369567759400323943812411317513511958977257079259954946848179918268646781570692265358131344995993368522014520496668033109180827672201255987276392132952516113085096937682332539111436505192224871627690650021817604784256351872917642254043734568836081563628736195548981035894823305670604977525170086203480190350419461430611569292552828244921607986003838566569523706719419442662741425831686817614624491688053820941249637114820034322413096315167563312869819347214933620573965647961478987353498912081005300500808875443790447405474653088524335943227245265176401631022261285858030484983367395749082565523323249873496585315661029788084011892299639027754308256106234384812718494247620631667948823038771923664768299581385353212640667640224896144608524067392537601247538044751680301452611957241803533248845192498236375788998169828858371660161502352390071375915623334590312779953630466403402656469730123419543680807585740094096494067146528847384933327656147927879270395099102652850028870703950132599356796278665307418498249285177833132292400900778487389526256777448855806778985154130873365940192757176123441475798337293616855787452935192043849122240458288190589495501229055568828552495195754342995725525968903035056690130362998318103361668220056792774526856692967852650313904599979817756067116781337741085034498431534118114174827208993228371357980548264145634066703019770416989834196131704606311212782344445425180109437367395242539558344067888714993891324408043953216525876682802008541761647963882475213445039995280592829555939063208355618704583900347871923782093409130472193133142089095857825376566684251221526465603843121961173430790220882599268022536979839402932129780721912083354523884984785571006099455258401113538673163418326076284968567285772970106765070358022488081693555973503943120538897288653268574674204678508877736957708586958338520916520508031486223722578899938723912622334231510747868193549864973160824662693361760654632265464999912631811062307798248064792405875917433770367636265375763025992808692178030230536081821868338151698078840129007899108632667642658109483045154808447551515925844543165780796980657329751386119484805372647825871249807126154169998169170618786231012077080876503018346185725222437162476607339194711663801255252217229138662039448553087545922852382271138095697328369412167127669501236572399840120771523930559872441006581804905912245673336302678447100009845038365147506123124531620787443584342855370708435107239701449778883634046244278742829090858468174399488277393274378588410038238283930861150807954203356706966589432056659008207917445443691841262991523759589203335558823875467848920479453377121961638411632368286136425062930432122219744984792578990963773918688280460187143052213731571242418406585312045249604146992175680028674183735406424162253875083313654797411340213522433718691199738004471605888620920584322810145370571576591348606729936762146589467172778276211376321092384433142917393634589287088862214248177552506379436716661520631836232084502114079048269924827896921049821305657137948272071206212264506265067707857955610979624062991595480109701383855014484497837372252332685476833273568406229438177221288461806327716872210759383451558633015396074219711550322627351067135708339544511154605035993788607416454150353494135486674886347944105553187236767592691191534255068695134927663180237869286100108270152715601767198055706487320964782757983772380334322331695362598333970227103399327221355600933326583290104515942909741245481069634725816129498907378420598177129171033944797985362760975644136995750691731052108068224169855496662272743513477191120598345636728935563033031438388064849139475302694917888857287592079706048320763405799843017667951121226801628707206651280599812387587677941935061582003598286306165832633967907132676226125563678804009154419509358642796302336564991033743727429312250076375970656257421911296643848780108702614783278922253852154726607808120263819428810608311689255303874503884202567549632433387699860520047049706786945438494170042739002918821114996226914897246225818003095934164481649236317117026059821847871823748104504574894270812584220581268392080782549224656972481409297264052522183214954735617583477743378900087565490554518444841429904902305751769821453908221476256485317202528842888077275258880830680234888267285421223385017929149054202807063282769934214886836370381554035552765776249360454081433352376943992681490847517695823346935981614904923428182726587778570312030989752077253347668719285545378495328263668948056580134928533039024756640645708662420654970283496622114196111913960211715927918480005492287701679540239542508475278522120180883495659361940138708181705189529898095260318633368111701020671879709976930554342826566047088411503849417936475194560018136337154244189565465522016540067082516391374848223630226706368832092985669813894860478801462566965494104087402480311038267706037580666832611663410949828464370336270851996093822286874259018045066221081014864454834491365108631450192735645071910584539027771399436526548733669567155264110514476864588995811117054829494284905582177334771032984484832384754170734300387405489957758633182411495344425814940630091347584426826347837820501588854563425867670774058209085088765196409149966004090090925989697815314457284028697682490041272649101725941311070488656501505310243459226472643640461322165684773362666912650533771559951356889583481252334279239891987032200525957270399648550596180281492407879881424980055411748257184283683096768686790378343240561279769570163911418724323829363802214855398254623086738049449823007155069014000980051536189901407888191130465347181396592657146855771490738407597799417805081318981685258922055602101987395260652916023721748629074547866731054268645962226872308051744220556874833455764332241589901641809174729312806594079623411196773475238524655082858408961930131639979654099995236970841197001125046390237000980034463665170381126025786607368726974224192731994710621445450408925224940014320882257382101568854173242999812079151611643249352068030665510459964224731274152312181876311305788819880251301500946783428672772093114735140804651292598236884683429346454799361403088351484786621405293350469199963756117295335299625944648953431082190388887465144563665181510747677480986326428796308098348651255871000310241095711166504246252916594601034032498250761016008457269909909548571900749365537789494999255072787273486263596675052878880429675639814450256936123252760349035128930950557932099463675841724794825291760634191237553814101626720460012026016297870740015769695164287640295565018225596332832312058899445898810300770259389967917700599125345422186121664030232966945648995970771182964153412455322203644070106002772340702209682431711991140247655835134244882858572862136168210940938770619921002659012644118396617890719236624290779838942540160850263957504160484735856512430034198222089795888188523608768419875133103270271966914069304174193802168892573423480876978692447285372360355623295204608941060648929928455698259663338895910089870038860720534195427362158532607951503629502387893993888552286245223520022713429214108655274405899091142034926543334028949360282172758407116046617822544327624736002252726138385961000063227748402254486905229754560895658677457489885674025517343839916017148262163125548291695132757544502522284834177170049710765828039864740865227710548049005687230760354370201445638626735326119351692318068837756710687008043608362912872369847166091090766544158688245600400028621978751811111022317109810615219869107035168262360771229413327273143967011193472371777480634556333642407557118395590944497758305864954260432176017131526171183210275036427143936875627402726037893967878679866442210820919755077918814927885814677547293493967688998663197008548452510500206381559691948458307009835496362991155397148782095683893843469514297339522793263784137797359480846872673519933690760921493133627459773762354072533734332921810907377931289662876077007471987955911086166697919618587295317025516686626389552455080140498683083874784219710479022101949579367187201620936798025058641300464292486598350594268600170265115694401141395760930747303310626747771835450207001019018270701281564581764105070656751330039307756320845050440122244851311227751823201562866173720150372758743256158203057856377688308726813497482013538120977880705719696927156289869211844955542060708443287311781189333028108126713097830377256008090053685735767358277018836320389240497400259176846925752163620274414752089377893316138881428572676701898068247986584209409658432971686206265933798012083810239473200592371031718682300893091973782766401129408615545926724808012054093592726728335175640234948648114055938851259694416312984147675169529774168019092113684761551615999267603562421115980793244066334517637033837624640199288186786081017317954907106983256267471557054607326953367240547954087227706098324461124575951836489240165240533079406202835025676744489541735774571458445176214679216641402404163244313688003704499835288460054960195588074898760822383657560462826652678935299656956690456535101944931712527454728512042045949596468182995359489970055238409926381478528428373216315726280779427211859566903422247577881456061797488341029956689526830362978362727656531621345814171693254279547836010824100522733173743679841329016265606607868498369402907645763910605963817849672958513965357503193422610251523053998705018768874685722325837637878872243300695720241143064552520102253551097591491435648452714446459423058642289026369491928058181007472740787396864430832902334460873754456433176581853695162840275819245501220319889245728627539051285742040348698854568466731003408024057150790735115680294850508072601430565477383874200165030403190222450673615795200356552304603555292928489887481603785247505676776529499207474451925286189980391508062735939824788660072847731404094463356089831285831554073407130096756611033087940256462657586611493855590377615294819732583481266755324613620763474818869986340482033151864172197317191175996678714123418746629193542087480092621953286470722098824619031636818839389159809688907199850905630257876407601668036305894157652706566781052835060827053139323090098584049788332709637712027149795262415096096304576167652867442556599977515727144091265554963364161729130448091672468921267012770028590175038213449255894419314272581251215005817489238449265447494657790396209033717171872219897047292683264701364938026470013543339929041149145876461273103727379604740025634129338675413602048570109030863530731963074110708479032253678331330321515136537761187639648909476989112456790476846607806653256423872449017846297618323085419428367008716641524587186117995050840849800218605316930504556843418565535068310070491239095183381859420900582106574262973731987419074243816085657710758040598501907319452316587876800672193478993763437064424522082020002170631578505210711789029292078867279587746118241059478781988857840390045830745168453817536492934560570784749853655211244601147472902732500915546518452665882713086976912360304424787378438180007170752857333065339530735335048391763888205016703874582009360609405362603249446034301186953659697344361952737242909546968373467109668799113293781498192628076201379821208441006748584071889557867358439801534985586238061328700207619852312031846246486671000826678578889150105405839837631779652068282887535372824896496271811304339173004928242006339275444003584250201103613419671806060737512132449531054184206090336244090359956540842039384258416948621710641865750784045500815908865623979776437041768672069150424261707115590958281687369593657856695967102267389811558456903265145072104181392842393163299707757372986820963069592261864487486022190020961277909952168937765175025970528743803474318146927582164952938211032777554055683858858513536913214902964165869580203303174908323173275176588088919101216453749872636763868309766720618832270680528364725419793525255792629307574850803781154903182716610808906991865436090871284305323609732374576920099363797864239536963442165949237216572898694067593317419668126261135897887177348397514325704889413966644732727990455076935408019331999802807519626723171749513685627024231718779538270207977186244129235980044100594014012091000526637835576348741944657795555880429749684417529393519031225009142500017262877870949022723646730535435355593184834885139444813595574590534909128732856692262249767345155958782041128135904340561557032556686756069597311806346081461192409729184033185604297823553532110530775161661693280798125977194348790316156276841764347110397088813651988005181132314202636402217156149605442882500831901868284587497312001323494528934311551177138734239735131259094985673605223534653719343781328846684368725911890385631804308170334340022118831418869204661665550353092188602989437660859572366655521548043425794628970064532514868700669357452847021589938662682740825273620816133373023204175657157760260801663363477517946370272173112422042155378865205831703473943617283212469585154672414831697064036037514665557976627271191060376999531602030644494442913033964620234197787831827893399747162662747521304398647287126218898391315044551080289398189862216362771272984450192834339133751733566432920142709731386987561846273003828917227666692609497041416111103702508195421614819775682237781605440073610477378806591651523487921360249158552474571750101784730904868785259296864222106699901547558788738124596893182714490744473711555551698261615271712768269301623129900360226244492031967182156076687079002183847721420745432965648996418483353816916018118579480691952954402550988384008835559673638442382044496306292846132433974616560386515388182297596816342506940745184496141651088130718827922033747461915603748698357704098924767172836859087455325595277786329103114097178738041985931132811115547453135039076114388689007219165773912038445884568942475505581662728459434757518931474472062133066860338063206985742293843024213926364569772478339525084191207383514075614695014813946693215984997450489206401632393089502181703540006180673080531927794245644408115477561698476364527467915076961002961028828071613430037506179409058064748369363505255138893958744394067306278792778257546444668890507070451190648561031787388721357180604912132447583313775387814845735132964681513524503866088399048084069675687301718210108394277825193323055559002013966844089037486659041636606961314708712365319087882684669819516913454235881880909519904178327312341808308819059189383173158968946839629424743221938300564123631999756645890868351272546133395205867995615322157851719446984149906054281511982138580917773169370279050788072801480881729587788567310299123052249636755701250146803432034086217594761950217319035584113492598048863581155061211228698379119572200483100548144678994289202549823869245827150921381147276148768483624672747573388736170580733622786131851935517964983561324580192128828626657778506437432713770525793048428798249240565893768169781873989972683819106539827442503243755878020569477258308616462218532743461011760690641755640260105256070666590386435524250991353397743310254499021562654081827233223297085797322277192659507311505194386690003227436699367924911123930305060451438679473799897581971935234854646298670846184804368454042186433296218200438094818256965733103203190953793555975577295933823881927023533771477224700987201200663164370934424142721617390986577585740121137489643724384208992574327146251246590015578330374450112244749734039526990527371556953490364862532458219106462297044606334932393576691504679741644827105158887017239102961045439127574418925976971793758157431068214652566075565151645657133579254711333411593515238425038218464814176919590500988453026304419752981460156703370702131543907557582536202815597865551298733637141112389667393372865660013181328447660477575778863952504077873659932166220211423936466208202267665862213372879326337091912874791222985091877148973297210703207950221715290763492178847636248009815060285877283843118071947054657825345464797277994143276786984406489986345583670893295726565001832319847980944661936104924060887057858738567211194136347729342715882224648927085095387378255846857267563513981254620311131992841594027732698918847538471705386166184055479373986900429234988867412887967767875578040912100484678541141512940479517625433156431794035123816398183344633914243749998531052925950400405262752520093577166204713060702051402689857345132809966183595606543654898544241039977922524716018673032193881671603900584217587062207250085042347033608238951254693653706442538159776925792619990175145219796237707746586218181920586494551940557706597900025288528648079039392360683787254399270147322632551636795711937814432091029713347825125211982912910607216046437475899967189059312214885356640497905349198685643420407958209558981882300714323802291810814874224264326198286588982503789608769907014949032209252804710596787902297259620311780578510001937564805015778002765521630959128847324169869215832998099649953576276101619330012433268833495016703163574600165138019562193550786478933216150899775105628802791012830245261256987336830569948564695265432638573455150344854782350918868941814981894515413829521904499826011250960612886126201695142957054200244383764444821229639699652667976115681191058748142392369070356659258743066775802604057192661621227860148643849538507934531314495138256794974090378696202622530777698175347504860575068028053038528990778131569777452457924650780896629335770421323625815221068220169059076772104666116596912491963291477279115156661407211726288987214146275409246782953437178253667905011134232696627856727320276471928077309706774611033720266137192876515431893539947773709643743602816549303509297278938186184328223243987286185899452672968600489287052656769417349620191393669315892102764875657358384481856029103117462496941066173032827783661631690374407816962554419778094473487717017787630061587804729171231022223759853940088957887686260903140548801363339854704484379760634528680976267952182069812522301730300632123816379187026966145872317931577224628513488003787994245513890501405302564864795968485369685209288122668638908331080983698231072760916501950454294820649576152827187112404682740569888801127135827734325921832358632315780733242907818727498978079877913992248600200335447049409160507286688691279320471789532002028183208801592380701836528200934370830816510192314719508011170252772553760200201571809968760449581656012795411689176646793344480961256096363500339590484318136694442131892490401561714515304319281669753861106355201290903032670780516554780279621965960231199262481832557599661975571011225253162785726310128947299926483184157896572268619070904286690823237026727778750678489596146417452713431695588289814640052271475988752999882610049915627963141195743675381496667955216677128882639904503762468021758404444199228141649350432093237190422874809423047107267659550834735731504331870741321639587930931125619908254395675227606837395266776355221076364260783676481941338137255185195566790918605149413515995570242903361660614943879365453395077670673006708976592183631791541522984633623303922492179944061145390082539564848894418720714294115476619398222128030789471862541155558748673149733092456809543057948708995478340128442726817583680830744997548189663682891430354680183794908361915570175923124550748612393364401343203460953062112295211023330561970279634575823834277722766630608766107271107061675397063048458953574722531575723949717664482386140106723197770188128299117828996271319078584618944902151370417951951265819334645896416779346517439202514747397961780980952756819286281909331846234822640449437479379581732204345484295840222015152241531632323960793028908282842115005302254131459215655570574956569345960492437437587097118128751873103534559263291376202685224493185960852053377010764956752367033940937487795620334077471355484001460255444836930234024518708573009623015829344561823080803718439337942236236130679313611772843130864520670071658358537841816561092949651773643578593690957981502534840584997442381173633020393893003131952175391425739961106270694228985453804443032408226960257007361917226357644373888375854725310104779099889815950875689142999731170039343863934519193581614202857225572442293070840851715850094283462055709125382844239857809730701608126356193352689233795445886299129574471661920795353371118054974130759205216435401612855377073921176686513391586775733163441783958599916221382093682888248242803106431324863317879730698859548434856754240478502706927921254836129338194572537818580677872430924530316155921880600312251132300353764193731287075023659680371855889432221386523974381066067637617514715305476260567959591457359844838227555632491593317732514185928574726370742785767801564014392846022279008217723109020573310447363192013745664183767459552750213586412284056073017543962562150875604126411404377311994609958243624585662022828748819238943916585227546015078920819052141048719592154603821103255746711935244640288856285262439144726279302918630395764840144169223784882389108866777912833537929871645125713179900318216167540098159789298006376853150735046575700136541469859187998973923517373615050080644686920788734003964508183748480132129932202956086287504797598379777958343128333317651365279757882153746700896552892688845273866286875843094311784796957310160595350149701933577696250947182817254892732003697723749071600385730499128087402607198670851537033321018268958324334646078048595384335979198527256807144399810470175281824161635258664425756176350322781158304336442513287976729164034278707272806350314092324696651158713996263712896561517809794029857048720997241825154002566501166862057673283600558956453774175498084790658051351376936238178299995034552076209008775229450271104887327554105585103932901794923204704878886914828223672209667710370400913447241018465557486106121987003975754601442272188809650867627641026684616157457811576842217465209520772379726095330187917333296464857221683427743488149529892648442066464680594275659442128149180063353197705156295381928094838681684372959117137591953879380242175349557837078576885074113343067347751856618576775494674791767131560914965299965715503609481187268154346232876008129313235957822028104517205474148291337542348105565095320020053123658504872518799183358098017392577870311200863207218484313153321379049986115268675254047756867676127308788957237984288278694220259461907891652535308995256333082517031311289163479471854303252192961549983919052070138789252404780273361833289400055909865021694787614793864074447369438148746814187705376037589873060416376787040946307743891294125646973709498236884060137481166333038839110565736828394742742724110272230409107385453237831035704836988437689495898133006422037012671623308541295008277224645725640340019456607589586128483192300530515607959546844550082337446391074462484017881146267493722201835279824050347470458126245536636842896040573655336168679697172442062110314030358845716617917012374753448509283151184676065882228950707949001297793787772583924023120432141440528229678449025197038189076520816970220508205436291567730639243256383702834625959036875875877747914760036855811457258574676858479340936496334536181837990901210928805605934951392619402267316342119688727128898292984772268141726390540601791431227642059269618288185221115133652046736873247458579647368039130147414157887984375153767559497330122754891618065772479602424405075718174149610892927345468074856392819047226287759513252557002497794611200879018904332474785581515266611256344498439407675671893863109971781333863749227719906560904969422970437447476350653788615438739269705591446911462923999426216605235210760809359210383586303812440331609833387809054978782027688638447814063027805859799970311071445995589402671288857967250962748941772443541884288640756757235448583893676045585256145552740531357396146566995692852892186420939476113376246776617061268489709268136104088835941903309396857986868157945762916691061172683227382310605368205445478520246045296806043801087585789270586275673574608783427195133001885922691772939121536354067010036263195859449529728088071486688687605329029928487187217004812051063108332892582828872713775171988905822482489340473447018824087894610069286769161325147128053308812645475610122389344213780611203698486585622531306187077621338945453860549360623305593468030711131682721263451925985462248054946898625575087322525843016540674540376486803907010752586511773179282134984463595338701220480235863247810775466626847081644189499141220620306758675409334068817487976395777445381622620698063165978870722234780063418154155793534190006702613882354758044850530263956159422867953854405021004253866733540429441249541265761263228710489796879562849135410862741348637263176663774624436256933709100732430194847984972515777828760012825928385866854457205629283778717124566562344600280270873541439940307774311367475571124239609280550237418332211162208908017643987357913930869403163132875450079658100790772757637814556920403461883106811712803701239604713111913822891168233293994699432126093008393074474611667217159812994816270701866056137098962311519655721204993499762886495510045010218622982927320906048387891680912720873841007170774764081681315346020359708260609900112088908502867839319454995867670120525092609405188583629315397722367360440341551136888153300677783975723462742939642817861054366677214073172660308603312734998739167174634636223888516168671821479178591917407067262200216362922797530534857063609471791190341586140571147732925899520386012744670615059564928888174651905667374400135306407200950165634486096025616727004671299423451172793936449061512088468657966355751558458108010251295504101218293838507849302985389087057519823570566303349284720512997480486872246424198782571656083474126449104494614960689990026970262783753272478897028308360198913442871474146576027156066106354838950204139088704510852610390743643925613643030984535522242709461701179024047386749036942828750745077524654980115365701373881201170425601108525280550061796206130180025562391815455573005562096880990237524048321607156697320086635468789723224657536932124437143857155288561470597626363972716839702872462560274798166669355479938467149396254701815170119521848436536947845516650802238018197316715930803116089179231450295516639676811318401878851887731152526677600427048968579872286959829004857106680091650810985877404448617113380049723102179386050651128076960975630555704056802628097114224056710717381624801634364798840063780020491215017262801266141593931562010665185243688688075042195452388902509692889102758934641605653804269963933541541388745399555475387735164716074835921370428913609055300392611956314022108970686114365748872283035742885440367395638579350307110867680393863707679915358220035574912728597590009687392874293641744278744268466706507749452825869477113566942538389642362181505955578138750151074360300588797225604705754410259221716714064234896203697936380654722962821299121795762822964544228471173321542073891245933810923286567091632022079452574292920894839132729907972112659818169312899491057627934522841163804892513103980501991843030311824774665827867998017593231777533588421676836649124386294725919612995913551972401423286043944241050109525473189404233407785725753340340219949226797971359155666146541122666341376251258882642080503750147546436732524808734545042834090543175852495846493268270177315061035079623168400512348524144461832909407819757799609671721225009176826450895139181035597726305800643009901467085467918524841387074417817381373673943461400996416942270715029725956519290308306894176316226260619201306734752490826292688916797931989180084466607095074631139475690701217282191769350790095856479262538290621199559125574689403570854375765067298612343400371835509766697887880405597833904504491500347802758823164210912139109962899415445420344372838624949977430607798045933282913329653442712301474966756667220475145141055415254388302017800908840838709076956851028862172038493204309778864042693637938666994103484619351503138104299535847515840802086016246806619271455725992657329213283018228452402976501438456353596201031752989264381825220008526693027594748291794298388758921613341508433181963269409330109754851342250789026603298945145696255911990133984180580497033797899916694798631102802403194158517592211394837887837418156006729066811399926200463348708211171897795106673473645242314503066077620139808623674318388462820894029562871696365723439304143800416314411807227970706577565142827803044576510344848887866110076611557233785705231412321319489515689992084382107638085476873367673614111239228724477791746326126220733514536705853707307054915089013700254877363028441630775862121039719307159731920123964889795485061747646306314797363815060949282883377821267820918353801999985728480802998694081289912733634825812267286811785401311681882125123499766966600890719847995148786256674523140816527801941200717011001235011649015164448247619042082912427622244015230571239793786424319057472345964218784195152162502264282563103650919348598284233091249341297905861851044326269581405110796780969999469700532016185894768022852300354882501215471482151679458038994315580512182177312960170739596326914238508352176400897613977141803441157920848940811212710459032436609853940604429050615553347564291677694900851244194464407234217926248559897047647776577247820628241776026541398295226622909892076146695214818840573304904887947194922051615276494945498805671510865133553747866334252574175884625374245791505202573774240954308527296966187115564707559780881034631258950230374038086140699049661226189423842012208167826965193112716534600713685215596025425052983494347935217539799208161031302214043152124838127876013380950107937281139799707016685722804006914421814202772329399697987801766164856041971749713223559567318388194234138500701237061090876272588616880075627413901428929006234267026649554176231335839984347073892859817589918840565269201514152961216685978008850689946863256215040869503119303443332446138226154631124566415285411273922663171352542190411379681462995965085646313725960327291321507555268598729677318183048468233826000031650600134757631190104414336089178759408418699891484386479519051490407976358738324543066710209872832640303202260098313404966558393596236599242757469947608073428838093519214478534455949627138404233680799660677425182070174838879361759080681480543521800153677441068945631308037911071872820530577467500039639997700239632416926070206382714276927767017612221068605673660629870332919922226804882553640958909739447793100401239557936333539679914342544988544319911958804684173263038955769087895475629862062769239875333012408905320312562650828475730470192276810574532608302723451335392898533453004594900347320473985941438816985348360718674755929415357191524184931633598577255370211125822450012554804591351514232483574616448506051500789691190641118865911482538744121498519499745299288854748926629709181138072345409087153207886205969454650062315203218008686427113139597715349382208461691345845343174845353949519373570239450332607230723982716951671306645572544066940683447924784811377199301961407657233968544223876429402290434376996720927001164011267243134512252708213490057419004471433006790075405079356835186115813798684946647220508520467898995083165328122878345555455131742694723610747119901416782018510879340974045297297587901677287293518656486776277070428041789176457698323276903025984912663737710867738057993204638372884120504617767854029321073643244691017940323982523040733397594686533995408717275353146472702464398133841690089751933538153522490240405997207979720884198385581855673457878414077764852408733167700470115949033825114613542062858378074606434181180521151232564877590312665995352850581358440095671433215390055571441238844726206534474418162260976843754738467916441636768748227033829827351683493943601146501367847199531587648504009265369401019213776420016030653590634732542565068192047139370082155302115542906239103255756856236486822225921285554551266214620243580317840119817654448167175806455955251167987458662265704581852905170715554251163110191823836473859484626094294341456466508697548691324958726430066815568336003068851445473725032701606513436192947975329092746899696413259581305984172633086752000642430942110220281203144961020331057651080305650220755163294281962582607332302072002202339502399409272327950301531536289389166642007882812215412859017277401838188090294049692434039758450204141327917404280908742153175557713124750191947696587202726234536455587009345804349723007614559143566381800019354545420364613691129249554024037692455170820863944471511285500167705582621925572473726023420869777557772377420527972933466074151726592815176837873895135877103144086391365285176645357030786425086631939910931001326610645290989514521331858564089265984414619850711058392907893178263614641030609336672989277645862568553411433948559731472280339836883699970684469990325004101557674132688887469025239483350137117707951389966025807208466400759239200978767361438803020978457635419254564313792694273043129405613233642785046840549507951519868252926960641054977532046541699569283218647266754109195742430109763593620051340269648975286224608482093606632042498361219129462522964924664669018527829406278930460463957506375082122574500461926004616278948019996160982575125553511804946163100306162335056058247479671215803889572191463639280166474225937326413489486443556356719263391196067723416077289212675655155221758230286912565774147429442101636759295660289099641003843169997744601678771351615558936149099242024872539661287597495249539777636001606647427284386941937325997163507038539671350924938829836702584583030533428986968349888050023623447747134412829241061947564458492869369531298977945996537764360614671446099362497566260488411330109641903809468039261954996518563191558986360266991822116913229999884252669709515320463781608948408704908896421883592975911271761976123863805023144390890737698989684302317454602405395387009506613029826741906110086364697275441118751977555856976092582856578272278884263956060937670629430116477995912451375545899927083768002848353300166172393022083091243483282107874283620911019705001653103634768663460565057676207471072817978163373628136053017692518744952994320443794845129095209181179309375988442816154625237205509838890738695392998289948842510044844145337541743852261969550329148475065838803396288463696131581275017896797594344134412253279340914891867736460794058166478364158326671912066596012358669318774831108854179144549300969587573829617799892963555271846955328193887503664074013927317856941409546955451384997171182333353610961624099292686352559088001041009158695256108016308874096801475970076208954502241259187035266969412693710090972179272461280659608755197194934973867625154607603195229095364384218662538599240153228260444968835517127713857317045195021350403077637812752942941695168867625451670352073187766727817874746723635986851966246603315627183238195385786998850770876493894080438463263314620473492370335928216432057541055220981289891160270706277302982499088734724201995552127534572495944984995443324509357592643512835228301775174846565732934924768503791068602581687116824854466514330988561975560212119196984873658289469433505805498907767503966242397318989808335749932738352085547562284067574548080392336674257639254128313486777031395333019427468914463570752952500875437813944141247619338735655402835123971059785293501226355751426429145108345627866672602979442719629674720565744476321657419329362890646982912317810432447694284796488464180365604218061058828694734583921481462648117562136176143408517798782757857819650631094321193809505397578754838530052042024731879023135851200909875231303177418052557551297713116445247481126467588154107117445245709075610871740555941242554100005805493370867773830035212975638433576506519471673704028732306422964684155418314798459628708995814787620088386660430759086697618470199094473045609094804195257297090271162285372031128828237680655315997762632055726527281249636767339880201046952449398504764822421682636123998181678092203452668527182608906813356191362119984463620612493254321683213288801572291645561928287916846986743509458089872653724491766915806123404982017173177157518461411186068865783141987177585975066652586088209980383493710223323010583891020983640879533587321619581258599726653111319396808338640809836202777226923400561009504407543144560876171163527689897269023371117323625172972865640221756635355218134246689472773856571941700278373943169529558869736351141309644138743097309858643093096860075898046955799370720122595649782506791532298510081815694275823705405682350623089865077445311739400063400900974507526342146017124889906139043515559447493234047442862127334232646377705383081305397602473787643988987405915428010808753603445850666208530228060935671549043031546839401971543215463357153272641763564671365495806581440008363457449543593649109562680058830823794456274963420516272706953396463512368439262099430788224146934608904571795227679085215520223171385061341279979470635038172285874154075787714760481231786880438360769192620263152877565341608252939663566131750317872221491291036127559803825017478255232038653566559316281271698435065666213335846882638104917862639775451822771633210032586893112371361915811745996486281582566583168280913961780956153949194145116753541953235038009475548140918415969439305119439349079459355609152437434292600751334525472068774173832606035650781529549723513207451671647673351906361049505919958370245573661191402866065117449106941447070473042689152310264231300256762156745468959192277297860001666257337431984661526053770114452562289544659013420360638337781943233973795321937211899603026244596333631685014098575798499577391757176478229040480726522070335707867980462997659815366360774757267591232501026430561910845747806571328796477138445496363025891322994535786156488771970066434161863161140615061226185540482620028279737459520512997089369283152348456291997053931843703332033931495649906180566146723563102053425811572056414197283592686618004544230432638582433457262674572841729387844706309845449952498133713275381193467774757702352249844432850042527680522078638948695163063021980221095548682225876051399131840303449798958520140241780893994314081854058838461409008316163450945398809420763610949718017090384221642937541871224694689599606899693695120135414012297606600734785173081929355806585236834587639942145842596438541216015171493411487475654133443017160601306353358286037733487831604661203976493728848271570270977995005638749936583984555033889637979831209244812043297856717219756334354737564253446022575573135383126339116591138048416157332049985371138065738900242374371755370107047780700460304328581450465083163963254882368889255803628039741223137060122309365216208575673445727022772949724345462686778567565609746805150368110103815402964883676216670867076479011473444878998673705180855836861145816078913745523388825555298581789484113167248522282164247607884365110997345831987881184974990128543241933844413200839099061104902378610998178663889854120369564366272386290572196919313330076700506471873988857130795178386729117409677178367459836569206828172255996532367109078986700691383393349979728350590867091553471149433151809536294565409017459186883713278922526864769304521288047833353321705175447694096319978454767755157842901174103221214667424449977685214882415889580534006202367493958237175386105864935855339019088196588728901799367071865561196257659036097769716016814488933158074978326963209468071230276267624853338481982429324483974715837238452587286811445253759654131822861751201017732544564384983985535997051842304676575091311251991808122974401554565160382099540456231731047302771177196768468027838083635107642601493431407644323666722895192154765546156518491780506724669518343557884141216238429380405547050544146633079611089402527452587914743013594624318400608089366193537457487298041053702393134421848450681348771287463903057335777585886912079741626056346846275896552292948984273371289971003468020303425071496304564162906517901914288006537645487934877199042564193086369797826037834334354524542495306316639876470120095975019056781338328279606983600309613737845588835612866223784324260819301984781361262519003486590981085862152976328157824651796533513486394989830001742184427785801643885442509142759921129258659837787583005779436536394018832427958499365305923210311538854503850981355490578304186858029342934838093127255864220080767202218714139214618439011583180343546108438191050539809387127818217619154797503900959006607638593238636553448479017944995915346648194504436647937320667211864239643155606699175420253933518193230664167614122777315064050742998428565380704886245682860482476159307527942284495748193932599414639818482234529136637099775525521769021191092664098068520755567959146394545088509316524727575506934376243303977175899008158723053094704990152445583580731935520350360855665731244151052009103214410791875399087122880329450348099621678165392679281741745911214418488837161580817506553425554815922786771485546166966391911643026920811946241977754169137155315526313199703551595604283398687629885020509369901862703496762796357607341285260842883075506943944155440075483637644388224719727104883773825328054944866908865722789138920020320619028955617980075087874760338388401214317570424484364794661372375945625023326610636251293847772201723438068613342214669087499788219829251291670780595071344592211892072223562050313223036608761957093504183446122001255093331568517791539850948248943000459225904951308915630896771093639479382650776858677378393626176035208834295705738295102410412160763625352063488494230554816721244782666845919889320103853333805860802555128294501028495353478810823422511603411503158214761704282624322197022582432226815579221934535374666016415602351826903757090917297259738270079080888657891412355827710453208311492266939526349659278599853496419498898696414124109147545523892017652947579984968361971707067368369190847103927286845191219075465074559979840782755238065144710332234779976399500632097645235686035959074667483905462290877100507376826250490574403831600844485638865411557363846721234745101542843191327669398917506041252285961016373732582171608382547144757092220027359039597934743890953226261674709408812836670179727832303055750943811096469616469140181503525362754029702979770859762984543553832364801692490634014863548795861886192488368918438001513553941853618679527439480771135041837015779547821430699308560069150179356776081849196682153459285629782076282771005944103497027201454354085918944968909065343557355345150452591941315173899024207576079819518091726278315091969840648711005119250674534596897174246099122482794740544123922392018682102869724274834631575752757056393247559830393776181295198407820994546791337922756072341963437579727342894182502213967964868168435788944602131730520695211975002277208477950287657802212706606497477259339775862510739468332344304368221450884289888656267795544650262422544230049934997598670653879909664019551545331113177189066422507490265676813281754243763704359005757660421674983587427650281291031532276311693245034199934634214456035902510623173748406098259272586202939874758408775925115486027709055142177582360901946003723734451683477751854895585275457351839806117464234008969175980705157785434329377139981122384642999620420182283713509031529473325654944678246884498349322576760916538277537210644078743099659804179142139758541843885669277821829389142568041651959063537883861579060598126895156522065597510834812269202986533924702374578742580986199711417058177983447011778725851119018116191054679250702340102503265787869785369697127095248726604979955037273196706707972193649000816013303979019571580907503884867868445672107731399208534018502663521873467810932736954397796775839132696904430874890062000553778197651637043576723580884793211067448086007728266858058340540718478573813543796602594914499930961826979605964888619990877165127179344315639179398630614863393818296847619750289006754890164248241863758127755970609455992903146763579759178371067955839973676971203124281513790954033558909087959012732259124863518051949469544937288822177262114036976769485374022798427348552540205208289731514714292538755971773574952609362359968652232027965972503580075818347398764175211917388042166825781345072399996036264052944004334107124741040074355656325300457583284054402332431060344295246099135849873785276941754354133581784149825999642310377309154655910514580690528036917058917078514088268541777049683526663026782815276114912499432342716379670222026453624794541158094782299963276507330918793355520774431868456699706751812153744802093904556380836472576411966232602097615033537194002575248795910953479503360238843201368274128256534621058259376566212830232802530485778327537589204533498849031087663739953928536391070427942402412005745765603292148051775268995713145847979758974859719153085352040537355029417530485764565265231875253381134080519942503864101534570856215410683052654403654597523492207916225796603892328075449390682558577146698981672463855350282875654410280432217588674742345981844082436560979126861988187227766446185122483389226612032372890798843881083067387284500822768890460350668087716954226084589746516818733584101550291815190282925643445805728064891752906795990391305447472637856380345572527141415692041439296066499814490533837932613690805291024970718410669033077082063813265990591345184101156851722013035030559680981490489707725149926700888670410359395156945062589984072638751551109310450889609013878273312788255075790293218797331035674689185275196683330962810772889005507177371171117645465297830625490154427815460394962896841580756045676464921005988825986155462518537991573042310130192294772624983410135192976795232741509344865702614511576602200629944379360533225994984137418417993625952782826350781513880888137267824788421799721544781822348961597144907733257920601483441328616970946053590446480663486826340277980232792477713160923478421852986480523356603491501346280099780762551282071423132963077389715329275310263382529944656301821189110300722201750736332777891125683746932079882742929804141693857519368795734416980215859790264867694557534400701672698737835300184849669189873904275416306818081306891513963031550646624947370111113722173761947270716903696789231436186354053642436273600362107367914559210931066443731186918433293748620127308514564351928652446367760766054511671523176363147282845179798421383545348758515840000524823443497456531774037121954817518245176816798425109249936344413538547600005511072552191227115658979416958918746960190416882785393559687543253556353286799912696875645111974296497221449486175865949883295607674707730959766800298040845888546128152427013304594706769286208092260063846128579304053232899600206614369500331885333262874966697295662205947735288743795671045614072764927529484335181320155970397104570883696902359170480805972710096376383535405430946550262776866560026049348514217803734909337178719825396598361961186832407531304158873016611727716578206702213349611212773198888444816689702687709419514345048980041938291901322454644970142602774200530751180625419104784643525980678531013490441915984621575107570435829181184151490494478665366024099648766323453634446292005603985633501073240523599076198044733143890480202297585046208346596275739573648072381428877348973630451531155848513278094086986010873758899761772830345356942724878085483723123937925298358079087987666986584171229320931596742796638869671527319763634864545578562998158300101826162267562185343219090803822995436970540949493920330458965554956329217561800112868587551746057392846497837083446744343616165042531035719068258945387568889518357943561664761861361694758305213782391299943905273447835514819487704817868026455577039116259575728933826136074831164306141966780397370019865746297197958309724219323978433206213589469789462003332387010053075418326553924599953792863762291762531153147998681764424506499456709570521598600421300834526357554721417183304789372474761681003741351836966054827385706934605145291430645323176810638309957767779427473081398148436693737254562707692949432498221311921299543709380483025786836611147085239642549677330865218587871456412668866205524811869260917130238940631179151178564967249847296788664638863596562756827994903477064686127415159570727594240890752984009959427391942473191174387310693656353884459199677308724283533533858873548946613960623420070836923723056087185986359137331264252244542048062593825165829644242515209246639813922913276038693506563328843556571308540361871554741146436515142163497084842676509963157973331460567991238442360840410640869847352772555108140588113056065815104897261417288565295657402068077367518321344085153770533142572826652292383429873763905839121954027383961104721893661394925997054955840326559487032067771937711585863737252197373948115970472852484315136726973546964742158109814978143420820134230931456732047172803684015159691512952464710108295710828468245389013163859974861314829612988527955386325302700953767144266759152537013587925416578791712879746783964451156306407251144832519555691866623589173112652384649880247772566274452341810477811941584678279243705777084773970616005771260861351935300228179891216889525973879613029320790147019065195741438879046219267452937186299592516779979796599903876333351350024816576143316355086855867745967087593920478391397344111301951933671853453356129551878376006142930593469099293337262354353991301909573508405279006978737581481514354669022647102670318486145290169396485305123403336625922031034407268599733412206054153509586401799465426321926117202438632511272147920332794915705164245293294535483875338293188828517177312859823038789829870108988434379777794547530850948886194381881124209929426080403133263046851304432572584012471369754063434266400095046579528068379736539098259154824010822116957697932112313676294550690511405990416394672858584616279789647679843126493931875215262588224010536719743129938431910440025591769410901405838423123642651865189523357665600439472821928466404985415459622063266707978826804772013208610813047748078281931804621620167875296673004679488776313995108324086515109029523215338227694947974143238109673464957399007929532388416311422976481119679168755105999730127456254379726282135244270915601406569722897818766049653392232651476676987286449833690785250269408419338739920552069386145557413766567378890430013325503092854139698395218026640814425828908280393428214783300358146700715787933886681985006599996303958934705873610424177490575506581174123335654449902625163532980099109415678102034537359637350391578408320018374121865589072686539555731216167635326137339021055551340617744357305724343094711133447034384291283543443106241918085603059970298714679131552783530651572742157181646779217612451384275490656636696431090288105875451561666928119116326050383784718362172884758491829464319259840927768419895646995570794660362030282240035544912847731754230139034368186318066715267792427906942164504535594533655317131604054865780093152171744755517375776977625308773944122284765881478241216633313856998544153389337488153515151574027510074930177395055984828705391755970659350596577748567027565408314304818427107381033791198048154125717858140890728511901530686396076043273543829990522523346559737827794429401529315103802069382839447741114092451341892327999140025807639097827263368006627141698011667285740221033069105623254978084712099641418279460443872353615841546492326731910193810695403554644013296055468393412481193568807168005590514636238171665893139373123474491116173882109837039096153647805875358024080791740893482151923384755199989734276797555082378175811959398804927864322282827527471137853061147676784719304227730209378180170259456464656977866202551482571021030958588562087780445327694903716438007091439695442245289012965047936354904022097246240196247603730703515824777131294364717299713514876482248554374728381852493420485028810954890896198942954378395747386260902591697431622439698722187516885425524672981458303136566609861161584406084633786024877520289089747428265712213038283399186413864468872254872399874659169561824937239140525212861772598109954268597587898786576857144612118660898187285761331499455922694271174944225691296304407336635306607074531884280122913826427792340924165656766458585269602990084799228222693594359820132236353047415668674087515600056750459971173552868603237599570710454499695969568122768937041596183071900359255294355424529315597371048180016897815285086104451487744376763629294173339533789558248985071043749267803469708617176698404677136700071866015607347273451078276602934722515386931043160119041950307832687753127114713818815561369842729317511164873721339895048088354574624688688781017687020925115653769490123863562752637187241116437419533151431762141611937515283276658521977920759924807443483833745580630639256061676522009169791884872837766359460411308139100769863167725884170401688767298137988672649533919519935852133060273074418259345406255305274562721490377371569063736914209892994032484608168791162479764402356749355744740361457486493090976174914249214297332671665168730055096604684909602267336947164023235350443861242152971006308592974053838674633403372809932018791665393997635745373000818564188413258289603486330937259710555278715830283199910476347506292177833341634947369536104765263097444102035689606933419204858235817986230751846982203017049396029322339512358851135634869246506964740733707194747855790746653978798495849714730282569752686834752620778524502778377619018965088980930764704275355579659515995160325061143454193394116225919619813350728509643953139401028638159805873039183476707651350459388508049641983350456849558092601738167039486708663032783448196711462148800596972410579923704969457016853244899317114686300321572510300370218521597285823706778579972632893944169890998811435366547340674545055320572646913353919194661314493571329478677090755108521367471738165598813100035788262744618110160391115090958609623119465126826256788573976457663977481332581740921746356627007313331130631881688220755672952896422878805580010365814498951973863490053472150903753067725160382327548471333501891038359114931830086715663498870342168324237381081618478886831991458788629027234704240962137873056920557902788824196166080061501444840165327633249493172310934286855042987920730138444658617597535059260032131217811073462418687652565199682501985874870467509505963922530239755290606108635441124054581691329402510479181199423659999501185822019631134195486700703175438254347259571778445368287314108315620276945442186424786296279802501163133171138595582173249749421990685168982475006117831410168250033664994631432397341579332143514463841854532235271054990354022287053529729008915456360674463986820744706929416109117998859794203153749521027813130526456237490269011397359751237540954300016421995892067504016122575181504592971068318493394016618335052941623989060474448863226042857161249382107559638771322333554520882725832409235872126910994379725101720082820901529389767978293991116493350314663248836153814984028820797161475190943824706127767193485293745616668117413878899509091376238542369853501210955759799112507135552564733961301461178550058731061709283370010676356241895537190213860898698986169833683390322860587077295173267718969230705610898572564907245270229214637253119637447070805202389509229172848806172898086771570271584364395509024742341919574574403925383187794153577682925471488654469912267238228930140167771044006481742563357184005695211990175525836069556763432371450442406183110045304865054120299439346037546268265810480879371061646803950716846241196953355570522902877533658847498710580087214372875652520667969756617425718182500742941201667051213571834792855816870875782528105248947232557521322035270945296353763005760863095130913104606067483727646179948157143525276044494081743715824847408053619097772734690576884405258451923042459755419290259187036406744986921721215337578978155218673604906331289648834628813815091133492142336587376132789666466744003187616317714075948606711881906282476355384774585319880109708873808561519501449630648189391460561923407998174800192981316777797482315747730362962736964892215616051151313729042194917957698031815550587379569201440491661535103579146038089934598693076160073706441367224370762818290232668509781148836187092003633422024923025377827379193600030650376013934579595643658792715166088736816725450636358317101262332236178021503830831123566536195254172081636755660364491270653168721327783577596411183405850529488321626962558988509462493347620670966471767101705072282825763552221417558370339282049100436125222613016279716239102587099731531931218796273329249848365128947818496458426552353833780507680545702345989991330308709153226615590561221124316959586896894061427350121926744905057424681125286227088260119608752053680544061809564193870552110746972411225291715399773785438917092680151985208613394514441326575093578901765508678104693773988160422719266734308527905966861838015888301691923879155082817998052087343875243151309090288894165326977867967822896260683434800799763161655411647413441406505512907419014620328981247282112287317286383656733427452985347005478955606682751442082723584275110807495418468618064809000068697326737556718838781683474660667648238992648317019618654487850228913960714913710972172964904005543058989369412295249160692433487956441407388885294735910998818218623272331767040590791886992773253476048878281462848857889132690288785724252025943131941454685773814884026211971468243067041658938111672099781990338006067407350017605919172587438501220613275465306119389527247684402460351612650157968074314680257956096847052806058830699867605325078403853173403808205750297233540456984820325217828752050964007616702507460047546142386380778944733500131404925905445003379682322825740427994419023255189376093008103612471159543008062723718135651152558964223754701502138447954377283620219792759114802493846600298175776759428848665443135132710408499425287195922416736210820289462967534465345417893545476823750871208050295576914884047370779740666771523198816314338312634190670001710578620402405390812762646079324669495763111916606527949862188205874214417910315898875936662449380328406785497506351901186716273954477351884114654935250926890180319049025226529949932015057833996557865048585814337724023321084754976678292299917788203360896272684673419262509522057153901783553704110385213820222623536959699131926450319339667957557098581518736515102852163471618837595892384626279799910422199340843739362537370656097868125073475228250283751718946168360073185949092035072047913634051148920941036983568792686736454148209247452805621772131510932632181436978962213840856344958257888326857203149602964901947054608628211632595759395849546739500294926414883368520032386310804656244005757915390345867881767508496301782266890279615181473268270324873444662103487037438454112669913452181264358649106008646719579208466825575027385658420753804308928176200311998068756631479965451386219856414864011133416573734549745578268781003068720402844373523970074994829060526643464293599180687713024205683121495483906095762724197098879416888402824240787386391018371931329887427140123784579797902402163724178107238655272882512076506159859894323144176751258638445973053086782817547086185725260941837552254068385272670726886747759608628224183073422808870719550744232381576317792267040303617801210926064005811776993915821303502636848148973076365477576548533542083346919837334955450025964535171540043858495055473528574410433738666615903729291645732037386533698866009003656748555790034924190875059208185030673917385330599803470878173913540270937471677969761940002476211546907200444253991974139788176147581420193913295008541138407486809985610648155180395041277336873070138593337015632629828995537090803838093679564801147144256367437291297775835876571559986578501841724642500781117377179496572844636747130232397787249829919147188466540217038770056141730234633617568314775711624672161509103707208918529208952698619392726517799344982639169504568199937504270115134318002285501947533149163201549925578478971378881333449219254552746501651286394883928521727679556427701456050482551596302556951643812387424625705116812001126739390626703469217104153354481869687866104524503339139861203180949424716451933861635572146917199840830017030442070433060224568367846399593516845639377303272697984395210458828221407422352742539020957153014573080091985355732386429143705781278072664436582288302029650316539272739458181103677993414321990314961183445863668295150475474346969195532858290112459392953009126684148491020359395317081564018889821171194903733260728335059541250027782031659918902779378874004649886163751295899536276700440500629140922963860991061787915877351518040388148134795862130547421882372591621685328183078091719464376994792436885114852406756971814089877381355936341792727330822514475610918053672104847244326906700428778252008998145134973197521752935923641286984425021953771748740883404681518778082606783535726984373211152482146491610961658690181753169181143458460553766958133114015436507588191364942231683453378429892771195316895474677065429754141165994452185606504383760861437389010390525661829799807374603215757941904328423242983502711247840059537675405765398759585728882355448706824929226161781847660073051536845822434862675662425743977614517201539011279240324793600335931395823128807531513322798561627366690625595888978257949053617125290327216806521042564771688486543056174355839314012312615425674056381558558200118176780551066960605125523110559538895359462172037280366072553281233528943045642811614397241235240095173185553548161953299267865546702623356952361683590875278449535397510953492286119450462506564386298365992636585862421066515286581459817846100625215155801340244177223712319957139741806326324224256156675567946833667298046318157836495529257496614239907078305047409626630665663615020177739617046658221740199951459907728345264028575117233539055999853745012417108170333569587566554253768803002100015962249494752662521632150070553451878257731740028057008389429922808043471517154183050669253959123984405595192227407462519832068664534623667267127787843913069423635341831621121246786071740524077124513637371035900115377340878015935086986022596216767099089961202270772369105086901451779632457956304640019614621123935025389459953699280254364992103395900777931032179294119114609943904974472870280948600298494291242248434954460245430631033700524910043949468337807198474762446845574817160103676491704935374894960615250061635898592442156940706729943328023300346024119248128059554983269118718308732978465233634966993627016312211868144915974309515538169931597757131188757840116996175401004064673999340916557236545653970249860727350930932215534708217754726980962463568732761786133174476743350471079137728361668231783412747488308727554373189929865411015274259022329800218767584284413690410872536741831906776018855353258029876628960744772255777518907526989916961390805486385128604593349510194319466940196466655707715255963924286363205189836085136823882953326226452970269143680353899510397176292570467774240407849529973285307106072633613672598398435708562109357679477765826448167452143794338290447881382503909677535867038374626975875398667226612981405035411545118654941361215813402629127786142689485479275430368668238586207186164899512219705024481836683532463159074469460649013172703349320818220163576105937260089664580986839471293523505484798557906179033291639387549165407586512223215601718597818813841520773811334761142081230143759289722974028517842976179374446581755408710045697192855007241616038187999443765517476888690751503726535667244156572501521509161651016561372632621609028199221445788977357880572820907135210153200146668198419434946727617446771471478775146526677968633439718450439297707885207616999355397776630436303038216503159891594440235528529941921385576760920726107014385522148665435561702145341413981390893985342700569454321716019579076316741415435337588141790344053091962918207333141519526846510511110120329544407724790030572823397178509885152671458472671038449830946588248141935346180051639579025499692859132444079764429606073324202729067006952008434095212994141456527449656473103494206734258424402948708693556441979349362105184800304469720694056230112092793066937826734547784558567153850564923368217720208666950257954102212247574870675847690308775932770877731017499957134881016865225957925646515712304025558537580068521353571692726197778916607818551080792945077731622373011868350366228103844161321849919189956339209419145555741390888355849068506117711922598235250916347932625322065277626467800593237588881212403747263412718257885811659028780131974752820285544254897063433298248046325126566517380261049500673890176456181249296511226363759191550297768192485816960999479433753745494110100329000999877986300372618933309578558496501053374811401777922578487512794799922284026628001043925268194453369833338376572140001198658993242774581201547965680409051321137548066970512930725032627603485959885795216105455280699828445452870647087640477732421346726856004276814931294817608880193115870869946431308762826779152758202250733265377533950220657654528373083961356530363473379971572280287386941372983711282857567765681937908597609270123025582095633427004628897921162351746538504865078683672199162093384574485902837298157822630929439519658486745966512305932185639830124440919500886555889986629675069544120206493374147121199201999676226237337343886588276732690907579669557164457618277704286746466431837391711351759864648732406254771094818321973308620064063957619071169030512033258451106693461047435273816265112419463458708747974183248588843107582497601599277098696307859331593482876489301002266619338254200934602706884182855557320799008057667635234501372968072047017058221997115922013484609816382515424458401613045866379076777866581562528175657381340759890518603633769647312199168911442074553328716883570162606466799048401343697229109456453866003263586217104958467831488189488205485165135728599887701468387378316089515256692986525275633854841552368158065259167458767758097684254015775444930816853614785346627681080955827873472428391258642292413942449517976066065757775880715009726462416206643151543111162155007092047792219367041037176787006114372195602083407363970787978051108728947993233952342556077801341662262913949155866519356033341546114868495306084611910806387411581202697930096682370687171182698120157426986160194364570932216189430575182988480559796064185375446241164809821153333577657612009324353610926496301014528135422856695929329546604226218938060728922761158700172428924989132758055757091068514391459261749933484711979086658991481302623287758775182308254547947077610943253280902478237143439573325299102413488446898288246726860888132842518191289694076963543220759149234379336842616432915374324348063934467221159924924726398958975670797494933425001116562109706697372292636946250089261415651083795204952630572122983616674446327895461397594718785709089140408180350424848717142367864769964240256381388234961068926294976521389089719975654491792619451328516678532222626950227090431153849815246510767299543738129040092443522392166740170959306178979291705336050159875241779295171206307782775740930373787485543011412592851162024635207898372683971187903720998612462172929384209012629635049066886701948838735666751657833551917402366930011162303421374577459682775206468647004038775235473152198366997534050055805167091349412543034870409877160917834789944137444763016146842215135358071324275713117996354420729433792618436375286850233261881440739584709392672107581442198443245976915788601091119562268575137910744336225895641468063335446044478722686263193223109180478612136357763113384129867266404521759651743598115108925725886290740173716224379374004452413292538402964135839581527374725496933560959614461069610444821109877879761880939789981291069478439964098950246186116619597442070962686283726550503755172913476567738328022685412687722192592982150578545277765256782148915400230744103323927900350905409737960213542114592746810129180329980963693369214557298255072471242769494673965094117689477497024529541183455861907144781618472432959216240844700891853506908022724215344010726012041409796359180769542831211351372254836352966502506692316093322937825131003112197494677631405453353959677877066933527694374054920661484400886455341264832597521474574559729256926339954364882618578377936398904628170001710174419707949893621816653846856367552818069793382572265974133352404934109790461916553454953513093231345739455935579855343400251761496507984989545598224535672993535639218424892875205352299650088397894204205848487112156522182230402911909550549804333826314519726746166781502899385702234983214797992202029957031956084894305500877460867618272093777989922339827830281578770620409184868818573029948189778467026174957693049469583030950512684240971557032025978684444347540389661865343620197219305877500879985353892331719263848912452429443578628661909119991996768854087212812452221736008896552441165162117560893326335960420977722101457991753408301281419229694723401298272215083156268894982704299132613700606594103121765145283407287829109541085946556097870190100074470887812021091817732015341840855834332485600366863557076196455626632781092766228322022643330993011294450914472992659426461084412674900730420710265294105292736180654677767602791655807676987974342826535444967176380327869733244387959092957880566105444449279387844177928388630498394143301817747739627613476800637028594916939827115591452779255499119593435565862393966945275674800269764982286875012148081222426466743184544538854889456706170980218263671826533694489893109872285474170837112658331289185707710808080695768947783369130957520849287369672991567678178479384718429988052388593384397879139943567382761821970811168920454695339592317623444507329445065606566011408393775410358554509419213263062823348915356254313069842274722320762971754239582462954265655765216693361422923951574801640538834989287653141671088613532692935693685136188181098428885708164899667119806774167747866968442163055649704379243872553727995085786827037827624620999487872799555669885304971550061407199372814101854289253072694082769040551836647218379147210312974228247563214204990193087074527132666134763655886021886621338091277114710674707608669102636780715337201008659643511759277643907952664327191301056278976716608440820107700425492343830011350968435321916848397850983494141459950659437092453899305506970386401216166330234788325052460141791386978891854480183056760667436577428158051255994905055931826729537249497704266086157504277488606990291188043051816338848224714169889626863076855562192667303109629184075449403240367844032847072382232559280265026681062543013070693144722123331885324903850206459103689842536394034646997837462287045935930935177229218121440424162529060798417247877883563982365292338831095805612534063861539255293101101129429154464986502769441431332338117640174460841561398497277958167289567549114574521821886654765657423954773617245714371764271037562114654666114577983188238404060404138192832813934178925882461366535589720663472143267316530932859226987790589116252329616026941964177922339605019110399685166434054826140497449703239740482675448338380293460404660850462030908230163672604999499584525211482132548440595496085522572926505645949287579492546758373084856573697180940089092342501450314168151900301024319197247873529270832062244691181769549602051495529917824081679943545074796494631179827024440712156139988409250331176156262948093914107824708723893400255418819509905487723928203779407403878499776641028143424131370239200906845342750476500125138291142329837292049430444027850678533201250756794344819723729474698416361379068461552052828912735780638589048114386254571563295273150868889865561096631197731597911378497941898763065813147549532581380248507715495163993745526958923174794237930312983541966020435764377540976171724264068403687131842494162810009739369153463630830728947545290594410565241521902500833925724350862920664317125760545819684665212401912531350114026319903369879027004372897775001316165662542462068716375169837575504328683833742419662445845608621065542085465352011356230718425058804717464658183456083455087579608581472929159167547897356649491102389870759045225972819570894789226698761016257545111773192696596334880800304794675130438999342457137459027345835587355953150651984081849691406437906623870212392883127925848280209909328825973944963651262894164549475617779182836564505212987581291800593441434757883990486218688466774186601135923839907176512719750386502434640323632878458877827321549737006409821368268246129853038730843128375321994643160425211874330470970355105228180895866397455415619186265692195613204766424725048723023252571194818176509717911693910289849421693733984412850766369864304310561960133107531823671110799455767031450987026122097554020820895202329949483927964089142507772909081180669009832425881570059119106245721235006021629064981355752148970271713034795775536040687267961764364795022175690923532452020989740541834180721928044547558729075522554629829682394764972032078832619422013200622316948426377552269574845320101127347529641187014654113959429232715731516273026315319562318697272387043447865446036525767382045453145852824252223626053553791903966184069541962560571356113053542594942478695421435589179551716182787587095788553067270629500435456217227729641396624415905581447233272745668914699184365459005219181473644741158081586588095445869929226852590285328676517245971168179492876786120748110830306443249747373353181128131202061673990379779403979372930191219376602480446057711254336457683174949448835223658219495437088473997007495795362151455713794222487793874667298822049535854938671937831819294008631478806256104359752820942767335327730819043017960296275049382814092291602482287482184916104293761982957989324920527331056521831739831480636463043891669310260077926858352752786497497754903480781116595012949806807399058745409042965007031553549969365337251003852534792259982996125830940269377589034602106303141217538936373174533879921152247880143093239284538338407978476554968853165261398439357608918972444435405503614216532914408321757587029639201968429299852143503226895448656376491206268703317079774944808162837797357851428484709994238833145258552553910042599674476491763711864706454674721979452379129826733077392258717897491094983720961247022668394247733156869545912175594463772870086679154278517127835215454935908160566399177062500407700993216582482011888797312855510121572154541478511083037152439676408510319081165131290527730655706399220329413668941233380529684223562294738322694571213219436850307341697197332620518947459117083182915694458721357871549501609590154200967795707209368728150357661957594682027573696320706372478168286061788397769739365474492103457517909869983064116001652578404265624788037263930938176558147658229332434459707268450283941312103587869376720115755189721914849408615040685306701638619860775305437664132005997625373748216601592659846287778289521608895848209592707592570574937271041642245879687386031707283404009152141471631885588198231574094748524003862368246550692425780841720817795481697219443226157947121197309091712793029586104078384729292048741126055129513927965483686996324827716465625036389614034383379831524931493087415458910425228248771186217151620988115440189484502047893148704030548356717997106377114956942041435839232238827413406638649795264918386141931171595496399955246422388907029850933311207812211944423677557490975732471014706314564525500779992199781829370472744017089199823779101280412309792651559390442654522814676522554389664502520776992608758712226035958905708604743280901675132637042454832309968434916372907488266684015894949160470644353147720856672267980276003608301227606373420837574518240392001423843608601579216223275354851963365117284084015027535797432846035164973336262567480344332482758428223026902404766786228149652680675236416970830357734562066065243439888900336294702928319301768620102649036566249654948764602118150346032866151550206731909759042502479462133354691951657525494602161503734825301247183265138033110912766746337226382791368012611792913341782064302725643973151362530693545065744841639448819440709953182567641180746723164239181230870154831930080106030820653046463382067847824796875779737160883255142932797725492984074424045960306182864936920310091894130670114564550731326781413919317230712133053436550378893069041213736065842849416636772938958928137697874760113639770276409852476252500883616905860662749950456782953995359848076066712246684885362060485885147916343809458262973605805879380360966265328340529221121083965470643390354379929348543716590431117557543433213985712582242877090735104722720314867836535476112775548319562568082425601189110435546371134163680631671603599597406105194745288369654567033066205835133710633826257753682719328297882962645258758068782351287521178114171754763597271120350148601700086771416517611363625498455921219570090432407571326391694478182381014482116479727740070280868167171623533010014694218515220693305787525037832341893005079305250228500566499405699089304719038500166274266204649457571195447692207400665541205029168023709317239952103338325063162830732239052648290055334556402199526232868345690506272576062153307780547771907407166509234269536729594800223872622659280803169669228169247993906604197318196502662621011966111843724091866784557560648987475330740859273298024606637194517928897060007436331169468000957364428173698003515618915402328379919032620786093497078059355728180273401805380975915378017968826242498478698905768133995924689437834505004647765479675262154526880696068205700029985971376040940625282894854973552070243327952613813784008746176193370459234116858901123045890665728865109142465801699350117727626022442129174649712806889475389684757864691335318541254352560676571751467699008334369703947825487229607773283823205300163597612041157355771710387287013517965961487310034741517511628993277972492037826751461555296631704232153143187397088126973491647263545818873149667055819978123914907866818174532625756884733575329794523170543580345541256582184831527426268885624048668514039395047846044261038840487886308773369733461397271098001503951189111550306193523663607072265734202812649384889450451780353061318437124171083118146843081454967921551506401758633812434092162235377649881269857186727459624121388331679079305924328181025898352239221316138934548438696224536123939321214671919256140456275317031845184737627430061698833735943765913109904553910450545425611040475282426875403180599058630130511101081985892055265472386033094270247968483231160011722154731096079570355065111903402909254404582151084207052181444658654140829403379910291796590431121024018502164279625450049651805897686011646672548205331228092729387711982562958111754749546967994070406557656169754284243288920222362520578690927563447620409132336578027696981067614106852762922593897546015329592861444395511980714668122663295625629548042103783007993568962452869132555774277617112965730473599985873152990007673314060308869347064958155701760175321094459948943447027798596958084618887288742168417525823796724644716374761586352900889564636845536925898618936088453061396699258623882921815595827773899091070890838759305923274216910854526285843692767707315162628977405462043818121790174089736275462922096354762038340020546538767086918469970112873244301315436865521014561125747405448861473029268130444294233289095102949569892381826692109975546244415310359974903513361074146195260724637518511061344486885233497122236727196293985191181131377374488397097111827994996203541005277427325578507061220108100067194051013817319150277616006492150461055991453360803989882186302338287939358399384406910378668826321883645698819553782068146637304317851376016495176127407167454958638497355015748822354917961953029143674542378274946736952364287536580689861036469924556211259068170505528411287720412074092432681705544959141053162404562948093253601416224566710373836833026516074073875267795352724550805187834129831967865526697077009305686801875279851374152336001654531524528056211884999271023708491111724705532919304476824153463689104479461843386007230410586091669583848828621947456558365767040507914442869796422822019972052331923838075709746767345006926657646317838221761341261177198281983655529209459511892946263976933840798708261533563153290091580561474378217449299313495231104337102896826392976591971104579464879765505292394861082151583766696083586788124474548044336021833752034439390890502606660683277263121004425370440500639476328889523506650212908799146544227905300567769470646783300009624932979039334353936911475070443440736561347909822108490385545707207881826789104056879572294562258683535062095430188959127666543107679722257745352908535839188757614337438997080545589733708862363591978235299846816317862074490356730429495447780535786346126590819367148126790272987665394962851778608927824690079167997756505206200085034054115384826060006970807877854141353434185020016620774617245528725123612653971246695042622136678524177203125994324065669358336769821737554949207194731586125428063447573458983101674955113563554921582049443829901734535412596381724822404999859951097813323244787859918951428787737258469614823679233806143176845633324811468731175117267844457722504760781700664011657259223067466037798088578088122481662490839835843664879561749835852759541708881111272804299982565100026096880977875419304364755996735586856789941802179935665278309821473821277781410856434715727024696110980653074567806771607587229366246619503776908019020509657132991947921206302865377074303173560180898174458698509332526742001886353418489336214726918221276067099322067572401824607446646889374741837081391888450975402174754580025406335929031509070984293355929029119888765078445621440988013128463641012793373389003057968527078469531317692314524469454871614968386248993490212774878579564135379573176756461398938237134778242519141767403363493751155378641144466113001911433473937254704563436900967131412047773048743563446676096398897684951694263768124404777818559584803061462428360750704688031264251526587853743062059411589239971606218908707056481814493365898550682191829033066532758123955006744684903240721313464296226072338542906320045091034075705429866925829151607491873545995374998038773029721059475357392436030427312423264751830620430835731557056062104698140833926592710417650906583992403500674391079926809084296235154837666466356033356382010457091389013061692022595194127447456293457736998385719560481481683456983060061055869592119195878308172933650193061999332977761195004585520544387341136848796244965192163839502018074342416899622519902932378294300192654729395750024265963549851684553268961124127581731191800368296134159751746277147028992567727866918863336183345583761964458421426757655505670575542937800992037035999985588946502177920774275938646755644706931349579686949149571541027963956201461465870592894134823534255146830910406590647778064015454517142081644157545255177537822533629727869544932225615620120268799682149821354949169512905025303651552590743495637369429438148781147114906887469324773106956768571270031176118713493104976361839959290642899687877381892549250696662537963414616399583717281740118566472723209330406584536427744658032398305000488104124573856788547233402569127904430786456021572592969003425449206610270746711566927699889318628602288130723757647110785520908209573768284534035450874331243121498073523887020802220039653369624869509195977166348377759619674724996250510770572558485796429862156813515881971418924010470967915975623744095287815556745998872949783827165746060807715515406777332351750419511117439386835950619323082048772960233125453327793000370231372257384857001691142376352395747234356242535121737272634535759193015908004210966118755420929259544459220013453850334077112328449176041572115555690860541122024657972396283809829380813521389875459965379230662357461901362377778704927242608579961315674486586834753318058193342788530084758858295014602836228531772263241543896278333627667689006302847872861143297823789235121374427277112891749611483322708513598153693343794643393411344119447146589283271027195030149643198856122232341541673927526889699749413021640517600082628730653584348517023182785447637549030011067606559313510466823022576405780563872878661302621108496850987064484522660904448356564032393611069332259710239999733188613858764658852251423945598305856065780000263360529287768364101101441456767564072182001144355494125805332247367318837634747919349919160895864718524538077815994287468268838344699732677259261728523878553843308601864293466890692734964027831549326914259472818440643824144793017991392112181220310400646043211964082399771706800924601045456529522066499121666216648574940289424294859863119019190024427127422751987346044157936539070808912515896600883139863127867438319387418310484852420030102546597843068036086003344417803540977447284918595333201635958362676669652733006645633212826482654102561574561449927101433725947783296426996903994562714177372986015438316772811541254254901013286806400084423581192938712101977578734606322988362642316347575902293613358582558614430190435546236879378804247677431295801413895937572380998166793711261414758947217786236216683031346918863290284623128252138591185321382579702051702521623975651275788660373840343696741635738027185412177476606921323987142479185936390017153198001218477408781970465113517526661835080297836051943312255373735899252826900321909767497766559661204276146923979328918679029835534557499637119207743677005622450433935045499290601436058287970795196397841794220833508265715087522350685546448255094996792100821726853202797270311742125076059077120633263591099582526512749269828733580283642477710772690033302898857490663066124666758645244944227048244730535781555885578149113614042526062631568939941414497018062984245069113224860846305205877730631825434204439273619772759391637064237296332389690866099346394189926562593969339565662011777229953048255464864289976797665923946291436331827543834160174658889762843619604002029781280103658329636338828946501154940462782404120413557219775238473875632591456297843519451169637114198857285290423520129600711764988481432323041321981394235454414480252407865001548767601711141007400923475567597303242335471463182730041534429620927672318288336271643609516047050860868101603596473753901387516307140297642011926320949392979007297814181870837593872271839067012886223686611193927557694106326431462382617098502034649069980175959592947193929516988239482489898537556097632274398472646909715020878130230342193086177455356802846134809408981452258098337375526196521372987906977453611399027701324126055204234701627023934451701030055635702472319537600168614128942983047936380182004716786510866229381776794512090938499981473716936865575594924182658571191957045927405439046010684927762382782244761378198784249638958647380515583824474986057606831982283084251829624369497083812339397283455523643337121813886937351441001290583655291142763051957266301778536921554441435015753343704829968912504960465730287833770110143152198362621757217948152529440948668896913441929341083397763087205775517761037095085623958463313249754832175225166215801142476725349989623759738815544659433364772339239665778481636789595740943584397219674507520190571171910776291738703457174835263771193121357982962309323187780655296112984078173082330856924520381745435836520701566450549281918822675550791312834267609970643572429332120848089055961935346087317106266083198556612137645354252209277282319395097677345442109128880618686211027495369295926178724576389354339867360084763970991941777239356297092492913393684058553896736565455547275532436882552202239659810992329122057674662083121995384596711241348974381921987743784429795574745322140255992221833631482895530295575741530592905925090074952852887153112620660086428755152518039394911221435290494209400731010534354384462270471239711036800904549543402379693202293727591825025269516065583970021102131794211864669473589488374582492544415667139460177121529296015587296525202995730843804503367488225406391969365670745835751007747346198778230860686512088938998840511024850249981446075065808623191983439466893655184406506216603289402656477337968633394775241251820845989534279278799033279264406333837005522120208014257348244511516398451089455386105788439265724859387738729066769523973587142033989092996229909751866034221672847272538531014770518723090176900652031762239416179170535221121729407832538643512262784003400389847554539128781878502822569745171458881260651355501320178495005286579515959815153188599586928361941629508949420318285116275503898731675538541883725329720883051197788552764943242562355507462072418776913455370926091996033130256723168176474446949351907394758592919121995754931858580514667225878964489738329362686662986693081358458724105919685382896296938207569577039924974870977030835390127040312946118852422498780360070094669118538970498543722657382068294626340041927565144027776288641745487282392124677969378638546274684682487855813963264081716153061769513919881289439296202024196500504845357364460095804369024306713088050146733678446839034448341045756082227579896386994087433549538131367588797541456807729509802515562142503260621716724179392613494964740503035814774270054724170724066375103595456218074308598390713870772598683372531023388974025221952634880471015202593651209065030284586081824070687954192502026435561120308264923845881368938356959047900387159545304146510651732427051251829972964970801084199138832144570574878431312489411464293686472076739057855362469581836605940769621326737945789864756750730844088533138025289294339996227330482978987466038824655162709078402384640041773042206251067342635917087618455297060143243173000259671313401710863751684952905509465616469350327821861466649719613437849377583390133140130532444351032067922110956450871102072717528358603941160799060906075445575325799275564307786490440877498875711811012128845995933359364303493177318547314628787804594022421176079063624123021184517391444597044313562077290632412706197235703113932562919351361916967143361349708553614367547839693655773915472448824272637706437165517356606944297927957911952769244619464977816332921018689649231097554935134028623860255703299986423495143128494523872366894352109863590675279031461455119874949789160239253113074771715779270652221394484327274538699759739940403990502319470210695308761309727985068759012848778230308222222969629274463595060772720133289866503937562701560915638636617607166155336244361105830834023825522808724529429655789235396807374592445443387421003677313985537298084051142893301628704484626732815884617369471729457474562350029330020594245389641620035091810486518238522745069531119309125709894162321379243980367504343543576306785718650052673540294860786803399435569493091592893881008414942915852621495717768410918309361957538872913514671957439532686097163757629128190057681644189607005865732759578514308800150402619842613014746706484095257786893862103711904737257986385966690734972164005810923281881310231993765730808888346180773880394030693740659669046971671030611820212333168282963439291782575117178760789669095852369877426128700864715283341849309143253158657758237444291186460592481675679794762990337737651817192933275470643129790948837760062521981387068773484805451214303423919304917226992263597980797775055039491803430770259075577248084006449952708855632471807140666991529823997706956880174901372375233617789478596743844631901444138153278177678063126256628387491966053293833397904555391086522813799791679409741083614908192984467724861350371729851199670020782098909820615399502413326896926830385593893613255327610440218995835420361230819686346963804914191488099617344106538383798648503513282221664742119365102150665824728503504901921674262846901557547012161179356446540515965710733407527999365319530495862967221997508194456773001286092746301490288031630525028965553530636837136841714227432607643861398164702576761702318467968447329040940109997655103668860361168325039150476551003003661375064478592664488354652594719236069438432551448393375823192510719103409680529640463719431777475456114660936748268716224906083430548155341191904785234706120941194343130707325002364522472225195392096349941527340679794513428688717371388658025422281648552621998760208680520235319120719039299386359437056931355166134615719406665573356476819667970303656637454342407579899441506578845494095603653993578091154296346379162486577496448273062866063007458288241683602686626296755909553574352074738538480292025993125117202529284811944021060289137266794419466216637721144342830681436346895805598989493254223320581220930647549734802957011951089787544090238558950164604183234613758086906368104488049804922429534918813463622828473990298287418329720250721867321859350223750316354345359969772839829102530410223753429941022698065339293203195775336899574690747486951319988965540775040199333019272592881775772054513201339494872326898009447460370568159670760025226302911567130732451833891038626422256054995717328176238910629072876935580392157285375380155264470727449947423057658501501714512806279009425852363897707022880338946644419462963133036572867190244265828199221863875846995728362665383539273338034074876362043774933016946650452821004755014026670539122605823915085721681298570505692766125397000096980601253736211511708000109899078628045130197371709249750903888412437506267103898211617332766783570134413311003882271711426481316822577269097727136303005714924286007403185794585431246706782213693144341294184854287452449321400880960114648086614672779151902050544074569751644795313912264297243417075396085749104121717219840836319783064599600094357448802908449054134633461414673794225962156279095595844365391161769659029491929281904972222993720712343475073587176939210196719356001046982254621922868911841975132393343556822933214051114808816899922737907141376800115681679835132499972144551883008209182389965885618416512099609054868024923779014395794126911792815196008732273014581259559530803091910558275258419736121153630638410322659808425637135826536519768016992683146014920580023842239848508208489565260753300837813226531374482497943307296176796554155476048493494470384507622501731346908531811757364448478596679675106914174296377780734439340113511922099236974509535130942359952828926523162974819280512156387177302466251693893608915952642820621646024203116782269136470713093612762561863112772349540594473735528172243956042930815695174608724406953353441054318559293404646353080521120570569572428165322723072470315907467351340818094072383841783962536425235153496616289810256945682212476843247444611578986148512479274735753144949794399731801092874174641849255728440802221308605662076187777859524760905766210518640852635146726940094734728547321502047670107876155358945189063111397079065869016469228313290320999947326889530119708383459529153393776724086000567499248601743170360376412130503482935569078872563034504641452812896313534468386095170666228040624008486135698086111177431962321885686995915995537714556101210083869008505591059157415680418850457943824782028342608575077067757517753109160707902103443657875640499082356758036759737849757703373175609221588643107112715319043481008518648174751353363446649152031352756730048608523883942309528248253207596201555670671376336477581799911286551001936304214207521093650878250470210231738448214186357339895876213681864015977514923583628974492832753383974772337648788548030347928273016642744954431229235858463184902480801207138817737920144853778850831166266011382321304946260147739666633429535666073269929300273866579535214751190502774247023277921663351415125448412993811032329786064739076303061282057576479433118356298241453313210081198829512043495990370214875659694479925966912554708958833668392589333565706348934168205295431097693763495507163814010752185131381461477915552060884907513641405901774498284238043298443205136919362264560420826101203998636226461792597183839947868416140632484215147609695783169011594253787893216562453445085451671660353275807144060312789332658714782686291677772192251786520341823791578118810374601381843975276695564012453743817557972377117526744356973692416105074141504573550055824748770197910615744583852062954689210185683346400381723344454133063291631076623151730750556287602516590000964964947757460031949121034055501320775622861174025388575203625547552250047634429269682768841598379391228442631439993469749229223330594628654148837414526523925539155040950861385239835948705400231306643728831172845395664768020057909852371532551617114794575470693333668085708016869292776299780612938735415217438995350255878654920503469661169517794794348896140957951914119938887361064466511685592867515586514088387249405013623867900482352220220568173183862262661024767551296350071697573801075514702985824690101500104616493901218046919824226099033647194243683159952560346825564547122422351123356018482395834688672075196576757399330265103165415270309012387419023619914018285860003996149871015590605505495799881170855090906677146167962839521434757176116585199022924378958188603992508133041516059788692110055049585647351934564141269957342741760644808291908273074740569325835435353284319758495103114752961973460158258401014484273974961007683923344720145970210674509841189689283281087691601144733891942810340270613906455444666031561935936715263642430248846568412394430792679678385003128732458812312708073562661528831569959431120951419091100465612024941739679187400980499622446966123039616431236575146175231116627197114647050594804848948122083975346935544294048719142685365043975393183105888556139409995987792288102022592047508710587832367557459418428765630734817597460648030279521503729486776198057007270824170936273511526827669534671045674542925809499882865616055909562560385680800315400655650032955606113394620606929224824469106924494193295805175537041405193038423113933330792867906795016780000362557760072367593187049853194537595419630302330264886059791474505238685370825670136668014018078943327809048855301605323339502208332987668013075634411976135832146196935291876313611142459554446927208367675170649624298716795958122416822228942306606453468009095488658725310639548595997841120496350597428103885502636811278534538191824252204622981293510157972252560889464404157146626953153947878117503946153684510306440320779793985569874117906870132971866959593003624734138745949810045711933384111035954956042576062443348704707741340085166730293899519918821210499701617935736852689852040118595177635927565444901592462493683913860329775605322351791787751724990087862135691197897780368919627630068598152137173211331665295820304898069375478051509889289490121310116462336751030541540913855839176512956930277061914047813856022324392751183207898744376038540222819756698127818068141966757829209680026510586580102910697597560878356771466675859326621631846229333653546485212405924981591394918580653477129376086205071856120019105100897207551004885934437161613470853727346930477999939705996335245489501337555185689530760600057636694285267571444093612243113022904650892592151296530418688748476021988891998814502957459265218897885677543885415522586710390558425635594371383234415287323561630898901827529311471033187245178479449733768213814088583525509043576819659215244465808747332390208701124159822565258402066990008197050891840894264187274141351391736090805899146388443489930559535833652017326006307390696351209911521454524529824176695658542281811463475946995606775136245864459176639888973876919788054155908273134289331568753799964752603331286894539979638623266365573017395438979922787448340606522438755835476378284255664998713582861714455620522541644005891916719284303736964275240779761059982825978774961693432890434952004459229963477382156427627023519768211432988708196943124139760519251706056176196434603916735934491626785639065750348809454876406541478530709097127517542061453931546072055205648799471992065339508909778025129708375133398105615516181752933996873466192210274381828753745706220318470991439939790457033629040427953150429022496893107576828473268684436059818612221229881915392720231396122590432291064984890001481620183483164118625093900626475269377511392735212689060346945841574929741350657447381739231300791972797213732277618706959538309626964013343773501012041043245165579893409766771552416037736570685824604057763622881510136989312589123600959831791865642201338502752709398824457270166092369117650662720700129077814312458295866734270956723927004120188125241690789383073607554352095652395952418366876110187157478866212646003278111979928594767666992736941046354961536831520241525023512492967179159997162364416966559540776664956416346892644188435715859204674601183209124881366492068167355008106587293378179500820929506618221067584696452635368651825225321394423714242861568145346374610517432626662240863710011155609713724003034748204533773589863669436510245763909212421743980730131622857683662225156416543588334612502333100481549221400252786782089307596626768059929748999070917212488302732852597024889089110542755023461795803908753691512483553519185759005647283093066851236326395466024617147454192165154232428526014361529363036411292437521247904744727019814986803889403411062055499741792550806478935121324070198020791278881103445526210393560737476264344019982516517967882474825364522509494467553874664045844608350138528794628600215354486257369917741379455737270530798262826270128163355954069796751602721308233718749314699514978783177233422759994557513014320651442199864945499597050558638438723699237314538421069544243982517001412740988355460755480971167824671745836031760872732313484413745901194303863267478090444394816470738865788986317355491004556246629857236103666734970216500063957245599765244062242729221848229815247115481358761230526714375442594899082546099542433645253445408287153559325413563164998049452386215607556936681456519709188100687307881716976736558451255541984542197440083250832297812142770973631204034897129270253536142127615921096458920750382846043182219917880138153537780135980877743964666322372240427260793745020823374088826637397095322664780232033320145081750025596601908757566401966807904047219348093022964516316263819503034649325953762323104350428490731823017069411923272623322566146079208729085422971548847219407121537503232721446112181131738772496070829822305963725070923950836151961128897702390547392144873557814882953582159239153386826530383245788524067938790466848205688047000443183586952550225554477207757844741101470558933920041766081554463211210926144769679752724441429393928768793372108303281932653966310902897893477094899314550386969614418879190553108263551498060757605711884663196468868563826912119170637462743755306731172771853603042815649245113562493544546925895068269278124415117205789705746736087942661597312699302173848620627000206627114986222831165704406255523500294994354181296167552209762419963798541550290589110266747246120476649741704711109942560186990858638809446120122923153430126475576228032046497817372866759862744433476398889106263644464852753496708194357048423782428593864344780034406695115117353784958016841643972075257680034394918833499667165109103096063631859656257842250705063039377447273969447217732499770232848168898341965734768486614551423977070891110042450641844697939084146591290832000222413985925520365279168137070846185322761764154312955396580567042822391940007994044049955402730540937225019010828039403090028252194156436091034119263538701817075877413903732436099489652991696169200422853929156415220256190069895825653664729457996289028960842178646320803277117712183889620031630964489094101260719081222216941509128764101583827747596174207913553358326358899948957582383974047799569797868889645073059084601164285453291532905393490001346848399671755487086581505222793256252560652916576912664481468292874339642402368995305203127742934601654315467020624623291910570729267594505854055711205292321641028684464035217409226448424651813349958681862162109389117806038783432435845807692701825484087157166749375245734628951044953635161870014277618694718662197131636287534069387965080395238909280521219070566393615262589099470061281284160503196856110914540366158953468935756332474077632002120550168187907422357713500613027254936351649140669297499225367188171453748895793906153262971621813366609742053695446876207269384636478716910061451682121471934134414486997291871473954945751135554234709823325145061484656111645498544154189291521728395905015850329608335180883613430752278479244531884125362938764324609862276282578316886144544942830326502958120355777001087246755881954010129394736011261685850149193752712890639215606981131397068200352700300861312032267384455878343234404299839659778522600315637115194714934801743628795964537356825586020273897616581117658718295867365627482574240884661880365068864339669560055874753114188297562430461403792230654694300705599331783640670798458730763881968518991826334913085700144256589920714612497938306692376401121114505935496696192382992102998358236835924582785347646127592592966300318361993358748916086154529658896770321901212693469482075228759406204994906866006284640047947650580409466135163800507296175740768636629775360409767133994192576823052448196517769447017790913904717475545357062709418405325747551022899005748227945940521682060194310739487014659659941659429137524091520909128376534821306120449661156859820558634137919116921081082968651499986136105532737637496851830478422446871431438876673460871236013818312147301240833130075488200701040730663622113259149035200507079553343463679979488793642712040611203060673465428760751221651941759780666195435571767594968717234413937470018543210093945651700331788058022046676125233098235220595370616075042695600178114491227875919743356109921321313874282140591874884968916005255989749516424804095621607706225155476736527704951920673953226476673058972251919671811272439252705769370005352293183604943882792655865967354521113996724413929303642980062461969255282236983231485886243153601070674804940234842880721430053771913676319162697926539830761318129946425428490681138386684881293781211035656116894327040890557872402739944021050691925163897359022662164253325908500818718756741806750354985219408868554018993715390833556637581706976764698256010967966301465199268611203358267174094858089949067125835325365810631320558867150918787651170213900422565455260777962739118367852269111468735754373599136151260905973670568632895691584423139090313254275601833804689583314496965851616881012452996251196648239349562837254059305112507799955170318882703283819482490864746888420971931233732820811484472409152002546513360988814949571095770410909193425424454669161762742474928687089721568521529228797100826327877967237034052572574455813498265563196872526603038151508236321342783587252668612587187674222880653534516243030840590072564856989186602083124949637173780427566438764230789050670661414467026719548534414984763817330156953880175717879833610626265295337990065117867244417973537982956429201679607487316819064016184237083612620119460268408601921554926378695677163157770783125631742149048993026362189151976610850968384925661498936379833310026650929227925307383853458219648140822651753245341122674458235866476148392595396390848770403683790617853252764257011987723675032389991076346899750102100264607878604939987733721502295491418264455840694041295234854804974762724784951877066040471183279205810287450904328560980024703316212468962125626424245516342458503892301738810981340621741499135739304047527925984268578660429527368524473719149804846076704531403302248306486027414909959042270115921502024036817394044600967181270817929014875849408461574853550285335422937809114399166456208936390716706526012762756498051568417445268483660930472277144256720935413352348583506139837295534890745667479414189668294236171139862674451570442019597286427675028434737587678354615264082145241796000114963934517731993493031248617617840550798678853602410254641086130691588026566131667843187060498952219790098864946324192192907829265827894892006673700931878587923955501181939446255300919271684879520102085896792855746574510334435274817540455624615547285002588973279586512690141729016988200306447697205998227204834081840457639209484846275696474997913025205157423283718495426880847547811824799268148740701450367341773482303976323187546473089750300081570926196489774353099379532168827577766010356453625307614047810973216997563553524180599634659682444951273564747445205306638006422595082079688918794354928672358235766808570044802460110738979356494251530549800717183916662719704334419341948821002803724762577321037313062267402920549018201969399221210118441971941642284501631279639480527950532103222831398378318791619096652387532967043800611334630979070181368281068925954522910303559353732693857369399504886398563742594806109107747255977172594022093062250309603583268884724247950960036784655232145602173364540413893763790098873800238010582478758377258930485880688135672512417544932003158846927988319265254042100622032395739636088629532113322805950156123017176044602821820405794620699185786118358239939431871684246976570061221160531051883711177541285412039006401408776353502460898652235340708647554911176837104591893534795729505490075278053398855681070534956176691785911792384705236962880901916620113137388681496455378086886214849411957439122899517870512076202351489282107005707714550458001285138640140615137590959399239740289141317951728348931189511565118968106517704469166045990100183724552887817399327952381225162107809115515184663445296859042881964166174868224483457138130581716177254638231769524262627879555530499827163975865785827508237901159207725504119927554953645459497771539864182783482487382991112384107241618059705673060072626788483840124681860420434584545024519369376846654744029120891066392534856660518349246793333355877703582574537920199272606263323541244932755765609595585645691129981714127504486567530991317624723055097252527783013553876545470659406904709727088287790807229196266181384213458604191133711055723756215919735527831598051233010393432191888022806566148805137183542446329661961697502417503488403842015878534710832148364340118533961172079804288539595492819304600626898842005935043259639900031335678482209513014974544457830271967942598236779730846223562798172518116316353917631882901057902990314436371943830910447427450722225021972304383481755202684550821366701671632245314575591557405077730655063586242466327088650705553764285955951341587434132671658157481016745238734664851157035754220023964203079969631668329104743988126708438303846856242622691296785510706780819783995033011470076582305863919288414660685027298994767283612363274893160500499792907312839639564149755060996415996127517845813514677454841405466836224097453714036234359098932044548176315568649498531292821617991657309341504184431775743878074626311886167082670924262941158366517947178915824055442783967314699881314577619095307558977319692838745581414854930611191073275702840638257833393362332186951183248585244533300541642493425390124357470614543622388728020638002789898343356690385899929925259279857751280291124824049392091302121593028268762432442159106239025221151997004254962246564407499193912660118094753308490105061722883719712633820246662382807839935351079082138025359332328162611062751917510468299944804910000867581450835308781714328947956807083144553195459436594860633751327962742517178909245767053299691680761946748566435697199029672072204896390519453764291950951734154672492541795759743781892297993484974487648496757711247728228712995587790770970355380327120113845035525395035306909789565663656527768121939455560293258878849396551929409057485837652601330445369636261750898875422631917056003136712886617540808774652776197696835601090029589251930338346610170616995639470380985277494984864578063000244549805094051978051606079114485020689551838881798937431643224218256970558774458031542555935164984853151018946277648424622565262898221789066566654508734531548222495711199440805804359425185613961374660027784351001622829051421522620129882127710414270200156434537160666847809490023749963860524476817944327412053560711290380715194480261608645692561025084645006336452025367939797200293933276362758608030283420669415806139103036715322935882751625859802894643832599910330159723281518382150138676001053163442901617453086922246901348457899341140216599555224258536332146835922885566365435856531693648065826795569315139658843107024547764538750682967336439430057938359232257920381005180740650868896897153982449743229648968385425297532491694435459253594000781809503109751878778024359348530144519627274683299731607854356881089935818324696433109535452080597250937442992451153951239161159900929952809911686733413706763980528189806158673966064982104622347590771524049330700356294301359924951148872605489180427472164991808712110395570155420708982126119449989940612398833300847354016545729523492096778056737564484956827866020094304546766358211393970775038262191449611931649753680984388924285092570622931243830224623081202694767935860276273897000444686436009267836730482061624765333597096185993437053314511948653505160229996820214426908753639521057921453553288787073446777423607101025349048414559736877412979122399079763383520767971288860954734170567876950861894640153958449113052006734324041283406996513244444978547987160186848606261440314942699198872136350872929748966332735446212593447812146851975240285944113958300742413759648119862425597766953250017204083757122991581762502624486384972320896983550920238228387649492735321932278060397944375341911766616421245186586524370772837825638812778217364515556635167073147921687850341066284756055529422073005474203586462458136519255833369878636990177963043475283015964269838445483386241016152085956950941584541428487892949996266454786310775642475620790948026872670486834801921850102900669302458746394411158387529802204897333392798401103718508167694792710179866016447589099239010058520428765292624144489526308990415167202298338388603393955646876701579925950142426205555725844738810426109903490312436273525327612122231690846020421690105399591098635261373451285445443240302650296889670249611178168912649961684890131377936564134511570922915545428518714429726611459359476696165491256886166827863422265387229912296972150614785692052045143620395892009202267702239495376432492282519162025463653018711359859385548099343548163127427679035706282916335670028586219273741047550695054662646781643932983508602701817679218664013531812958071280519035522253283912589752673758208450821150930111805472462946053026741161342159369855649019392892069232284970798331826318818712641232395629960824420711093681202926151111960284879602842732650510017064938872312465511839023613608839721429316657248066627316491395284358922792092941692645925334031014659963336205939862499231242671179237391053933848132707369039483998815829454233097482137670793409828193170078560530587830342996362199168859118931344960296091599677849018409871329559262005431667229195888456024183165103381884469552570157062898359857271734756036422282077764191514758231227567829757426932048503332105462110796404208829465053735002416880443866166244398982489272476090085929341928979126937889784167232544244003930554940108914919482623047875944528067766149169462678856566652116165602671397029833556566982210612989861008266055806578429097566660450358836145953965092505974424414498568653948510611162852681578677507924006162786444425238307106771430161880954085298165050106804429495960355977977697059719038808483584736168386560398142812881451832738101207537156968910740663045034953006394366505702018410930587326575858963470296336104436523881508145330525535559531255802633308682148264970738517749474158987755542258372225853884368980636008957280848067123568095736572238798337392823829290719541510534554472264162657896224240959066677386512975578706477897401112889158618044829964843805300620175430432863953953468239810546986713212206117151437512748056533989526463562788032877775734806335241112419563917365428720133582240181843219581668116606182258898990202502759236334454472237990943981020820912811006294164769696620497796012417741651247045973832078565071515106465509535946331190923571128411259601552215391974003647181673933169786590197401956505784344620094369456381599938972259062876158418967523769377431114991665499243980243132861155760514159928717052056797360794015683871375225923929780097705768124768087711292854092576814465770329272703871854750445368851801687364061846864808578456935794447142745967536805611699486666937108403893679686619318398932665784635804191801666509370530674727292469551209870459256801037533673043475278201813522422781527282458701299428817369603624793089116573711040184737235937143935181794925079394370781155892510093766927254351036863452694536436998238553039358122988868669876221272839868448458000684814869182942072232724875394805539456375435312485598735066766946030670541727132715745405601452368845399987975844249663286055182282472438707324728690186999713577270340088413750885102698476925069754258661433306815719653261344569749384140734225805105289917949806473585104557530668065093561874066413976879341777772196927071120563608996495255062228451323497064190295773811250658001913156810055033796920905702378952005334556175120911885858609109930824029387955079825813565923553611712646364297445512910538292701772601982166799595678679140359819197506425290861994916970018973887228166526803628687081337899626303456202823267122452725793332715998192033355783849837959454879883220169862372725569798489429908735658738608767138557087190679225321699699149281800288321891825842941169182371566208287114431043077757792081481764330901895935005033105822442089430444839857528359169574936958035610731359413405564338763399417781127798423096535426415431295471927442338374653835729306270566948428177600438762561791710982603907859144414952684005530077320895966537013999233091862304953252579153346028088627074225875274927435347804140247572615988198553592610104869711939883130430198539863564084253489650423279257915491316122682204210806921776701266470615423272007330546446681022438768816191783384963803610047527886557128042818783668986369738301129930165962283456807064618355964031979520559684695894455182611914979805186188952682422089007950832440783197797868929368736187760921096139164245157670201102740681726237337162145606862383474514812828006029547415540206606614603299657493651286830190982426772782314507353125362128413744119057195305068507665359364303387740436304590188662835896436307938319565054438814663799602594125891198155892244493538787905061169066072610028837264392802167279901992528522526302179628503849737436719993908294352310093658410076889060924611304943185356604949650062077238991020527882845130099706694310988833946962101577132947178976009164345432792274799765719385196999139321471580242514564226022711134062892138932047930787477602007946325582276955358206546126472015383217806733389693010110918725181782246178970125156129850917093498712418666624474821104201964499938970318830789100088817247099346878100608239181015074237759631701298336481130661448192763265050712956223705915179856399462296160378299689100170252206929915549515430381872155077160736632936698359737551253728166295570496337528894054693788768107190528389563884233579062720217121671744536676752346889624086623504934940783971862252019134543181791027854236387359837245148111420272913741687307204943746258158550837958482432015491562593691020220965611228136765280626308986479593100548066696089802826122731892895550488409451177894446152882296744807506460774004386252080042722096718478777144063154405868137780853101086540066731268114196030275896357145377852578507342056857048481789218049309405074532075934944367623928805556703832923146365908234180262511871720149004670892627266410701161529546978476141923794033376362934358225827430438205333749157583344286062565411560461393805828880899135254460809734270360956820153031010854197340962607775767211842520999420567679548709669428267812875561698191829074053104235451738129776833150598339142550284001427518838806629124788581814066803954567534242832839832309892538022091797345008982652548956409654763914781009620254604786985468833594285431061754853357972724219469046235988304510974932744505239462377065845455507331537376685134047308689867485228887938117502875821589556977798616089874640871662418516957646731106024234968263086676544549595105404317894659033882038127511430961536746030006390882300837258849051836234354096307845103011856150621744204269839460455198045403559569466535528231697159532113980423435803787856225551339695398867692721272040607497339152388770943570906528460772820637571711575384991691085295641941553366645026269499086325465786284593306982802971571093010035892712843380685857085162143659807629110473688233315464437671393051538825458698060535510486395150616517338481557815503388737149108775897703839606575259197956218743345938235620612379443446210639381260145447402556055582256823406995030741269174760460935804955812256011141594411647181764905937624273052629350756722481904528729074196660564842889995350884984847627079798296018681828476640247233474339608175948087095450384304690239139685405268460322656553853960407455295306592163720061644001994225266484512508445136712174232387907758010449147148300472148248169110233338527001764026342888634140551699715932989594583073517772451752694220864937959412129496986359078727673408700457469536473485198269924754494770991187521384134163666803271282656708047967378991336594705807576146679315993773963628819868496165736502575226421865482138900407046003323279916894943224117518032614992545222090475500918068292109495069501309093305409465768082327169112551304684350181726580541924469182785376364644735592614879455876675482161880058163948418009796452491522661162866363715961946909089966008827464826462341683050522645963462451519421524225289389554280812528313195489910725259716119962484747038901615893662600849228637218044723195974605847664687675587373634355439234507993157107642132827844820882035532472282260513199515858739508407116447763000934795823411605408893124622455014312265995200007621480761373788448114248652757793532532875665677828509395922352426869928336829763689200356292866171946364560332290965473156499135092614589450525612188122857985102683107096079217301160144015762229774421605745338145136187158258972357344871270707302762462408186724469290988092559278891975227416413824192599043788160579777543231230203489079283511102856118649842376047650928094793043390773840353221937840026963092488412639871563663459158841148184886173894252704512399726814432862324617474136046140526459006913029805778544674826570780822045109028835160648819118865120481226832890957306467593826378178767616968072686807245778545628998670896640916066071743741234928680259386890955496279663143810656051797180671733220634669544214718971532220427309607396763052146197436116282761860143966795778696145425932228594300629327735608185421864515396611935323953048120385838175396740924507200642649419157227463840615084243851082646163105186111079236987041713307699606086221951705790986050095537167837471545288240492378990448339294905211108850761435425948624341148151385607209682993402285298697442314195130786585040894700007878150087840162900042160068570383981416128345705006644426028946640890238177892215818790487878897113255713027824027698181911583207996432920874996780946428345591785271093732203446978925517954837465489582163193127726623414141612885903533536793861931338140919678985990805978884764876239147246510497822114283059428411749129152285272661687555191259217324689790386785789419130503599625168202245381104698432905240426615567020370913877475612382247004370298511181621226672703658595487396254276646664117424606814529425556794614920144694170221326746370327535129310519318264117305491622227074070226491267763137055474751146565722820674119082841173011942355950634149334454802477978858710490209932170489062342243845658927914417844579268183751463007607678361992405003731013512502992466633661705818346857692554096563021312217937813620992512471996262866384896661834365081522182758706688649550390736701527456771380506198891415086189673240800745844857076552644258550984153251852715056746409534078587800167472900248556689163344256658689562804244527599846316832550334501876100124675621003236333341422279440562263214003668704645599553256264787171004747848116587850725977985674883043374735630766306492482366938223221530123691735720733037691435320336118577384223356649466014398279367864752351650996544254777667212709504280003920409910362525151700562660882449013089951803133956595902959379238306447325216883030597694485493584646278323973478033852654726097044890344416854324200446852359809618331320989593198537494526391723319579095334073590941105818939200544857244423505766065137819447052025411551884904372289512268387508780017266511981595410086900275149555796518593358361062169462420382894280026332600546042057041685253378615935750439625120647660478539375417899751688965388908392766430018253109654388531971205220979255966414841485125380428575508266635210456499516543426570102136981629073869899011627180151345441566116820806803606477143364960601367967091612413473992791191102712083986373287862932241570839458811724098363926133451894289570446622822830748101006079465034786592991888328226074577920632667372832857354402875298038300661021112459269516170504980910720032099015637402231212976736690764254356559339575203231739697080685931502224800170922391533502141486827742051301938530861692377880122986793102552573571755909428970269281377081315409455765270569870423592025545468805354463625530760441039754429584052534553467581318344900135212538799266347478566137157911214014399091772969580888448892858738880899595459555747012996988467023942945849831222411943391589877259735331814655776004240736814626537025281634819853937003983474271066355377835080296920017790049035344819130545645710693951871319855392434929124646654873373420413738474343119657293252603241091268993707597525306318450625039174905984699774280761587543520577802542394758019315228802716771447757404240084832515236436207282443367396440818894342768559459954015015499777214591628825100832363384869104705005758644142162889171804138629171869425214709150264248459315409001419783696891999711648960736241550212682984377312061311294802957914951652456083604277448553793393251954218866066820043608281182154739124553358954831763969130227691446806723532035292089181855279339867849250664975643654811560589942802146523898474941554771942797454612721560538600476057138964630869660947429390032142245572323231835177185570591990378465516599480569687390939020601943495982255915264925125845635374603421420540613073931073997793820630298104024676772437400553241163101534403627427907743799912095950331283276937851532644915423575476951936347437545676724222026707412318055579323949099794323631471493155098728404519228147906744658497339093137686560811335412816389380603460357794631886153168586679988309839155950030798232677276411401090281281204971813799929301727815317200984008234215951148922358113748462728297827582737302043539036870283745851023632984767855911878403761049547278703181896111496774098390269507736731514376133174594234471305769775569560725320687980909747204870189950090204170021963863183294449856900623215169616879276662057579443091401266009422922755405866658297219657703952013713393943604757443434198815642538594147607800152086092278035790487364118066625637547769618229073716665668298230119194210926898946701097055083165603193835603582142334685241741655704282891770187888854612080345728267511444991757139004245856431946151527048452587879715203675738192317739568986164262157610206065982027860623895465253674829797056171633328684610520883710654045980174832337503249221915398470265806680678498161861893737816636790299322628755673172082693722564934691862214782215463333339057150218259717486743848400124463762736255972967673488349468944567181477503712311489428759670446284864001452752509075648624111280578635251692777661248523911612613258254187450180313134583139654880764522093158606390844654777775981251869908580179601489967294559322833937024885263585467387408590009886097870441015019100448853859046181697069451109195488855826705824438868828645670598872307274667422518879426941272794975230960630351551447659226456776285351014076006571557495139574834080319005897197673726826359924606175124059888300401524955853816909062445820672766704050158685256628046868276289711912939272897810368473768455247825863874770312449223094899156817139123809793342542907093432558210440257121983878255412403051222354722439933317855129799517896431492967123566822317874685048114326296739973598763657147618234073523735061022278530468784552028341899317852405736016020620164548844692600592702950012133576719007033087474866094862069493399236006357588912886735434335578510372125798928841951051366488519696539134454552997114611423698217683146680018297232613406036869819914064032498954053301440224801798476481496346571118446427429109812814606901679957641985543838627672061257475013250854384884353289540812725968897994372182391883991294532575408917823843369550083100477157532618421572136445714957106097852517507600048547748465052582767243329516835973219659075765902965423313780402135909077846104097882119801871917524157671933308250394510443262323884036718355572192996790084189909056740326380077450932821044396373814211753798197900113066309252962789367780828830798229886593729085786511566825962152229222064228882457715607174925269277449961635282230858313043387834994893131290437087503313983901731794879683131721862754200142022812097308691266532013141856328704475754499549703001336623235125525968429188213060170653680635542824224047425484492347756029426928255088691443622371689004439052898602690041712624624699139885873282039670173277758702525151540166562369146848143275198791598789652310498588994247137336806029977620295353755017134938088792911960484271970466820395357897485739885893530751665085838974203249688905184563830986085258620289491527146348270094291170647129303493633439286435698302770277479403913756237623298812281355383339663397676390670705711529285620503595835045548610320833871528556781951102690437507311109149341503615891054401838905369541567871733449356723284508646862646787987117978870408192970968704718863045298290591177517847687411931064828009007579785734853641119926444746507991823337060783438120571351736162516383408838857155712590553942417584739964540583640616641275529922485893861500699784976635630428964476092410482700413096269603190391199064487877567393641522664041676403344985293402564333700761657722084371171866289013013606097385767476738058611011728869343277836270962540579137889730018906796805268510139444861998027189155487663972899600322029162476212010266209461676625535025053937838265474580996803395401587708891394866356983438312634369155423629886159240644757122941493714651327737963781103865880894278783220647271164505383508523873378505288573662104058258228286040740500767273393855558298754599248103951572759374157421822943920971382213137824240798651623310213712375751841591752509481765546517861436151849473495585240984417307036112673710716602827306836287162825457348804012919904557536097923734341713062396690585661987974819934139226600762675478463369447192957039173561812324563461470595375310196769730957064199876305500208827492393950797400103133652878596909169773891641037907391252333569047318755769210678354026076864351556754321051547489972744914769729721305981497541751803149491663835161816950634077016352296081332783774388164119529807410441578652106688538613142848059190732632669816666280836463654420974804922534926689107573006562088582122938744397185572671708711195879840744085194548496212276601357275727925142649605440144959557837744492336878907926126178934496736725457609983615961158792691688366839813974062753975828005472966268786910969173113623396066768954947742809754106951824106448403102168604544261079170443816071315335141209327890530341593797448037437193322121208418100996677322618654303431491908710403890568949310897349032658323209066000922009272074486264938356256127999231358762581169203683107456131402161651590990165204138558902276884862966271058204565092532070901409936222656540782671507768322959665228775957085149183968691490848000143526237692227345795731777594231873061780099735520211865447559367176805368234365022514837895672513631879512099990987070645444595506428604453299882420212664336007519753201361926703565975038932438249348242676663777953001519908092498140344330251020794879604526131200642491792158317229776702795734846191977956703716513411033283735984598684915188390314778194842351605604203970560058810295343852771876568523814956359545169196790969804711408164132628975337843753690622116812673189418647036301415171794134614631201337430206634169461028691619878608720286522713184634094896591435377602911637322505101665691680855236249131555056074553958580644350202892513549321041102267164958074691269350977127133026365460751947583350604122730393423514508086820956823564394068605565011014456604606871787258993609495915115757109543445319330553836618332358759144156283902148686809706204842162262216385887374179977213868632527562430135150809599716609330602304716647035929052197663379128200471023812255764910157251787275534616443926015486260548344140139602308222786578624238551704949386386239689537402519470501583980222296874255276673821250137587415306690013813587308616107565970506104075829873258016582422791938087816397548114135534222943223258219732452928900866721212480295850759349153123024984823439793836717471718932799132247581476743857590862488682908909124893724246599409949535612719413966636849187880808118083576283314799882182930854325402299606471530974542530409123845283543583063587262457272635907862630033453692224731360895359064599146622637860880764106680270779328959465262627388865325150425034276236590053234207462072677647183002324516687980324679783213082700122841113747781771907878208989859877510107273334715312520948303937469208806119162308574185996685957058321922006665710595003133547637482670399798762573016292548697186977517529887573682596255139235988282500722286956479233099610172531477275742114189680402003408296511767602633839378312700253272947769860500316944608674290954702510374056750378113030223688207391842346659335110751939914852019183442517529147015836404491945138673292609355228076470277515124578404741064672464639202241986473358474333123746883913192243768468503112434262905715675423347091878250240759993060988554875370127311679441165579641540385752229557746898563130894481835220458883513793350490854581302823517549628325764027214276134920454029180815730813073777940580995955085755076325738142783639897463803189838856871746409606494320219710246034208301742911050444013211163988431521290165942715085974137348949541106682797067801186123396674114000095186691691919938221016217240517252123433061127488224291505922703473605498662867273622862002300120822067402726853335594432976390349226234321052021529956535133599901041503321172415319369379030549891533991880268960580603230958156685835910611349982630924931214710552870271462000655736384458134693499633183309358161963590615618908250711123428979568160895317873405114638246398105730181607289347564908716358120847172732150735509726074524604852819306939101506016093007571717313686684210703556196816573225785100471010440364357154744206381223108559859303794132960675423450576526737207244321168428066550445027365107289454618963443008477005915851296959369574846939071180283999914466053337046966640888563463814694287806875585180305094584819154040961595174949405370593167470449823929623870721116631996796290982243568462745832875121973413325017519899614259262414014847590720364980674843268398061186435699494226997966706041708493406460029221073243023301814001634824760782272879426830303445784272943001914939579153023445129538189436316767884543670605117596314149615049638289914039562982994097975145389602332608979183312078171295586856448623700488479325882206848053018428317901041932351354210386863249014213431912080047088086071763010864518858515834826354154274471814372269420228932186897647732553682766776519798908748994335639839822085526602808513658698391183831392977052765702747301517506867987118318495902563265311495409428801283584639435126999971347229774405498329513228781753580517749769649990284205794598537703343914042437748877742523068086422724806832852571370107175952403632528463788809541368680618974663005567384711273453352098542938280959214105898258041997562556587306318634924855937235745660429466102918359636751027691053077102441190479498272936914669722170704775291947737431908995231041723884761618642864041362201616117476056098008297455033404127729020039132646026091974257338214715492665535039032882936918538635050405865287711592786651276583600566496333852237982546707509961618548481034889034348798342324406426401186761932405684394011222196403406425516723210992261773661076906078182446311100183880247955701396157736173772119130228253881240505994813156668426234062222012971763413488346113215212463027449955915564303615598196657745734892865011429499891630923530234668186873538900710860393814060795519205332672640572348096137072055951347787758785419114112086077639476044788347314613503974220456232087566958351155817142551354590608062483672547384339046623138158712284396984925659632952285973265440402390255088986525089521114479666411502633628474343093922704216056397475416841211986131664620733220086198930902410297093893582140682179820109126532345425995410003892862241726284984271111649708468646973926475046952026713588033497148372864919146790179536372556464731439640429243840591969062921530815943321916240348635591264072503925471928616819798513229710232130135296849573626505085668847967142048616564146355661101028229750657201781676489653994265479388355160495849600034787765029640850623123354961163842533863904484442131705507380665097798176488739438788834791826259155662830097353454326935798129942795894932135819381961976732362318269221187443186781529382363586590296250888185191560868497823587050981002270927755093974815396406614303841731146711524259063640448093026453751114654402225873885755051540154186153928381207489295652125267506836316055151100211677429461997209100153010374385153186438474790095549173063625902904650263065933611105791164027633006452243634716602625715831054948647501966287327049148622166259929985779294207262665994570432782587199647319080125597312608231912244464367689249670432142952946422133014893038173705830646892653624571694964666077262784443543814783189135268652323844378438494641067094031898980826171677295745326982132391979565431124510745156125637004798425666852084236935295240127398065087090079003353690776445822504308299665317953135743138643566312513997580991233673633875302279273708007291765463845704378516362363863015702251562690443187158773227775654194822565503081598237578547213152180669917919915743033417134501872686521278588668559497514112253895656301604689621031815095532420362020254266487171792331340923577109570188135284082509714810484397610423708982788275677172016216614377558846220714241291808577947466934031938861910493503657663262189329653946711480027825772585837577889120791427447408903601813685973979240497507136407033710322739473462148830628681555881421236758446284825948145001204868065983133565815943693306909509097646674512399166649056745878564364222793017295854901066608993378178967966715723406799974319195919196308192071224319795762893789672580604187952270021987257101457113710615005401919447468272176988246196267440197180067522060984760533515389017259071184350729128486918159503138397265934160962185445165099599291986437785524937285223102248941422123617663368875595277640860384466871230300928389816764181591905736618288039480101287921706810436445162307987475974722802985898232339320419594001084615978631410294661131122319778722241497633995490754535235768951724946236768256995972418148132642564536145634470061947633084493347299903793970395695850752424756018881575575584359237430050001957945562483414842465091218747613846446644441121870641951795999725290025380434936074348405839129243300967984703323016275251129729242949667131806801255612926799747760942902488757683153907908840209154171860292909536829800741088042313373449512008420351458520262512411289833730613516284821295762112882329740085355072967768287504750362024218743811577386121208268861416688035595260228629202734891186955088337342751771616559025634418184525772382834951882534540971162409357947624736819450622774714001543458576181961323761670066612270227157518747215387126601706345684960185755223299671036340670727000378978105009564116259855709437029930107437506774175702709537258894680340380795603905277540406980558487904205371040995801186037311267879817816304473523011015049566553175639695360225141306998212628902106237526235082284369765997702180122155600684654734090821506044505899979581208412800391874153955263725197086204654247730910743826935233246831023153981788847219827570930661734042799336014985479461211103762326759470938884270004004644087162803097340113157812464641749410471376349121717994205374342569067752312370639098670766648683707450162670487330161805390042148663895468013239197990878019962631254139050319360068888771912799206907687245613254189754883031679014602254710347441845883904009677242819899112231284561682429502320848469709023798246118488496437083554379870656040881035613640215125134503547378124825481230426391716304723961734770823741646657450772371644542632086355622806949374031966906765553152444742318664177358610606993989480722003293909701399551016032813336913966584845044144628405693970752082488313268130367277623669970582480450657069411169573176510911807929153094750622069937348929086508744611608560402809046038807349528370494398949639341924487360540230508420378149503055397459526565034193514323371937963655911539509515059534183878415801666011362614584665645434519114769748464957684963735327201844110997351831167354663229919023200989168414335421059674561790312995006733068873928655918769473007066213363220850403266492084612288502618088133180112421219339063523556728061793798322558126916268226941893001442172312013772670247272002980430062036131584468966403719877355327877579572876704968232695588089810942359157291627597650579752612636736716692839654632293726352186781445302800789809486718228279521204763226940086362240572062451077388501396548506058510537011013715659710618335695130391924291114757719082240604609025884000301113273314817782097741148955807776681395972468964550104363694014370146385558935441718278484275346582960548821636367312338830426287866855550754552252737065110641334798320326735439206712621754030587966296681760596469921476770516534789695520598988821080910297607334406466687804361014535602218859187571496526909378922568967799811551480974799895253683121209517336003683700480912189292837536737459878788342411160841218205319730366034675341145578322078632853098014948439557957322485686716294681298278659841184956254579555364545977133613784690531255423789215691920948962220589498946470881118571273666603660781091560489487490124639038457721436326740784283255694836884251876375008749477860486043725185323631616051731647565735123017869993226476747424587211943379639407691663572322174154528759799007352541250387218550093754470398374768240311983561042108542710514681894762285261065637126948624967003746131744554933487970506733153416825586248236107392722099810567590074078406792993416327702484120544909369856610570762339221868597349905507948825363518384316018254871659474179418664841060705609720364765549159512129001356370968220484679670602205824053310712224568361681638146250049592707782361777462491999812410490014644870906991896920222934213647117573218143386436037782830731160483626452348167040279423371995211537681946406454307103908073000961138793634789357754100939083657406664396756668405496345458070264277396015083423658274792779700923885800641461991241621250410386032616681111482610561771214163178833280428906741974765069358127838088139837810359842009435008513128395028522135421598721936541875264397502336930669407227410637256362926095664022543939528027301670929434328836898897310753662892677086861144968407609870526311395426789104479509439444011410264125457061004322897934187539653157075870883299630981380488625865948623512359162219544177387162940266014153201124786779157407081979994031409376970513649198093212787183371657651181062583315339516811150866090825599452305967562549254790145675425964965682139784944049411671723282810228502073790531302048231346308234756318135099188547766834271341744047029106927529783439244175809438424286342047701032264696213740788962611817736952542508590441988397856097038563706073493748076691949678961847053924696461552745677018635350314464457793024946125283065299046230301373235504056826059556809404959400187611645867409964813983107105444308070015755855793194752959928863880849710781997385585802438812973106400014151630834792376829733497557487127604939009743075984909525307418483743732349149331976394079124011350176450580472008977678385611057543686988212038660585937730775587948367544783455945525790099813846527707156351264946032966976850666130317900320756782513639516727022927306229619089286248604236156470359093547110234088970935089563639421441703616140492720915375016332010294520168267231963108508579612121071754838632592760369179520173854798169483797043984923312099711351474132739894127926408905203364801891873550758754878728219653194370166156212147985160871452530263350144004333639128734456068296098896833773033143374139878732345483317026539918248093680044256922894868282974880904444307451547603683907836424900573664451079364974828111892022973962278061860035720943270466963979830137049168336035215973241724864035111433060914899704851079170303682844414285956831588667704885401935043722022642896123040041526857716833603668455344936844100007291607518378424457706102598569767017323944745127885358501822679828529107836270929886951590550373716932838101032820443796130240787265757123789990277056933639766139708948107050406273078591534398487374671823253785741606026228153248476023676846770780852727538489134177141383640958280329720244118150974985706363760530666433710018041763225486081640195576525162861058633078324868348871851304495773026505188929178220133987495623235493885148956708813237051338279775465322832612287211697591288373159831653233001043570635640661549319634533324769208794142575111414017533715438293951754248711889983419819663653772994153805513602818425019915590047471552412687844097515805152621407481160047175549862213098709576060034896766802020118250366950445759252161634258807240445775287188388057765265807830705907481733311065723525782000164352416549958793675105102684790272260036702266334835159980354657014135568128265831869937110072902075766072259677917342017747240159781170684543536138505320095444825009938770420953667048835264193756040192486497404463796276198927053749445916958222913237663186121273666371698010548288257686425946988073741707013210768608332667434299407134154373543103302103923060751363639704121636399133446586110558414405661569723231362095117281080288863859252870570064161311139936502749918118254410613404150145000626791252247373038038189986352341456636805047259133540524016702630168067127050845543296381473137052581161979734359067839656607094085471020100711743174094868423177440390970742642062854377164227315037976122087151228843112309314199152850916131106323245654192108368428271402559519243959997353878989917805958119315763905126553001937086789699388758129173248926907834157594909426762301981338059340727365450936373485530123962134343338318004349253342928458372951812129289895448423825668941206273511299919291565187931319477625063067284449657516123453005773061912523991566623181310979976399250924859410519750686252909674187496795754826365296903104165877018316664084214350295164722576481904143622531801146052726063515738208492673003860443130418110415893458930617747412282834454194263167858368859991342395094503429082145640729773856371262766426906029973907365631538665200071361936532505443256487589432969980368629981461901824526023464181755504091430413374816579749898857947456182994886183512369526589604979417963862909801383313395673479058806173725822218262172637562032015720292288961335036949264747544946811169639838530980779822148135288926313251093045621267975312355121835506310435665811526941462879478035772238228248639163731271269680486822983247684954469068868337662704938262015427729076864677845173503837096938683072621675790105868886173895249914679739105560575686000198893619027154589062403953900149652136827376792158963120551726223891798106753574011630229478788195133106057277672847494255025065730463662764309862182566524229190125195156355150689235835742283475870532899274360508699821615442108907004656206933192802186655815908742660339024003338686580923599358613814388888958276259191708604545549898391992194611640101938558664711572174318552590208036604569151143742144222300185316635754095389246288603970506010643487885751058232062454461330850511026675699168251383149823950115509375796335727279078823718749908771908863502880617880126742268915918300308766420534773682320247483374390372630243951099653753144142464255862628206316814363180820583682830837786530596228167124519184648850545980710432490521275877914407228489932063109296839884859316913861889384850207146015658526421448002318946989127863709353904398886726228576920827358315292077805376889013314978076462212420735277475129832564242185200845337208047893682785381165364247497432056756074214051107930005748889332587104434505824148367586933955778857646653184352154125242173289574497859343861992976232305734471037790955882189329070364196635531131051134750786936487443374491722938735131271222185786958004569288918881085589378476738667481190354552944107898664914290888583001220692657122462920192972384173129425232053557198145577150474265911524639499778927206369319545074354904253893060597620057874022831049008821755025990712538137017431680359137699801253458017845038024928389183954678468369702630799134331554030905592324335271211519121769644954839489552921481953291464892195231807055875096825355294769569107504318529787753621735740993138739449732032198171800846802726670712505069541539265889660311125331703153976440046508766689366218834590881557491374820872819671120267080616747685761078797997857127662442360633602893616738508918209217426570544718653623788414644234756758496023302244712325019554041486926371611269359763488912388178795864950138883897034827170127992801642523968009831412883423902988080100514842639238643035683699376733417684761728310555358872713276196991204949835156863560017488318662125963318700853647356488756227105858911481550247610149729211986711363979976459665390904482911121502932088513169451403764256415188933232919427950719044339378765210613804502138603950190418994208409883408747507751923391574374548775280268932853031198322946958350610758047700442870057054206458288826579682765173758765896168917842776986479780738574268215837038177055813718891619355888921519251230669059524120702444792617484064530254392897770891467931162437198500920794564600650770850616722448386638530577168926952059296619660630015122669751800115382460499516022033893974979771468663021093639229583894975959178802407135637778205955207477888354486587164903391943016876397923857791584163143003532742105432021636340697986743312983783161464492520798792428111897605222949983202902151031988847123905269846477598721196753563969827292374505725863000051491184107608472984568387747496447720959163112715808436109161847861225768038048643018672315886905703802785883935002363778745524209613591093338268558152871854893647071174582137225035007647478713831999228468192217389540106606531515135319419095559106480878995005867172635231638229274308298568562581760310459461259044053528681317761330086807716623776526149960110251073835397887350440569599214246973541225082987239086297868810646190537076390116188016545022833331746368953783550574186055684223426806317525792775361351059336868935480924000594338981967573187507640212996240428041339166630294334007213784998105758859142322420279580146709863247614958940462046545830720705887189043921758092953576503539166031290083879686160914227759547890258977643144683856883398478538978022497726598406184439005698506059770261254690217566869465371971545245525929756729992368071890998750501290354222665556257655775800007418888839887732467589710257091536015573673485096860907226009593038876876249958216543663560431842177755848332846145028540798545912109760366318898110271811219908643529325501958637555259518090463352065410376070383204120159488175960123820064805506469328260405887915665813204538486323640667946831493207372918118793035745113918310130700747635493097581609356269093466406177573622658373983848759307811013775833191979539352577800001502327156685815281627108980005874274564964193512214654949710657798761340315813168569314078573562003180645089476147053085001482204355547439958050295529748877911292105510281179404381381444395685631530857132906542511512968783833940469976484636251074308036158166447184248011408987669841707278601620725086993784018931981559855608956168810308273128872248579289073036326226443961426207662510450872406121216389353415247284050959588722672322675963584185192648025660724470077426569860093404658574294355930626785280949595912748228797755623751854558102447532328073044626248727092853113687314299572131603443966781689800181314444144374799214214446137799128402411522079859070595197119769132537811610753810112571168370241122695136441921436073665450677799459900816700768165750604632228892615005093836241551295565493919214555349797464330423582777657750429622299615319427301337175270122299528455907713982491296089209245370126520950855819726771468425083076930964452597324389917475082539725647556286339962633098168992049051536407634450213846726859082355109956281849811883572238341092732809931512730298144619630620723368067256785042411539185307396558044837492383418422188478028698020650690878822309451388504825110979862079075355203365428112934398344949701825969853050907480679536251663884936446619704457367640697120459363047934343104413411421417551525608094454467618877560268984706870893399858015139562709677640749317374004800700497953300894347920871836869950021843401708380729119764565048851213738474933572106012388132296801180804348329499970722192830721230043379910617102123988039803096346709391501126801021672379458169717577818602282012405544953541966684211506241083930031128487604193512727376056641734546472412440921464320227094673620184338539947501481455949891023416051083986045948409076843324433118961318139107872838068005208863374988547308667781024391402287220376114537012906403872247806246244329533311821880384045408751114104621962746847726113360812585325490316184090596371900574233411791259259665638473223958829822888437221498196996503927319835905653549582712225907823720051925202021382092241262666900659013120547028863520445315375340866336741465689411817262855443328053591431872583914852803758393161198786954379971777717265571510651275575022588209410843412463492601461908590446230119015461315845146660964577419695541866245308176253306095766114148393052227229432316094977656741003154081264002862057254084800670010012066407096730229936499772082178703570330189757195154267080891060497614868457636904268206617171727855375990895211814222226947192417151381078625912111762880108130245339564525285926875727418627846262832287405452331134182700880844912092610577841784822862791042317579625782671670309662014489649045555071880977072217758697477165496971271172680947317694356959204716889437960266687345452299395764858192138092311648761274091439707343913474843076107368927359651624434889968905743825239225681773483168388859369697148831988290386528024497088247454536465168613179537409506205423168397679263442841454275115165599042864213344103257518428002948861179429165767067320675531715811198211221757616012424513000470527322243227539572607167467087325174649988194273542539069736777984624991311743342724924127222932666527009128370217427310792068908946616195983591166508109266722190354773605993793279158661323183055471647984253748824815253846184254378987842453044740599226765378042936560047023409742493502033404777475462582482610046393755892279029289127743694476157889890132600117778357585063507476274416946348933724678790700574526924011148352896305202519225421015753848266722696478555276620365811339771429239324977664508137565768862464949002665634955059118849449273411391022246257338261266320873079614069790317879935389282238086027449142572084145924740252296413264809826701321186529697374521192073933803306522184297292598729571386060115156617574801633569817826626102958691346091884540126029965398079850546274821257623121458019702879366699926047358346204362122143626977791459805056135844657780070373377551363058852764548223861347880285881613409880497587350576826444296067518118369268254333480384550581205797633656538587722938546040078554739459933746943389063834580025359300811928612759353197829418508136369778712759284316982793864807787820304757761273300756065287677719702216635123744126106056467339442521505012645231281407689190230085678065230785102864926812389014663167208327852075959333060660420600724404767111188515079136654000241970495567289245643418392995627285584183295460300287896975185132970068030744565802853268819112484183951024142589797124373654054060344671775193177453589535063961157792791510186515906367081533564605132201708673141929234912497406962966565831752380270155608296404935548252158203248599998379737483043938873507224422519831264261315680961098223271856505217623020463728714738507278370776747696005361823188065694829417099104603193939493004920383436040727134298239891288363667176556823152274586762275240562432632300405427329250840138597354820085799076050619356965806183247536802446376514415944824727885565003400486700865532851116713611989347187178186753516162634129344832713664558385476112157676435512787938463017318751549461328430218852611652586531248308492913939609866334954730759683297022081514689934894546454749652004712260798361628473530998799963070692432374941040543473650490570527737780749992479763551426581100935710868148278889569665477572921331184198196463667460296014951930826843314681819207652222754601159779554129719907496711927842192349084039937684979890601767057989465528600198973252506431316658840428304396649033951092185394601959703433637889471054417327193836804920693129338971125433020182567652359841394304686775664680161006937362386522841738357049808010078616751257492035713127397089908260692972856724876944377467804144906383072141526633858821714576930084562179203884419381425990852557487776392469115575788306025729555459019292834402944671095606258392036973552740173819699938022649250860650926770097679390406186059541143012216850819715475707047422014176584686428271946090147439165866178365739104622505343431236288099561432038054836701648940228968740131290884889134725101178941880493179404650570969888584345216681139087626168083931572721321220729887294109508919471544581929827506948049413915838692169407467603100867585856718803568860276801079852663466859063963045232305795919246858505146719471931800772328839291333607002604501428285889023176081519181466104624684003218180700433387406625154628640876502026507751452674673368268215614847371207069944792660596135269458447006125526178993325633867095938790185664694231563302524926001663938841776973822635208750499593478333932499048478404208390897721224626698535179987336662830507170694425637120046528068399218111912813384177970582564296909619310410683481567939041871418391798826992909135124284300903300426388043046931949834185708553800403841133635224823359530380781883123326333591815459672913635400828094701802684939495372312598481515565050027234182146364624379541716140615946539716695445287820422771335922938707705650049021165827345735040810418608469125288612332834579185968070535568509664620141322376290356997089943388105987982790069121080716116771213470701897709994319649444663462028824226045702301036821350761972710432438411455997791460661102862839000211620989745559202984935847548320155048613677876442829661555449900421388513774029288388785677657486890962133035389290301641322756198342129058778938117617531797141288963863243792204749528695534489592481738681732176426453948566245329341425654962222820481197231894201310006201048520917981104521856436298524771724437508290700315542029933961678334903721486463508789857393304663759810581322682301532361801911447244299941260216111495389930218325377392384874257523553423129683395451106258228745709474914111431746224324861812914504091634978007053033375100884526221541058612292455308726720882506234938379711807735131607394980192055939922720223991327976836040675799890162914667085311472659326554187393125876434754237228171890173746066633026614554127487950825677119027009290460550128382582484020197113648157965488844962734716038722135227999315721111923529608672199061674676827790362927148137884915905366351333366790667535870913177517801913469773157465230289008391246925795395905323160354237021431527534216071360118892454534918794932518655939628255769245158867574345238111157630663840600868334078700821835583636618121270111078631119782792903590084076941011361439507414343480872289503602764033556866484830687808127771891865798388591718972390966481728281404017468839905321021097723978101379696232142684267031208215398355159685463231177344871222030878886366698310076382606995592068690221429680898164517334616873061944755255146917886877632733711356395649565319651201832142251217671283251052311320373965262822420784339109009891987702646385779897488178942401887338034696025968524123970255524951259609256325942838263373783719574568462392944764581717385835199058170597382306454077777482154677412169349533767326041957847162429214690092396846316115560226357168120419256295304674446776062117239488831229440500880821430719391019188364411266006253005821880513779358451805443216995021018483659162835679800602544313029821251383075803782022232078902481872909830796743593040694798466713585249307788297335396518347656239719165220548545281424633780850108494261670105680484493251208399769787475206508593425230326028551306474161549104909638389082017425933028589413288130802481619856267334388300896297758566803706557717515602407850026963003812281020333922072369177844176345848210039912218569776348709709048056740627082767400307901129591914935849508026609911743447368160678517745561680027329351420380660180179019523362035990204321198445649033115339978430043858108129639734345904697320641493801702524420394914897890833045979887957209276399219357108266403108134196259439504741771613903657057252308384939394128031562839288612765084532087505269714499286077142906321240866187978531011021994400146047436937887748331885825846166461271187389380675125859191021301406056571430678770451216695936780570539123694576516569513625115689157660868475130841101324571008409475834744111664723405719227920022774763166708860558778516342203891323308974461019558039356449225358762582947769767074660835691292037096124563308345462894785241895218148746286367709699247572492725623720305698885951258817497651758716429267136010813126138608824297341394881143575589574975813693184619232638395568212839225459935936311431016306968752989337772577308551137697320187298081326382694293400190502966039601106987054103668333821723740329350014659166829930653172727833165956780710674313876935455841776546699230407109238646298957637040438719544937222512222790390316828610434736036507752999885587050780229023511114589699641957237725565354501950420709921041031316666728067237514991600977933128442523182442858866215744188825732046673963487388824045891393905775013614516007174664313268387171957261324208291258132995751276433113474917326197427630601910662481311849430942384506229513093486755253055500332707076590585673863914511464327430183636606878182012488903943405478334106145179526494989221061247444144998461975053633927764954234309821849709536483690478814697833148671830578348566444918849956112125831596635771864949174905114230857445678907704765273740743913066393484192045174902876632199688113735714584365881222628056828601832751225369419307965310005034133318614850830865938033560724419975690353585604855446046459496906522892216314079201368808044949412784275875705385006915267407066236716107317114686229605563834207031378470249705683568726633419768343262373708324841249171647749860729221110240227365635496800489601463724670927878193889395599647167274705297113945389200558767595619892916261436425630725453428199360405099396486113123229645662312161942157393318638066365744395637203895195533927916516507198937834831747963129889005144086599299856552626445831537293355794138334246797746203257292258865229823294408004981389627650141686220312162608232226770309364953112596932955295165927036239851189579489847461108250011337217115045077667499560636750191966099514189916802415287912687517949702838643312783310294522213343803654077477868391725547647201113586043056890668287507963430101233786711120969020107584412590628298977800576752400447379304523229609387537886562661607994670756370088212199844436601724168100565287492010036683216998110890181323164159356853089885023546114117483892386822119055064520599240460523689300340273046507030746782865590109012670117035969364261982167002626985824888401444977453343196596923937636914433094445641959141337780788891506337563594961221531612665088891538731241594532213772528744843282604468925758983358348595431136396702696322223556194145662206325712209937519392244855162617403710559955400518276900712428466789970058930148576610234096936026806357576573186528006936523716152429853807678057509226511652144056621699452220474613786837062529714010966571624732530163625213770106190013731379764166129488385554763075713121464825805515797164895775194392968629049999524938164880961043929483326230567648912572093767792369740849262459451989684674728625533714422773420352075403024475514332796485150779949596353172942880098036443593181098230372084812061303974111441824156760985425340169710124172538026961427607695443027419387682221149993083608104859561602628390492074351233708230418509769478773283940407624627805542359578267741685940311758048406658826140018715197828423166452008432820917855270608335278684612651902577421738666219793827305672292898409179353864785134573987394700389315251611079691192645927009044207167608899423532631415041341597147760493728066106223948524669795459140816495531357732614474186508422017704287257575682544810572923581486258448026465888263093395991940838816340884927356063012970148194836298783088028954333398868938311489807051130727808330379683158353338351961225086574705753645758453563102783983446085328624321415137561714049955946984669530784778359251213231629433369736560492002610279387200800379424450881110866733919381305684833185674943484686671157865913549081479681119757159318761333123169405266407851807491293900867581171088501738040870423543112023296330672787449870667405804682612089812751986011804410511408258271635822720737505004537559576585615837531897253961042537276568248840938078883087687930741358539153146718438200467609030647448933513704121917978465010832326713794139730890236967881335044961395580913939653678025345811281123463642468722375048403635893381908171550018516222588596982242585862494280807071550682664573202714587191071139388429730077336734652052373645565081342964551545569319466984591474454331052556802869958914548012073915615367755749057981219740981015154322450072302403573473455763989337352896678980539227480791646232556106479325999567226198235442725502827150799865312047144339434339083595600615358912015687920975888265675999826252819131347329672174097274795987699204568659231456602562242799117712769600119078833149827972964054631852372558696589976062075589544406978603789529600170633989063970457314094418061336121900895236013743846518139548387567942374132524609371113027562327056968131288043500710230810620198281445889207213081743142973992801296447102463987159138047663005217206101136443970196652009401259062929661694385417548600007601799263167465504878724711456896499333471028678351259827935808693289101577315721302063267435417742377160040529704313322340255944455531080391505526419015902402894337768640872831366341306907614643109974458627317745763375620394181603831409714097852443606058830007260039226684601001099016924022440716918332716459409319155774277006236529207138224654626220354461967457040590742170338988668681297168331795318178035870153938406284576485501202564684234741420085191581862998007697572752222550053711859631939426322627524294405909793299448204568419414616549477128031039546830172893570476744085922402243608613601143090141336679479337998207182105601704032281000560757911513147959441778239531579940540679268424692479185811500152808725498504054278623419385434419708577908172989462132894869933693899146449138482636135799760688423160253331393237944607163116991639239390979083616806748059204426376631007777674834675970365550403383175741330412562146872025968524906898682023652343314596387151277018360354636271459899990462647525340961285198167793624208055096180344314128967072745387766117073097480671815309050273608305809731271846591200442284870028659599069093020027635737002569424571989117129138692171201676312248625009422654494841820684443039612835834663115779376340044731564675513198318004511328104157963869530735917542187937604441458059537100736103264965905840995734602847501728580056240173846047474403507422842443473463018685604369339026690981590426379380844061773219791236575201111148654461926226354570695111443453088294491844651653991832019658736280258518745108432153008941152057167666791158415550281688931646216602267434690731973386936981870826672256117228153046600774596418821408250416465125754813101834945536304664024985027093415502208522916342467223053191194573549209866213246562107883921877987807204617093692823600134067560969199323224419896799179021295614739247232235489419572484210369010109599136924120497717393425961161452411098737363857841978342067935871099037820189021546730798780814860606791299886746021889836000610205885286189977967801884333484176935827846951899060132410087229618822195036212400867425576697233305351089141618363146936291883223978094304416071901620457899922507874931379119095624324872445133667701069095718366396314752458317150296895191100746133069374559018545222667289897618459633636852628623386735573993599513200676415487001670238661181991714780225745967577517342339072540178746095913116069544822627610059916175015748763001092082037826832642632619419435459183706887329742089423545497605980653089328970602522636485375911146490095104217977782707215534198796093340636308139851869349091278540564370464108209786188172687292201568904010048286811803849263614410873521239227470464809459949293046256160935148435577222232598701491252013112822879132813077065726417326463803607906504128906372109648245547275576539438185349690774304648217547806761635298329792093592916308548425528381475658475869374908376455591291458116891234176983802813622243794808884769932044384348275534305752779937868316215376911181192489799892210134611206614014620112864788918586530177339699889891756854675330560489359226166586061471910419672149190024875600441639010678472900657579438813356700117194597570513268312865543517134663706905459749802108713067112943030700330905247612890696629399063038257501844917190342339818171940223065427102236086542950408945729885550892709599317012523843622242310294839094093422270122759204156558530255845985045009360209868616880719724430495519147585223449241743688790858406765781786581779372916844559723150896726215657165384348406643552000199611428224781215166111515176205611168192342067359446261018248519441260192479010167123933187458258823999481810393009296516048932137097146913485763789925754802874721547058594688686910348696445188613992920854293601125125525601411016316609277608160878977988501993589208785174238997875392208258583714928626219301318392632690583878302010971197998683279465907250587767725578339495149994043312678469415939121873815221708958108829576033240360302313440396206227630099912958972366096965953896088103954831946234409048466772515525829103370476901198554832868271598875610577255569815665516073088984349098313748487119895974767040923669574713091561423804952737414395906497257981123176281187823177290064563558967180161934098206934232498810869761025396053381794997242154494011786197550616560241850694960711715375749163698410725202336745013897795949310852963589825976834870146736757671955102742860881723690683399276741395821346665570795605987170953976593646223962590216841897707175496252892564765700730158824956515497954161627048073515186544078965950690897691254613931145074186865875167501127008275445054910021496796010567065512857185607641644644187985389321078916339297254682246194111653798602733389420189336938863152812204270996865728723781090590144750451568302487290929433211333517408164149989489715797602360600561451203534030155409036337351951053203311164082669590693034733541354330508467683512590872797755793235915607234775197113478178937580156475599486780167050232630015258163663972336740582286604107476487244303869076861542942528338718655800008115117527173887821252993194994442816736692449425888056274461417329333929253007990507008290959414356923310018621604512567724416546848119398851130095530847147295533127769801936475585514077273138822993931398232459520497968580134310873341752265091651521801073641381660876522582747986946859318084947794530068512952676520838922814076282392392541903175170692084733600305417428092413257052233993518126650985328386834309669900052677338669573444097410536746360158553447085210274486605034200912669240356948860911894747121300647791235862865632612461755237590946018779051510808044915824408223071724756782373160174892449525688883789022824022339385256336837397243602624577613184024149836293664883057048101395059099712746077247733434415767779356260199734897898161842194800803549595763308718295352744573879899549283448148813145252500175076624075484720627884119244427355977158327249638743184265030766797109383262288469373686330713558654047212617629388391479129021350532801730906800675976326715835431884197374219219950766640740346248875980517951446364345351721020115080773900848247709678636972635808706072033464179231283933606369110535872371568561685260862374806889627051767132076314521906729147742563087865402681202452062777247900130261480990659138437918207123312257077213957958260995067632397868006725082465411576513383938332594995851150463213379458375076426134583144949433211486028392114089480571170195799767967138797285775369117854393346735640846708627873954787838316436104337626638893694993066574366138471389604112845278419127777944659076622764770229334861686092048536521447517900938736631049596678521135518667444892717094216751809480060196879129181233963693973655550457941800882300503296352885534082210965104049620218292413929108642021811902719777725906686895655101964649393042502185479450385002268787495260947042387225090645380705924839912060016876120652394830471638289377902216328314932347442092746272151460542635634722600332474344863027080409235552544958969759838393234180081407079206140385377463535488195534767689522036272164026637762988454951016594384327394760242033386413075731505338116497813427464496733739121542481464482131288246150273937628863345524590496038355560931302987392988846843335723720278146715920643813485426937063493498491872977978741795763202263630953036319157782612857006651114543002677542157378348701395741879214458817901439282625472247529881954710309431865445608683098780437925277109301497320329265112357287484720140098092463013672529687944222395841207825707722051321933392711325909146248872627879188270200850803422157516715754759438607249224896628212520577767096328472897530703805464164623664889282973518260172804245819517726173704009066355336814143821745561327229516428610145982475570162883319638080981668815562656079480344897916378138932702789685662662168832143259334150605406613002867514728815602677896470560708488020810137863177360057139855227999551542116773562354303242458289355496080014044067863341182034296278796169975973540407269185945140970768185573723880119370384604800703968271315977822447330765501245832748816571428869532815254985472206667992665104613762485150382819757807624459191232812312872842472555405330400148036724071266037083823560980810107868660914702814575931798309479473281598623373457571415072219095547408768974454914141446058228454709264866290136772840621053885776179448344980927459851264305334305255400155972364134240120406999319407974593857194903035184342537399623348638765203246487106790256222872546825986592721762169099544426119513413162683933315349947377424416002148924777100060083234194026234284524187206928698534802332046554383762852195382101500885117169952281409960849947216053779518047112288499745199619996705410163907225646113239746822658977646402132764499152749266718217760040009235331176975701667805951111389271761231627955627467502012671749462122056879182850786142715466462692458753601181659642566206792013637985648072447533252521261526193213952063860074112849784538449546616236149352650021512549671174320028570155849833919403604125972319916885975761546072941455948063530754608652033107859999786077421036224464622605299602601516141649269005709624944719827275633740625630109206006947989225491587082748495383401737291316583956717819860768284820748486036993391678519971390473165713128453701568874028732170985136418904432807173852512099636589592050051465211754439140511664489765845372940822818048697625049451762510361208858476952495882839730386340639169733790078285687470290059453635128161418074890081455300617005877668977213367461805772013755477617990295142296131206274569754882143759755424809276687110521999607808377763008064653930206090405151924855132379873363731520090788796875476864877288786902956669146112971899106831247318073509420425496463068261761573380094516338393429120158978010957773842290762389574041866800284526501234267913556049894990349261252487153992171356290834304760656836639057363496438581278440247873710075494873534644630333009208397752373066285098267669351837167307677425116572533022483894948418926941161374800358892824122226989197325800897968864357225507045427559756113743031284572342735030393498742799617970098387583278697798651904987848005134703122898388327481195385362036297756537900127943977107566770285992668523219343162164921661642854725998338363816166767626101043360858308976553213822136093573042593104656993149282733684747095170730390131733107455097245327761154060036873489067443461945469796824789960456356869882000207846842008351132210130803074090750694690164592761761225293176018098941391022049480409179110065165850769166690189943781688075764637134421990344101775893637242302691014565509641334331998559255029836407669874064522690732820030747266552359399699915624175688248883229327227042558922715971960807939138072666295716153431057932185833901869814791097590345739447425216151277911810273098292268877290462120856590770364551101849539673259718139870087701030240960284511099405833571468448303290805746818498361067386226519806154322724117154026934574177718273812302958394903817345042251562072360719785278942370375380025895246451916108996177418602956393105804856245129739281129965926981383565104489409090878138013883559237011048952854352175248700117951687745438667590027825471114111072390863158080623482858122407307452008180391086625541273908948712391448493256646543950039021607984421026538133206246356590865380243186102405025283435587557331851557098046288155884835156621769777702986335838629661952335426017374265657090807038894948494496072635582534169328463466365805026437227347339563321391338845471119124503563423620263690403519853469780521466612074801471646991999673339626637535152309095334377186395935825912491004163852906596127034718750437609129029988623483274257908361451231062572131706310868706365704603008489306733078722508212726497735703790529642783353681022531628021049844279798373780317929612791774004023275308319715498799922955764700642014060803010545327638252009631786538536701505948097857594305392997922375929546959563192857171530604111369578620591809427957821995312208176458731216845398824577500620459845375873752188862531471277768348833894475382583856786221561895922627073197989980090577800309185499418315797107403699442102488463821102848191695910266641640042413008524818977495928573552757590706537179073652454710751201329023908363325901288901549605379686201590607869613876041989719707495327816400990550243603227854779130560613277297990734812563853777859319969908633779823652163134966455754180377406492772415012406753158008910820812482254052243743010129313269912479597399921079472373077768581835650576281416985914668245521490899915162003031318063682111039726433759323086353725251646079336132932243398478087979269448560456166033895820252481647269934711986809950025906626459072013648610333318592744777573347009611633136494063812469708389743048769014083929501422522680359891805125011278142400961179651218806863433354676220288428337134471757724510399722659663404693050839292842458016025506741512149705643351425582855063094207475095844995673478981516567694713403288077368990139016526711447024365439105353587882894121633264442332680907006223155347307072436733536016774760996086924636567235954642045023510949107408724544254357481949974066954715294281053401690819874269486723900396953231045726356447397688051440566164639926870573065417171059908583700597245025773114803246256212229454652880233175996871380389871916359539579879918587361646208660600508099849241151706974956232982413801214665501304973589589753213454205520042476653780584556263955698888547178785024364992802725315288645764290534226518025480821574007115305540362670508909258329466492511690400867831617160622563174924788406955027650765176668423328230063696661186565319939568208914945332209203912552403964215645367246957910229375750139043714488920816465814134506814381020423408829847643334026459630667429929506584250029480816428714705376235679807341114473244920507111092693005460922927636479392710824706508523941244209011031471440363196603694888938972777566778443988118812053956799351249356310490718249023180031264958391858898694288812673235526237925262562488575218344715822383617049612907763642502339415776974721125718957333974039465047401323214061316725190421669507625395669664567912842893905355675974281020763038360584369757096154741416780711264160092628751203566014797432114667564135649456180306391181948423792675626973395726070485606899707016555217684545663941734145750892296824068337393853615596453095117092099040781918645880758621650881710168271879827164830520287140858827299262388894175545598974306997884158269086460875655464975731272687853412671952748250330925373232334519989470845781011334454100892721157992664501134932457163754275882156666584348068774187359033895143963109086389390907160214354318460552792139813143887486935133770228999900690167089482828322786419433949807574645349256378544590445129104478828809883164823305658054499579401821018237651023818576748933959993603684790926207315071742763891146930606936697577744454227873772163019960298257326965303819190948335129693054927502811209857280748849823239777179850662924404061447349167140215590932035582386237808076946897291203813555199429283301377045810244535538611613387917316846463298013306345907952685939343454002071012555712383020349166205012640172129196183702936706185405345247142072811564079950653502669594748299454888479213961402212765326457659822185504252514540320159400937765855565037064781577490251419243566875649095702601270377549625393807310089828295031434145242706906163453518387218738187684928883053749530869731961710768104926529706596422363728571091584815726001269127628093201205325983206874212719584385968455943449142526135019569880473666401350956915919535488483142920037317995744231166778857270471302657580904235998498610502197676306442886261804506976786731104141083174174206825927319223229213017244694870260444700835298062563926920046761476596107971683581573711485708407394608339261530926035490324852513696947805847909747006773329321685634162833370759537978250979773384598795197144250833468203831962880340206246310214229700017066278480795793613450548444277626590626131319889572662037599726554507592927202159303264393012817764062049405088031599023799649906639281294799517056536688707003854001074046030339050028534098309199738118734771840348880695619931020989983277098182823136429640120696348919370298172184236509898584426000333474028049540732783686334846979332248519160724876410189328887747100813133035809976968029943588083640844812878229137682698940242690251286288119392448984597266504515153815094666422082778566620559129867598913204064088215699736553520371978059798041813411069177362005484291465262731810956352004284371514278285788780220492215682217294629579727013086712609120421178113235538033492531003532236389737026481192328753162942973604330584637681089350741299879062908904793261283080280168859211296984124451292098244985122540146943377677521066644174305518807193953306261951844766831218474292970221970544108513146352571212325602267470673696919946167964977154109059497280869614912623636353115307895631919030856283598248680319720974174466190344043847555162299619132284781057291584858336700172065802437702683422596684641363844396842361238778610178363926296654868970043019708856635672874815722427587935632230708537978509886002776762928001072373400919675615387415409080848821295194594183281474781448866503177752668971155966824056383386228981325157480889420193770149904148933361756583446834663595602518709084534635459161763615788930715981290019352873456383547217586415647284689625779545384753551131416261968670005134930694372200958219681825172474477456073923837164007153993425728443714737982546964249798535875691193989843841163411794922098206923859712743223009935998093911638080232978251684925397894480541470315717622256498002490843326807621719985758995919892052102148265257229008948037549909541264464401554807301015790111183980678651785389368638877173137026225573763639080027629230579087816392722869864281836669279455135631950793682547922666732807232457607859267551678845069084530112160433758812727167183995848007546694685603459009314744875391188018744511643297137615106703978042260766478426661831879170895051481182995453434356007407419305026887183988093122502546133918009981634875151310233915519250204434120476150850822559453798523164475902284309064504309536001470108517526676762638617270045563525079256980985167096494790776237941712385366190185794463750556949224490063317598865456996744866297806178958268809747567645449422206344702450067922300863739712981433505148363305001211493801919524513883277941601257495653058687366440329096062339811735985549522578095158463747378538491585695819870983869427491775699629921205185630447184609100104163350545762942986139880459520018168844648148133699470797679768195604896449033299754807065542269033979022633141278456956087024805537419631038647135621626869796919800057356404216795120010811230911679945405518982367278853735153155936342401460399154425221847891022426072371527206321134454413751805289395102208599524905669934674344198988835898511395095845565259171566840654205845051172009149325973643416758289892032097982961791844877634101905912646506472205619422453975829859903347353255629667587330895395460286100501499540095840918216648109015665284163159780310747030579598808668385442915088335957481132280573700210590694850404161483614956918911850924945267154939560874162440148922350997826808656144916880994171949067857585559919333428259464942025046946980076227938070249350118299664809770856539267653106024203487878236291311651159889318618640541752515852729159627720713615879346163822755927341130516020317148409890053585839924888850252440417886881131170388542497171323029290205047855730604043732489384165114691512310082050696575772427673746897606185834281412922774313286523996767404152391438849810345324537943464878148310105683216570075865863451686659630927045551071510809717832315653068880156818786100729716157196464571330325787095201217587133171303915414834580958186652067482406727695410069691295935590881589043410618836772188709850825288559643123114135221312529883415882943418414446796989313612439245261479235703729050237907460208169685745182182848686589574941643726173382026551546703977493602924994694196625911726186379903613065148815292417924523691318285076935252356984140303238676314742084578173547496557829005226172808060186823134667051400408427710201295931054571377754831960481576277365634297879959684334238991164971797127232900929310694660580907376659287910320345958089434107034992503341679980786038484422794748333430387729677920575450832081574884333466060256451440102405774960269869637042058115638430906202312832442639572948600074666928257694977808067333588038574195926551535387794744222142749521583072518644098160314802816908656674051421801485666714817373909806482347396322543925991419085253010045230577487605831093842545193176619421494620337701064812650772649361436084041594116550179380179528152955337644481670587307984700725059573480628341683471306778753331600902378187883201687541875545913769008458870752914055903597219429547118394691462595253055271392055086055679518595192456755147526553868071875044217250060404358839146682162030114488005640438832392362065241235020461976872497957062439067802543089662954590103620226323280503576298393810029619351335684695399173810741588622708986012098111830850801289643012043425292609424895226093774326754250885972898558813843958030618060123977622147456659638462950873812879752586871059681864961907220039076601715904477862140694358319290792053597069836677621927823657307737675806767463283520985703867917631732722099520367229353665654076051752067398245142505526165228262493660077042982358151984028209904769407196193700515233167189845591065391353529668813432891959215521637313528510574300773970478856085277341124383644172550051699096197535022491916825418193462502374159619546218882080131656655781227529285530917634095398946405471548511683213863592224900874225721110016044785122924724084967021444933667047761310415110698830966732062873980817619392073699690501725590058541087621417199339050829231932442328562580291097369933113286770337649758171532539530883953901152360024004641535884947261164016878516938484565883467659590267210832884361637132913339693360831275994320998251345929507950178604669783824612757473552571549433279118050251779830620242399350210974008213152632639096119942992968076419679446812821945661973958132065283600092366504815649552870393975605265235066622182670733632977954450663344303253927195739626388478098069642332263349143082792129125234761900878321934741364324528668436511592955909284380496842659745344717951743098211274686987135083335952273833133684720562483923848830779083481642682521628636317056402295673354883684048130819231713115303723708997547551604465892957930647266818033285709807356745500655106169382619037350328940805303120180085121755106092611097886384402476886058970239231146588607897753423899381749343488065055979884479845203436848082144581681717229997854630174147744570132538180415106137726478802216938254546852724024450236309438958025165793956972126446023979774357860927992012003976615689392894484260190457521442874539992582131408505954336704862058584754339536842814169042438506968298579364429842755474865892212020512238946647418428862505685138868984159102893790414624954729523299592315825440300582491639558946267028413089938593125206436243899594179864431604016619464599377429609979499550589213430604248335078084970148873222694658029817881187016383820868028175995930759738020832638016318012493755887263064883375002317865634656417526507333098136773581216732761689553161798973101250464687456642381671799331114910867217954790203005127351997069954592367530494094841773107858425319759109396986480620581548221531634507286815184987362592954507014386682954338872739695832689361135169103419824193598782486102720935489187921778181588459250282915357392559154656942368903591569627966093638968122026615965029117149252324807929463685802468679108036665218657365803846928210703462647844623396264917771598394007253408670523537701122882893388252066428253515766264812797676708455807024882691319366299728013104948256823503781018485291607867674858113377342167879544481889231198429118440628420740586364880910079593789473226833289559615456428539512409850101963508194108207063901121879377933348332173768680025779989072896762437379925508970723508915994974827118329045982433934243191705587319233549561165053002766514765745313985248093537023206125824607743115385029834755275755161573550728837151139635886067678862114719537634717290359328138812619204748756647607304348957166479329244441592610552695944345808198146644378354090684089070891770162018216409321643341947654251510867497189452028567288601205177654084992341403865005108500975084807823112616397685137634042834645677920844499784121789422323572247433872070874182513495540617297199228780391883814528294443406012085707864869550401735888216893842466190413577969558641493233664637342204730242515320119436945443437355020653397203704534267779636895262575296749320448845380787620614988158925602632021948241655450071381081835069134912144013637837059503530786567883564565874518142528828204198494936323096096069957722467757753851754307371809713889254254075099499042707150812593097318975358234630487470244067587945253925880184472876707049622418352548621643214097589838209029293456141812946371496886227649639382497355131036362757625143922744629527897597396672216732984864826338601539182499501600177879149456999225770894515290675615636884055324616986273758644299541000512559345564414706888260102804059472308388355735201072279486042918401058632736862530174677044743619193343753873565036284256855748949830363608597251820487103520332035292749735100829151785537676346668257992891169885501576143949056266562917362777021421943277720958692029253121490229700066401511083056108354703332767692420022027932215084969359441089690151132838574738548189190417854353304125508809155446152403128565956180547674934753481458939529097536745490834371158313857520065828574468891108181618943570801787349474685854532481369880730071267275133495506309507795692888788145419932643573861764795266682058747277683133000029886958911068106234436714762197715560990195532908072837898228923150235069298193742784042782216565715160811473161878077480757871683471353653501546522739192292606752065954970379588800623483341045189176703892646725688239887925935095918024842166752466592570831021368420375717479834307265975247736992264415686011189578472619503526546230892664571478204736846245845277059955915415766294160903854809991417958766788072916045693114302615207033522194912423987079037614420634982834828609367652711971439344532968395632816434108554363263546193292309501496219063979682210752612023033426534658097746588155375634866560802551933392188223228832907870550137966082213396634976478253346618538097326079048178257982468143916848060562749484360654576037867415375034039827019344660974797050632351815384140853537987383244347168184110004511787484959544821907551138910879060780441768599028004996684058055781201432795310143180730195053228969072572433749236820417663816611776996726664741958682236135526790529203978906066858149700551270721996952296395758167382865791734426394446909153928122047242601159535467457871545927441395292176555334538377473976975272298209893139891423566432997855743645269593438804780773869971573645315931090287337858421728910672500605013485562609666163802589292976874442603221764710153301119434354361836179799130751800556012606437780019969388758888940903624124151021013037241023022757839167977380683411740564263961584820750218343924057488339374232089174725914360088528227491158214258908787912495451688330248043750105602423774675862427641935666187630691893213290321025935441405843822324836967250453755185217272730812513072308452698861110650975186137717583009415649069384699414666436444736030828636412284532759300087181152166150802593612473810647323797426205792743476375639861465220621358614276685352745877178080409326457537918887082487133190048543623589400574228613745686893168786701296940679404783216410846347873683440947801127033458159869032037405559208860887230642112454129034188193508222092614887159321763075952337298872944034032612138176886562808413415299417205644805913213545389463513436861328040345264461799109867073635165973080386561097314139511390241266346293838166002484396730618898514105299325460438047431565060543137792645204138891007270288279077544918648112127352592133895235171912396983662471172802617049464105788170351884380394643294642835761929955079771552156706919250258406358653205680011179894560349390833312129716394624277897188139243919901834917989717863600845702126553780745522382740239819498068935938386860388685314286051749498557273817725546631171903365663882861748001496789945237886022011279045113407902567919410216305447625742058585776215865972900888241256980840808685252630593170347205381118214962074411899992896752928800318892541047148434385036678464639849480305757829868110202516673609368096224220581228165287357417180460523128644266824483170627694476659892580487077903830380862540971103370722940626814061719098638655154168174563850654596939011735921167104821544349743149024643817274926073657656154646092967882366655736196464690098907763537808745400554393092503796666385437915134303958527028802870052160670788069599653193813261927521117881528006731846849432736467012409499459408456454777984003498648529157138499399060945860675294913368893667916301459795162784959914009738240707526492308888634515713190557927487499883514159851841872671951085270425069220903104861567312599350717936376619452087908975012108404393614882084868919109838781886767383836260735902600662830366604670104961087550501565880016388640645399056559809036062564895803848965111746355205162484051425845832931745366414939355240730853156899588042650669405022120643024686884356119776300361745448288030050201376882241331292411433700801471360030343816267333049365366828393614785334049013378429941740020084181873867887604491660474573922181638291560816172006978883489729099283280778521859789778911602712476731551133367321014209790392130881763794634355985471422826501915911470041768846843933835463236988416354995987577668095608363493420560517470677528295561299636188143373324393137197068719985180731174419912933418710057815262914283917764173943426973518925626154523594486360195847407928165560772648291426430375296773036295529833767619237256908020590507249458952955741747086175453662888358988905284798244486673459984690629760163667721285041865182183828431749276612127027376366451259630924168162433423741292805162190669466485131504999144362011330483606627739687749009977357086233619929522435684078559869988607949141347406531378668633444086589733036464066724786374877592880691618313069978265068916803792479938307934266415321563895513438425674971993735798243494509590112544909403805382933986036085717614464901598563301146390009447297875986837546164430013602881960065792406661681988070529869854703690234799347286401583716697243316300632142569743324432083458505165878837092783302552751072368116290341797074454608191023387256236293957383589221263545763683364108071464047488474399820526658364867361196103544989421138755930443537809905612061149165978897849944649030149235009611803876067640594589520885149215067390640004046645938341671446646240234358803639220475657510853454376875041816071280793045215636137424783346048707039202245256894580116281434094101636004141706069930675326675199356098755494132067236460655326643425934899938766091593315887016834919341733005941149791036033982374214105519112442213708798175527892132333444577763736565090410381637143905304403576473738213880589843653885194912644521891057735385306690534515750502790602485630607300323546824376406405347147073822891781996676848484114819678549716196409641937093984575389595108087071076394719572801092977141434533283820109891225576851941399304106578726890364108437226585382760827762478078154936580172343243768843564554952614565401924108888421080648543652442005848094662507829094419400285500330211689357452532831256590684341855821571333668839955511041050925412599505059155926875446342414471207438136494426596085093129679121448667072929151570666913323247023365191919410688341767689434100401006968597911465254032091566204795869854777276379849880042996561791289301572976112764695635894295620314973861297666025573116879885130899500586587405770446354682698970103995816560113822494438327880359485908392976372635002900328731351009194836852615958347611466805031835942593446617910539764185311168439217018689530487495382485756261326861631272790305584850553795559044849279757928724033366378220256860837188826242379777481328875369348340912777626730169344702691630803346875229424809340342068613436726396429836230475321237675901088821567119005363561371729613413688957380107546931372460520576183023248298634615663669648453951260109849251682426850768335178565693892627223344241681184275468535038551180056638008512825632790373345953740037454073357211164173480039837456149541952993254581530622882782952628174237598973321933729058765538490766555359200832344699472524085439727538622010068374718391125838249779120171453483243829381745181133587930636155895791571500818586844370598042467090734196114801806460996058537751790391779029683971376065457521043038094615940562007425285313447812219929749693362066206768262543400253750851256351043150816014515766864472447609066685839349630757353360916928976972815238579943486969027253580782124121859326030435142765709842176344479410155653674714648257887795530398597203628915542545170105641440544342904694876700327118821912248397874487929302135030977436946971235891726671947834035966429043916218076080941451437468544878636102280471868140503960594187119151786348446039424222653069969837492119540308887516687770468947903069249175092613484227403392702110115134118024553411254055557181682800150941422375637466585190791480501838685677561996366674243034838910303404779940388076568720608044770399116820939458067775340123157527937567501910589051311866041391524200004746378531459389451990057246966093266360570063173946051636805309108090044212009376212659785795805686393426664665664168173894543383304867605159167919714856224045509693154677474575308359227379665543564992302796025541104798369235266756879851140768344359383256697461934215014640095597831289378449106742090270807824302357570896025088856105523618492161772174281554402860650896876024825567017238315443405312561140769776083195630242566165127380784935315684445400115884450158324022995954469270423388545294603292818734805257588760445282031282581681142196475895042927497570091322987705913164422863163666449343980612425570315179602574457299613167837868447528811625363351853721245914786496756134483296539517593189352320899445049495916267252156838375407843728201072624257345903221121718706630758644394011735214180154128664525073471310012606920278876623893080599592604027751440555758133750914583106984303675748989854651199300112723508249240685305293971221945781099768808061837469850760937085136303468723773534961796389101536805259028526439339872206188554082594035792518970429547577162411942194138696356335423849168351086180333950594418160981069247948551398031891424392734157795057805231737084686543336320964531600528187098220076260744380585734722012736901474687808545360001224355070472443851149843698160720416434622831188816033769718738303906171551944914928805854177788877045434904289211171412405358951217877930305373680919775763597836581623984495731212955181553842272230946164325920866313054254755239663958095480726636405494783665275308962656844911804268737612884431246147748075089389224194318951871890395209846314629341510143660902908784439596017320568567496952457845600579950435098840871028382003362008556411521174636464329069798031436089450814086905172252602541635394430621062566771128415440003200917317191605533043543880370072085483676883759367337740322556799839194319391297147372052019371351871502645264520875572035958384775986997405536852740776155484149060043112782373726574268164579472637732263802971193482681333601888816493396498981503178163181183162688918734398214007788008965405941920996573689842774510113030416582548066109896651896443952714890093658435022465920973558221624478567268853757979195989829941824358444953661669206604324213950216271027212406517621956855184237798099546210781571008617347682361483588084477623725662625819801616959779018724223433686020387770057987370602903740163732684621072556604868945424162712396001750936286355650653752775351983342184696277759924956816810231141472667444863663722851723926690750432680410188713578641257467417457402422505541756813762077540993951134642064425605609589706790430557228432941969905745544114383214128115216070972491917992506161884502238531798261095896649268541478395970675917581551351650374510112019862103908675537256708871792226275821088394639574682681838733012438482623292045748345118886541161041722512988247642781394256282330860680378325319250334204454273198403212758733442315739008773877284922452253393557031183549674151069987601078237608420251951386387073988383835254988194957883716718482816139212020863651217501477004976799783889794249313350245230057766195236519043114978491191841725653158587115544407152670531971197706498181129564824131873579551341194822934205620724682391532695474780725851815314395516990592595671705366394201028928276529516218346073939034490404768162307228062415729832076262991498897247428628369185707477548887216107793978332828794116903984347793709332124368904162238284821778995590928640630454013062912386031022890982706367072206634419950139840859011223981326373020546540452370792175633794127490300213513896008255448643350524737923175714338213937371360360114702797241249968774215928278206061888095424528055997962041285054127026847550721390399998859311466812959757170527688895073945717042110885698863880525862635549904181711424105773563578545086476145040577727955328710946932445065094113523888314169781608410760387446479665989936872419038121629565209405666554954406183149336618252366625010556945688698085668727926376907117073920207288923871129782172582455310063377370985273700592874383164580281106721749609599882449130171354177716672439937622906614068654174674782651396404439970026155950165534399661756757106186390642934814966490864340543313414260639432672687064497685622936578248197325153383999928651364316179862410433060046456295684157486693686220242893417449538066950249196991833155406404490812925660712787591625953603047874240759158076666827986718253432997968786469779368233724278117500534979307283792377070484159539534386475510750210589624618079127144007603026485554426936591163567026040996625640910476297708697291576803564059281490392965123111370370259315856822546749686751835802418376190747403283777346248748877105581869674899199109168918381457343138844427647098423505520567757461495925090876313143164677926698103285761035339303111486112582400875658654446047418679394676935334326105401217447274241462336420749179727458902149929485502554250389727763835652761569514301359277401177609479104957701998598893920195555149853024068806854895141737677158658583914774487698253644634949715675384834180377814707658966492197983475877352489874210993329337053498787675885084568266607089775830856561151943968717211421599809242313287210197851419978123519815339457255006144118501561193401095373212501095426078825089698663495669113812031573103587693373918296744056988982478269914516833342101926874696674411151089375839895794199903877081311369747114066537772417591852427530817778442252725539341438781968844798819784165438359557021261232579114341024730265136132358120498050076415939332773507145921339929138060433733509399082542937239964500962214614857030998300164723878862331841599902675465029377862802509399308088356374867373981439812943008198514621889056303430080871162175441998173566981333660605947893536548214978654956115766474182586991674304669445264290101205990371776948945962338464890848753042215214332840876009444433319303243284987478876798133500372399025697335607480303953608552036038722259309715086376290564443987184348572632091448238566647927822499663965352423775167417815443208543319129531469807660624269906749546681048865476503123805449851493205635232013086363972224241597697264922137790586198073665410757846552132513964262234155377780153255811064950501025286785489062594238653665574748303276653867172619499126943576305154726624725069852142854714295163208858673932049554805365106361715046655978840457256825349803280997765131822143335164699915455468758008457052674696118755028778659255373062973543612167623304816954433322694809703734236286300167248141464690736863268797417548744111134985828467548572428726925819481585628048278692994777364835311865873217676874755376033404633622550806735764523333068502511433049022701881595648103356518666181409845261103733423021438360606602032138983094171664046531360055266423352521154300738161770626964507195587438040584665980405458147081675178326146663296457847031437977393160758108515408991577350788457356387466309232204399196161157671992905708680337582230583451968467968968296342086811749591758603319592630498405143236371131426089107617839201806990680012200954511351325040011548850443501722840082523447426645580528499158223492112200922311109954923403520029517291165722964413081580375784605369602894564399720930050513171966039717420601740658842903115829602093575060526571104548449048944049161150798652374648506379651123062663482225301229265503411306334397472057333354919065142272048471917348920311350370093142376903024150280239775019410451091937522835107354853361368838382328218989145936553667327953377737909516863264970017118197401617735182882854334388106942068784371343413796793920220391678573028520617479204679719959737313619184122225055251150976032947920376374054784452493769707028264507036849691763383310678545666424620339985933815325282726382471201008280884498898036128827583886615830116999490660512782829646152648207080792932640310114500889836678103421115590271899703708331973308022387527955361064488680927818521675973242059349837143894343225005106727676975344129207953223574461211321097524262413598585553569778212901593647425735167239462454700185542733079948290195326638755093641930381920505899375332904509043122113047022507978974878164128945493833205701136953391512378866822624933660938439604317153961957272060888537899232564344441745352626348137596473052218459127894119111300234738153131956634776323541289853953042521807061253195872277600927731069249893747812922741104208853664496354315569729400078325452022389936882650521141133716524892011293597790835806120228786700655006922842390024697498704048167396769937779047782471567591208929012272164286131816729906467478889082749931940156318011806923240800927473576646271568077484638467223427850952679707642766151786597030339482544144355082535102385685283435698332205008777224825671619491719959324767100143421436296696325733271644891462491045250130105830614568907429804073294946234347679350229442237617364288715914984652643234437503390651379281419362895786261171676552710136489431084000741760069747669616961025462991469213896936633333523126055272374746486870100345331892778712303457755728781440909596347427262443956365645648449852297314077973433936312623216391662924467716566087856814918965030896020859465856816578102721271590903520398683926071887080872183403714268536157225289633274885847175121174826071622265785601866055410083232520289416332654634159541401900271377738115358383191355869629243538806962807098329996091743215589056394938542239417774557620406150792692251022084990849073851628595175891058061747306374159283465031776722577258054021432353249219306303972713197235031505647019993468092746009607813824671205284736529728359237224555287282309705991950322406014276990393361752691497808219054239762829952076830159083456678693056137143636980579658784209530950579627488711006315127198208473599352277215323801584141178667616183422616457154621748459261699924661937738052735548689041477455881463954941353799634297678977232331968034128147206401141969913003930087304464079871347271320989612103987806825636165785693900053815197605532418955751064379198509943322052120736919278737268347161526902905566168785911362016898776876255470530180647694198789198351919782163157664617067280379345647863018994253853056624673256689372991002358572104748080221423230528997394666520201086154278720637486322247236789930313507874138035716084165742627556880134887886113778343744917984441994139906604970151830466770001449025501680530855497301943943546816847667462747586254829972411469286124760073518545092717707047100431545269779362935824760573473270364127659126103998612299963498767749626967069786161411824368965021880565587851877892958997288996099807642237808570931561588958689073358607064702516215968783794589493666654757677799324111730478404984478622778430986911876311910400117872268527514778444091769382711804224904819130306248655535967241397448312285884916776559235686282505297580317235634750718911229629221751808063228327596467485297890335281045010525474128819941735106360876515474800440985477010404213303203372547824567560418789529109571948742577401854359322057581635073851702457600233345947050986946279446701162088932784179664447663456417360567252691988583092802463174732139847440146104607572987605384432489849047615509419913958325889960580850022305254443271864121173470249396026021673182853144155167908568883818295266411114514568025206547045534741113706120092019037010099340014717142880205345302373741313431871274872065379028387762034845417567872600915041221264652146492912868101854737285272803753057154260136856526199662620799972846751601759107055758611413010561274070130739606939062415120141352831979526213003730419272104214592018113872587842070764733250127267207137102437698775311903926236237716569702935031073590280724428947518177222050741603509766523166381249309444383030184625554806072140857910012420165313820085126696181783282714740210064987624901315669074284037923998110106712329757410717614246801990502445894985695985809120627777384216670101351702621444263444422435449898548934159895600430208932297650791483164105593783938530239710810768595194021109135312325413823717968888072476924650026924178013515093701783794349373675191957226448990550498716067803057871780047836819830595478710494642453357374249656839497791443863720217796835085549148361097745233441163829149179934652393611216686927014367714731268176305334362596848137666796288863207955398466366474727744368247027577769243997376091087191287363754799027943122674418200079636151364086765198094293566737375670529169681038337972216305834274641582349435981751368727473610239250390389162360740200957840673143635281467920039124961954823084892623282468558914896283508069159628854541050332823165693746499880377024706297723814382026840745762540872371197326317071285812335929665232997080846825809898029748495078222948393660051892882187643623060641307611942508553802295741234228450156492008791895350418029322937973795356392578333903968682445617229860226980347859332841911279983129270058066624803338850462620008662968022394846801595375877472719191980778332630291453635602902363153434167364444667461639167799832953690970509883546529668011535268951451384285543448339372732697599550641018669415467365586650783039069390377947536596804775723424929520222533642170678224348207852900295956894346378657208611159916626739590444801005812422055398661082848987597957420185536968974295833924108788023515524781538556832104419820248088254228176581786032848068944475084110549299049802039523761138275444200110419543964972450311192538676781449591062965389364846006518580845096456097010218329748346049226909137667747715838408423705962755307413494144792218270955969290208755841799591052492300242126351233762380169349805628843666810618191869900961897873969967832170355463784843409975152195787821551672607850110128808805102089466336285238242486577104063256036016075986635385969589004519317966197316492913736170992522450295885517503105107762440270063283871422787879142852201640988449296578227106909964109401836018240876524960690045652981963398005138657031934249653140302567491475691303643731147299400989116755961252239904988893323104659558658157219371175002415356087002713267082543472849158026814233386735088682917825211342198213331756580526871769735594485301976853845975928565259277643468750255169535424581771807848942851468462028173100559415445298640957192553762165867689768048222251363095658696041535683877863830080694282632687980084278022731351797612526521969456401128340644654398979342619582438495065110524102122981475173948284247032559329446828952329177601187970237256585739930818600570501445959169121204445605707639557019303687539513854423986605113357956371386186313566231018674134341231198082120167978665045831210974952083632262230244056793196151005662480339894469232280177602472214934466584767897543958228747369831256857395507504586722570803841026538458987884050896569461258039809441275904790451592267447448651278978124195526238900245947301014853870627693610895772230664170253771251321592326205938100777512436865915776984993659144219659707718664723400415900095534533661744642568244077622027489893664496116212168510926059508577563105789407663546060633014080032585759182270132635404829151158015194218013600141653577304314941248933645261938211069399093408886305812342595191048102935543882401825883393510197366934714494224241403388466288071981518453422927169701932061919391377981586685698954593653340802148329091540524279438372102326951029387660691941262006685082252560015284504744215500813373388783763394343943370241382180085532804969032350208574025419126831149256742823220551104918327453629819695604396269358457459834497833621952147619921564338234108322772191357459037958874615310785979462404683024229665449498253310828171792238937414373868939710854081849957939393718902623565498774116029843708917379773999870729526572820276711245124119493805906942088842965538280410710079341525170246524088960419702562445997932374349596815704480852252630160188449013041736419326509023840432596728621901900010671150630875785550721764440020834327793536816136274637965469368033164820113955651684236413864447793452765055261649722983417093953068566635127288012678357467915150260425818388358960173152562852659681829974139253347801246315345598843456101428863142627562641028002590638708488082188084468638290752409848449101115908023388761252871077513325794672039709632414884021875645900155401626861328985736187025862311471379132361642857641322690799951581046833372574910470338309106403619475474365970589579444384639957783859016666488256588245349915297975728396973011639079183463664020606883855481807401086950698555051892473569252699031785185206311872999786256997630194155517278887676182504962872645346950987477512769731690089295480013350319056566110521712136268481741642038435378042977849110292456614023034863970789907160152442142451031767265029467597360938830630682233280162636807776162496899436149584488251610822443161008497244375000001265505529058353332167352332223784120065922635315153497312345507583860746441368447635402085253371068289335150608965340601781972839413555059174723686464603657923292843828206026517035037607501284077540094975247423564396199392243661454182338904949918917019576215165741585457071818269909168423746084939668241253817872312251697458423530872295654019684549511884195428415862609435899382753462153448798570700507390537349625305626200101823962536203571430414798259298036212391465120619000122885069773317653081832617002178226131251124276104156986941610205509771976822843902437339519462846423761462077521605589300742847102692637655761492848351577945491710321738408016064796457750139749401597345556753751395546317564496472667312835324934753371618600743289322521630733051152549231061552006710555982892353917663399957948611042721556733529606204980810513030471843134452286486400750567678859937500434173718319151064586612431616163156470906378703480154545315575363042341225887266026727163103224225498581447548620744307423551159959821388185170817001200691574148554829604380692530188545618341507059222997317367000404689074313986964085463058856164573397055699137466932304513981654611774261390356336618131620580767655036513852039520670489906729693521132313566254771504818579865895623500425735164384388448383019725699400982144206518182821248088855424186420972305013593747709469560721122370191750027477400940842688754472084553087773155670838696058921922381704104569480633564634657830205406340336537285095633342727652085899788533099959302636093375141973844689486034044493060806558842066464550993902089784575203685151722105977556041097488356750438708402137552248693153357087160132791528290730575904273716275911596762081339586717575777588477447408377496144048482176140390184207820223585583025896486573857132736074974911016016781108860822473882230135525146468106580083837774526308153816848855832384447614952079054137495567998319841264084498037787738496036074972248814645939231138312511611434982412491776858758061850299742482688212297650700824886033133479010390321573515447757908057321096026294685288990774279689227075701458913719257206260664622120421095520181267832814753431133782705258729089249991994452058565451665219501531932506401025707296847963529043574806692643784726615260807838722185987056446861203118273660769269671898106494461243005989854589085143746689867930303996257702337109190943641200909368407458007182716531331242463739455287046173256599272911604124234782842127277492862879856049331127135490517694052480630977375601828864112854086472246638614264032559686962425154623899883292828785580587625862031600207235794006099734251992461429945308658458073278881443764226043737001270021713287956900429996507583469922034895911466806869549043752357182162518028224145663754242908450885776271089107357323260658537958080994926806838331094954090131214065003372041076561301985181668280480888100790236159685758252913828001898754686042700585942573036083669582717245684121640011991266073251729534169790173315509491819968008288325849431875676962721244349918448676918272310662126133269844794656086150751241918524119624626245628097967557038882151073755579041213228637486089325964615543155309339870842552853287000208013769539586698262497385635350308009976521158998272903016534424674546885008012696396727488256176784255728008781104314256933781191687658702822337611080898816491371542770286800841907221598558608905425332264639198389542829815807235557943216217263303178013412855428353844606873833838935434816765672640583594510468196908765185721366031186256957508726294378776013153151874121499191840166062290827561929222458707575162670147829409734091267953060647854915068897472177575539078812815634979350978047624908326969232992765120437908980682770896581501588492934445348388879131930551310202453659985932512216811695668036754734751477504718466407363057186240610401856517555603375581871169947821046337215661372438024300648714278841454580351897361909220015946340581689390618369314405387962607969060562146045769465754370016456708907201196201686113494222928262040108876202349181066532724934212871767641965168092276651246799968587150359699830461853179338727453668102716584585826153177541103255145518618847699558839452075022771727639740164675818629859207896334670201038822388168386188095823360265321192392567453991758425079027265964633690477896958738795841640834164467839895565493014606601220470754184272056536887806579388691626322591298649645603682412366336464311395479716651811999218087420966709148853061546029543232152180586002822121750848279595698474506387225223921140672181357554551981013076823222287605689215724931396048772660306435871852599356193189895058785464055646326657679335866077400139766206728742472010121546136959608560372781884847198309839463385526676850641597938130942665228839107291287879875702406193873050284258366425385670466695775732459255991632661766604255474165376258380384921979364380701638426413821149119666844766756824834868211358750860439468990888156035090920493624909149116209031870508438325544024891214948031082934307916701188570595569982453260685184239357761079422394292551163086948915748372177005263324035280803991896381366104437989122519611575231394400989226961311140733541085513255870712072802648411039505341138037113936160022959537017767760447468893071949603852032016728802877193861178251863410790912430188704341607064600337972152739115867687075789338070067186546721530618904979782171822134068973862284652879044367087279066353942144951640592405003622421547869371750846891528398092935538196269206796533517538171853427040880007199007354477942310370831431906652913280646782436038579010723820745442832970477808792229029584844678489045609833864324699624493805379947684509952965676391028295159489870197635803608731144825397852027622497866328215887435805322945073447227528912059888976596947041538993691487284882863819168522754011801639349269505383587296581167696956523712483925921814196970212732313263201044728353329263113222901121050292560100698919155455971946416379272959411803574355015685961359565265365135604066432844212728160632508620527560934154234043934024749762775743881268978491214544442295183940251723565659744762714132475175507192274764779523403859604768834610063450641869585844375236783501434657615963191041532040397936850285340008187589246870070635923713880543833805306946879186174614815005654478101158839271506472534156806081628085610986188565520224638862375693505898824193356103946179215798955676988702655208247441843020144793263367542015270515699311387819959499150140688196418050499756797452622733935664616338819244321401567545338876623260553143697856858059394282819252230616628476652280648028429563524262708218399597758952009270898379316951681252764739872664269739217350909736508879289386903583144094333447005987562854644105314306410926379736146546457312355361404806159325162952604663132560696273951825480266814183190626618050852727214918901792479752936543257078338148234979680806380851441017460218507077670854789038630380069966878812542325096704257861103235540131097276649170359611103875444299131359740216911265126595075464316128642889555330445132497396803387839629010303005061071469840707550356037640899470128956100123618913878772295303238133402497440796628442141212897078561059667263322477676083941891901301853431009366591553397709331542497577609654073946019567278744378951240039723247918421838726956057494564303973076734856287707808373677051247224357924228371624663943068701392913625390605679928531349969594462672246772589438625384305376276927513780902019911662331415414811995572951678349270850949955574699105532342731426321452738205208621850147771947656822196773563280730022273486438026523991820319409203659543753227855373692837588725350626420092771532381858017336750490654407932262100859828443387815099257806444198427692372904742096785024343225227363760394687030317358707790516105858995487434053352184282624440444561178337057106617542892956147844072423475904487906142716602301403625948553005187446341997477058259282253632543638998949188270971118453045702181243770206785166218197723590361113571046868029412422606320608292410608565218888390280146652326725760563440069510519971911424672319265410528049200713567846821992738843985733006096350024282336665523142323309445490883681378225135417843098739691251004321900673950489381285818071683608433161842184332446571821061536656171215595837875681803656072610664582234122155017394955009351630487073788026248646928062515808420229706556701738337721273640035529691963647071154079028867174657839269066800622416566102763661037009667269390554101306897639149077463353619275509547572923953604328862318018711758237626500972456403723952428752377579730627742496237253831162034520659590680551048594006183184618610737541812786954748573173090863835741267089539957519730260775863902402687427003340443901206856566628151494693906187255280108952504915995367143374612177821662587937488293629909111963282718386226264800496130270969229699308887183958550847040974120674922064958424352914503328373030307696494794088598294555044145984416694491740645262131026485257252693774175084894653957704268239652140157482980521164846019730442664800079742983396754256101292688639517766295484676893088649880505094916646722446351112458016308536621625076939674560039967178419643495375622151210569628327903425255342507087845387934026896740971963886355054577934297069701163737208271129745058719829319132651661173362541786284130432150958399862524325293217723328465004694883680160368103417585235877513629941099745155896622612972663400588249861236131325185936017517309836767429331832299859270444384169342091000841778244321349288823520237211249954577495856848501907830288793438981041109409786784923008183716929928656403681976320054758740657183943098379722778180265834289545652169438002209519700929793784023245988033744178866215120060047885876764807525091264726415750877252622196774421074671442769551433523583721564058326672529941723808732875201141434551882353090108614747554121804525251310651815391632214514993151376988506369698718873624899721700512603936296581857203154807690098370078483626697936760727670734666943328951711165650942294437741905676179923120337698920853884378452822138984718593607106038041526326243239428115079052885546997137444007794539646345510263241586644068150740455159884871566020234802369792384018891312131166397040085176926176001490757689661416582729267473130108722218532354725943800478449633625792192838925065780486381512204227513391545669226564694736882805177029267075704267403230926165064753188065538252867627670449887337656499419336505977215947579080278102335804455129864541863471485258287910729664972254206703248131110562591573459932707761763381873897902018156751647793760093694068815473141483789473778587477933797424276504700623906289572632838234159960306033313985810778669148127008875144528430502353895910598702786922540094017293757633235055825442673467729912344734939943059203778092255541622931494833561148550081562910104182028919687521412854212919261415456041826473649594860197795427082525894147650127857042792163549076026194509998526641047659586778443437290154140862327059059406211815566008067350781317767453056505977142431922025965936014323205040040129996930396745749354303714277930764492139964732571098020059640522931755933904639238729929638338240408348249205469725338191983927128936490857646564870110950652674081357216397097571874771747450181362080224523873390915787766767672911356648962748929947224384228437202079309456837525047923451699679052963127972294007770089286087913457574744199518390436636789696197130886856863799966601322952225704041494791258714458249235087919857789716837502219906881307048058425142441083765319003260580430908154978858407954252875230538432544871554763233248963426352802402869021340620153256148651430034321885022061307554549135692002304479684080802879830645425167269420252400091785360891994169000853156614649214083196866568951330629604272199861607904269551012926541579243970545533947654370877554385984228672228672725610496874879495547706747292183169955260127042921565947814542970651318354540765704704583977398299223646251972926320992118208859963835927993708045223480534973142768289431258428803704801288896120396304267191675345976921089900854087451906898433104848442426286599825456212454775833517550483030040337618186303940478330486877994406199161590929872522456812494913982776104517871941893280999550034490998768537655216159691073428116958826639741498101760553696711522979083291946898481251880293649131957077010235539943012962146829830600603825394522063997674452968655110557684942150958013808243078701970970759493018924020653630317362872996093415579090367331031325662713392283015931358706556926199095248355328352102564347879673675823692668164169948810388069587910945787040176297835890962306685663343567302861351042855117978682800366234721777555087061452627495156714484243233357490710871287675280683124388722415467099132310194516792314561380065438002640247762665581984564560735710257286028853202937563049489959912856394860963820919439226520441477021371301320585327757402315011032221918243962221730984229189429405556669200541810247216136833527163412944053994499982812219048010394752644817200677885405318042345650845107841909325620386837584191965515846839362090177022798716134917267435918516715487771449866297758829501879843858853905105124961690974608838015647554615379609128541656652241576129596840851140825592028268316403116017029526047881490675580253746149244188291940607809686015550717439410866348329889568385459901709359492175206188120178850969680152786278399976893885121476508315108028958364437252591956406974889017956437132674813842488046260558375296195729036374026494477293116909317990753475347588109401843138637611637620148711527143530246029337081921333397600510925502096314369945566956732958039846897696000233782617358317268127141588626272624472584906342210804228828469583660320007841960658458161257755018591735526710640809584503440164665422994365169485696892076196278910641474503724988333493396976521611540904662116741186932811021845712720175126605548499284425205427065427369763082066765674386323936381497392721181263673215536305760805957274296948820721556050735812507199695662092977714926140668884655026430835967186701701575059508333548520975908908079781806903415317356932457191318904289710687836453001559584896966632239548371848598267967070872206097186444376515648201057315424275600207544279178961855156770552918919539211041115712051461198677184496898774987843137393878749187951083489180233532291729039229815364941152017715040466442100281793395420020444127480312264980900747281442061519039496537376494159491904624856074837736293552607132016584687870145762745560602093634577478029268759817496204720809493899465444400201716797808100019481558895838968254697038561281743740776294494566485909158209876650316110369896048312211265593079797360724615282499243688001305609857477855434659150836137032141540770904445561862343859333583727259987817380119688002056360722621787792869501268384884653819764249190774626170995768519133372643680406868033801830642487685808748885128961116670816736286081706966620646402817847073309195334996927354893416142269864076724380836310040772831034550807699992988244887741358058654040930523554882646890016639283049420548175877510986144835869049954823191308581334953153775852871150000898890055668137152172119296382992262335796319359167304055544428986302432109537188334449075471762173465514691297020706284695409297513401163614234587289686202382624757401548041772317917738986601654351079525421721612318339786056216879727791189444287854741736518503898814266237716588839459950716587383658400841218688387475523159276583794087997505058168619306818209102686801572453291590762340339441104271904868838864429186210664302271394222364943376017420407630156777381416311816939186544207805201017365011466712791163710612140246426804541429038847276790950882430220737395942634735601644627395450176440006200588505146656024355073146507799340511379238539933487362982796152566454655315871109202426861117119785285900790179584804146062781376162154571701891532421656909490490014374609509308348100396399688446026467275977804851467865662336278057897003265646404094389845011876256929243905022948189971038008110290971223079067786705265843535790953852634907582245552231296237381034360858701370115350880612867969515523439583295503157002924609985985128454792677915537177974591323781798102992916270971439789906986909271638907591752237440325265537925233770896311854677111765037147301330513566385875465425870182665452632492360160787511236318005607159489629986117934706575449549809709765385356085332542504382078291100031022316119408952267074831513742897713873500229868800382551702831550960621221197586947734153217713650366618137033857564011664362972152427868615975693771580301621474799119664670101750575812289624305199366248600264829683902090267993848656851181128965199997589829501890968878922366108182454011253432377291014081614250889898781680520055412612873265696218263160470063333556538899025696108389689298047734683932394417737604430092949557537730828517879245866917977360460980858489413861791975174360263901270647836353566490774204934502678033499236588972679779360421638817217708621956766281626875905812893000524755850344770442197993050404964839675122232693937221104332679597975010304666328994108001184613644882441903659755986168837599387092726071803178484832696511337876609722699198448724880638970432409613161421102760899908568448643958540818740041067959434210964593889892057614583319956894830237425467275298174179929301505711744764542409369609511745445219798348604384055868077372098366945933902994353531147140155873438639506739492714022144109663750780981104557382120315460683936782774268238235777881786372315182219395766171647005655391168811242525832235136839213201771208215868407085460865555029126653085035942442285933867279789392018700200780312830377729537137331902221570282096051108041956943860125698929089235442713882145806793716954431563725531823608389201363380057946149622221583000142816137508342666097463729427622439300809796658765850328074745442540670002904217818341681136311767940958005387612116233610313464570422756554449169680760832897756883999063905186024239184206551402028964559552168651431654174528549606795562387990014261106225065871808080733378331122487009288617080392440582204401675659003735524306562568791956309965952670540204644465401894156542596484063658264679269525777859495295052254342180280277836904478495918841111990835075794785502182211888059180348263177185315423265158214690236197139955047599777315941962108936025793896122727651311844643784470072012300182409140916252491186519276092074446564089989502954231978491931224713911707361254975858171712460732547687285728742045028361788888528913517965148103247816774130308279339457193224663769651274659654560640327931653827688697050808337821645210768716661099956247867969201860963097382173725026833618134835792295861342899291770547371557860308770782812115482739770579280178949892539338640966231165340355051354549863590379356309885255513097137417402212870907186118560926631806545583587667534293012482261698587162017898525372732109732345282009554987787987766906079747277906533051780721873489470427804125708099225118549468104667383209714286489385338817200314440620313705781046230499629265059429922112632898584904400370528350257599518158062876074679158443763747374838019354105019086155903316613172474733533921604472230841446229965387574391876863176220290552109882813777911911298804670821836679785791093199836126524188644383625351798097262057475549985597083968796720609641374705420980543803772719149699220885847843654443494156900994357929442706424551937294758160682685989922166894129720943087773448520000695448428356621000230413476009177149316384443533858818709561578880387027438578781033433990289302078828486923156669982213536750114812867196441578093691955760234356990487590496644979069536891359506395647634845521324025025747243101393117458670153895555516972279115111957240473280591713356921770453620282736473236840068478194083895749532573952601859332876947625312765469661235025117983355202424011205319335543963452987792628588054189626570419397161258894588744977920179865495148559958288675182869597454387829315071851489344606393596674303296393308258529607420244270613905144521935911137016300734770391996984452995614142798163470544897826303607894378136403981611532434110324702542269126841855773238271353109573448226418159284062517002393368347699182684600112207521117093236972795098033188091537058884387252064433155535117830813544976044890149382654782292717566749616089833609967085685811490843829971863493660131889672027151815588179143435505573981431931906758595472216451016649049255606459283200771021267719901490837854908138584061831998847507672730463073653328658718054884294450067886368568304070680855954254325539518797139004400017202022738309643959638869798341261189238603583138235198404523832398372007046064071098425716090054707153667207536090164102272666059048311404448794009158444667271254469238157413907036015158487696378488852146176522666779057538803682529286872324727418246655940793958748154707678187598026618639628238541877232369936997382803245359395748551231465773018454052859179777007933892307873349868393951458099378839022669453034946132290225231697521695527785931231881637847247364086158074153865919762297389166212769020840256226211993165367305778465286013459229889700642577718138441992470131574954896407552078277218112219823796243261275530033401870289335099913421991771839368257096246967214270895002293974348712869370608486529470188282378371819497990078077100761390809025036354286632014270304966634917707172314355731433299936756477470767162169704975981799383419457000565149395637180963755126036584945089637480351604750129536041441774613456250681680087793043169774190108667798093945381126847696892229351634413447211297724009059276421015473779046963192008809870022849711499820034850419409606551328082875464401764880100122935739317641944499289682022055198619771095434925104981986967804696621037533140692760157831444233254634834524544735250131091824563589025867834409510411518229483241096387600177199744603732886155426492302148342199066976121805186797038107030410152308682725578661661622313341923223439773693594326650421363269863375013847999017852855411455055764599523748944734531667546708271869432727834629839668262585690180795239004103000440756212233886877902675778666686213927872783098313854896497516594251709023272117604369566934728301225624022901182586361943735847552521616530238020069832146557373270529213505575827278957663832125942980181671310929816429732433984876737554143152828793429100147149203973297241507332354181904109498877077619940149118225357570883094832683827762237812577051889916056251636874172298703697000899560364116294120345126630969671096369649222108797940691827480017026193044735176771862842305482888082836218531842936729761122000006902452252558338068104735778941221225450930678659858789644908199695714749632386146557725290199281476643083772692294276176460199211336231073053084308533789947111986776026704830103251496557101836875587181274285315974217455643695573831587947945174467015487054080102076578845078246957463263579706440546193917679502826496191722839926726622017447867668801798919038452545839117726916539637373953580156674716880084610200822214959180835610685567768895803506587149341653401868271991860672278937267096876955551719702640344813716649053309625232617240212238434136845718844705121635545360555149699409139507177100894972796612037047823456451304017924569543772125577682026519495680946836363913025173333485310943729377094249439420933107183947129324004258401092635238756596284429656491100667960047758329405188735625324680989129538532773295233844673692376224857673691152479307396078058618452753068423549053139927403295333656466494796004928022195310946501804676204145434408934640481342521755526976025156635976772058091341863584464682695035222816432502229667035659474283408772653273545141276610265935785341479639886659322094042961237441192788297954371063079998523158995832277901955354192719538137517729004535725311686656317140055105491150053233667149349889863880261376841399415506784102923845871037128430608456770320049006867256205216246516997301587886010495747476113886587130329634117593743829761637658201711775989658986107151340852541367044116494211154427230069548232005456623192567976010864717375651642985634884442635118054610148684447697115012448042493112348311248563520315363998001146687397527423747769970762483807567744394354728129757246545701266977774154310843522288312081847986776080960736078122345433160645084286457889496900681540042127454960096417855942466432498176033099082293299344937909070562367220807275903081751400236074792206825090671502214702678338081402581319249582466446560207795895263867835684856095019695617771037068561691249711220954492150544969062631765781038274870780269862964510459405668994324486386043083473673474510627594363341544344245126992638525824609310401012900229261694973209741785357365753050735256400450732889688609487390418246698187907778759426442241831884476647240507282372492225246826262555751144231817985919563297960925628338880020545854641518726397076352071449136330505544131379575350354548695255941252403831978563286855876573469312850835270905535591562619763708179210827735306432750192672221868369802502471548252312134042436311845922346772692354384809468742640044254256179041883351754242241043232095167512381833871628172573787023457158126196436763643553410520493227887301518891003264280878982460571974830158079236850956467937391959209673987842355273254150159957233230560055428685592207587106319973009998743801210709105636193567785094907488049058676948358166119303719423474462772148482668822094193348192633662564202479694576428529053513238643109410525859784974989935285552186031947867630531879865526266843470445034074850043869788656191295785711010281113013258266488320369053899441220031266217115330589905721834942802016928934897748948784297128706838015642426246444697090987498320475867170017003549272356454882261775336233609643099222810772546833417069900699612703971574692850156077761804448496056495170167282777443266562840803376570115971938674829016203707184917826572214824187555930759140412015908943230242863522097965068793972989445569069722830765305369456062500469394161535014920311666738754679241382291983030611485199017332249675073945184411215916699140963280440905339863310965051897316175808354928101759993036243872496795860060974779138368639982039376198440634193710759834128028073904029020672685792849480032458709262461438236153756063615785487635502494846528774105475990919670628797132072976700154425837653986162434721813833979837539801628199248100635789281325900014716473297748419461926899805481572842401768765052943633029503477924161149343539488903827339234379265238630655389737964161104503872746119050469558633012727188515794866649547558374616910212403636626311303950741026472817444130400397893264886650554853570278236911880663416695853413153439084106377233752899133902855450734979621140542277876285276188448699347679642650164771140717896537653306377373478074730271215050542333121297765069832843399948782874419188535221543265691824036966957273134671389414083819298309137925005657395741246936007527628408239312438371913037343031000527385711937892871445406803376395898710126471830772755817053622834595298995312469155385259515850542132775563835186791418790938078844637036081825142847660697603033834731031921775104880117409491963459829901481329581224743565500014299684877697611926274361184717567497760226173093413099569037552573958223329467022694971715012314141275534625599140573167659369155434346067158783823373721776139182643345666775227591854448253831253545027861534656785807267796229689579397362663790332732826306688886583209198066108599117879575528818560850965742581653381964058650552172184170767456166207420674759841619329249554812045908965719683463923270405412183615491962654708990674018160800525731665789832024199920490407223762281843618983005615656292398631695314397131166607842887622026647286349631345586158255747429574930518110463079954507924215491120923818698128773609381580455338225229304363993455764638959032149830696883065023043407876288470706187151000998061306204604169304439642062550982078795758249618784565161378980266447780493678091357431248823530767325063142711161822909710876381691131035464592671955345017380281632081651555104187005693790149533591265801973761234138412059568739017943253058068291148772418667859050087038334277702950759378793639890667377458324737784168179444399296692206722928980312888488328626337015211977856447396686989153128427249068322817704325389894286015095406401533634013584890308715255791621395699869297568733456282861536024136167898518621127322659735224923293170429520542281314370620389026945602727309060352897862088700694122331866517548515036841284635981047879547821006256906286653937972124640834424627013833817679836745497512246968906936619355875991732391162428005224040118889242107144121645077708661368122154228692584217859307502553465007887714910985564831642131480357173654698540589779403930496173357958305653406727287875230115633364802952882973194464183592191217576480942171015897251735169359564570013895023352670068237365508692694560404081081672657903253675820649470647871730969785672219154139060141044901030937066790345405879606266858273226917869815648040103810734513205364496065892276108358368064007032970596247303334877747490687056295696149919391584407348566190001675126581333641757793740376140244014100491575483016702315200536433858503397043239932462448769325266421268700147878479779137217191606187755029804764402080330423535256523686286616740018022309895343763953411427093310854131787163692414480747484620019956480176912582486106102318845824223856198812573397358454790673439820509690130748764549206968044307243188443275411822154637818030257799426290945641304390868464777285198441345827845799215384505053198025789076509345021246155991112676347172754095000165223647949493858108861109688467848988017386244265702731617021380176742736531388855186618324792353707131650771568571316735488535986873820316677557690979920984359055222555125608173145232067091840079247310880989504332716467445087702680728310993358246114178320939557897388306667531673194334316142954057542626725443330831101322978454834066341977846130300372910109377152284265256257855858131781340522813403257936657148389292032409732041883344508377358523076915368954435354079181687988322967852676456082746005607264523549800659720013186624124298364752602227359457614802463472506592069503319346703679904814963586791323227198892049123820085318138398323535045655724208948812564092909268054772377560370174695384410163151121239922306501023013484771161354322258682480872962449988600147319568656009365539729657686527078362110227958981849661839891102548964297463733109630463302905717620770679431779230863151667205297137857843755373858522720223826391605277896840811952646575200040539800842368355843399964411016571482945613203311251290079843421364153247791592565475833022043295303912360585225236885636706913332931059725947293697414338697957288144844745121634661948947828278703426582786098328406844354544916711174258175508845745144595039904994297648715620698885663127671436101653594832186567570095477471912626967927248379256202990981041028563090221857514497788017768682338010126605855805783490801430628925268183062875750354325619902181671808628870710665664214605811177002242029410591449700137154178266496086378439054941557167094391334686316464596989892105058860326455384897744088301003819688916552122857572121182181229608144853078693638479174137039397626101100146523258353504379613155160866748360955702573697209409078787497781553577772248234553093348043417721343383686600819987670995780900362745219262277109509268109218155357071093865578237941117166353274567375017735749818171143330824759936994357672996597529647215033343628503951434298449246651420354866462275223966397882901860567879080231309349028978021034159640270961519954562412223433077172135732012844184817256872051151863658717561733531632585613235296386977531587665749905508751008860992232151993927516650154459844530643658996495325303539979688822199314316249110368164756729773617978561436674407955907453383498739962909997322059592822911512038922719753707951282453872955984925335513165200411951194160327960651756069345024902043795088970294188503238096533500667575515704734530075850958286135161343850262783326646562791918223679119866376612881813119660472485501636203281460518969685996331617888717778986752663381463602082764541101243765298276150352790936935985461843040460314541073911164081625807516222769715967804831809847904388263072953248215400316951193030941997304295922944773374261814207186805254745464900796750396305093019660318345075974008349615731150951294136778333978411237391089240479287045781149682456099440746258685046720114386661797602213212139962504061980601134634306170312787985358969376230798247385030304634789914363906877897474994535885589637317980117875353744711881790439641900285804760890074381595400314296166723873818153837930609717964239436761196666014722863629945694234078531829383990354910313897360479405359175819713057236453844364552417452607159894564894331917103724722997902146117351493742056202442611349363665090403163971375907108616747971542083566411601467334122297299873456974575246946033419517207078709206893342313237961304779001726578000760052724108449246108829180477271669161815102485222977813704759263254423044332681275795741720471257792207276299003418961758329888445370070221527771706562429562546455670295820568441587251243506865852465178514729296791000984663912874069363151506913456582623468785653655592285637901231625676934145332788292146906844265975198920131247361376085205058454931494280502613055990352532923307064427917450368335411145140803177001445959948455024775743913669520417494557018234054243511514763928905101706306303744568406886499454172168550354587715549704209501577093466706318604333894436177265168691285890752431772258602806154549018926815071399284238551673918125994279459447142831153613132994995210664759945177866486407675701257641711455584405789233772369305619906545898041280119667681382504611000472756519711140762865803128743178935126653145444851976554975112756264358313119518734667507847936056073571361300327696971551205813890799290014934348956191895776158498839733376462802179003574160667513334710849950495523972833574007244684006353955171350673166582025374563636516635500098642991260700798507019972532604270778016524558588530202571172800219402144897798800198615926545824743281665940782650842123876021499018535932841821849549476643894202750010721580767193871787055133977867154461357339792276351508374038223432554299247110936754138862996167544160450938738193946241270419212329454210105768525693513706940527596129652902840002401519699197843602078503833718653353311623892003596987261991895876304469371382709295260750374448099232201900991765640768772119373336141191159461410603343295813647860820989656520544280713809687655215248096322106086354298079160464004728955909648447173452626825777918212409935913641964969891334308982145398842978737397141931606535031125305120343382051996118299183689434992985908449676748547770675455199877188757532183199241138697424765538238229937418457723068053820712197347574708855823689973214267648989054523621619419581474456290942693016559182214589471047085251347320497073554281337245463888826023544254516178946551886807375041712877855857975870322665723595196008082897943421558084416114877471538692700745039856465565297653516591104433793313408037466562707056879360191400623446815735148522677658014560058481943689565418245571827859432294541430309509134793228498812033321490673477477636233161327472725430988873948446582602800386441515095979442368415203330763477967785291749327271372536183915583995439285068564121780073514367289623090453981557586219217095352938571962694543027512836629350377396331328931617493356445227381453916437711006410671015931549343923409776208677435990858049956033355395477656785282919472975249798851820236286464172665471744937965306193378955817144990789565603674959212248141161815252354017358258260824952826928503005582841131623724903367499790467661894500001893309918023536787608462989856179251646993512119424227323229664032040121701548361797770001111770008371608607521838681356924687916527656545296916916233864972753141419759401858717369942114099638173939801670149237582281034722969975098571145549209804783788489015685854262042338093090546823683998471966269454149296091814577550749153102631593164186113622332501108220522790574325272429126230169640002648610609373479406812546537087039071582408389479197705110044078376824663664583645290709912789820528070228023186135725117463204458979509689145959252753844455428543637806896414860246181392476061003549667072416425977749024712103201722241493649307248815235334476992530139136198952682799114305224457393334060419765477167117174564080581331636000430663710409752401120605545416825769395216282889594213703854114575473240332859115310818273049089930312836106496088270759130158943947641628191798747903049378531071870507630945421774974600691690112589922889164941420703850647869777529776299286424330961107844350434678191393070285355896187098300032897762130381807663560234637966646113546550667673917118887150114634495367728314679357095555935543066660023045494843684937110660755758546191914175245427625039295362180844668337783460130902716418584950675864441826271848136955831194420758762408111058112148356366589827563837742405213916675064435466184558872304849604570537365463537881040550752707418335343676053742623626479854070964929147806117991911529328752299136635385606782347341195969239766043693762169890210857375052505297295705686290531073304762987855867606515267643065869748244533456837532898410530095371828656196096382677969353893799696444925864105473792365571393767680964801010921835004700627710973901922893041034248903815586953513551522327140607072171223413471079606032996932868796742629612517573854917092439067724972481711230833272055161695276381504764408406184134577728995453423233632728893251568984674048339286184725882419819669740622151283355086786336821844552874013310546659191627893941089825910119325936793372530375034861247174934940026025781108507099779083400234515466473874623143216099101286648808695719819362106083409950618098398319082849756076587861394227194971112540008519829848798811197293209593598894058199778781148899786630908204917749321791495975145712365617922559765837111980992409837797332204774393248565124166224747396580693108373074281368360814982706458633646553150360821948738407191649508480127341874138842198769544351348913325558103719458342815188025449634594116032848738573771683711038008830813010971829785928648250107903989820325972393440679999660161839624137947647333083216012564215378157342810710768996187699467306833467141246171145465814994389732073427139743541167587886575533682983400330619907066519828591914051498206371685729336899512002632487610762955145542329301297382926503701110226335890745880160633870051425087907583524849790293925498199920793828851205303771107167943265407115206554887348367941640526656677668100373798132642787082239178626525640102863377633024459849035636095731232246091834261424967548263278447939739129466856327725613411822539925202146976620817965838590841106782831877990523179987980030586514286583657456296441181608719335082448036573534102684145451993041848660442914909898317302974909955494671463726544825474514867805163882040838135022165282699881709538234783012751975182652346444607132118895389938463774828001183170450971124301497835370477750419447898709781036153942917901073308168488900152059681072171567820286255061192971965382730278269095871156059533972283231731009778166969760995116933075302342269469381123171527801127271705689101176860089691933369266107973470586082699940277089497666385455384306380395030524731625022823042575056505406507855390042619637577544087035954795513649351032044926735713440588473500196618774377959192463633055515329018247047592748792863210064565121906854138691542591601378074405898541873226549087907810586703796543065151675585917400653173963048816279865356143870472713922422190649046327208870625041462741751650158133951484151736494043751446188229551566096547380066798102953596988180718844189831666745334969467475120258023478320980582997872838240867223230356846760102834719728819844760082257502956067811010075094073211847854169845237474544581702848595935976057504503079816963313614563555544190254185009179185249976792942283765194230201942822056391295766760130028402392587573350678942420951758850100584710446697677947829028213409216041404291005616621588065316531611586764736536074955044373256322396325269759120121297816945421039791242159545729235012347902986053849476031316241509382162123769080792410926186924475674444213267939309296030382304236702940541772411128508891826723221135705321809238011752676538032806862053457876398427960807888562845647282471116987020736934518870923547137466178064575606857044087819504369042621611783611200344907767996596231751658428412340563657959791260792542706428878143189536075346632125176267346741404207322483637394081005342924458981909975766166724220560328795584440009172053045620424783282140846612822894650984211169029026675221238854093067786985180407715239794492149770768928015440482108913267276224697943703834321751721492053590756901363294987271539512351234695104791593109838118889909319464136721109141341671962571686535923827581441896664888125901501880657028740046007590493251227922879602522160794679038210707573420425037337355771772440292197610370760868110310071632383504718770118116391436633706175373807693992495886320501954306958098138969971072339707331421639889163389354357508849006411355611336334191282867678595359536428561266189948166223761080952495411377318551614403812385602692538212388116613208557342167029474423044881621560180404559153646249741682871147780308880389178575057812748651402001918198836469890970199511538323330476179139541880295856163772115600391291264742658045039062090147312606395533410840588084000054335057846839911136598796393974701866344660306788584588463398287064875252532898542958838988510324668389243475244620717519342126949505227549407751967447946020048628636302214301274739092682015841821786253018010118579839228308763266739774553757530871924907479678783738830957631746054514859387930339517852104740736915379553067903783969327357591029908619583916878968314866311273015659205519897342849685240919601708066574892475653707450264672848603571114784299412631823899811119104118720957440254905865545132422323620132437063475339927422320354009374100433705965884046721519676847500206767277892777116180309493253523897079599171959204969605991446001180664701753384630206719953355997769820866813362452781155194424231344841543623424803313363036535964824983504699348689306891835707293522865914702378090499403159792205209038686898471059314774312890507438734477612127771651881106707753865414559853503762652803725246255707873669282519950430428423429956433810284009057733764775460645035781352086476461777983847056054166285071274098562209198815014371552671625834509112525703228388016882046012445283991497513519276809038700455315117720741969489048479257959120670083428767672944549774220888904700697672874510220498871093104006391756220033403833525913669499436739502616209454964267953113018855230887543141976027162760933370201960873928441258611712840787657220887353753549796686068219304446206456719306794194439314408439051015322454344091247370909115385614165679322118568769988270273937895434685506408751694691343988256971911014026183236371158356998494374826386997239166511219223695537549190764013250280927027689668850564619668914544887610234278987065939806145516737498783519792526958766325872484443377002537547450343944486760559861952871857785590199187070953409607930145723953997803680807721342350714320926805286397106212866929033868390912177953298536902696940412237925557720029038287230700685332846505333260357793602824145604410388126312387506406489414077779625013872496222010706168153437096169108629547685494863333121444587590584148035757765075175026527353172512443979491881706102781410427791407372225589432383777966472494900899138903350052900528229711662796904666487254912355325054102616653622889168430760535665746785995847809859501157390581798535225489349099575576393421150347002651976483237392661566550167182688396105912349052086468965641746113975998089977514247633043210585116867757032523853706764207925392242643978162943422294415234705599507782993608243595643734956481929737492888508939370897673009867734714645485537120078242370322182366854541758844116700810058993041121018180875920591229715267982990697452521832889647165829882526948854185038694131573875583559322893897416331947016492033628317494628607590361471838960698993909070804911719473646018247045132291919123637380823171378980660775196935423575491592254782369462481945737985826497863827004875053334969251367731294675211468073638983027415168313088726589665551454440284869474634524084899761767475337628091616767241415958377543297759274244131917988981036403358254703954019596615060351662726723550388850478616388255830779302331605582767110738417646782673749407398651957729719202386390750488015901072476688535090151619713499864974760307220952079017975488057473946523435020780215337985410442851358742182772758726868687178400267061941051774444966639746201776504261739225582304123732376887014746276492718105480147977081557970446919035745717838366494174472081228104291738764553737734069109627580499943343411176024229942153804041498693718833505342332594332876750890335384716482889999069193477581462159496700754242149363055300833205618072834271539468914611806568263767319128060373021506376967283390102936153981059072099836076057368202489364472110427901009589166019306323205480580984007809836520537711899305289521172147336038346229053290469503533476955290263628028165158108913245995895383406068156340484947398743388867781209097275404177207168296950069300347425258544122665311042873615672946497810299365139236627643349355790302686209686824420178496392262082370589284494127506696972347202387708757565413402561996511937923222868263840565989473706771048209298719469461045662364061723755081522158662975968224860663585869008393343070657393614903996496685268452648076683356491817518697153710848118368472008351499864943639110298286760803945852452115350459806353895533899468433098302806025567018149871828151483121061920298221205154906237327483838833828175705932104969259988728341749104102862486266875805317772254057712696057809974041624802144460091232957691152153060505329598348385137665824183507148583498581679045160510930340697027977371092371954624874513461675206550202871337526785457095028877205946788942573575112037147562497256843405939200416646449801052604902972912369071324549034572232778143197209159004647486966394560713901091104441937592784056326976972849464352321390051359449190837756539894397086323107602896993256512515035037391633810377285712026473791348213608407682830258031302568572571915366875574912231866878366067524056122064747398923997056440363547811979151093762228410709540717688902710251275589432714693945059636459465608198578752825517121653144964358974124003920508803157217405633959031773719596664756235975513717366342583818595571664549072810870997496387069415505539708625599292221316869933431608642602453922267135493276249524089102310352110254450722887275834576801686032087014044787620053725160331627648275924276257126042512623576855865383600549635430476222014558490517505849499325549513816571825109109294638244911205336263216844709927020785473302598836423167006046832456892678105196436365934510375308861495082424593953706675967708379603953395837011341469200876433506079635833637175168748616965765513030377973702595690882301276739672345641220837317016276868900409725085205243717429455647473962822606159043412590156497142644183760221909573531557158681897098275301828907938927629306583343909038479800757865992216911737607069963070162088172487590244017425260075819544932177701489757369831815367303082730340648334958099130283283960375112097216882301399749447313390769682022522144153482272224742696546443436850431718888349104238923916859250537776730226519785025949868658403569069597371467318988656492017355129606472368830240253346838746718061409353563638684619622633722671964829381876052175138301004978733597794991465319274194802029657879377584336464414609832994985814179053031028788581713064499409300177985336329320439821272473647881199224714413130704127751712897712032454519910330946216255466264520911503539149746632869996221916341836494117522055564443439370714592186691250533129693559350005490102016730973134427572362316038398464969802229320185214528256497369601117615489297393881881857783656327541937094005211387743588682201977126545859844830447085277857863138173371570677473609103028201001589146115835349876078395215842919183103084572603225737752105070302360069294528852253244449528981401533061837139577783340090926727642819300795803896199033080347021259548745638386710291314818663325027160261695959641928181863534416784531314309145606484607105260321022398345663790697658145457116410894812463725280803847354911575169728826987814071774209576079259933278027342151012627188427514681171017367331828141424955061388605466214537909189544701813687742780914021940819597620192633372084200953533344098478731045507414783271428347593635134098213446647779608529885145158832663274969645764217201033164757765886382480076513334154593360068412243250189734109093267375757297373137010150821409177489822369100852478920794857038109500958964291950565779033369089855064667127432756243198811960998970646011816592578485904300592725408312209978744303042008320814442145282943951811047118305230429721032548614895188224476518720113275225857788324549109115175227289263640879168698732925495589853309828885560418948446994176912195719468460566288685468596117215705354886095346140827752255930302939040029179432193066996701318680629865098842729732609296173871475406197230450688627037171081491312920476763742404946596581163200758137396066127571125144414046211437197031709647380853996853805985396346026508606124045071890966437808751523399798919817520744868383321174345690114046760480895318144937455885441756858491309721914796232738093984070678836085353356384067228572397897194273964099108760195350942736721929460686167483735271622934153599258341080345557833858117845084053302399271815849709591337601393990010263172623898055125899903660426758456569035836849052722913858826295289500218425094045333283418898266940707558370877054331783989507783993894964987596510137296484397553904906466693217921038395138776610274596356859737927584712794483880852511298875007480674322363485925693427351723407893716368362519592651720660202013544375224429181387828128552299852357184022206735745458516824293936527548671527544759215090188773673380112045677997400909182719737433882526437838587022826408690291685618714446051042115793720504052234849852154883650732897954918215182425458810941225774117413104072800333644028881987970660829252759251930827329709193385407246851327059738857040936645652803214440929792650784648767071531570655990543519085495895726062333407453645151310213872643245169980617200607845213669467497104327852517476663136155880109830033089565949647882867476649420676022546677103775247466986141414440293196496592447081019670348622924500436417771469896192538818270405652431661733992039263502038900966114593896915797128970268351643611124088811739440416071923667873893180220610311323501562233045557975594067614023730044359545034684950542680100421736136545607872725518684881346166394922982521886294805858852923895946166762606158621564352541787435064059836651117442187703850056883994915131271894467200285702581398058281558473691269853097870214124471401337873304714552959773639636995470686868321476633764371806267846086421579434815435368026320233811086082001319241581430083214010362711034445586729558349634176860306061245351258634625519806682407028964308404569113741525578525714024699349831717469947313907459689740950468714919502845421446141541682839922983458445730251904953855438917513532290730499788767488558160057261375052932170173360855292481253491973614255643193698620940737237035699517604570662556480536749977530595807333721169882951297405999693927684155514026077552707085818383177704474690290597613860724027741329723420556276516982418263162940245377855270294151041170966008095199005538832241076522118950174623502964715444540590798077043272778199393434054250882795748110906630184702441784843123382700623207135525826832000513555224465732956067270435418102095450031677164318578650395209328446986772179647298701213218358593649591412813114582172966117128726350805085226270359182391590641940790133511834149634958480468381920598692185569886729620614093974947059843942597762804041114888407497142759333507871344085036182143452459831388305029894944013593348006817232047426659933044827725864313401967492722322931028968188375340222809828197032691773978826853017447716910437727913362845083305157347893442449111913622522794460411835266680375742863998531961601367685822754165795117056719877496923464691120278206483576517403634854530959413570598381070984620741076266023700983281338025882121294853447257298627833185128910605053166666609245941206293114692741097896468700206612902718373406349764328235388279671897433940543391376702174185086419535474548619320294207230315158487608622142593083454680831221479653580226638119516764736754089417488864633673984073665652819580685539164798005944962688811081022716473767492559741617321926473570000157572668394856451460147085650544655296180402742390329088287787560910345602602552020910204742314752438758687881024129106440343351729891640198337046017276545617605550753114124731679678562404212765548793063425342050483772909405896570293388861738719646210104835974322780332977711354192295263539866310309565318337726254346553648173247379895256701585291761261068611215597365452815274348816330991287973424619344472352660695205745439200500172893499411558166153440111687540525659143438400368278827881017293248265823306660481329907751313785234136990499990936834867886166116576178687083130049939121623475473037531676503108538778949719486244269269256139020400665798130009187016993382692854798887101642480311694605983827728466913881781925575926046268160690905380033742561402226044926197583729474082024264505055691886081250633616999222773808323224962113572993946834743295119331605084494877216278347888439831896305537409469448155945667413151676150712772034804560831038544377959369786319278636753517314821028035551834695901476385016787683083475046106559642581417698984967544410977810712942429162381329377271242787914705556343030383112394859740246123094990133532382735221861769809079044320995507265254366366847488687840740926356463542973605455796319965205438742930822357156384400014521680454066032108400690143193965085732134325987181124146863425314934591287421458995139258331356553422629710045264331361127255319663636270043414955030015971151819813087412533620800038498994006167774989333651028365275872666353809344598397710077732863136898935900938394805391572857820946712943843783973031256771312188128581697572342062788386404851343771067294460282553758644236241865070877476992228006986389141755371456457698033307969533194468599457766786979216645377623887051035319141914697241478443649824002393144022524483619727499174448179241826849603586059744603906574383525559632207179840653479602705537511969009816401501323836129726125507481832467757006089946269804147456770510019776840560182270600127563023299017795428831955361485637173170794670544779190573544991042691570410035807925635824317463155440749675322760387711711259205521460788754544499521262141830696165333716142856447413056454723853932183290270025644949513874948065893302116848724873871415101467620764910658250707899466885465043262542477569667161735201468624297427869250583585138162439485579088400410729151288382595166298464397720585998943527600253417934185618943642440263131951196767058837550816469206787039269019062529198776480263233181113146254070814119417507162419309718118997161471208729343468507852193861425818279832195231383457713412532209797119689904468695929996980141211982590709486314866661007478071494887051835881590434309846586252902379084624580511231615324084982245571022016327906326635349978696731196942195883643950678169203984360095372053074908182016338221678702718615050888239020437942572766287783287717655999648300150662333127341880542271246761755762618173447682853894386127542893770396131912217777245137326342918183649445900572697937783826068738955751002057899560153106619591320098844192205781152871941948667697314772978563508349413224045145178969651907342492015163360270301672525677838889281347168454009042730981190653756178467286624326009236192852421932557209934587429549512102601184507436518320869041058648598970135782947628006075136032385405533975341893690667278729355804681018931503978605952662268918692069594586165266793667167109672108270199365826272575399071526945581625612092702777725091634693247639506613250790545413332920188703685876043567403995940024041128610350860184503276140333617075454214972991440908503154972402686198344954338742493654126121545024289426731389425106691660259131365120623146160057269212907439151820118456105665943295168565676801008766185227723533674063696444282347614417713670920900406507352369911189907778456357281813135451811596118943175897892224694703489032958848769745679010554902672322287453598196377228170463116452293399397872963148052751253621378129200042605513474730741971621916232164103299737421302045448368691270311464009262605707456516138248889847796360084309963850352803975038022432126719814813317150395701664198101199327454857514260250232622850727113974735886479681687019116948087156990798139510944526285188126858317363261389135767758517921072919483359797885689674915900599954105165308386703255722492600310575100826143931608183516793051045036494404878347974969777887767453349771576009130907232647781761117466893067372450895143033634118460258369913566909617627771040057517656696529628681955017602411912170982140228778110206121517578488384851067755894320802689963164741419608309603609379983321693812839256459248998135594765501158367194476612298405119610539555305559080822047198556323399908391977536535831884666436588256672220353139322068353558258288198402901133986991715233038337681294245166895360363987894111069666967144624940026807280048761524718818551727162527998218162056847181019392247357458099411671627857118001516733284649243364172575273894535111382110741125240189321252253937020982826658119287366930843774210659283480444750536843405294829658325765141226710570374917620622406424865054053636956663258556650384132275636407161497829739524691746260206510798261482383834642434262780030457843407144453996325709040064567182305790794874484545357281808317198408721550358691433027511794106800169892709846155183821933494509313668337611716119051182682993846871143722153902954449318474396026236477327492252220429310674780239346477596625546331824985948298152492018751376442162768320064550697861362662266032935342491323318737927606205608645152718681526838873109919361123538749897230025767929142719246977034047404987648327136841250352929599174578207728146696791671158911956060445977964900078619634811203772513067007550592903375943175278043172451641515644078246147423591675497412405713756957936138202400063416382563892116682086350438231885553661244729945519602853338935167734429362627458345986977406540534734772022515747667750537807804120871469241657986141182853004221657352018345888766911210284034863555191043584594731856488573143377604873734883021358645170041166935343882075104639445485436200641917687895951039042804800143458008903572725771358930943497217348772482050492986571362216004736733134846360185144418836064229575331520079151222478741766256739306627787952976540540400037895033579658362408080178559369086596394002088266305809758438908896167374366581343100403705724326580849141749444198182936919874417649162593070597236183964083315404407126225309404559430412219995552270805070674839681805145392667991020660856301124756488281357889920188662848362581092032203696676653357472093605748387325756039370735519584774912222080920304717584887572118075897460202694859746345504954499244991385984247053548401615483943021676367625470528439569776448040948911839694812408375534019628867467963855141972811080456872327070004004247192941303339312985695247103314324136229427198783742582156226705952874513323775574218250423885164897360793065278719609707066677724184942376231884543286461985948805050005012438829735092346748802134525368056667784102466458606774719623472238119534827010109864627721443000451608914063089633106742339142924290991096692442288474878083500497587616956229539582159735564228593394266312413983525237820079620720058510843801853530069162592860013660220406866272729002364130685859072741297072937875919017512741693184302653802438720875877299318038915288512707119106410141918816567232228702677925513767362170771738731568051497782560778243766117780401955580896336744477522903340623518421665720276595447010698197646897489459265024600712221520759146952925386671887469726388111700368670508709129717071561402202024904125127946918076986654050138284589851762474676436117439462807454714738463355413365783805014494847814323247295759908604465146083262988583741987073667916125185064571566268840064811606884914152560354835560094796791309146965075913574683615886357449419756781698096345996942111015222888685077377872439989652579557978211436753230065826171809087149834120118031051040465423323018030305367458146838044744993350404055067046995651698283671251096182622687462767701049411536947061579047644561413292080624442331493486751124769157982244792691025605397225272761844163929892377444988316493069895861274648449569735101994416321185674408207052080626152813327534942425110350215754966560460038915844044150682024859353995894448003379146165103721860698384904687797928457070791020545943996752893098249543694313065179258796250484156051744117834113659158643029785413215931989985437229405084216169194565304087753759126719123523717529054244722165121984894813791636571148376657909265484677780607598748402670839153276549925105472702958098792429527366873108071164400526831403187524883515612038214219910042718868495730092816214481332026978705978079442946412321188544293413526095455489744273880307307150709493872402947385606712156689441473308728322267467413135212401549168110242037914746432004017220301616209798161151770906890783255615630169325009640069896278799487102762183527270112690232557123782392872114155078451831957487305817588150868632311900720302717532883524866973242584870237952865413707091376150018934645020831003708037577840078370552164275452811027354958456308902511520428231424007549145546999064239050711344419220894227232153034611866503755641294849102194755404620240257678573560311141350222226805008248268289329399890040812705734863997153281226722368183284835559055007354755812348044141751678768078115481551255879357368987096847918483157118620592420385303296731568964839849049465527592777013590316760135408496133485469389897504090180801534351103163059228656248127424227676689493036442805911034056975039014071682355943708827172098215333413643535435816241256427865216178466563515537971137686015659199343850575434447340772786312021936120080451045538424995645105604844285019054916639097182585852295340770765459923507497417829000936474936397192949004964117657390902166840979972429309916871155132111284576313612414114485910095510398407526146647611860888323197442049727884073996434433088083793942718370278093508072011294122807343355531199581395682545931334121965242891173750475002663810315758596457125576474167637092775260351231072053055400877905096087557321711485752946311933757449767444368789769071327650794190732813612852365146914207745063062639293740911694187948505488913328483052420885368296219416873257336760596403316980823126526715439244506698690206003429773603794861213116448723491833231776202641946047215255527770716460872877922964287130616821919740126710117357315145683700221507582005515298557107053890138876309646125583949550797851012117661012862169004522626598300139001694511442573802996001863201502044186076207695134338099220963840558328865353739540276966862876939179053435358516871718909568226016530089099857400728753440666505753624952764287459860533042942772900247279301124422261327953478363387699793365711224929769689823031524995822941285128724374425807648705422243716853112928277734139557698617611215801470739558469102899227890938848372221885511275543375242754724706203527686918396196204257400227403103710575606518544013655965317995196632807360206456741196789797260570748549882919801142126069889847926744362727987574776008849497608895280810040857674456723481466139542098612985966754330276277892546271229717425036298109197120988126341133095579950085238054880597724400185256975616377820033097170311567754514364493907119507817594586980951752591100917585326716082222974566927634435720587060260046019077657381237828575975417418087437585073080951409303563253157495650046923062609687158865790148537412343214089695216133440378479283403372197780140682524934486146748038116645238591772950456181781273431920343090406534357436694356379562142897246522063841496064848202444808065648573662764678960457300723381017857306872166242113765847375703798114608650373662946632068254509535670401746545755477955430256920125459721330524576865898402788368001261802225313571959046792948465652922805326503607614650711258121774677522209834585227388605917453337088521514985639583405869968507277999598641457009627032316162407445566127856300145900213794175481144409584842810330695098231131967031773881428209461372600200420310539009788638756831455397943882145513152103818668241330375821997139511338688948027074667985645711533175871792573412143760173410868873608015105759122734704342382925781152706749049093215321477014321776581016168840460754915736195226689495148783092597127939817233300527788744525720310666421711589502380774114817405364888850706863337766803857132747622134540495135155303479201481071180147302865637062183719426642465787242076008204449417474525939640334890065727290574564205671829721381774311073461012871414488972739018305868977602411428148835201200278372137901951812295250821230163091440503949747512895029873334302710309564617428121732308445671667730747166099778080449515646671361090669192716539714526919694557273119304082349382944215988891085481183350255478429556560505572209980312561302721024529812519819478775901271926922148419213490888726401004385422431917596737748598468031613619269108537079856228415512707330845695216113743016288517559313559082477450871730153018310533594636417569944540498558117977686713427179993798014101877349388353379408767897033858974843379379406491046825899474469290883891322805806527710892740686945907325839690925217168974146284603021870097191750003592885008091610316370252316605694736381090317773376307931671514209956122906150531041524358664976162354056715673606258131787775543219467766706588813523192170857823074118180080216736472228914600211824022966727267693519091025103015598616526180982168704530721023722564373072998408526601129506213108763704236857908581899393806900583848282877273410949967233557895455115761208422753581723592325773614315336062121899909516653697201476036149986716882181816249918722721409622742885261147244746130899733004815162379624688623291660041092345144381238611157117644769647127194235398629013095643627352355830357377282216614638251220133277045936103637733118341524869290718950142279529602616011446702173862519244202520614665079015619128514359787312765609892534746814972409836567716762431662693382049491009736461641198928247571597932086691392029066017547510972531975074952802624779701766532416583578932536432275094831789065122974452853869150909381169871243226527553167710976990195939344233034592271562311265030299713107091831455709261100396446455625413871725914201122014655520692430982592309430149008850082262246689358306827653613512347040641048016558290634815938070699896862179816430051974772836889688529356925606101836683557506314451607360003666109866577767069183706198714735275633236933359799805163100655737874874264063220652258162018836430137930338111999071567547155727817409411067735283212599654735615252584360877726614124525093912932680427520525648907152668205838379820639611039776959984350670754308060326518694627502515273558988493953426382238022246097187371448629801701558020784182244793180378106517032750853965796442677887534569112060583934933788856173703616788010330504556268001021167583676657420860412543278758392340656961886416022526435904590192374612907670300076053979715472084466196631805453383809406212140698584409255454541365436037959204543308041686263077552390792556217120982134927861074260886229971034752592924086821413571660695226615161272168915107125902726060540368875945849666810388118858460163666226017591894450972865880713926298694282201776201499896283280604711428824824690254170309939052855955335689970175818605082970657399777084419917612123933064165276653594228795776449425913343176611596303084298875114740028867328389078219830775257662342865936156510832457725876725129467738348078183436653740738593070457972465661536080795314773134962118698512295285056723898851925853748019218233464605626194513403742901469810283118950297284719498728813844385548181120716952072673752929026456442678839281207795184671469255088930980781692506047973537928211977068952865437918972838959170551351378815891357617345446560158926090979762041836460135243873103438717880481072228664037336679307484584874872214484339307586592900780199764100640553149120192155410408442910358053702790571150561959523408312517560257275988186503382465362733180336420622974047775724627087943299388196514120139612171465833191452406993821887213489881527444419298229804512270682561830924181259483924828490109113210657633101749603833825784838271951443444932910121350974238839810625627114097489820651856849424407954373457534124126519706287748212829726095354617906629167221762215561313132774925457488599592294506798960856253064754295451857918946182392714992134050514438171874089310904536414315074978174400230423187787949825005082299581224472701904761193276343344762732052629392508284314298285473816940279330167173050105273800308299186342286472583755430482263455512335647636108159062699714140316728456898758127908751190823991947429285084196757158010625124148136065189958720813173677025027185064150934736870755827838382564447908656113856097183409361327872620000809775526277452337353082033225285313774609156718761194742518776608134766528044942956197169788613492148438609536074714148026194423156994594074432493248682121540998352442561620190860076570979728647667682980688361479800802628863925791082413970481462327481547955457638595411235243129642608164693552731514895043428045428080008971435649846833730818300661562117051560030122204974087285827441022974419448498844512396320710654536558497647493476206935687839130617389547231906969273540928561225707488109930044892097251224618072451737841130750045691101744389861791299726287315266254276441947632614851958459452693420184805218963567375970158200601269098955328329327790193808097046158509660109995683008873660199954788055424043770577799340897423738666221126407206876477197152726689210996810813174497887795166685723848348395939126265552020254577719644385828966847300626558373404580270831430550786342929726833073332829722038456338517415491777387580443754827851227000966997845849489649913194126693538157452977357651046466598881412461448684367277086406864948216532346569034303760546620639813515470517648763337293255962906398841747940948438013695335202470639191132613812085497052626692642633315775472021582144708399060446572522813880360130169960381185551990730862227648430044803788667352986350704325035795064638871676106554150160796662182282618998091141001423974141597689057835006993234289216351098145333503467346662488595472094728828508305397958100014683220564904935919702785463545934893993784164877843735235309819427869995065884882852962933134035274114960188721401315850937992068125368258020807770140685631265455344179097404708035629289696843267043010579936629075724834705212107478431190311735518870046227868451572071208469349950133839168496839761341717512503307250587678987432491590391024493053656598588959180023952904346931292044218025581167695636340165306480565936063775474749752002801365089379094133000428304837742515629214413091490212711131525891293666350555678216851083246326074243692752938824620394945089899988636147324986437441416767079029335544034938094664815999674349238258615664622134855370529698827799749254363482269733393684649879679747476861837054834950358885448481137830734099289282793448393508941718225009818916694074501609641301493681180904429467261663707431422947710244778910219665388024846393674979928509821560517315971529196692465998209535732061441739146230883561678053547955956582788966824253900395745480621658078085891032688104528654885555083763579397964981966669524311908198913233191614020761043661791627788442665279791603475272475587733651972845160512567038631167537730377612065110021117771342210989304752400434525080900999834944895069252182222897318409152664065978630773650725693810331779213763720580539096322892261093667395087858784450661324642329750487170697065485827332502401006155880811114873712517361466690519514708607438523537975708262594216579265158106718570116082519157927596339284598848458453343038172173377572652419497023224167138775629131228474378318381561034352310356851850260656764863575247104877016285300366037992238136709118164789621795925847160501582844817332687642821412184721945499844991004787695897752090496358915309082467972746900847318137684073531460956444788956212642162953106885500744872765682005287734416574107677861897166308544089212820871389939160898724845068943677339988216279169322862250132253904343183010319137656419597384624208748448186087678314260710219973613801112226200002412159246380964647735514712656799220831374026793838416674713164176566590285711599087184320741551048279597871682117569002043014383494033553728227890337566030246398170300837877079424922598651902077722800584719244386957401108000564096088305061266325981719095711936968456545599354342898041237643007774920081295782325662331789819003411121966525994226491729817939528376129676967368976286679348540954811450113641976857024631516922697603958339421033845830423647369738795435791014886943673629129977554034019532510233917096463070398395311174901198631014244804736592251153556992051072540894369326305372866993708261561662482558042342334312086035521564241886328931291459927981605835338396545795407445010450352078966785598094273323235760046122510633678426666969038526186380036242825769672016106962908412038263905922447200977519013242387359186374933371818829266491119570780423165301717078274237426366107000124629919571147590780656687741343898164171134845130399387509041677292774819734004770468034676730084027187109942899406851524251024379470749714761037903416041193816132302848574547783196807564433404496457329435427987141100263529795653050655830498648936748886780796559626785388078624011692536527808830047197203554873835548291908274564361399921836381824553965080817211818145753246256230441192516998509045139595999604715646199707856294901329508897655571173142037411745329849311984716497677812175051948734562843092664684765269747564503592662161283536952984762511709948832547277575493647850623891317373224523151254786793259439832493258892245999489711444319871587094365837881789351947286420703439920033714048843914512424950367637816309944725677933479397674357732678852404412801629324401993415008029279207060881982981854800815522846372515707805248314783470639422802424028410270118183906131831767275941096051332373948844846012079423746017017872087392358313939487299711014123335038121707059470505535309713882998467801145516069965111653988115658827790354922646812293426071146845621444151014195220681216746182731405491845736488635542880342280191837576453415993278233125367820823503375165792114851002343725922066693881340373053471374474036246278600333492406807350277094481351654381277541959490243214802713851281608140888698351407945249239893343308285552205136949370851016035463889972510840613846079158448709397773291284121672099846566388667529419997261678530287839628785864712880560322906056108022317836275462670624224286398801483640699220770805093750515378931159485732053092644753405682065876207969982182644469846145424136541665983342531512231636335234893771043410073803681505089227029280665182828746667995572406107939218081465353143320629343084049586729147445497198023886972572403890276075643841455316551557608430892600251387057962202898090954921962140967867301430179835230124858807870946693914086660002295731015806689651336736515244065706339963005970600947711294118354647883239470238808840975403436176586650160727402956623839572934963453695045672468547139051349601100514910764061241579497996059152900883442956717843566518790592199559906837322252857379767705898292681257184105184293060805631159774272145718484857079727454965476431679059968471083899631756108346321838581196784388090906163517224880893828659349643766275924210780001019070270980687277402047971990260783432085397782884698756506366969371940971822474874447024099168826581493811746581537479407385470498657825702389665342844396384979313572124996083767931489122810109564685237895012676481790992454290208133325415156739700157963017297052669068784046875099329919947325023775099812588962115349645525198144841387584595302268144245713214529607317800903230295210074002520122050472072769745309256136461713590300711780913322993884792341953427270949036544957908087057722038328048227757102633887606431401486080792115072838193678610067479907183865839517380747941537289889695757915068633748267797583336586311845973569122509459640405887940882631462082297644677219771650240930974971393275791712415015564417245583935086279634789982584426165843266478441286957544011604335639737005923971017558178391738399020959373938995213523207531409114627973597304607833224777816511654625722527911669917364222587817071865419208873519493652607409944058256747524326466859528027914329964989514122246220215022907825414788800788842601727626193099337624653516771697547330509270514869459495584941801304732350292481222273395453989667436914576759925403705509865727020777260377586733102321064502286088298305018911062177164892925683743334203625298221658916457939317837671966605239464336713815457602297391332160802595732477866461008843264621500832940849252352427609905764998119671181053665096318856478856582354850213448665464719618599846984768050894603821347862305676121796949132203751097982070229033530534232438529473325144090790024847041366467192440839123043356625937092335531771497860790489946695473556330885196782708540362851954346223049756803283484302272422288085228553332098015274673858110182270476999048802362833654938348435591347958652477699489529164400001627806027891218777397708832750494135993223039946189904895070125417200877000166646735862044700644976531092806493548197540031438958219107184953783831648277226807505710997258379119534153922963351819594195776657451479303251254091271683857082502354533032341719762561045115599131425757147152445381610466393564113946125148866554526181699062648381869080314047982331195022296238480445570707599684523139453564579415047582482716875844882456187030416496406106594984681467672781042549593895845843840332675031150692545458903951595360307794870850593196914914490193384434002417678281572071059840209582755549081990560486722992385818076427094317653808943367195201988821008619992132976887329737114493670587997881683079102482125984317498526555177643179209537188238780026776373694940407738548771704911431700291538077272904433904800528131845585906873636867861213182804264471688829379800735853485983327727209433554903923767544439909595207082203991600636529746206041503265949483984387577405970588149876992935632285877013614494156496151056963523986417494075809741935313192787355694218031035331537959005258992006988601851144312391894184931955171105604263532624468756903194328258098139286671194823257174379010434752294841510704079764048756860357309876946195872310392028701721321539507460893706929275833245760019670141717974540951209138930481897738631815500656284654384228842784114136325007691543802426652993018688325144567992137129607522584134726022031778676139323860331841367457461083525666147565542015182293025496114520392171036800794554337038102377603975738580460881808843833799024232541110436452482061437342917572270819262431921808441622514699538617413653291742164987260689734465970009586698221900675575455122438853545025287451736325654449395650409458510967906081110407339501757591675333146750949318171284357449248148123380852890396237921637424235596047256554941307313529550230793572376834560716669014761703841687234081166708076507275356087101797972021482003302819555141007394450789721382871646283920602757552507139895200374519744895446139951342532785120481836218724496706695588837246334163083327944593488374377529502762200433652238614716775033740254746377721017850236778186822042830295655440539510091342392984110703071896570688650157395347494100665348637847903959249665519723392833859518832111165218129331520765842571447491076066829670004798299944592467777533372720308123973621735114604028735214289495927480780274726265899403495686034717207690239414213029640532535496226165550613811265542434865904745349039666711890512276163089294010410564810330802807939852172221316358792130689536008833929572707451188068184314361385603502113197423149684891190026619966168133087061659107698276894040589151305035012291401094480199130855443879759678700928926538157808435127498829315490940623950512801103645472883778952138970139398165347020880437925680666729549182592337495806770824075413489674328089295883834107616319968099518243205710985422164109093119148960253187209405853228251753940043027783445454763213748936667418639983778221568700710025724377291902107279765450613249875523319945258406089399447172890768523137036982473806039572321347759141238505695569743429529588955669068828812937172273269776732931867173530186108048159686167337604393350598018137051366141142462369275502587367507949994950495156133185907988400138931028492724999996603671128398869377005791809587935650253052801529709327842229581199985758382606739164131797099988198220878486969568441031598267726621922138088266979504569084750648958612898640620853693637982493843723622175904004343552982731652647795130495600588978466596210699132073292970200200529193961207846395793367485223564948809624013804885201767143709175819672707557680759288065416322033658891388530235408629065533593890145812475342408171917499023975309228889687791909610722268834224167361181302146560436381409503835074883616057654717921486871296104806867269447764766062719624516012673231706610699236563223095320204279327663101885288555779621571291450079846720645387699521288072356816654776007333408315527550483932691052158414783004044707243591649658756972040060955544589434318616194896095867457885810224116889353920020995717120332572249304862068365381857767854558711396545789369144927879539847629202283728697876945136963794116525714641686492345817958200488209161569581720229246841675253812550812914783340138968527640977432415912382065919518520016688997308665547255196072586407713573930157582707757699937498507175825339895191999659400562326103823648741269814384939151141435347698528142957445979366500501569036390604604813240568814985893255370435341987065057878387153399674457646820616452091440937436430169504955531503465355781146042766239012483410607661905860113195855339274243172754292500421098488201338996146374032062237125712063243334948971582514295594359734846681060488446692343925186586082112698637053953735325199512668891280776475301454299204121168005312127163146233350575820856541752357065910424705320144558958966292106923229598942147266451542948370135762619091896022871787358309149119029919419661744978423101737518156583032806156395437914049607107980106078879708927664798395504436419833180609640573583130791669197157499801499722595090350636202132199596984321292565306842225719840228090659264371853174128229330919064895151000740128077524411644582227182051367656077151393938468873040468157108346186386014702022647529397395377120711114794596057971975830882010829963261142019707993905298007905871425337194865933520392193944625710087835220937605711319201273977695564700067654575774442223274944571764765525388556940711064348977071043567783085817930901230750656933647522447967073468417410534746782925015493759887363183255508220337673298219840205993543195953940655191797368205637564730281490490042096157526953148221328674598029533247537555577201971618383118714797810037165852040227188472164321193320165490690361439480358115156689524078695426348671752388964118649876131933198338021378862729128780995771548959943425172177694292056410482636592895568568393207457168040491812253477883091738204496968500684834068745906093913096933842780976621225843626371513035264417070859489779358120984927237628992320102813868354760799310616778203970379537537332377427653661535626972912867280063328852311999700122614869905364724871494193823246690439896031953573182987019247416760221255891862486587954524037392758848611820279478632826575259543077736449186053533284741062232678694696056482713617102642386393239499834603363892838330249114461000810291156742512679763002055973637692684897135409937182528083237300104805695790423538598697834004883066444736303617362610869077791189256167308711304556008182311719496640488284600157033470060999037896460369388065097170075123091462301822715141729009515091356509480547415117890454578295407142150811003641055842342843800134069443074789797032437540176548026339014180754576487072986757609818642362275995797416757307005397548872173983082325275812748699968043601653418724331738837563262966769526517316377205111385935755771374360275636688935017217301015125826986535364763244675547463010142248099039399036324980674909071380802744343314838275164776182878223422981334729725277299026765471550848406093751516788547604766889598959596457901645726949160927023904945633080494627973910533857663779785721926592227620920028574800261224090761616736441427106481139978149518261989544165134812874731594721124769481986781345600072026607390209134811759217188802507469236129596319874266246238213885770068671009519906739871378485260842910681691012893964125650762660099193402970581376149786355762556587433462019189626468262146351260817518722945039859881263928568355616477084395064339390578710754222330862345332194480003490140022526796981236194031507639726933874490530162378851466054146706680122499935382500482626662547641733386608308228308335851713210572181576272630969401494899065761589317124447642636498926927702501939018060211266249091224417549010454112439958321225573991812067681374382681541463673239161548901252589970722709503634196173460986785879520152260111529894371023229785986785803806846713881595247095915918840708503760876990598166890675484926130740015561110322854018833662832596734606515540207202935441110195683060772841689114222497677594362355259485425692612741627034685327749941017196180310600735899989362443765610342748304460303750871200899963217981813372961148139965118418167090297426945289270930225823707051577703848140532587321855474583582008660617249657136046732367198148499526857680640412216436575022902090258134839924790182872561466444735687197555522928434447736174782465957930828917751474075816657721250660176571296451188095210543756430793334794858389157317493193468174796970080846436821754672449372515119347772142688338114138982392222045665052789096301627713055292379464843064982272347127416739594718198938692325971980231316418651584418949052998226045606479575392527742656954341568004231671292402944973383252988291627818019403003064837522157841013220465065708140284584471827297148477457894946925749362428143530727704927606699803052651658801410298398049238672655981915212000275364026718830785642405636767356676558118868226829684921495550033584160924463601343119219448293900936562961710146349242737730414994767795397828012556975675074185095479566963636079055460333975465205501641815073475205510995336083783198992295147000423989708898349445746909794863026083703144458951312343913134481815397160437089617001380032100265218004403032864181435262975627333719501885971674569956429653263852892430552624030972667869346379810253175001118893268665668691089526014672532398087680744871226068605597102891178139384013954850098780164271018593457675771330517858126438201377869606604449477525997454270835522430941413136903633705837878714104942421987769832479155652596757108320101140143966942114834673546372278900261223803248323177765187063281640899481529851011091360550056245394179154237656780029563936361649680585957175010072013371350464799022626641054506467222973006422986157158043705709002928342195580597897350086363230792357495766979579979695103705581727599047620453810789475269433506820116816167005375047955669455600223162702479483221477210144735694240008871657472909537776528556095816759323496552226367943883413428734883141255768295664932863107879766443900389608421393208184161284238526392414342588750116460906564746839731246158843121879982174007322879251091483199247890260377835193489898459823055752564665924637638746920455026524459231678539152500010559409574180990520477363584602541995128660444978212475419127022294660299963870389444132697443421699988343064517543930151303350051826002128170964492459031905977490499020756094062764115106042775250492276048410880456537928886393725441607086706089900212381801560680321427904084431838351613332274853210828075722970067619375503216727770532081308061016256747306269966721303301967407436888596264769653430486547808774714765914771406657043024630070600115513198708712818754100531402854378419342956261093393533023642236901480268935956949982471317223104842761884892153607503195139875699021973954879675075619042606587308699890119319433822731783654165450633839793025377044647258389536322757000562449084271525781023215387616314067733449286227490412732050086832833897267858489255818738203636335557960925984835900991428118800883333427204861200190515848636480908704227720674489883074861844141310470425991607494160266629760360368412683795731676341202606024805856568333604085729137000917662422282406771096706146859750597797868834503698643477876975944036979910060478234769859800080902376049782465915036995865451261240479008869082302363923798880378370241554151276533027986227019131999433859331204823650478654102596583164801341482220825112962632884413391572224390911344776273701618981034384800413119218230315296234526941742526881007627457917953958640343342529093140419737278420526801359906488653255010378090431603648287194506689984729778261012407359248887329194802886899099314538370672020731240466447833239657157678485146307690563770921312868671987872787636960618917173012979842759296344422360508947076438991079720845208574381576257301567880620878439389918263778990872429111634379618679205788466001906890008871866382906717506183047032551259174243566185401688811310355241166865651979981453293901079815708548320368400378424339788529729739694610447740378686472216492821395539068418646827458120248775783232863442709616664345974776125185818137969469693179928531133860392708737096063907798018846186014872978841950592716521789467590205767393634515471384244031580555004565352663657433119723835847406115031853119030162550322012544605654542102290977665430859349458100933952719468904077450639175554179757050040927599153737231508874272915839797699070877694105899744428309930328911286951947700824214671978687531295090551352812939020408942287093220643515954549053837724948341968589838006444008643394767857454554077102157101619984895999385503773124780782675584133416993484224055221926700828589465786493560202892950876058431919336619647910816559775681539566297385870297285905109520205661019804508535378326505727772679585995628977402244114777498765065872345034774060270381173037369325320164421305784300734910424474073571596376143382432685522724318926893870844794660450281598235368782523484823969186038745637097275578924500548853883108221342417939661133599446335171438958598931991543117946552640574267693065439230871493534558770452064492741797393588301634204049575790230349407625737164078066984780385280012296549966292330283124736663358487468715640677809927158991708809380376591090680110928918027424798778454223925657552826798015373453351310460452048005561280766223399301265378823507715024732952497141585950521799588081345922536593779585666821658046324078621272142644619407480574680647811525712937080955342963295238329620581866637064884016973818901469978169459995843941565141330294435771598084099956645177912693395557667965795810690974910900208779021858346496283554469311607760556957029295272618811986263771802886887346828901327001850784208951809892864932259410891840101321531613049692013910793372051957250090037458519583005983785025676922319386376775980551014414666984269540552625254808647189703420785349484944848248212391787534330928188520364939126033974176799572690131653543313448030957964004512622699663517465091675255307628431760966300514417220691036246580046780363941674779038904219820555936307617569947336224363258814249555591920753853597696251390429713951713318926578989170554215572340402809984949853567682212192525221988175233581758697482697949711739788445841757440334079986755889546932194518453669910498977548114769521152453439371686647094612068105018053180871119482880009108210924289038822580797277589827769442019556123405700176867074347031170526548318980965939623308739291709041746382790052990947326750028388393696982063750677514187936331893917899890684274503996827002481042426472821957487061296910552032611429827311374000971648902129725506765246074686264481854312455503887403618985617331252978077408256946523387588983700672690264109257349250219967603593088365757673356229990328259618184428974619971578490769399806589597262362219666245205941658490102312359230361976494618881302420428136023830993392820505551384707983229928472171821849403375764220192224612755870147394595183291866073614251390838541773492128683876647749783505176842818528500474046707393624432100436497875312787085796339335696991360564572231215281405823842400487585572795432016014490555779576286186621082413053479475796705735877175667130710784666221308031517561622193467911293340869738996884854289802445149012550949029766846236481373093386601132076248354712723055187990446654979262012584670120077767277074573746028195295145330189730065406061037064970408846730983000240835110516676260088026623121274031795671479098417546121666814896039621586836350528996549100688489631238368221912364421443682512604887466021331680373201448760268030183404144316034369736970152355716936500608666013206686310186666697122352097542202195843882276723981640243548107519789752955114743923256048556777617898871207802357673117448507365040929754633007360441003301513884685405325336787643891321721032490826754814085209718592542810674824310383254796274988305008910327226908792911583639688757713596951767693074628639571518810288283588753256872686337136214688907559235957277726053465173590575486123354893977839798187928037018127567485368229005131032344764335245200050526230609672525357124580419309824134313232997025188729858402529355969739073497476526482556237185539865402000069538330966057058834683084286276018025048066017594233841394518443218631908487731809487127649067889444165332575910184520790934636706102162161327073323579333491915199788971201654235037519336591737555410642428243497317128043647269408227962842029614457812454584074843828723033908589211294705933352691186280303182533562559641581668541727468865639334415882654235645779654457015511662841754255125106319000983911602896128852582313518743732768710387845032920517818796576586469902667110699398368540148280598159454311604537500888794374043832597204075646292449421323101133895339529117270549625515477577643518487367056117480783327021200965621079407337576064572835942307740094409308443888104854046512057420682677930461316608483516559968383793841976741351611082926978409548690239025711927843934022536624903824428566700332325437560879973681485651736744485668495784290544046324523824144411465666824630218622529322005866602211316584755094373856734090960719612621155995641871298583279768990139960376873130782690288843569896315104682392306112904255206125277055412542848099899057514224099074965993050722370455955051777701902600010657157705877550684017742893026181770112940947393177837877302141425540114146759450460892004098105656365298885070957260144280778150852593531671915404883145426351493452695508035680387933928382807499938259135572360941114486012973542998780591210186448229179513515034193559740421816131733174873223106837432952897261071426384568064263880926813768289267909369741840611230752770176760971921391118892895551002255697543025887994934232292811661554032997983990704626044396885125098207783876823971221085667492614041487887291442987877930740357075844059504543157950266553936186094149380365752166668154786268614644281623634665518432155738495397434775154445644056995243019471019804415636223757690318648273176892896892620999783451127308544891139327144096751420409875945380148130742920422607708924303023566809934389009897024525591498922189395571570478543455531395140320705686856971578426586539282696982223922509297364061015990542360611530089099377121885316882865892433177114250565495423547638594445113652124005567118799697750582420843338927814458271675034992067759291294806947695243163111784273650984254056513594907002761215247301068370552595820365823072177826224500977426025432728534860097708718132617007924459591518726675777853433498222600405335301697772460063160165038461663039020979474567075338459846913898932079699658998904967775981671277371479373445413299347143620764334587872028967238730112879023469809718588844840601181012441499444944858515960293628668272787654602143817570993743939115927408751638852142885019141895744893363354241578952069066392294439321247634842800119092130085521826556549473871894778918190276668520483243312832323355775506762452241919777337105216031170741026365525285437570247537811804123404267358813847745939409325003836683152611701974266277004302449980783485949089023263949813519470046547121741323882310434693320032396267047801017564001317299567363666296806977744895025751123778960908568344724745037411559524605218523706576116312036965372715300823093124472519938239956606759474906454675946402260150448129396406304193053297833103791396773127458900012330306247381582380073599271231462178220349156652586189500876471820831967883653542955634641149978155117031756547714869053442380496195221344800910994943179857237170741057007660716556333556817955489571865636889560383172512419863814845195185615927370332573058880858289279167275093042821977650717592244821642691342160674427239831540637229780583026656478587098270143803149573660793286545919506769522944351278600117359886669296440424202771745961364154697093712028088895702519064787131879886974317908531527135990694083700564190172197487274782652092691194076324442037033684659780933983906691656636037055631491430835468291351110443497522370474670011257132756891043759023876985442158175428174434682113443509022193364791688280854851986101049948463757152603462775262934764739420831150082842248431088754069848983999586161431718582105806564684574293275448860198144303714393291494449150625201419091575586465373910253859379320701259649691176757930696802222827869074155765068136483580201838108150896731646881528378789358977819015788964305032012204479794439899985284226831869759380618353447618809446169615792622699316622404950450341183088632681155989717432883806718727466278435289314585170179546736833801877911277625004468149901506000401098340952206790278799001960194078502633534163773582374385676088647070549805787226544363471401317659378444197062252487500121967800548189948056060224599773923205951977829985659277400241707781791912822203474659704344260090821217206417738620158987693800281324785157915014962347741212975240180402304466481881247552224634999961251307838946619674125867962404692484980999036481553635048785109672110086218779578605224698140186990454773078929129766697278469242251063764827374351901502897916487334785823634149171392651613052176220318516590237242212616851012944769503395470551376314458892187617336719358347088210762018279239928377681687546788128246742609947268564322876770004856918301161622374943327127524227949840159178180580279681387578213680217628329110495008094638371613277664548903958823520341803628129215027659909987504266289377549669744551587452522416926074184854868540161969026266216691568861290272962374292538349292381899623005466905255637836294018042974472328176160958188158569921074824301432072175427748037541473869377375976652361503097116664409114573817039011140372847568325157572462206354936626208868068429910490335345410090021450126604705097388461198818420894663911101988722901473295423200508644960098958196867940693581666983217997047872963074667334218637307047246542279951844292661230876981142381211459869044411421197460742082137805511672061227899873896241036089412042512605745139219576348305749452819738824844667194880476792617215354207227117094618589224846062093698550401831664883537063156002906675020866289985135098960314549756437618694922267176456694157396675488773314150847351385536442824080976732857142930694174130345457150480008951074664362099146199176599254246678450754899046238682192771606132190012046701632806735175195658132386435736871451107835419903420571866570754300851909683135323930322669981064686847492483409327713856706082184363471081114740700823888948386864538155934661316103607564566340728015685216977258866064724231263090968959098694945437825448381773598382743066103577396913939253751298860561991164256169673119156668587507606547475820498427636636119914989173455153795014217046204149083979280484229775230714929739785736448649636130648987195887268928618347507888181842817943197504201243717075606219272740310705118827967298367272554780925447543105574273113040900660428145153494795534216473651660267748057584157114340379773817264610684676213236730804687009380984397612214056102139172386369715425489715991234745818335876311155563632884891414958362774303692737683411625147303801276674425139202061786924616016349120474861290956704294267504194843594436169538300313133174392970106382365350000967680145234402535026864501161893390732351943672128042302874505347011518557841509430451863738889651281585074782250741008771495369878634661336990803253385022666124507948339916807865238974421050215607073594014606567877270555416360582888519724577947411868336006827356095521163454506403808148587830944897778149795532741157862389513633145009969111122031904743418873589437069884481871666104393943959640327073828410854753465613688118191536794465206971685414965394913179248484961107989066285912310927460791024841447091228808494272420047057280694392617813768506011412613734598776980499197332065108307023777031332890984074627012678094159059279781314124772229425349971476358802575091094101381571199752848289860364954665088550869720150346454593816504009348258331347905073399488045881250213266049499871515386602394495872924904114370757550027430688904205592449030382743129514785912341918241473658893750439858633866582273889981195468424112870070553878902038667902814709769766825948347653909847502239517084410923328272282170884704575243463995817062813823213501420094300429378351146823831200953319342201140442643963242547793667481322287652498306410023325077186204525315188513079447100483532751807919100969333974396659324230875941010427257507618726919203165627527786790796845750142640663224824535038448130717316189101497270337163353671427479951415242138744396334963917950414630310993982322791176470617691210484922411011785339273441598941874834364095002651332931174117593451937347447239761419406645761812530750304170551413331011670080813737393887239211150971827005009481011903345560711800178070539284387328859564362386104082075391175593778116939108972975083770901631796404137990216795856889178318795681875131194308626275762246183197436569019265562585100534603706613470980043168348610279610100688046854471808695683659155923232740958433094109609962579911541081047958619204797809938863523485378778518329026342903236963700647061718324670191250447705834838138441793929612898761898672133305942732907150775707016625087799659358677120398391489564768426593116959111940333947871308121872561602063026298028751730712981780534986820115762487548881801808152346013845601977201824378886855500390651148936737010149085066378461723243493905527417557596963240598841227183547435462667696450284166292366050576191104262937115978789283807827127609678058178296897311202496592211378612511884882311933395495232401598780003661135595628792255790346042337571146657455987645111325290633302237582290578834828320547784095310261368780993799130561786542620646713234912071582974649046408570688242207216114330247422327402205206993593782635880816355190768157913078013384429141610333956683361014098747685361939491366269262872703704789435984731147349749592434461050578412143387741305110725109197349406557383189344597748140754700507128170281754276812828745818306052839679714078990269534531552364907368314255986239125863040784206587756048516239881955919656930097964611938473375697238541140516399538547065850734957545319203513695577157677760599100277273607984808467607971801318847358965160365921050018869818349799280980179878154710339873687349183108903875138626812802659532076137059426341547559062697481561842366119049562603613037676949475126246096808801118195055270608085328472542053455107471418313543085318742172225025427752457581228430701410832745337532860313637389744399455915667335805575108500892683852550521655022998985604198838770453885084806291833487152536730545195257523037795744489347498398572017046880104879220743483525974880017261786737550129105924718757559158423578046361049227157911099912933582980308565138778155630612570582728895252681371479599494206400787685185128310721439615087876731318079744308795354049294327112533322675641806837193758894722566288425200520811027488577962878680251362012774303289678403084885421312725664915207317257818898612450703903647155681921240143853926603464480125136666190314509007603176669332941457540327116413349522122400991585756577888916280012247579508558516998996172566302602452647009152389215349801668757654861609523522408489125374877021751614897055374836985702568902179308121702394884755811159681059482436256122277651971042052464078472656513238575777846031664612658086240198512700481979367054618239010596488158811419344018105340354801201520285857849593118067211505112582966205387460423576300222313846365940603739828397671371449143378424398355682016915434752710979058769224025358556143028188349925594940309485062502479531979604192037942302415435544479064637431744966882581025216174198426292733683118445324411235238105700540430746961358268824616935719154971133736747026288258186256614774936111500836799187678385965171197626899111951893836342128878306763381271018150903836851654303601227526225954237593542718143426322464333667469289387784756843100047448480902689009271617633732827613984046673569743307591760890717861699853786890375982114929721337029620021836668220526376545806756421591703734796434621347809003776417045074671283051746549830018943887555912823464885909668877614478674768868444677081895712898526273807186581351383917778754524560731051118048703548052837169738391536629938714557982170606482473381920569245417069218549628100305077787483841053091132534103760456179555347672422343697330472211943485301662900095345671044201548273179390381239520616339818048056180320390748232594834361859727935001370880724727524668884597119369347855960035287081926011063573744319889413227915145149725901567677386730105700537719462953164666743765518145827304654065493652192271903168020479928202654079353836931474063241361662040199075552584064599666381657803253124851041524783962309237201244744423150218537239367057855516532515370597041789423680867271248194414556166586602394131538515391580004484949352635312681111329961185325436723075396741018106185940227395415244209704481970048411844902712241603562490121492068347851613018162189316766841566673027217684618101208045576918337621404495059881582057879887497653171449271569652220344279505161113019535993189541968062056522087656152374732623355115282450014889989812661302992912803666207276468395767756303014408948632374296243445493397391591530984897214992206577781778879128656559967345037116793529636618085149728129056048374344338227068896789112642951098821233872326325828772329900842427018251071741236667643122681626783747475022912259932134158027748925840314240532846025183843431830296215923827501349287618225767621739501507989395297324629618044794373769801866207478393517403987415450040494336543668653419025643063414218996921328932335235959744678861439277067671340077810234455837526175847021171219700221490775534586879904167511091462299464188122105460538835064628078845607982510082235956100180460765803878879250497203686375709005244806844222720782620505568043130386453609889258887602839526802541093831145981909108840943234369393382643209504258252368714638552261344609365547702466208511405197908222976174103345126780980790703775287165209592092921356338845117497449191033248843773942297886847875787053656543883180871350323835786381617634053582594561669120012747398072429220084973946502808085289526902663845138776883094751148820897095171162024406477315757137156755376987326639311641571648014094339050206552596709553431984584270476605963829665122338823768024813822045713503292671311098750287213847315072330501086709041921574062137766429978181425939395243702512806445441515727824566814581036088634019846482193390272679284950360924205105777453995869225635607901900787491663450794309378257184041425756892325791905807570706263513199015803951420933721521325874106038679840620527352010283988826418601563006365835916252696636928907150791830609367101292358470995157692489606714394170250581524048966460692024317442038613175193885236034296486060827081551799312211022981081525213428888154828236622805633101390168910704770421035618627571876268409718069140716409181412352222521225950584108028669253832063632763203056181098937281756609315202377508922760069136223729698390119617493063523577413851486760089352451166397272056641781143444497365691011641816320096228303170967773757064277891493805913103137412323172953654478335622798708296009346647854196729638167184889177729127531845626188371426947503199557460414755904834048718998808389425095960019105223131650537071541624945155250257659688385380652258435196792585294832077917499303689285204321957956391893133639800021429983976039710897562202834629496608007139063518689747160277253927154489757865668639019887592033539923717467302212493877782089065815902685757845855209955064522738801090295667330107933005940231802915827176042307445587059449756367497628237025957140780166187153077601842830723319870353001681756532557853670529401340687860300199589537939414505147139796808262486366258783269262434198793390695741878356073508102881646454247715623311361851312405429058070314690793805988646524671777972759117400642369405945136532770249982111980053529292424051138461432684722775363192381402020554463593789170900177231810784990043525489363379828187927472367225723493638989457635423477521527140953386029141751599592453538671590484198878883945885059937327160473921183623963695816291543799385602622763462203376468140187643725971407799532280792338468305591649165377603969869662443838736681906773646580206308910118857190058246348986402834426513167263012063885158369398980164982786491985739765172666660292204529743317345790132154375313209537627817329505056254436027889971132138281789240483241243126392540326216741727313289366056579281283462562461681191851638875716917721418853392868636648869199476811773042908666002945979203596192969732573443712636452921671964042763147857244416583820172575632075484429099304516132410528969119648756774071008638136976181735349714431219988838404812212438333234340157649876545097744079186412044879900002564254469909660309141147596186921988296229801483995524162394343693434171423815772379380795914389049622834002864259592643397676120476127315252027339148514937983982087364419246793542950518442985706685717097973874415399511934083451778025719369280732409640729312724074781863944098920738429936110102063623941871747609963097044548925156765823557165614779579114662687891826021002307996359974545549852768996339114676657970397668934972481867832296837236021443190908038345803052159439199890300964619506701665381032261432553250255306884725491005741982334016886893884421330541738923712186911766895603018036682802708767945376979533008394997001929446469828295967012999587460021259813085868645156000538222388119822577864394564995949390001113686109218165685534385963772824987275803157856710071981653983642326375398618235534669433685237919211635306822225529449941855349021486716639515422617078925861941902148529201062457207532324358246128476047609863630486879665163516584582481504014370636335156390453570238657914638900639617897029030359078543173339657587272541543982824583904820820261021406922536779890316565077592367631713457058932548012665263402586639206168157858146050549432487495875682594650216885975641595938459259746584432856443603802346807760517353637374976614834704089843274307208883199651271076659976578223190935372172588866397243301689685194882648731244201997734576805338832304972877606393630011166544264936484600504430355097419450449989982355630311035901870834921837147555802967752633775755127705145634663303532950033924430311833106360173771624678034709370236051780403280563851396741655379665333476697273029610689838729413304124937759244499478342970153091044709515455085635343514779093854677397333483850839957607220058662518279847694869280481174923264121401543981690804641034181845146095721426572532707837188474884756569655058066728859607886206364333356600901090318507379762174831619768009575085700855026621710418765650797396778638541142194234223007625070340590827420295189258040391629643794585448839565224328318415034544704328361572918722518077093545349529491788554681845005088348739578964599814607802382143082537805389196627575729125099607882462967481216625353769547794948275808872958907488460708275912337082761725620663709501556004609241841662879040372759680939607425093357986341622605203173024612775546036188777188345348927588788567131005267798164024172953090179171968954001567366601593175673037160964333177514370389851291473001568090915385378632030342993019558182332620880240942954551712333383182339603930963489203487470293293651446872462185903072249745316233648791361672500443852892692319796852834247959072111203637365018596904463774601683915173580135999814740978132397454468499976686879559678073404004081835713976657254115523778260021368339588898757082282273408635413716962780247848909039523591043942882667087695698107090596419053137192956356090084783904508133793462937498327558239380025071781316948232133066859625258892797305850021327775975921381317882655648503766378847118752994727796196318912848226791583602399864900484527530469281750777542908516159528081705208460351353267297118748492892154850421980869686913405908952023671452530335933294148334106816165302319624326453440576870818241013705766950537809157351736104635219630489312870214830121626374029957879533228129172796400045909970781911860424921411714028694414798282941701722372859333394070305035006327002819641829759567959001684282378199145364033640246541534536346507064451816226052723709830165641307279702973210717552366170632412362423710055322296792608346950614458767673578656395792384007114624391562985461181389040815183094307410570193870678245066280259482719651187819030920251597458045006508714858402037304839066124066470795497857382275584009533816355734402167570022168204362567746884544493357821809000249992076152443205603135901642299597006547045251337043671980407790587108976436240305220030941904540838312934274511290923454947765951560984869056128279836673841190849683427762403351522176777249446643833121285619034843349656108855673706472360966294523401625557215441648494322213441209958559780156742451323112024090651304809263240176943934374161110474422900656817938186597639990020230653017457797818417602901037205972073031396514332707605298001359111824229466102549220513264135254987461351080885273683971627283308789741325995396142125497034339077334272733500642331038710408405879727776763635398499846083257730594990052115341058430304744470703453179368492542942481409043343154218043705749079146420416133480730578363812505686079254530915365533585899969013854079139239291185628169905382368836672593599166959800835010096324401884676249676503280679467132534620842623302616878359281306759225775685856778649273051256898673020643771321418945218681892166424351838673659339232434624208822333319020766120000334950670887889189633194015823294893316012260244214970113372211333119590175167470935158848755197387699673936170647980885772968092440328762851843812015831474461025406265517932184235113602613118416470668317436903030811149606063057145912525062446131025977269328685017247681401270412280303051882312806501332341267109444331020908231812688532807763530260765467078003822885295131609224857236066933569221893476977784936302752134918114682037469659170509279854198690314232769653612788513071843291451885967100670920973224417980697330970812668178482150180150068410409618418468654074624218250068664274991271827462139846214648549725648724833264154479724825618346868283454451101880425817888647524062347385166954732389101412491202543338914123709078005441729230944325207621148495259261482976737029837038860315502115466779221672298505943597637939689373276519944666693182785182411841824689064434103332997648383092374829612810175432124713507585322657395087060552205769871881256351934945146984150030784671250007978790721246867271261599311220520423919691509438581067591843172537066620961775911842706013315034524711504623415646311015810316110480443104809787735334126573333466457077666575973878971987604711543081273550380284378569789660470303091306491658578209043551053674491839553275965868352035547531629473114228092008355425980446446173744989337185300472265303662557769773675608790733484557923335460840762966251160696046406034338224010751461519966470143045775428710177911951753064063418386981059796716548230878518115914935279315762006954387789738922174780394956051596124558989316212947172557320355408761560876658623324006843278708162783137313860645131138186969553857897253143301973616606184793385873422778883153563458946990246101123265233940131017168506627039212189006056027626390010913799416548214200140570379093161005816486077632378909601291630895413481372578619793961001111663179823747158945983207922695535280411765118399894011851421945695056333020372362727509284111945879255304641365146399202724233178374024614626060182294558362077690676646980971171341478652824409360310392712491498210356398077225364553723614744843322342335737140107652575663130426798386831294288053863337221582021902447507323552789485685307662210331104677234615187089819893060225258404125982238088847068213611136678020957074804611992527755014003085400999449991952457774567278331348368092425428081756632121370048088111540427750363087792472966181413900697776799322625995864676564030601905887327941345767274720254578595801888919581778951797932002232899046316932621322229032753557667040828249316219207796532407702006031793749641883722463844264801294559340415593870315028250988278247820310396905153202617200903718544713529835635035855314883030029048108186914879650854134475440071632458715774407149371563489854572043807126006618889164425861559759794816508970195021989857560194136577263386132937144980998554247309155530478658325210134804649584757046927729011140369620621040768595453057510312839418003719582224805940749751448160609944743846767238732658870792854850985692164292884442881532514953775877507646655515325519091814724577378876991489866145905391623707468715012960734163051948083651335623817790645764312140691248668735496577579487689497292484341914507998884684308713784905217524067931493649700854534454133012508359111959110783043210334087738728958393964530550961149054624580122909462687730884511119152718316117581731014391802214279110818445669677285646565839966103298349599146619582566332820146378450749374815994932950722921846026236000882484896067371828997354440749951219751142211401418547185245387283469860469098683255609909758502937609085420817787263230631952937029884748620128526374725216670911149186974950679980228777583374737733741244364469991591546152564071551703476939597443496565893029423602504417671374932694208391554396974829797530202984524298760272565070238665364765600647043480507133974177869287032521942269085543115138004286925853453505066916442759494656476899132531373153640951141955595795199132853289839600765231344234724365820578642206446279681042428718390440916822876649135067244678650183222580071121503230976089426664499463205144506287677933585829755722415447424053258418574990935970730709885670663287397666009964924994243577288432942234152527786565626391781604294266726371584412667902313621654275770814870968934578701651236376226091336138226367874403109743390656670431869714291500965229469571772576748652785865386437427160470987119223318314296784302886108612269264902660294426948133429899177860538696546872956225948176216046513241450576321992892343498801588623720990484885703730568603600209640976420820112579576590304136215391771977431632057912598736955038735250882987321627563256011180752578833476884824655704329791100334868943479968170000068498920916969129605307865995401104482482701418068201020002109540039307447627675990470888367255187051656627109377385000255292635392149553918647821249361224703645317044875469882396465563770950798657534799216597746153498992925321960976391551475674858493002111842062696861546401392563080860331271895178095059245396527701772216647510883484820508616775769024825682267045179795739484576693204207800610902686531125362048014823578186351697868981602636590354431578546760431698540877663964540735208763946701272040442106554101308693738745829198008732675087401820993057754943593432399450298868232020306752468262149811593020818005690869988651675857161739336042664123468594765838215005935853074405655268928110002961546600697038304922364491140691759155822705922550770022673722380561676269776722077176356578816772446203385639060730946530635670298759935046821817706415351702468244622214567226892102982450694698792636306630321611303598225099725965825638085090742777951227339480574188151988799458017510016991282108542120746356268099835814057425100167304147435374906466765786647927801525636979368265775927676415099029719118479797710531643030235197083342798736240296754287780161759786534506559466404689689285784017122015663873072969902438932195618642220070962734744819929462124889266383948986280464957818540685115101585715443026689544009310508124417409507693415326937300667379513361090723873716814354162280212623750190912451003129530235466344092148086751183512811356760654693150431393553627970896128160987290147621075609973278895266092020039499651233848068168542109873201836323184048404761748416585566186094695099576005414855065440113240422380738698421657747296214540153859648206867607058137844082533094970980716223852308588008425540848521770398303988072426314081064271199208324600627971109356982809249874107744556211806060834190131649498348699570960288711634842012149240739990697667280091431858688546879288088005413905174122692537521381081137087501429449702170285903441067968639694548940741607046701746108031917127528842954430259584189755142838368345559572896178008423786042905177396183984910313769270669419578958344498989054976992198472606806053408840931506404626499958039296604836572168262779155304411745357998115969241509048599192225869357051327382217888919199227090300489673232498511805189043056981624814148158256945790173806909968985867756629401514248717372251501463641195185704065710763983354810495388248757513979452950767717450663927730234627160995901934401067217825777499651007347398832229084335845461636132934483031909737088287912653758541487881491266553202221679035155102241172492555583020925994455823172190991571692158200095195056251793159913635045079290064120159781235254897334149676871896502586398643502147260576091785070230275531495939780805868947554027972204426990082670668254941932242894810218925802318749413513683813690597176705191080340632084377118888338820118496039784821934429610523765880609867988246894557867350640050605296923769649162278123273774400722670673136925707194235243023937800543283321810477532162723020583120506684257594087682060851740018923761606874674295943208796175839417476583373786155315613305940323387803594431786637552349810193585496205820234537208617169163161679204238231986380617420532374276734799137807920867906280748866016833865793141329533831756975630014644012604636705701736297130015436973107929727337505265317974886771766102146435270037008729273339303190632665150548943907880743696994869566513895712553986454496561195874397781461505025146180721497948459006498167660674964676614665968206441328955146715250357538535634857096606824537842819076844720670932161812656424521687551873100662139598954728290373630195015768329165580246739934302968694251939723420002892046474814520171646811949650294729255947375012592463558345309467207097752605356770988635301189305051674371037012687603491391081930002264427352291930531472230647183062688306851367699953705864494873149337255342052668881843778222352435198053445549924597865638191757388460773785108254832528520385673417780578065041059737231105524394121384267436917666398286967971285297132697482556981930631332338381444353743405286132127712998353006522639832529183110167433812646836954204431197336064072650754040724219553083314583531000413567827165232544140489300026597527719143803332592108187157112136712860404359813821234366633708563202879021430596342021809796588975491095596090809300323942058518078112206862393273447466360300338099984219409208133624414812726458968214315831979199721408612910394916100155909210281725245109043676211684270996994612468292747111120972588068106197941557723640542242490539218939772424839405204314139654479249937779371747605175814748684299919168129970315274207512426577072790121190502624175980986978453278295868824831422935112801684931588792776226132369974363627347682486987022870083987352074265053039960255306816191046013791836674534062052958733254997747139670896619856247056213578551757547598597629567834197611315354316460193968659919868826321136748822541323611879202046022561201421537495302374060918061898697667282071148053853364390067600979819584060355818287465471801547917757666147234421716518630615787383392969739421101898990611739658367990309399152416479745789245906807224912648373570562093912366737878285105549214345534637165439386767535981789870951095702780331826027233342250783131433585788790332502192521924146900038003170631017163314439939188863251995026479791046666487621726055545824705631569537149667825025396956748553924076083821843506244904715783215835579314300859463890591169852583834082757491690572189306497464343414754141614931669119434266235391955645703943452692154470537472674897354256260194741076718272881875789397559600212145073313950309212741088355677310230708382981263256551226123501537148006931944527245065754691953810514578309884551782344090692918630290808941017636314667830580498366545831948073441490749571367662161678264382350507605308861326447889421065067974968502252195276883936870932758570420186308354363352042565032932203787429731988748165302904005793883873007834200817361546977095519300726741171587103422039019971939384277744518807159586777060662423799227720187951964862840827341073752749243078506495721942315622749611013912622077228637785658314962111836667734153257490458870175252728280166231319002846259229374079319145516395239866200729631436533305854278973976263594900542228502126619069383981989425723162155869351035136300588086213414109234160946457528907651733472876924601329733518975568228932700558407395325043801892424400830259571195290881465664804932313300285302365798366450352143889298686453889005572682390434077929701472110746201096512084138571099522119539985237238408313754793081271780946628275751672804244497446083004735991558454072973635194004838386679058364229888440090116884833383414184595343509154743392722368013752876017216589339650108343344220474620250302524829916448390502186003372119064717166677016760847880850493202614185017449101764562834389595219803074089715534780181655818239418237982628260053153192799249923036283575110649519734521080931343109392795510480435270827927424326005097570933860791732494717932300199276510085991251360632547070713970968067990730481630439663609555477097466180055926687121780125316792910563737149149735963899987490642957239080729600225379930899235137817621004828890520559122283073471199991494841557578672238630386267820910865116647471580627912673333729291729867874733387652744551068060182578454836350427850399787681512602341455105781577560648167064469351442706417881112716965252202184526598828449905208797833828574275990403724632014443586706986801001197615230548650907791971465188916584132004529219500321438735618847108414236084839794388455220580349166676018134387751576718749906098886179218577426559562384784822466916294279390996413920747526809509648254708856035094099914278660183720023957270430418820712817806225540837650285938895174959236628491396411019936081529558217338885886827636797575267175844722171463828221365288055407358196049978753152977221677215574592291846418482723228114991573630828646487386152071903418032325398326162543940259113819733049299768374706277211057033628833593083752668575193990820592982460160286924440420749281124115195819537926840206779237060273983544906953131501548443942519162979622037709852247570226808060272152133959395635542863301906585032567781002800679987043695114421191006802784413573048611905687689810654545525522284697495023896581909150087373854120390983409655512195491905484345456557100296431151900984650302812845275052114343299766222148234073054802071771335491321010556216715478693290111637057480158207002878444674313557106122076482267443313320256646941365114659383782663374700016482633723266776146856673793462122700135667298889863256716574558418259269307581740268491413509800228435685184738258446151554037837663957097003289803326969930978147864207790361544011955317167071349960362973380086589841932430566640287232711711452905758202500575633143174707271122164780658308513737429486396381568784902882912400051400618603594808849639465158174479864340391198737916377965524443151644371542025854281942809522935045909011032493962246636234284166921120572363439661636103866820152246220859221708048557520812614838772680210038293685551043522697803374558297596188360491030681991969729392104028579124164114736689091684886242332395838064300405754107679341663121873538651451556631812155203055129354673133131103598152986736051251273288622679420134918567582466282851331288921945006973814801432914252759437456236997147501803647581175277308206440867389017481882453352618304707802540312711102736618640940224753572757586060748246986773890063994438983967038554615714351175879496313124035480551796649889905658612908995337833686414877313282010628110906279733769574896943415733059355634727245142216221982108856333846156215970515950430096355541776960534327673302331959080284025177051610902717935487831488520611757162831064809692226764015613584610611350271582409721151511399552426664421684294479422484654794908316807758405650839912301884803026524422526307507438032128105806801330973901283224516432613273734369077996577843361291781250244555690710391852329246659068596891902820268515046115822081737784815530825787367245769158053603461337404686045276241102060427209261320894039870225337020204645138326964106939141947472263521983980695575186852992921921498046005271810137082930095857709101845521086749949398313555628241374204207831180895147430007831689371341525723645221518720650626032205190640931037799962686995239048234808500249929708232383576947870327379226351369270416891773144224244746320206983321279218722392906631166444027897869976339648158226858569390354826307054560884162514916061341265881069897992903874934392589092087728246156121857495536653173580556160310616067370010940407384951056025341870929642464638457005530501471081026985881749936119076324261999278197784009423405016303842128017480584804920489755302893775481737492325776102278076296496816452689865320325984630797304114582072321097810956858205271009040160323460957603338519645757682499524936100152261997510574412786492200707357995019472211229095660310256226261116971812169235173824463400655167505418276508449124159872330749821315239105554272829186752667076968411464100342703226046908438196702393527453975254160954269103478477559338816438597711289507502288600171710397320215477216990179963325496819669082076522364537587495099076217191298351004261400656834617162244379918422098598097998254804498141047945102704520888742703821940939382078152948035591100570510774429318472698337408430878201619631280606485159797306986568269048104285863967457005192799592968906092356148033537628396147331421926975992944471225588458127600250535965886264050161274721833125436020917620761451476924721628893438176165704072187004894522789282033667219863427159210390002371810202377324511933001442587985118446921890135011963432674891743613685184563490436471163378158433031838370897778592465601054347463593338100564191661243718179105037007153667055281755531192647313353050745409042309404766298591962658211642887308729133348263844534790062902646236473734891443222278978555019578014501016347767373734075766518584703553558733371959947777168146262799207602400999581872079604273013037762580798638882552479463000104340652592007063169503822279092998230566628670974660970279708075441530021401193909990101634213834517939157118397765101510761148924920312244095480602721594708866238596693030518107117517649538320015143757214989124830333532472987800479783353780943208938603560002658318712312548514874630181808113823817043063590868281851427738269542228408012542343786787849755504971052954171236015357487298179759893393844469347857344881138196169446728446975808002810983841633665584338223940598253559954205368459258348174785635499007749638679526100808643790618677940155372635870560209699443216050284145691301077836730655660398016782892899782711069586462980883693721675274554306396799684955118360741835036326812436225896493570579301179950433857570976931377115754611737449343120485570174122902770618651780016372315054402124204838463469673652750960025973991309177998163963876076952791246274024776252073324243322857976153137857461811224824158840240472679300031139727033056814338121443032519394416973413749799711954881749364745669531560860708328272769055759042472779216888380534395526564469473196040179810363128263026003200623795498888353048031025591548714119721679385863935162232726780337783068366780842891859436717448703176476597010453549779218590141155891469637669809265659378244062704954463592791642743293457936286377937106980308287146656444683626685249361451094839673283302094380251527483573514233039396974424875259359253818121329061426433998272173822592991523914331411417104475213131187554783260981245728858351960940568642162789291818006573120870806973665223608138470616694472355824237627279770819654228752758562347024164301075645817630504866138590326718238211701955012449698864305845427601891597449008999693863679460798066090434467556223691805086471570173361391532308746100026984898639672404079674687735624389618506886830164385968616806520631031200872559043303028513976112386057187447680805500069884128644999737913596776189394389239744226720414341981024520821440126178518070768921567756842420514538047028654895456983859715469682333942860020594975748468106637424299730916871115056904246529741589490089175802078114445049053407524901009518045598772956976172388636378182558480132326613402207803280378245304742945625135352629115271057512810532920499981003598240203778849262930099938833533375920662687183901516985425534566761486174580452001295247347225342361021122623157441311162718189732124732140397576843225870483668761819842749464135085619068995759750329653856419153317712292347414096685943237555888433637000572686808990528853663236096059468844311783840669126404730301356836751069134804336992846284209393983264017669555931956850486949744894739057403797031606168015841605201412676478572925160875807093876321818823998976705402172139540830529710629249213550951470191214423225106588392205043579905244680784803651430691157456126310262659182173754628794832996319127128288656240350568828775239777070744547346815011525441538570439518041711250812213781560851509856760495810111490618366172247530825595097659873757981745277756732963550150194376256628479311086556669124696953122996158139598081365964614581309009761162987214351044335911397026410911351850592159647032795041370130927911681531343160954879817806157270140575121128754679369880661347310711642375977252412405144898631111497907389862747074890289783322801320819909135751396471606974941765087718660797886722057544075143953247483164728371935310567014751622346529254927121468926184432637757799936056872984160300570373107801080421718381840884462271550382471434207341766935783939434112169083089797208639279244715054941442960557258026585721954871061660371273817686175070101276842293926069039211291103255964787323027010723304593606584244087948595286334608538252437078706341344424389116601812302082804770792193281506443329442282044220306236844282004581036531307497925329361297664964907873665843026601415237337669241565593706981063458753532827434410094111317334703620754089985067740970986832403447824384848159974604101887168889711137317962110199244665551599349313392710057746879535091967435262920994579293943695477450745862092590033617984611477426710331057913519560697993576678701471414760423632943026517742208674038479307900990554960396242540233373705630062560429180556956763184603584973291111168484871860887272739645582024028552324570292819066851066534453910421211332882703979524476885698158324181863976354156768130797310975928143056346027125265347527148891772956283492605584321532113689504472102626414623947855371679040569165111512783257446781458882072004298918144495279845664217223156183593672822858753062327576235667855017440735982674716584427876056991224489205253338102232720889932436592562090471122891648093828173554022490956691675055316873387657251985676365421502792715497995094940128023496612529396932526936652389578977419747310215221300256215272782430474357357705974320518362199455949322084220328646370834908742038845563249129201032920562105035032534500599442325181740162440982239136596760623331209442806116986091206134454725992329100527093229961515911562265128609316562482455499530699689909757484230885391952565418522098196133389345050096054499350822542825234689433645193725421146613095218315297224767878220638607678564806853693861506807869319257916482814649602936625160667188183026798424053252774392785902553404246072841979742597902597554846114551103652013825456324068330444146793165246280317579403383103576083731059680032444553973564158212394943204581049324932834149862309124964103265467990364926142493954993801650902060398458310845801764297638449502189436538670317139792457133324470521546199824664478942142560289881027015324295250388251288009709595496754319804636599773371196272525494659344916855052248205866609256097768668246512124823194926305456595007654892554192031808077604940839662607615277183137338766818314028675270397311782564598991909069337762893385788438355836716950536439351505614875741428704149303730093679751748785256583463150211984941645274555921169128758886512249846094560109893647803664638042565002164758503726121702268835322794940703986800301529940179627507302162232528316533106256254319687628242859441166042379538777758362955228613195807776039241391744524133685756054287008592308796733245260110788248053437694204493603315931255744908307125160815976698499480167768284308008819109832721441043800594977797835218964385513565491315864238747053480308483099294185785772577545761314523749588467443605597949450160031932639164357662679217202498500006337932118771447821622313382175580285374127693194886884122292531848155045224533414337957948379449647320682910367120870817690789640064589249321370848537166909980903297312385983913530160977605118066697243399763458971225670506642039808770833048750318789864331213671043432320233678777822502219752354741230905993483637466050067704556762844470545523845055474464282928317643175475829763582080013935622897293776347236305725269326591806840126014878764248776408168447048273198402823682656995555632519528309007583557343102748415895904975470933969325996325818203428311152084642202496283302999640635901469816774006770595292869483753782869052768344328822105102508950206168197429132386132171800546404073656392209590260405069562706228056427814157616263799928222143186188035999816311924142138291540432432188212066720182940279412656260233530484773455045914006401024494335294347340263021524261649125335448318859072218373429694730055603594578548343211172303638860273554119648292462366140856409304777431551298328838171592512399838862891980506525691171470420925214738028978692905235643649008814192377620212084487980544583448364227957701729578832010472599222043230273569281479209564930906103915752609261506335353614640106854428875691607278106668779813045003559050992050997082204169286706756531684662424430543772465071219126754393762401661806728414796234133648676053727304102039671929356965518965289762238751888822499334551301630202812848381984138353464756752082231209509202365557702335526536806712508860735272565591924243574367145462666445906831941760021576573046610082516079767458419564789623686088112556317313647990458011150710527010713515242674850427440179287807860669131911577648434258731810839070806371915662585256558234876780940662816918760311819252558651309251285105215851513769922566997268649286846586862942033780188879889643822131432938896352693532475012011095167403358502815863550647935222099107399071403069276975627722022996475564182041700491036818323088695063732635858575148526920965279626767207603436074323082032802273018321492690357339727469641583756559356027067283517014553711536466451563491865011404821760562208799140549043663321227662306378424651262558304653074473431924828506252050569479992077599710280698532089582185210905824516223714079598270376176141332571231873155334464245465826672891114058038736977611597086202695405855235537424244811737362954734852798459313038811449359027083884302728759625975058210681320300203687197181801015698041206743684752507273186337158429145322488293312401563284358223521705163551787957780675915242495105637622828925452439986082573172832706732645532245171493241196901019126946911474501234996433147338049696071895963467028915605690663826158647165072839694205540507958008872725590730367468457050698722971845700443066796482078303502523722228726040330472700617127800762667016055201192957004884582327271562036130153702667293188176121383962556547694068079466987205637466379637312310620120859052919206125862966798788235087975193304005407632237180186463237893827309149639521849382473980256841887072391942114562754726524134321230249364155068087602348452128547099754117707054378816780846928343427632562797367091663543017649304605151130686179431255234319538371798590394930683970816839886080969670025176230134133762217184323517690148414187789236880501082576949154916646747651588079301665211001180551386481312342230238336715853598833738392913802824432093598638040021002885652420576512932413156274619742495717758629514407189698594968488273841305964978776416874424379383197391497606372232170674777108261994213213074612216541099364761120556935857858380871443716897137193974296780878732270902707860583218689947673052943850659112530437253649087645503693261591609129878957603369866817094980689738403562289060735753895764111933687129402693730125587745915345700741286437144958088199824135179545556486184561289769265355758387126193845898247607816547758216409222675278342423579226999275990512396869575402396453130798317582416237052443484325018125500882616371493578902085214996767808222990222646068252144138347478315352442692725862489487189458643903826878877761981410687261801479374820496985362154467139950613325216538768772958387471511078176451132871254136053589540170508538888771103311467373243684887991384117648167291468753326812566553574783986358562202643872765946380204965685090856975509916853549043379551226445931870080831815477724428000132990607192269676285869569987137594344033668626894291894752943989271968915770478988903205723082694002924976358273007197282620114331658194431685302380429554929197998492111175402089734018201546747777576551781325422563329128504152426510514662947503691918581384317081535366696063412233327663769663264905997063455616211933428197994982520779333470301907157649635314530875461121830837688128655042780784906082735432666224574591827708706657056584581656348567288413823669682819699128834558335600353381988081256117990569448090706168406872960622120488638866246591863269429739423704967644602291825909883138657146284040698575790588475824300300424198361997848713295069519936476207764066575773402062297510150062029754440867801074359777252032353284413010034792411704790357803355904980025980785660960313578096982695611715112310166182063732294347945066020849094521688854725173277365593921575743061449349686319837811349540678580088851007931774100844829027671854576323573509022322820476565857311963880607112627806731353512612789548652444345896149263974657131604363170944525968067806645517566699967757371199215361263042473930816908249977198718630349376895356345269002923285252865485704967585570390029696199106006563350502163960151544485777080009612369427726257283046914594122431875396217162605352703428069138544273171467530779674904392404894027513176949627898653311877825578194122841836301495487117653668728795254719808927140257882458035074294391361263951543635571174354927059807144154852870018168642866004291798774828184479653272892100838134910759608808125739464964599329040077144926250799791732695796748903946978090094497279775190603823540190757246988359860901237884047930519652897070288508848629835915273083127115506412862771373213682018315407410402289754030901538774577225586464482895772710356792828108949799395198413387875339312303181000190526886137344421370000413918015614427177021856614842089427311579045627548273075212668415513006266736145497926693074866445722962686264601721457851138466811474607388615500283725347599602333208609670877368117352959838268079771593344987461637486924064114100392987794807148691878894432430234148611401234442029736370813088115320475961150334332085226691337815410412050856221242860056065977156624840304593033607187282516412459574769861123640271885260641522823637258868654152967470722681683371178906939973747824333734295493786491858198043224882919980830381288079231301546789197979262959758883528534434108347803028616594964505086087912940304213216322651864923122977729325025783371158070124578409481589006398568783878752970311614609438994638081063574122754422805562587355953083260963149828558935181390647358520872991885906080900687908416239196475702609791908679759376893177263276398225795448989597214564454112433441065097146323564341334953420898312284331132227007699571436979514287651221251419713128772134933740374138168233973946429383030631365874929118874290140552385512266847338463353283470460508187498290811922917126467017771907991443518020382832627396692018237913901254038097485615403600949035341168653034757991447742657415570191922779390426253067342201807236866209705455181711067663066553175200382760745682470699064648737719316733963700187798942038759255153108844800882961662454674978208397171674890203016350559876340874161872002553142587733823432660600818658778627311523942499975464519326119070787793137217962742370429756671143732008540678585446659966228522244158934004704027883300717562992997421118043012926629412807881620325206756180348607655961073387456129596468997245897757038807357317219003324226788462220626193708186723269807462090786573530306718496183570449007643568865656958703927288459934260719665494305016500647384104798415820441549002966127095230097541929545586243330395694126582838333755229078903074336538141190915970260303347128561520068918719634139765989408268677921706274375687845348065524586546775007065266925735169375511280884823558488839469115627184910970434623768919499574673926138587341075522359953891069913258564877953858370243944349440713993283414245627446670628103341504483503444159645665825223059382827508884347490140229914568315285801502021031657860356338323525417459026886886464660591328346713261357318943074583520566398507452377647034668065123639711629511276943997336841471081159089728604884765534737132713211349136091571395675836200386585387484413264323550244587393221243001915897596603353673220844370145657394526382079895762389603176138347003136078509095702683104977794256548611257115370754512042666377124957649148602029216649186954108076114765997764130265236025790577289141824200693525783171995775909429311198730555767989534098881977753524130745901878368649890995362438891904776587203878680722036120591682415559479820098914752822542528290367774287222179671498789786439348309970916257652210136437657845103086444042995028327054949569810901513315020949829000801353756316391700616928878692959388157194426465476292979359775283216195309683481523874234760595314341414197558497090339775682800797918135536721564215402045226131792791384542995318421150108155887627483439351668468353344178055279024158841474821804706971083937844240720664412857562431084430712649582668105537170729300888935649274045051168987997782558897200172275415498979831630819532397157854670557248751506453499712840137134111635457356094885088141007267777928535747899988183239554564685834240854112301427846773812474122199468000178448602800794607370398578277305009160592555510836074186519177110854571817882897943491142572373846009362428496432247790225815704343652444750836616232897084251872400626758530984364675255805009997591722423773580247701016254091227560732357816780601289106626351497784062383208410546843847632578828267800566854444400225421381085611544914638858821044969839299111931733291729141210496363726773962515081515277731211368017601646192344043402808466330121210902033707830701199090987292582705697122930507173372154359154876271290151984461037207697906205649864571672479423693349039476523802768176312481119153400174774593854179299205185859179874645943191911273790650078131382297895677358730800943672777449181894840357116383527432499557792374756870538314906683940382428041489804062013845138414702188734378837455961015312341677042190182233613913173517996816742716717864616617009062292793997381490451017174222517531433149286469160352754134179868326048326722213792623294868262148903144916488754373155295424231888221897132376088211714443664502210198077431151527018038990944313847002889754721622549519111751503020909261641698152217682576508314424171560446124453259123927109061505703851959347906265360623169962049071004995150148327024203992673913261132034313852918937670217413431016382846002488845188958546568354238623041442293228836663468673124312776843270874899450552850811224518337534426424735529442483243498803835755568436420497115095332934011711707370806442939384256696292817648932447703113934170062024077261775160107306704025264513104547867149448575280396145374075949860442477380437142623875313787867405289469851295931588727789971869426682366960220728762005861227699576022836892850622388402299749430039456676433361241475158384556346953467176622904468842135344716385428665798677501103622847091326363551152943598983237540426034902644554787965173291668886229265806258483043181968572695168254297495626572086922687339050646526069602670825895177636026322598471753799204918549631206883896777076916592582940835503485927706212023570765775121711707540824218270077191938690141053422876830581282486834223403201713753330306545856372371725969171766425047430350150541623139763300839700360198661984830848686971788271803845965844349821798592724773877434077171714077824136914481225286983194929423100257466461215795998898514064937695506176755511077880990977054990078374549665773934280779239534684127349967693702512777146535582300822577775572715346791382585644465928116596058380246601372880228278462001482763468359622084304651708934452062333860992124474221722967385641461051744671499633760067434695101956033504037033603820453975133077038446813178832900735394442961289707954501545679333869825358660447615272505329326922088115227893910372052279674408874112695430963585648843262074732317299302989726288036279908116266030455658434035984227654303641528594965787837280888951342209155774854410110002682467963441126695017485959068814373315548679648606399001010063886723059648387318649359948117648045321411660862792784202199113953327894710897104944058944738728318229055391424330401462911783101877978566325967181229347460412499787624745136263265956919017884356243706700443351056783768128886270148597407568918554241347869858502774696948252200786684887751662109259257259912972818097581943757010588728813268557993785890066454600586877931389230608484813643874742188108891816447777302412694958968466404585354153464330010934924007007593309541122094508871139455786454199848569975570148881542366533288000035347550760498588726137109602721692013982794241000953362025662527739614632771433987091522670457807942943207752387772653813522485903817349879776480492380169914456254590094273662389882111646043530448001436676167744171741202633033480139526799546784893758419104202890904130182304230978216225437054028608415929085622291550336751211311902315275792547140127348610099703188758068753413669582426511911305975388268287565861632620352978510204655454465848523400876108384286932784758376007791682618337271749357877863395061810631190056725373890863734639777227865219419456976798783381412112202593206043959262621213803505150765699868760446375210632296450227936238893658038484367376277074164882362473939591863296799832930112138864086145974444381791311713164938389427505007276371441473778362148792722791933070711130135223064582771776605324789511242369267413398136071891529139772209332332942947064515084199342640505734183791052252268705220170890571696582269387297747234224238619870605044857154698251015110454299712367674619127191727074657667932138647565297356528653530639272293904974108522776135730011601961863771221322175352378425431401681700232198132595659141269090818256533377557918282065077354042717379989166378592101977337869433662031332296014499174269423259817306727040436855903248044447098900814347478336065763888428988866128200029564723559061016098561449094979258842232014617387711384456601287995588312055157740665557817837902295956100239937911911991611867859486189705352315133510421446137777807567123418224775403574693014885215844552966082299253166015375315958553775153862310123070871910259521391258168286962685385442351853804120548457910526228532159897171136713723017271560346824390157197548597030142877065825905729328590202799254721353263088179603203067975662868854141879474399430281453862656926512387266122180724574764457065503405467866155793689283853623720313184021952878853339029670772145914986170680373640121382773107977048342546892679223893756642471528141669388294327835843924864986850577382354047889143658087264437809376384894213647188249058288757918667429674191969952172775802895312928569147659485511739587485168547639166947623537376495168239013104653469633968442316727121133661636749191355525029354246371841473933733763079272489313928149043613064210381355316623876445458193342447456048821709187374546531862618329311658014150520937569228897399832207218242071629381399445394134831115204047256108899731270859427619019757437501116720623773520373670592934607819048572776685297104459706913913012323053498603553490070697644734149127432035151983116865029491695753284429723035017843845859801471807221954936504161747111725621256339117096598202157526024515996924274275419698546644047173427022968019185490800500683080275265268220397841469250615191281890511124158040100708119182508685883121617257765164628342840484854937500590661911826032896150692678823266713673930136835419007664691313074050674728219361232519223415100753974480340918340465880665771116011913316071967026808226658340398268767880897697181004506036215558546382597023510234449654992254906912408626293109428618263177873062304590921133285041771589391828173516441527146813363515828698144527066928345098367834060305011431849902277151829978322381369280101737131559178385983865186285694065773028670362863633593783528323444004964446016363124228495699171329672110528319489499574493380596817615746725208115398531868298716727975431853443860324654803534049771323686773529364396170914285359004619349381560137220671126645370559395199764571322558830407342971767785994380500403708031824602283807321146875302954513505890908707831179458109926680539409884531162947954467069965942447004262813536230991297444615578859580468456418878754317226403686119181189170444775058921999453757699498058661574781087143433250250599717843988476190884807728622288239878993538379350538213848783090680520683682902552724370748367703832205068457933059570211318339337230418643108937468664296835172749244974687282430068163491411125228724087841225387136052135336366144922954895377513048605030952271380774670765396109309835665664966942112150591176416473130181273575629627766992229054251205421564223407653191001004859468844462130204690875509605176279938050509782310581295550520064936639837841305681134664102520189286228409464015429605249543024284265734270528219329930609153691267752195091737206862071369237174059088416580772502561692652258211356783833474544671429629559516881352484292223510735698000507269792760566533842982239208782969449951904613144282935059179612353768585225529808012471704674390393097398209092829030637538354247639550655714784644454053585551028133901149396857938938671582671387527782869992903572886483587483342602432940839094439255959967923787959806511855426482600115423659916175976627997296381495467281567089835090167056557522932510343130584117458897978696042307658856044294949892368407029697629381934397301056677688648798111328517513762739643756157319479224912516773316360829681263466389536137410606304007281084776897980661898496089899732880931221175379392305997695233566712478709731401244763015134750589644286852717763995671682832519687818143372792491858808868441484974222537387832708747810677103606610370271191015840539441550346484069001155848276188126213873784104070745375054351619385621675829059338121536225457616365086314271384768468615950027003773183084791831462038008291620506477222325446518916059304083134954306489386290659263792956426279894814225147918699177911286950170855024704760717361866735947128780391550649809173922777802663527928463902398319830240647738324852184939514415161022938339012859344445349543459500146968463352012017481129733710576222836400576882642557610295258375899415705094112615733343406034528972682755448522179538592680809785789580508116686357875145749425737464792509997836763024470332990091748917411955312793139274461894308638270925559361094691887122709414112755471516858471122724190427925230390665154919068252915993988749278925489294724444926760479600716310129856762938006383898566436284067684440264420641356363097643959399062049247719154503120402551967595078396104937084127063303266496203490554757353303069792067601797144572404148261722236529592814448194158407421999677266978720524976255452407281311601207131382507704844165530749577516383413422426042435883170703148133124353386066164631912592707593665551163490596263491594364116631690219417047139193940690188307599986499273091540859680397135165504812124868637767689343734823140413399590586879209806616685179468381430401704679061149678423595815199116470553595761217517471262747840650820796402529763877207039514231962892078045153396312379120544752739900252389008390059283424301006688877245026722663975826629403827074024583144297633313913521936806236375255936634436057315210639584679608547144071122443096541522246848970855233786025787313026445469075857009626197799963152736209915034544689310922688353374446379093218275274779618811258790859599960156233325164248074372376754130522342367231805056250726260341649168257187838535934692665482666412478657546711207271466992568509590061812545750896371035139715714390158740526580882531622941691855344577125270392669132837035472120853005344052643567589320696301777399554546837606513356610217569377052096207300580580337866032222696542782013470700894487638708120026702997062359698069759706217601282926838045715582765494575422030283087297689417293671226509344955348809906019962831188265295132154955627070322009278394719464943710386277196526052468476042204829322446971405285290657835048324127165238838101841260770776524502667584677088069880691663216331065944574774597594495222719154626717998487993547080896530294209896952405418423185477336302673534613887849023693114117569274924924889436014772241625380744864096278163188456218336370131788331549478061408955869753622018868900546582424413871703931339465114034910420821471841619685243308943177144799361533952216527027302538424768426965282829049133718420281558639582187314473640892967330463902306614670697175586456953989957679197666232770634098945944231671629136615183996061417042631381206020334884799856968536663640993009123395256304546998012695141854283150117557664719363179001517116694599002622528837655572389016664134519063799720924072818126520574880189489610988007341451597364574169740802984425647186956950816118878295536101063869155822316122514548964654591811182255873272418317345884501725419447638183303169903447427320203552189690464119924984427570877832199798985549864271363834925787887714486927531028335401151430203938862562844642948871490629168926688788489810522473232770199919366665714146582871888632060902669591031679577697423471784313841526368106751156089805729084671028715433218363107849760161872230311420956150766015281197571008886537825896313141762750405324306192374897650742746494867682115026225494747702603285772693142325296079682153208168088578374308824901075642205461732739614539693228108257089033894377921844483461893722897832957034518083060391257369323589612820876619712944956659430498649209091222254915047680210221203021081755531924177509873009809520083315539798649465378590672312610412309172602326687633269173684019140145478217090796021586110514879200848615859127110380091446182068062497570727125089670274057550597218322914851168967707902065899164420305974094709326579169512551486245307083865650266880617053279095665604906813859016989040051787069803719974323841993109958986341201093513608399615251130336244845717317669475799032311593564203736021994670073414436154713746284855298683464224422312976015409498642400704892085856811097997110485936383080237783745007088897517272165407280886013242637748862821161283947460911642288716234100063656210812364732702871888651098308478632611608787352821122745291032514034564986986737291069803319704178615527397840221718602195511466333281281202582204369398695227380959419707905890287312323531204379352109744912774077179334598513637317635009205645112084775577453994434630719575402882869560948973761264462761369454547535293820584800198563953455884857942759417741988092857566738413683503573917246259947226980887399395632868424394864359452750347351551613065342126427059022608764971223992654446233772820248165434016849083693951214910571998598953302432945891744543620959965412686481943398757148754668230523520498038375870314797480119707278006365726238600728986970336120988642860385612068085683608166528942414375183506377648514325570526056472766351881248013503197750107204136706859159343134303333456506724383398316142999776725114502821098818518310925590981928217722181396199026729725664949108364386687523617340189852620225600021072894829656937635253608904555100013923001776739062166301140706917746964913956943085610253102914145258136048110718075191265668452826923680564334391622746740660137930767993287205870843958677420564486709757852932793007665754627235400264982993503316590400922425669543663118990319758738724215960707724777924390316195862419857668139525229466818573130332260208750392514287031778872477784585919206713145472528525304370064883315468210154965754851777934394980030384694204441899946892562221568790554302980005884066910738635977899703181579515156063046431397399574807283471842228013204268142310938162916332686315262128498599499205151492325999331556509880835796051595621608376606143675996028062517674573159161215177839619668858835180812463428102405395522927436831643724639190992465928833018441355487352889221054384046653750179766983617176943889096860104117959839141930421084524565367854981551061912671406003345091881970608187242376985783032851856927965662229356230696292145824215290176546629675967360320821962946837564765922676379855598774726711194980949284373704580108389299652966423981223816307615835290604687835274243517041743299812494280805465446954982183158050071339806191357277937200809874242735710788180512605939336809643808388043293243415671835285681929540807960882637797302608574285985319316965465571195525036225776093561380514930030750726907521145624800577256385169505689758098845648538899279969941374359834123093083234464945602264998466791862923836051792032192450797519526762624843233092360386678728280113868685832387658784066276180863439207728674932136931521244351150512256758028986699711826161925887298822665023744027758548683164988913689640884252914141009892035547924457281767907867746680259473149100102156920164122176539515555137969832881702203385824963981715790845166225094150984100985307605005833063697187256869302543154318013570495566419140339713160722548192670794674433908138510492853861371381287458423452047453077565905931687875598630784244276190882944554631303942646936985035502765882076749146611939639316136097427964879511881985278172641418276080431820719453886655393522902921587915747553952881664223011353957375762112496179549287227309047739653550346478851135164962557381321988530299814221449150275303190263843967072401208290409666636976690618225148291891718558308112498160906399743444409677928762776415540548800669349191760905763141932803732074309069206957430709747619680531992767474922849848018456169772706798949456634363041966606427018536836919789610226300524971687318449720432366679738307138688724473393619787851349639810725825005143939832876537834242490365353241456784170794342139701647552665026890023318735937315750442137096711450279706815402698794860582524868653335384556773043957368753212759396394403854394693027479885426649758141000124048496291454011786535051750246169268105926910038795414711296487899817895906365110074945533119687062555
